|
template<ArithmeticOperation op, typename VectorType > |
VectorType::type | elementwise_arithm_op (const typename VectorType::type &a, const typename VectorType::type &b) |
|
template<ArithmeticOperation op, typename ScalarType , typename VectorType > |
VectorType::type | elementwise_arithm_op_broadcast (const typename VectorType::type &a, const ScalarType &broadcast_value, const bool reorder) |
|
template<typename InputScalarType , typename OutputScalarType , typename InputVectorType > |
void | elementwise_op (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, OutputScalarType(*scalar_func)(const InputScalarType &, const InputScalarType &), int(*broadcast_func)(int, int, int, const InputScalarType *, const InputScalarType &, OutputScalarType *, const bool), int(*neon_func)(int, int, int, const InputScalarType *, const InputScalarType *, OutputScalarType *)) |
|
template<ArithmeticOperation op, typename ScalarType > |
ScalarType | elementwise_arithm_op_scalar (const ScalarType &a, const ScalarType &b) |
|
template<> |
int32x4_t | elementwise_arithm_op< ArithmeticOperation::DIV, typename wrapper::traits::neon_vector< int32_t, 4 > > (const int32x4_t &a, const int32x4_t &b) |
|
template<> |
float32x4_t | elementwise_arithm_op< ArithmeticOperation::DIV, typename wrapper::traits::neon_vector< float, 4 > > (const float32x4_t &a, const float32x4_t &b) |
|
template<> |
float32x4_t | elementwise_arithm_op< ArithmeticOperation::POWER, typename wrapper::traits::neon_vector< float, 4 > > (const float32x4_t &a, const float32x4_t &b) |
|
template<ArithmeticOperation op, typename ScalarType , typename VectorType > |
int | elementwise_arithm_op_loop (int window_start_x, int window_end_x, int window_step_x, const ScalarType *input1_ptr, const ScalarType *input2_ptr, ScalarType *output_ptr) |
|
template<ArithmeticOperation op, typename ScalarType , typename VectorType > |
int | elementwise_arithm_op_broadcast_loop (int window_start_x, int window_end_x, int window_step_x, const ScalarType *non_broadcast_input_ptr, const ScalarType &broadcast_value, ScalarType *output_ptr, const bool reorder) |
|
template<ArithmeticOperation op, typename VectorType > |
void | elementwise_arithm_op (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
template<ComparisonOperation op, typename InputScalarType > |
uint8_t | elementwise_comp_op_scalar (const InputScalarType &a, const InputScalarType &b) |
|
template<ComparisonOperation op, typename InputVectorType , typename OutputVectorType > |
OutputVectorType | elementwise_comp_op (const InputVectorType &a, const InputVectorType &b) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType , typename OutputVectorType > |
OutputVectorType | elementwise_comp_op_broadcast (const InputVectorType &a, const InputScalarType &broadcast_value, const bool reorder) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
int | elementwise_comp_op_broadcast_8_loop (int window_start_x, int window_end_x, int window_step_x, const InputScalarType *non_broadcast_input_ptr, const InputScalarType &broadcast_value, uint8_t *output_ptr, const bool reorder) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
int | elementwise_comp_op_broadcast_16_loop (int window_start_x, int window_end_x, int window_step_x, const InputScalarType *non_broadcast_input_ptr, const InputScalarType &broadcast_value, uint8_t *output_ptr, const bool reorder) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
int | elementwise_comp_op_broadcast_32_loop (int window_start_x, int window_end_x, int window_step_x, const InputScalarType *non_broadcast_input_ptr, const InputScalarType &broadcast_value, uint8_t *output_ptr, const bool reorder) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
int | elementwise_comp_op_8_loop (int window_start_x, int window_end_x, int window_step_x, const InputScalarType *input1_ptr, const InputScalarType *input2_ptr, uint8_t *output_ptr) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
int | elementwise_comp_op_16_loop (int window_start_x, int window_end_x, int window_step_x, const InputScalarType *input1_ptr, const InputScalarType *input2_ptr, uint8_t *output_ptr) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
int | elementwise_comp_op_32_loop (int window_start_x, int window_end_x, int window_step_x, const InputScalarType *input1_ptr, const InputScalarType *input2_ptr, uint8_t *output_ptr) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
void | elementwise_comp_op_8 (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
void | elementwise_comp_op_16 (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
template<ComparisonOperation op, typename InputScalarType , typename InputVectorType > |
void | elementwise_comp_op_32 (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
float32x4x4_t | load_quantized (const uint8_t *input1_ptr, const int32x4_t &offset, const float32x4_t &scale) |
|
float32x4x4_t | load_quantized_signed (const int8_t *input1_ptr, const int32x4_t &offset, const float32x4_t &scale) |
|
void | store_quantized (uint8_t *output_ptr, const uint32x4x4_t &out) |
|
void | store_quantized (uint8_t *output_ptr, const int32x4x4_t &out) |
|
void | store_quantized (uint8_t *output_ptr, const float32x4x4_t &rf, const float32x4_t &offset, const float32x4_t &invscale) |
|
void | store_quantized_signed (int8_t *output_ptr, const int32x4x4_t &out) |
|
void | store_quantized_signed (int8_t *output_ptr, const float32x4x4_t &rf, const float32x4_t &offset, const float32x4_t &invscale) |
|
template<ArithmeticOperation op> |
uint8_t | elementwise_arithm_op_quantized_scalar (const float &a, const float &b, UniformQuantizationInfo qinfo) |
|
template<ArithmeticOperation op> |
int8_t | elementwise_arithm_op_quantized_signed_scalar (const float &a, const float &b, UniformQuantizationInfo qinfo) |
|
template<ArithmeticOperation op> |
float32x4x4_t | elementwise_arithm_op (const float32x4x4_t &a, const float32x4x4_t &b) |
|
template<ComparisonOperation op> |
uint8_t | elementwise_comp_op_quantized_scalar (const float &a, const float &b, UniformQuantizationInfo qinfo) |
|
template<ComparisonOperation op> |
uint32x4x4_t | elementwise_comp_op (const float32x4x4_t &a, const float32x4x4_t &b) |
|
template<ArithmeticOperation op> |
int | elementwise_arithm_op_quantized_loop (int window_start_x, int window_end_x, int window_step_x, const uint8_t *input1_ptr, const uint8_t *input2_ptr, uint8_t *output_ptr, int32x4_t voffset1, int32x4_t voffset2, float32x4_t vscale1, float32x4_t vscale2, float32x4_t voffseto, float32x4_t invvscaleo) |
|
template<ArithmeticOperation op> |
int | elementwise_arithm_op_quantized_singed_loop (int window_start_x, int window_end_x, int window_step_x, const int8_t *input1_ptr, const int8_t *input2_ptr, int8_t *output_ptr, int32x4_t voffset1, int32x4_t voffset2, float32x4_t vscale1, float32x4_t vscale2, float32x4_t voffseto, float32x4_t invvscaleo) |
|
template<ArithmeticOperation op> |
int | elementwise_arithm_op_quantized_broadcast_loop (int window_start_x, int window_end_x, int window_step_x, const uint8_t *non_broadcast_input_ptr, float32x4x4_t broadcast_vector, uint8_t *output_ptr, int32x4_t voffset_non_broadcast, float32x4_t vscale_non_broadcast, float32x4_t voffseto, float32x4_t invvscaleo, bool reorder) |
|
template<ArithmeticOperation op> |
int | elementwise_arithm_op_quantized_signed_broadcast_loop (int window_start_x, int window_end_x, int window_step_x, const int8_t *non_broadcast_input_ptr, float32x4x4_t broadcast_vector, int8_t *output_ptr, int32x4_t voffset_non_broadcast, float32x4_t vscale_non_broadcast, float32x4_t voffseto, float32x4_t invvscaleo, bool reorder) |
|
template<ComparisonOperation op> |
int | elementwise_comp_op_quantized_loop (int window_start_x, int window_end_x, int window_step_x, const uint8_t *input1_ptr, const uint8_t *input2_ptr, uint8_t *output_ptr, int32x4_t voffset1, int32x4_t voffset2, float32x4_t vscale1, float32x4_t vscale2, float32x4_t voffseto, float32x4_t invvscaleo) |
|
template<ComparisonOperation op> |
int | elementwise_comp_op_quantized_signed_loop (int window_start_x, int window_end_x, int window_step_x, const int8_t *input1_ptr, const int8_t *input2_ptr, uint8_t *output_ptr, int32x4_t voffset1, int32x4_t voffset2, float32x4_t vscale1, float32x4_t vscale2, float32x4_t voffseto, float32x4_t invvscaleo) |
|
template<ComparisonOperation op> |
int | elementwise_comp_op_quantized_broadcast_loop (int window_start_x, int window_end_x, int window_step_x, const uint8_t *non_broadcast_input_ptr, float32x4x4_t broadcast_vector, uint8_t *output_ptr, int32x4_t voffset_non_broadcast, float32x4_t vscale_non_broadcast, float32x4_t voffseto, float32x4_t invvscaleo, bool reorder) |
|
template<ComparisonOperation op> |
int | elementwise_comp_op_quantized_signed_broadcast_loop (int window_start_x, int window_end_x, int window_step_x, const int8_t *non_broadcast_input_ptr, float32x4x4_t broadcast_vector, uint8_t *output_ptr, int32x4_t voffset_non_broadcast, float32x4_t vscale_non_broadcast, float32x4_t voffseto, float32x4_t invvscaleo, bool reorder) |
|
void | elementwise_op_quantized (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, uint8_t(*scalar_func)(const float &, const float &, UniformQuantizationInfo), int(*broadcast_func)(int, int, int, const uint8_t *, float32x4x4_t, uint8_t *, int32x4_t, float32x4_t, float32x4_t, float32x4_t, const bool), int(*neon_func)(int, int, int, const uint8_t *, const uint8_t *, uint8_t *, int32x4_t, int32x4_t, float32x4_t, float32x4_t, float32x4_t, float32x4_t)) |
|
void | elementwise_comp_quantized_signed (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, uint8_t(*scalar_func)(const float &, const float &, UniformQuantizationInfo), int(*broadcast_func)(int, int, int, const int8_t *, float32x4x4_t, uint8_t *, int32x4_t, float32x4_t, float32x4_t, float32x4_t, const bool), int(*neon_func)(int, int, int, const int8_t *, const int8_t *, uint8_t *, int32x4_t, int32x4_t, float32x4_t, float32x4_t, float32x4_t, float32x4_t)) |
|
void | elementwise_op_quantized_signed (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window, int8_t(*scalar_func)(const float &, const float &, UniformQuantizationInfo), int(*broadcast_func)(int, int, int, const int8_t *, float32x4x4_t, int8_t *, int32x4_t, float32x4_t, float32x4_t, float32x4_t, const bool), int(*neon_func)(int, int, int, const int8_t *, const int8_t *, int8_t *, int32x4_t, int32x4_t, float32x4_t, float32x4_t, float32x4_t, float32x4_t)) |
|
template<ArithmeticOperation op> |
void | elementwise_arithm_op_quantized (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
template<ArithmeticOperation op> |
void | elementwise_arithm_op_quantized_signed (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
template<ComparisonOperation op> |
void | elementwise_comp_op_quantized (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|
template<ComparisonOperation op> |
void | elementwise_comp_op_quantized_signed (const ITensor *in1, const ITensor *in2, ITensor *out, const Window &window) |
|