diff options
Diffstat (limited to 'reference_model/include/verify.h')
-rw-r--r-- | reference_model/include/verify.h | 79 |
1 files changed, 40 insertions, 39 deletions
diff --git a/reference_model/include/verify.h b/reference_model/include/verify.h index 0ac35fe..d294388 100644 --- a/reference_model/include/verify.h +++ b/reference_model/include/verify.h @@ -21,50 +21,51 @@ #include <cstddef> #ifdef __cplusplus -extern "C" { +extern "C" +{ #endif /* __cplusplus */ -// Check result -// -// Error is valid only and only if is_valid is true -struct CheckResult -{ - bool is_valid; - double error; -}; + // Check result + // + // Error is valid only and only if is_valid is true + struct CheckResult + { + bool is_valid; + double error; + }; -/// Validate and calculate tensor element error when using an fp32 accumulator -/// -/// \param ref Tensor element calculated using fp64 -/// \param bnd Tensor element calculated using fp64 on abs(input, weights) -/// \param imp Tensor element calculated through the implementation -/// \param KS The kernel size -/// -/// \return Output error -CheckResult tosa_validate_element_accfp32(double ref, double bnd, float imp, size_t KS); + /// Validate and calculate tensor element error when using an fp32 accumulator + /// + /// \param ref Tensor element calculated using fp64 + /// \param bnd Tensor element calculated using fp64 on abs(input, weights) + /// \param imp Tensor element calculated through the implementation + /// \param KS The kernel size + /// + /// \return Output error + CheckResult tosa_validate_element_accfp32(double ref, double bnd, float imp, size_t KS); -/// Validate the accumulated output error -/// -/// \param err_sum Sum of error of all the tensor elements within a tensor -/// \param err_sum_sq Sum of error squares of all the tensor elements within a tensor -/// \param T Number of output (dot-product) elements -/// \param KS The kernel size -/// \param S Test set used as a input/weight generator -/// -/// \return True if the error is within margin else false -bool tosa_validate_output_error(double err_sum, double err_sum_sq, size_t T, size_t KS, int S); + /// Validate the accumulated output error + /// + /// \param err_sum Sum of error of all the tensor elements within a tensor + /// \param err_sum_sq Sum of error squares of all the tensor elements within a tensor + /// \param T Number of output (dot-product) elements + /// \param KS The kernel size + /// \param S Test set used as a input/weight generator + /// + /// \return True if the error is within margin else false + bool tosa_validate_output_error(double err_sum, double err_sum_sq, size_t T, size_t KS, int S); -/// Validate error of whole vector of output data -/// -/// \param ref Output elements calculated using fp64 -/// \param bnd Output elements calculated using fp64 on abs(input, weights) -/// \param imp Output elements calculated using the implementation -/// \param T Number of elements in outputs (need to match) -/// \param KS The kernel size -/// \param S Test set used as a input/weight generator -/// -/// \return True if the error is within margin else false -bool tosa_validate_data_fp32(const double* ref, const double* bnd, const float* imp, size_t T, size_t KS, int S); + /// Validate error of whole vector of output data + /// + /// \param ref Output elements calculated using fp64 + /// \param bnd Output elements calculated using fp64 on abs(input, weights) + /// \param imp Output elements calculated using the implementation + /// \param T Number of elements in outputs (need to match) + /// \param KS The kernel size + /// \param S Test set used as a input/weight generator + /// + /// \return True if the error is within margin else false + bool tosa_validate_data_fp32(const double* ref, const double* bnd, const float* imp, size_t T, size_t KS, int S); #ifdef __cplusplus } |