RMUL2025/lib/cmsis_5/CMSIS/DSP/Testing/Source/Benchmarks/StatsF16.cpp

216 lines
3.3 KiB
C++
Executable File

#include "StatsF16.h"
#include <stdio.h>
#include "Error.h"
#include "Test.h"
void StatsF16::test_max_f16()
{
float16_t result;
uint32_t indexval;
arm_max_f16(inap,
this->nb,
&result,
&indexval);
}
void StatsF16::test_absmax_f16()
{
float16_t result;
uint32_t indexval;
arm_absmax_f16(inap,
this->nb,
&result,
&indexval);
}
void StatsF16::test_max_no_idx_f16()
{
float16_t result;
arm_max_no_idx_f16(inap,
this->nb,
&result);
}
void StatsF16::test_min_f16()
{
float16_t result;
uint32_t indexval;
arm_min_f16(inap,
this->nb,
&result,
&indexval);
}
void StatsF16::test_absmin_f16()
{
float16_t result;
uint32_t indexval;
arm_absmin_f16(inap,
this->nb,
&result,
&indexval);
}
void StatsF16::test_mean_f16()
{
float16_t result;
arm_mean_f16(inap,
this->nb,
&result);
}
void StatsF16::test_power_f16()
{
float16_t result;
arm_power_f16(inap,
this->nb,
&result);
}
void StatsF16::test_rms_f16()
{
float16_t result;
arm_rms_f16(inap,
this->nb,
&result);
}
void StatsF16::test_std_f16()
{
float16_t result;
arm_std_f16(inap,
this->nb,
&result);
}
void StatsF16::test_var_f16()
{
float16_t result;
arm_var_f16(inap,
this->nb,
&result);
}
void StatsF16::test_entropy_f16()
{
(void)arm_entropy_f16(inap,this->nb);
}
void StatsF16::test_logsumexp_f16()
{
(void)arm_logsumexp_f16(inap,this->nb);
}
void StatsF16::test_kullback_leibler_f16()
{
(void)arm_kullback_leibler_f16(inap,inbp,this->nb);
}
void StatsF16::test_logsumexp_dot_prod_f16()
{
(void)arm_logsumexp_dot_prod_f16(inap,inbp,this->nb,tmpp);
}
void StatsF16::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
{
std::vector<Testing::param_t>::iterator it = paramsArgs.begin();
this->nb = *it;
inputA.reload(StatsF16::INPUT1_F16_ID,mgr,this->nb);
inap=inputA.ptr();
switch(id)
{
case TEST_KULLBACK_LEIBLER_F16_10:
inputB.reload(StatsF16::INPUT2_F16_ID,mgr,this->nb);
inbp=inputB.ptr();
break;
case TEST_LOGSUMEXP_DOT_PROD_F16_11:
inputB.reload(StatsF16::INPUT2_F16_ID,mgr,this->nb);
inbp=inputB.ptr();
tmp.create(this->nb,StatsF16::TMP_F16_ID,mgr);
tmpp = tmp.ptr();
break;
}
}
void StatsF16::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
{
(void)id;
(void)mgr;
}