CMSIS-DSP: Added new u32 distance tests

pull/19/head
Christophe Favergeon 5 years ago
parent d4b4df5198
commit 5df5f8814f

@ -153,6 +153,7 @@ set (NNSRC
Source/Benchmarks/BayesF32.cpp
Source/Benchmarks/SVMF32.cpp
Source/Benchmarks/DistanceF32.cpp
Source/Benchmarks/DistanceU32.cpp
Source/Benchmarks/StatsF64.cpp
Source/Benchmarks/StatsF32.cpp
Source/Benchmarks/StatsQ31.cpp

@ -0,0 +1,30 @@
#include "Test.h"
#include "Pattern.h"
#include "dsp/distance_functions.h"
class DistanceU32:public Client::Suite
{
public:
DistanceU32(Testing::testID_t id);
virtual void setUp(Testing::testID_t,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr);
virtual void tearDown(Testing::testID_t,Client::PatternMgr *mgr);
private:
#include "DistanceU32_decl.h"
Client::Pattern<uint32_t> inputA;
Client::Pattern<uint32_t> inputB;
Client::LocalPattern<uint32_t> tmpA;
Client::LocalPattern<uint32_t> tmpB;
int vecDim;
const uint32_t *inpA;
const uint32_t *inpB;
uint32_t *tmpAp;
uint32_t *tmpBp;
};

@ -0,0 +1,103 @@
#include "DistanceU32.h"
#include <stdio.h>
#include "Error.h"
#include "Test.h"
void DistanceU32::test_dice_distance_u32()
{
uint32_t outp;
outp = arm_dice_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_hamming_distance_u32()
{
uint32_t outp;
outp = arm_hamming_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_jaccard_distance_u32()
{
uint32_t outp;
outp = arm_jaccard_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_kulsinski_distance_u32()
{
uint32_t outp;
outp = arm_kulsinski_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_rogerstanimoto_distance_u32()
{
uint32_t outp;
outp = arm_rogerstanimoto_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_russellrao_distance_u32()
{
uint32_t outp;
outp = arm_russellrao_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_sokalmichener_distance_u32()
{
uint32_t outp;
outp = arm_sokalmichener_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_sokalsneath_distance_u32()
{
uint32_t outp;
outp = arm_sokalsneath_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::test_yule_distance_u32()
{
uint32_t outp;
outp = arm_yule_distance(inpA, inpB,this->vecDim);
}
void DistanceU32::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
{
std::vector<Testing::param_t>::iterator it = paramsArgs.begin();
this->vecDim = *it++;
inputA.reload(DistanceU32::INPUTA_U32_ID,mgr);
inputB.reload(DistanceU32::INPUTB_U32_ID,mgr);
inpA=inputA.ptr();
inpB=inputB.ptr();
}
void DistanceU32::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
{
(void)id;
}

@ -984,7 +984,7 @@ group Root {
Output TMPB_F32_ID : TmpB
Params PARAM1_ID = {
A = [16,32,64,128,256]
NB = [16,32,64,128,256]
}
Functions {
@ -999,6 +999,39 @@ group Root {
arm_minkowski_distance_f32:test_minkowski_distance_f32
} -> PARAM1_ID
}
suite Distance U32 {
class = DistanceU32
folder = DistanceU32
ParamList {
NB
Summary NB
Names "NB Bits"
Formula "NB"
}
Pattern INPUTA_U32_ID : InputBenchA1_u32.txt
Pattern INPUTB_U32_ID : InputBenchB1_u32.txt
Params PARAM1_ID = {
NB = [512, 1024, 2048, 4096, 8192]
}
Functions {
arm_dice_distance:test_dice_distance_u32
arm_hamming_distance:test_hamming_distance_u32
arm_jaccard_distance:test_jaccard_distance_u32
arm_kulsinski_distance:test_kulsinski_distance_u32
arm_rogerstanimoto_distance:test_rogerstanimoto_distance_u32
arm_russellrao_distance:test_russellrao_distance_u32
arm_sokalmichener_distance:test_sokalmichener_distance_u32
arm_sokalsneath_distance:test_sokalsneath_distance_u32
arm_yule_distance:test_yule_distance_u32
} -> PARAM1_ID
}
}
group SVM {

Loading…
Cancel
Save