870 lines
24 KiB
C++
Executable File
870 lines
24 KiB
C++
Executable File
#include "arm_vec_math.h"
|
|
|
|
#include "MISCQ31.h"
|
|
#include <stdio.h>
|
|
#include "Error.h"
|
|
#include "Test.h"
|
|
|
|
#define SNR_THRESHOLD 100
|
|
/*
|
|
|
|
Reference patterns are generated with
|
|
a double precision computation.
|
|
|
|
*/
|
|
#define ABS_ERROR_Q31 ((q31_t)2)
|
|
|
|
#define ABS_ERROR_FAST_Q31 ((q31_t)11)
|
|
|
|
|
|
/*
|
|
|
|
For tests of the error value of the Levinson Durbin algorithm
|
|
|
|
*/
|
|
#define ABS_LD_ERROR ((q31_t)30)
|
|
|
|
|
|
void MISCQ31::test_levinson_durbin_q31()
|
|
{
|
|
|
|
|
|
const q31_t *inpA=inputA.ptr();
|
|
const q31_t *errs=inputB.ptr();
|
|
q31_t *outp=output.ptr();
|
|
q31_t err;
|
|
q31_t refError=errs[this->errOffset];
|
|
|
|
|
|
arm_levinson_durbin_q31(inpA,outp,&err,this->nba);
|
|
|
|
ASSERT_EMPTY_TAIL(output);
|
|
ASSERT_SNR(ref,output,(q31_t)SNR_THRESHOLD);
|
|
ASSERT_NEAR_EQ(ref,output,ABS_LD_ERROR);
|
|
ASSERT_NEAR_EQ(refError,err,ABS_LD_ERROR);
|
|
|
|
}
|
|
|
|
void MISCQ31::test_correlate_q31()
|
|
{
|
|
const q31_t *inpA=inputA.ptr();
|
|
const q31_t *inpB=inputB.ptr();
|
|
q31_t *outp=output.ptr();
|
|
|
|
arm_correlate_q31(inpA, inputA.nbSamples(),
|
|
inpB, inputB.nbSamples(),
|
|
outp);
|
|
|
|
ASSERT_SNR(ref,output,(q31_t)SNR_THRESHOLD);
|
|
ASSERT_NEAR_EQ(ref,output,ABS_ERROR_Q31);
|
|
|
|
}
|
|
|
|
void MISCQ31::test_conv_q31()
|
|
{
|
|
const q31_t *inpA=inputA.ptr();
|
|
const q31_t *inpB=inputB.ptr();
|
|
q31_t *outp=output.ptr();
|
|
|
|
arm_conv_q31(inpA, inputA.nbSamples(),
|
|
inpB, inputB.nbSamples(),
|
|
outp);
|
|
|
|
ASSERT_SNR(ref,output,(q31_t)SNR_THRESHOLD);
|
|
ASSERT_NEAR_EQ(ref,output,ABS_ERROR_Q31);
|
|
|
|
}
|
|
|
|
// This value must be coherent with the Python script
|
|
// generating the test patterns
|
|
#define NBPOINTS 4
|
|
|
|
void MISCQ31::test_conv_partial_q31()
|
|
{
|
|
const q31_t *inpA=inputA.ptr();
|
|
const q31_t *inpB=inputB.ptr();
|
|
q31_t *outp=output.ptr();
|
|
q31_t *tmpp=tmp.ptr();
|
|
|
|
|
|
arm_status status=arm_conv_partial_q31(inpA, inputA.nbSamples(),
|
|
inpB, inputB.nbSamples(),
|
|
outp,
|
|
this->first,
|
|
NBPOINTS);
|
|
|
|
|
|
|
|
memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(q31_t));
|
|
ASSERT_TRUE(status==ARM_MATH_SUCCESS);
|
|
ASSERT_SNR(ref,tmp,(q31_t)SNR_THRESHOLD);
|
|
ASSERT_NEAR_EQ(ref,tmp,ABS_ERROR_Q31);
|
|
|
|
}
|
|
|
|
void MISCQ31::test_conv_partial_fast_q31()
|
|
{
|
|
const q31_t *inpA=inputA.ptr();
|
|
const q31_t *inpB=inputB.ptr();
|
|
q31_t *outp=output.ptr();
|
|
q31_t *tmpp=tmp.ptr();
|
|
|
|
|
|
arm_status status=arm_conv_partial_fast_q31(inpA, inputA.nbSamples(),
|
|
inpB, inputB.nbSamples(),
|
|
outp,
|
|
this->first,
|
|
NBPOINTS);
|
|
|
|
|
|
|
|
memcpy((void*)tmpp,(void*)&outp[this->first],NBPOINTS*sizeof(q31_t));
|
|
ASSERT_TRUE(status==ARM_MATH_SUCCESS);
|
|
ASSERT_SNR(ref,tmp,(q31_t)SNR_THRESHOLD);
|
|
ASSERT_NEAR_EQ(ref,tmp,ABS_ERROR_FAST_Q31);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MISCQ31::setUp(Testing::testID_t id,std::vector<Testing::param_t>& paramsArgs,Client::PatternMgr *mgr)
|
|
{
|
|
(void)paramsArgs;
|
|
switch(id)
|
|
{
|
|
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_1:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF1_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_2:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF2_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_3:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF3_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_4:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF4_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_5:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF5_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_6:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF6_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_7:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF7_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_8:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF8_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_9:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF9_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_10:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF10_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_11:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF11_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_12:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF12_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_13:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF13_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_14:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF14_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_15:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF15_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_16:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF16_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_17:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF17_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_18:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF18_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_19:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF19_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_20:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF20_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_21:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF21_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_22:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF22_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_23:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF23_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_24:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF24_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_25:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF25_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_26:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF26_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_27:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF27_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_28:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF28_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_29:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF29_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_30:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF30_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_31:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF31_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_32:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF32_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_33:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF33_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_34:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF34_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_35:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF35_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_36:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF36_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_37:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF37_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_38:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF38_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_39:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF39_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CORRELATE_Q31_40:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF40_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_41:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF41_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_42:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF42_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_43:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF43_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_44:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF44_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_45:
|
|
{
|
|
this->nba = 4;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF45_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_46:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF46_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_47:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF47_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_48:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF48_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_49:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF49_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_50:
|
|
{
|
|
this->nba = 5;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF50_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_51:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF51_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_52:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF52_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_53:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF53_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_54:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF54_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_55:
|
|
{
|
|
this->nba = 6;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF55_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_56:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF56_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_57:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF57_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_58:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF58_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_59:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF59_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_60:
|
|
{
|
|
this->nba = 9;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF60_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_61:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF61_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_62:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF62_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_63:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF63_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_64:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF64_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_65:
|
|
{
|
|
this->nba = 10;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF65_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_66:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF66_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_67:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF67_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_68:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF68_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_69:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF69_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_70:
|
|
{
|
|
this->nba = 11;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF70_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_71:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF71_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_72:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF72_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_73:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF73_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_74:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF74_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_75:
|
|
{
|
|
this->nba = 12;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF75_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_76:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 1;
|
|
ref.reload(MISCQ31::REF76_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_77:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 2;
|
|
ref.reload(MISCQ31::REF77_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_78:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 3;
|
|
ref.reload(MISCQ31::REF78_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_79:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF79_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_Q31_80:
|
|
{
|
|
this->nba = 13;
|
|
this->nbb = 11;
|
|
ref.reload(MISCQ31::REF80_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_LEVINSON_DURBIN_Q31_81:
|
|
{
|
|
this->nba = 3;
|
|
inputA.reload(MISCQ31::INPUTPHI_A_Q31_ID,mgr);
|
|
|
|
this->errOffset=0;
|
|
inputB.reload(MISCQ31::INPUT_ERRORS_Q31_ID,mgr);
|
|
ref.reload(MISCQ31::REF81_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_LEVINSON_DURBIN_Q31_82:
|
|
{
|
|
this->nba = 8;
|
|
inputA.reload(MISCQ31::INPUTPHI_B_Q31_ID,mgr);
|
|
|
|
this->errOffset=1;
|
|
inputB.reload(MISCQ31::INPUT_ERRORS_Q31_ID,mgr);
|
|
ref.reload(MISCQ31::REF82_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_LEVINSON_DURBIN_Q31_83:
|
|
{
|
|
this->nba = 11;
|
|
inputA.reload(MISCQ31::INPUTPHI_C_Q31_ID,mgr);
|
|
|
|
this->errOffset=2;
|
|
inputB.reload(MISCQ31::INPUT_ERRORS_Q31_ID,mgr);
|
|
ref.reload(MISCQ31::REF83_Q31_ID,mgr);
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_PARTIAL_Q31_84:
|
|
case MISCQ31::TEST_CONV_PARTIAL_FAST_Q31_87:
|
|
{
|
|
this->first=3;
|
|
this->nba = 6;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF84_Q31_ID,mgr);
|
|
tmp.create(ref.nbSamples(),MISCQ31::TMP_Q31_ID,mgr);
|
|
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_PARTIAL_Q31_85:
|
|
case MISCQ31::TEST_CONV_PARTIAL_FAST_Q31_88:
|
|
{
|
|
this->first=9;
|
|
this->nba = 6;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF85_Q31_ID,mgr);
|
|
tmp.create(ref.nbSamples(),MISCQ31::TMP_Q31_ID,mgr);
|
|
|
|
}
|
|
break;
|
|
|
|
case MISCQ31::TEST_CONV_PARTIAL_Q31_86:
|
|
case MISCQ31::TEST_CONV_PARTIAL_FAST_Q31_89:
|
|
{
|
|
this->first=7;
|
|
this->nba = 6;
|
|
this->nbb = 8;
|
|
ref.reload(MISCQ31::REF86_Q31_ID,mgr);
|
|
tmp.create(ref.nbSamples(),MISCQ31::TMP_Q31_ID,mgr);
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
|
|
if (id < TEST_LEVINSON_DURBIN_Q31_81)
|
|
{
|
|
inputA.reload(MISCQ31::INPUTA_Q31_ID,mgr,nba);
|
|
inputB.reload(MISCQ31::INPUTB_Q31_ID,mgr,nbb);
|
|
}
|
|
|
|
if (id > TEST_LEVINSON_DURBIN_Q31_83)
|
|
{
|
|
inputA.reload(MISCQ31::INPUTA2_Q31_ID,mgr,nba);
|
|
inputB.reload(MISCQ31::INPUTB2_Q31_ID,mgr,nbb);
|
|
}
|
|
|
|
output.create(ref.nbSamples(),MISCQ31::OUT_Q31_ID,mgr);
|
|
|
|
}
|
|
|
|
void MISCQ31::tearDown(Testing::testID_t id,Client::PatternMgr *mgr)
|
|
{
|
|
(void)id;
|
|
output.dump(mgr);
|
|
|
|
}
|