24 #ifndef ARM_COMPUTE_TEST_GEMMLOWP_H 25 #define ARM_COMPUTE_TEST_GEMMLOWP_H 38 template <
typename T1,
typename T2,
typename T3>
39 SimpleTensor<T1>
gemmlowp_matrix_multiply_core(
const SimpleTensor<T2> &a,
const SimpleTensor<T3> &
b, TensorShape shape_c, int32_t a_offset, int32_t b_offset);
41 template <
typename T1,
typename T2,
typename T3 = T2>
42 SimpleTensor<T1>
gemmlowp(
const SimpleTensor<T2> &a,
const SimpleTensor<T3> &
b, TensorShape shape_c);
44 template <
typename TIn,
typename TOut>
45 SimpleTensor<uint8_t>
gemmlowp_quantize_down_scale(
const SimpleTensor<TIn> &in, int32_t result_offset, std::vector<int32_t> result_mult_int, std::vector<int32_t> result_shift);
47 template <
typename TIn,
typename TOut>
48 SimpleTensor<TOut>
gemmlowp_quantize_down_scale(
const SimpleTensor<TIn> &in, int32_t result_offset, std::vector<int32_t> result_mult_int, std::vector<int32_t> result_shift,
49 int32_t min = 0, int32_t max = 0);
51 template <
typename TIn,
typename TOut>
52 SimpleTensor<TOut>
gemmlowp_quantize_down_scale(
const SimpleTensor<TIn> &in,
const SimpleTensor<TIn> &bias, int32_t result_offset, std::vector<int32_t> result_mult_int,
53 std::vector<int32_t> result_shift, int32_t min = 0, int32_t max = 0);
55 template <
typename TIn,
typename TOut>
57 int32_t result_offset_after_shift, int32_t min = 0, int32_t max = 0);
59 template <
typename TIn,
typename TOut>
61 std::vector<int32_t> result_shift, int32_t result_offset_after_shift, int32_t min = 0, int32_t max = 0);
63 template <
typename TIn,
typename TOut>
65 std::vector<float_t> result_real_multiplier, int32_t result_offset, int32_t min = 0, int32_t max = 0);
67 template <
typename TIn,
typename TOut>
69 std::vector<float_t> result_real_multiplier, int32_t result_offset, int32_t min = 0, int32_t max = 0);
SimpleTensor< T1 > gemmlowp(const SimpleTensor< T2 > &a, const SimpleTensor< T3 > &b, TensorShape shape_c)
Copyright (c) 2017-2021 Arm Limited.
SimpleTensor< TOut > gemmlowp_quantize_down_scale_by_fixedpoint(const SimpleTensor< TIn > &in, std::vector< int32_t > result_fixedpoint_multiplier, std::vector< int32_t > result_shift, int32_t result_offset_after_shift, int32_t min, int32_t max)
SimpleTensor< TOut > gemmlowp_quantize_down_scale_by_float(const SimpleTensor< TIn > &in, const SimpleTensor< TIn > &bias, std::vector< float_t > result_real_multiplier, int32_t result_offset, int32_t min, int32_t max)
SimpleTensor< T_out > gemmlowp_matrix_multiply_core(const SimpleTensor< T_in > &a, const SimpleTensor< T_in_1 > &b, TensorShape shape_c, int32_t a_offset, int32_t b_offset)
SimpleTensor< TOut > gemmlowp_quantize_down_scale(const SimpleTensor< TIn > &in, int32_t result_offset, std::vector< int32_t > result_mult_int, std::vector< int32_t > result_shift, int32_t min, int32_t max)