namespace fake_quantize_details {
// classes
template <typename T>
class QuantizationBound;
// global functions
std::vector<size_t> calc_broadcast_index_offset(
const std::vector<size_t>& memory_offsets,
const std::vector<size_t>& broadcast_shape
);
size_t calc_full_broadcast_offset(
const std::vector<size_t>& current_dims,
const std::vector<size_t>& offsets
);
Shape align_shape_sizes(
const Shape& shape,
const Shape& target_shape,
const op::AutoBroadcastSpec& broadcast
);
void increment_current_dim(
std::vector<size_t>& current_dims,
const std::vector<size_t>& shape
);
template <typename T>
T quantize(
const T& arg,
const T& in_low,
const T& in_high,
const T& out_low,
const T& out_high,
const size_t& levels
);
} // namespace fake_quantize_details