19 #ifndef TESSERACT_ARCH_INTSIMDMATRIX_H_ 20 #define TESSERACT_ARCH_INTSIMDMATRIX_H_ 109 typedef void (*
PartialFunc)(
const int8_t* w,
const double* scales,
110 const int8_t* u,
int num_in,
int num_out,
115 return (input + factor - 1) / factor * factor;
136 #endif // TESSERACT_ARCH_INTSIMDMATRIX_H_ int max_output_registers_
std::vector< PartialFunc > partial_funcs_
int num_outputs_per_register_
int num_inputs_per_register_
void(* PartialFunc)(const int8_t *w, const double *scales, const int8_t *u, int num_in, int num_out, double *v)
static IntSimdMatrix * GetFastestMultiplier()
int num_inputs_per_group_
int RoundInputs(int size) const
void Init(const GENERIC_2D_ARRAY< int8_t > &w)
void MatrixDotVector(const GENERIC_2D_ARRAY< int8_t > &w, const GenericVector< double > &scales, const int8_t *u, double *v) const
int RoundOutputs(int size) const
static int Roundup(int input, int factor)
std::vector< int8_t > shaped_w_