1 - Filter_Library_Design_Document

1 Partial Notch Filter 3

1.1 Filter Equations 3

1.1.1 Node b State Variable Initialization 3

1.1.2 Node d State Variable Initialization 3

1.1.3 Filter Output Calculation 3

1.1.4 Node b State Variable Calculation 3

1.1.5 Node d State Variable Calculation 3

1.1.6 Filter Output Calculation 4

1.2 Library Routines Design 4

1.2.1 Notch Filter Initialization Function 4

1.2.2 Notch Filter State Variable Update Function 4

1.2.3 Notch Filter Output Update Function 4

1.2.4 Notch Filter Full Update Function 5

1.3 Notch Filter Structure Acceptable Ranges 5

1.4 Usage 6

2 1st Order Low Pass Filter, 1 Pole- coefficient 7

2.1 Topology 1 – 1LP1-C 7

2.1.1 Filter Equations 8

2.1.2 Library Routines Design 8

2.1.2.1 Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input 8

2.1.2.2 Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input 11

2.2 Topology 2 – 1LP1-B 14

2.2.1 Filter Equations 14

2.2.2 Library Routines Design 15

2.2.2.1 Variable Gain, Variable D, Variable K – calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input 15

2.2.2.2 Variable Gain, Variable D, Variable K - calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input 17

2.3 Topology 3 – 1LP1-CF (Floating Point Implementation) 20

2.3.1 Filter Equations 20

2.3.1.1 Coefficient K Calculation and State Variable Initialization 20

2.3.1.2 Coefficient K Recalculation 20

2.3.1.3 Normal Operation 20

2.3.2 Library Routines Design 21

2.3.2.1 Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input 21

3 1st Order High Pass Filter, 1 Pole- coefficient 23

3.1 Topology 1 – HP-CF (Floating Point Implementation) 23

3.1.1 Filter Equations 23

3.1.1.1 Coefficient K Calculation and State Variable Initialization 23

3.1.1.2 Coefficient K Recalculation 23

3.1.1.3 Normal Operation 23

3.1.2 Library Routines Design 24

3.1.2.1 Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input 24

4 Revision Control Log 26

Partial Notch Filter

Filter Equations

The first three equations, 1.1.1, 1.1.2, and 1.1.3 shall be combined into a single Notch Filter Initialization function. The next two equations 1.1.4 and 1.1.5 shall be combined into a single state variable update function. Finally, equation 1.1.6 shall be standalone as the output update function. For convenience, the last two function, state variable update and output update shall be combined into a single inline function to provide a single call from the modules _per() sub-module.

Node b State Variable Initialization

SV2 = In * (B2 - A2);

Node d State Variable Initialization

SV1 = In * (B1 + B2 - A1 - A2);

Filter Output Calculation

Out = In;

Node b State Variable Calculation

SV2 = (B2 * In) - (Out * A2);

Node d State Variable Calculation

SV1 = (SV2 + (In * B1)) - (Out * A1);

Filter Output Calculation

Out = SV1 + (B0 * In);

Library Routines Design

Notch Filter Initialization Function

Function NameNF_Init_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Initial input to the filterFloat 32
SVPtr_Cnt_T_Str – Pointer to state variable structNotchFiltSV_Str
FiltK_Cnt_T_Str – Pointer to coefficient structureNotchFiltK_Str**See 1.3
Return ValueN/A

Pseudo Code:

KPtr_Cnt_Str = FiltK_Cnt_T_Str;

Out = In;

SV1 = In * (B1 + B2 - A1 - A2);

SV2 = In * (B2 - A2);

Notch Filter State Variable Update Function

Function NameNF_SvUpdate_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Input to notch filterFloat 32
SVPtr_T_Cnt_Str – Pointer to state variable structNotchFiltSV_Str**See 1.3
FiltK_Cnt_T_Str – Pointer to filter cal structNotchFiltK_Str**See 1.3
Return ValueN/A

Pseudo Code: KPtr_Cnt_Str = FiltK_Cnt_T_Str

SV1 = (SV2 + (In * B1)) - (Out * A1);

SV2 = (B2 * In) - (Out * A2);

Notch Filter Output Update Function

Function NameNF_OpUpdate_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Input to the notch filterFloat 32
SVPtr_T_Cnt_Str – Pointer to state variable structNotchFiltSV_Str**See 1.3
Return ValueFiltered Output, SV Structure UpdatedFloat 32

Pseudo Code:

Out = SV1 + (B0 * In);

Notch Filter Full Update Function

Function NameNF_FullUpdate_f32TypeMinMaxUTP Tol.
Arguments PassedIn_Uls_T_f32 – Input to notch filterFloat 32
SVPtr_Cnt_T_Str – Pointer to state variable structNotchFiltSV_Str**See 1.3
FiltK_Cnt_T_Str – Pointer to filter cal structNotchFiltK_Str**See 1.3
Return ValueFiltered outputFloat 32

Pseudo Code:

Full Update simply calls OpUpdate followed by SvUpdate as a convenient alternative to calling each of the functions individually.

Notch Filter Structure Acceptable Ranges

Structure NameNotchFiltSV_StrTypeMinMaxUTP Tol.
MembersSV1_Uls_f32Float 32FULLFULL
SV2_Uls_f32Float 32FULLFULL
Out_Uls_f32Float 32FULLFULL
KPtr_Cnt_StrKPtr_Cnt_Str**See Below
Structure NameNotchFiltK_StrTypeMinMaxUTP Tol.
MembersA1_Uls_f32Float 32
A2_Uls_f32Float 32
B0_Uls_f32Float 32
B1_Uls_f32Float 32
B2_Uls_f32Float 32

Usage

For a module that executes a Notch Filter, in its _Init() sub module execute the following function.

NF_Init_f32(<Input>, <SV_Ptr>, <FiltK_Ptr>);

In the same module’s _Per() sub module execute the following functions in the given sequence,

NF_OpUpdate_f32(<Input>, <SV_Ptr>);

NF_SvUpdate_f32(<Input>, <SV_Ptr>, <FiltK_Ptr>);

Alternatively, a single call to the following function can be made in place of the above pair within the _Per() sub module.

NF_FullUpdate_f32(<Input>, <SV_Ptr>, <FiltK_Ptr>);

1st Order Low Pass Filter, 1 Pole- coefficient

Topology 1 – 1LP1-C

The Filter topology 1LP1-C is as given,

There may be multiple library functions defined for the same topology, based on the cut-off frequency, and input size requirements.

A filter tool is available to design the low pass filter for this topology – “1st Order Design,1LP1-B.xls”. This tool provides the bit sizes for all nodes shown in the filter. The tool must be used to see which library function is required for the given input, cut-off frequency, sampling rate, and filter coefficient size.

The above filter topology requires the following constants to be defined

SymbolDescriptionConstant Classification
KnNumerator of Filter CoefficientThis may be defined as a calibration constant or an embedded local constant based on the usage.
KdDenominator of Filter CoefficientBased on the implementation, this value may be a fixed value, which is embedded within the library function/macro or could be passed as a parameter.
Node SymbolDescription
IInput
eState Variable (filt_SV)
OOutput (filt_O)

Filter Equations

The filter equations are given below. Each equation shall be implemented as a library macro.

State Variable (Node e) Initialization

The equation to initialize the state variable, (Node e) is as follows:

filt_SV = Input * Kd.

Output (Node O) Initialization

The equation to initialize the output, (Node O) is as follows:

filt_O = [( ( Input – (filt_SV / Kd) ) * Kn ) + filt_SV] / Kd

Normal Operation

During normal operation the state variable (Node e) shall be updated prior to the output of the filter (Node O) being updated.

The equation for the state variable (Node e) is as follows:

filt_SV = ( ( Input – (filt_SV / Kd) ) * Kn ) + filt_SV

The equation for the output (Node O) is as follows:

filt_O = filt_SV / Kd

The equations to update filt_Sv and filt_O or the library routines that calculate these values should be executed in the exact order shown above.

Library Routines Design

Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input

There will be four macros defined for this implementation:- state variable initialization, filter output initialization, state variable update and filter output update.

Node SymbolDescriptionData Type
IInputUINT 16
cUINT16
dUINT32
eState Variable (filt_SV)UINT 32
fUINT16
OOutput (filt_O)UINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Return ValueInitialized value of node eUINT32

Pseudo Code:

Lvalue = Input << Kd

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Filter Output Initialization Macro
Function NameLPF_OpInit_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Initialized value of the state variableUINT32
Kn - Numerator of the filter coefficientUINT16
Return ValueInitialized output of the low pass filterUINT32

Pseudo Code:

Lvalue = (((Input – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Filter State Variable Update Macro
Function NameLPF_SvUpdate_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Calculated value of the state variableUINT32
Kn - Numerator of the filter coefficientUINT16
Return ValueOutput of the low pass filterUINT32

Pseudo code:

<Lvalue> = ( ( Input – (filt_SV >> Kd) ) * Kn ) + filt_SV

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Output Update Macro
Function NameLPF_OpUpdate_u16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – Calculated value of the state variableUINT32
Return ValueOutput of the low pass filterUINT16

Pseudo code:

<Lvalue> = filt_SV >> Kd

where Kd is pre-defined for a 16 bit filter coefficient = 16 bits

Usage

For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence

LPF_SvInit_u16InFixKTrunc_m (<Input>)

LPF_OpInit_u16InFixKTrunc_m (<Input>, <Filt_SV>, <Kn>)

In the same module’s _Per() sub module execute the following macros in the given sequence,

LPF_SvUpdate_u16InFixKTrunc_m (<Input>, <filt_SV>, <Kn>)

LPF_OpUpdate_u16InFixKTrunc_m ( <filt_SV>)

Unity Gain, No Dead band Compensation, Fixed K – calibratable Kn, fixed 16 bit Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input

There will be three macros defined for this implementation:- state variable initialization, state variable update and filter output update.

Node SymbolDescriptionData Type
IInputSINT 16
cSINT 16
dSINT 32
eState Variable (filt_SV)SINT 32
fSINT 16
OOutput (filt_O)SINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Return ValueInitilized value of Node eSINT32

Pseudo Code:

Lvalue = Input << Kd

where Kd is pre-defined for a 16 bit filter coefficient as 16 bits

Filter Output Initialization Macro
Function NameLPF_OpInit_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Initialized value of the state variableSINT32
Kn – Numerator of the filter coefficientSINT16
Return ValueInitialized value of filter outputSINT32

Pseudo Code:

Lvalue = (((Input – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd

where Kd is pre-defined for a fixed16 bit filter coefficient = 16 bits

Filter State Variable Update Macro
Function NameLPF_SvUpdate_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Initialized value of the state variableSINT32
Kn – Numerator of the filter coefficientSINT16
Return ValueCalculated value of filt_SVSINT32

Pseudo code:

<Lvalue> = ( ( Input – (filt_SV >> Kd) ) * Kn ) + filt_SV

where Kd is pre-defined for a 16 bit filter coefficient = 16 bits

Output Update Macro
Function NameLPF_OpUpdate_s16InFixKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – calculated value of filter state variableSINT32
Return ValueOutput of the low pass filterSINT16

Pseudo code:

<Lvalue> = filt_O >> Kd

where Kd is pre-defined for a 16 bit filter coefficient = 16

Usage

For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence

LPF_SvInit_s16InFixKTrunc_m (<Input>)

LPF_OpInit_s16InFixKTrunc_m (<Input>, <Filt_SV>, <Kn>)

In the same module’s _Per() sub module execute the following macros in the given sequence

LPF_SvUpdate_s16InFixKTrunc_m (<Input>, <filt_SV>, <Kn>)

LPF_OpUpdate_s16InFixKTrunc_m ( <filt_SV>)


Topology 2 – 1LP1-B

The filter topology 1LP1-B is as given,

Filter Equations

The filter equations are given below. Each equation shall be implemented as a library macro.

State Variable (Node e) Initialization

The equation to initialize the state variable, (Node e) is as follows:

filt_SV = Input * G * Kd * D

Output (Node O) Initialization

The equation to initialize the output, (Node O) is as follows:

filt_O = [( ( (Input * G * D) – (filt_SV / Kd) ) * Kn ) + filt_SV] / (Kd * D)

Normal Operation

During normal operation the state variable (Node e) shall be updated prior to the output of the filter (Node O) being updated.

The equation for the state variable (Node e) is as follows:

filt_SV = ( ( (Input * G * D) – (filt_SV / Kd) ) * Kn ) + filt_SV

The equation for the output (Node O) is as follows:

filt_O = filt_SV / (Kd * D)

The equations to update filt_Sv and filt_O or the library routines that calculate these values should be executed in the exact order shown above.

The multiplication for the Filter Input by G shall be implemented external to the library macros. Thus the Input as used by the macros shall represent actual filter input * G, for non unity gain filter implementation.

Note: Constraint on this filter is that Node b cannot exceed 16 bits.

Library Routines Design

Variable Gain, Variable D, Variable K – calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Unsigned 16 bit Input

Node SymbolDescriptionData Type
IInputUINT 16
aUINT 16
bUINT 16
cUINT 16
dUINT 32
eState Variable (filt_SV)UINT 32
fUINT 16
gUINT 16
OOutput (filt_O)UINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueInitialized value of Node eUINT32

Pseudo Code:

Lvalue = (Input << Kd) << D

Note:- The multiplication by D shall not be performed for D = 0.

Filter Output Initialization Macro
Function NameLPF_OpInit_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Initialized value of state variableUINT32
Kn – Numerator of coefficientUINT16
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueLow pass filter outputUINT32

Pseudo Code:

Lvalue = [((((Input<<D) – (Filt_SV >> Kd)) * Kn ) + Filt_SV)>>Kd]>>D

Note:- The multiplication and division by D shall not be performed for D = 0.

Filter State Variable Update Macro
Function NameLPF_SvUpdate_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterUINT16
Filt_SV – Calculated value of filter state variableUINT32
Kn – Numerator of coefficientUINT16
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueLow pass filter outputUINT32

Pseudo code:

<Lvalue> = ( ( (Input << D) – (filt_SV >> Kd) ) * Kn ) + filt_SV

Note:- The multiplication by D shall not be performed for D = 0.

Output Update Macro
Function NameLPF_OpUpdate_u16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – Calculated value of filter state variableUINT32
Kd – Denominator bits of filter coefficientUINT16
D – Deadband factorUINT16
Return ValueLow pass filter outputUINT32

Pseudo code:

<Lvalue> = (filt_SV >> Kd ) >>D

Note:- The division by D shall not be performed for D = 0.

Usage

For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence

LPF_SvInit_u16InVarKTrunc_m (<Input>, <Kd>, <D>)

LPF_OpInit_u16InVarKTrunc_m (<Input>, <Filt_SV>, <Kn>, <Kd>, <D>)

In the same module’s _Per() sub module execute the following macros in the given sequence,

LPF_SvUpdate_u16InVarKTrunc_m (<Input>, <filt_SV>, <Kn>, <Kd>, <D>)

LPF_OpUpdate_u16InVarKTrunc_m ( <filt_SV>, <Kd>, <D>)

Variable Gain, Variable D, Variable K - calibratable 16 bit Kn, variable Kd, 32 Bit State Variable, Truncate divide, Signed 16 bit Input

Node SymbolDescriptionData Type
IInputSINT 16
aSINT 16
bSINT 16
cSINT 16
dSINT 32
eState Variable (filt_SV)SINT 32
fSINT 16
gSINT 16
OOutput (filt_O)SINT 16
State Variable Initialization Macro
Function NameLPF_SvInit_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueInitialized value of Node eSINT32

Pseudo Code:

Lvalue = (Input << Kd) << D

Note:- The multiplication by D shall not be performed for D = 0.

Filter Output Initialization Macro
Function NameLPF_OpInit_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Initialized value of filter state variableSINT32
Kn – Numerator of filter coefficientSINT16
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueInitialized value of filter outputSINT32

Pseudo Code:

Lvalue = [((((Input<<D) – (Filt_SV >> Kd)) * Kn ), + Filt_SV)>>Kd]>>D

Note:- The multiplication and division by D shall not be performed for D = 0.

Filter State Variable Update Macro
Function NameLPF_SvUpdate_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to the low pass filterSINT16
Filt_SV – Calculated value of filter state variableSINT32
Kn – Numerator of filter coefficientSINT16
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueCalculated value of filt_SV as given belowSINT32

Pseudo code:

<Lvalue> = ( ( (Input << D) – (filt_SV >> Kd) ) * Kn ) + filt_SV

Note:- The multiplication by D shall not be performed for D = 0.

Output Update Macro
Function NameLPF_OpUpdate_s16InVarKTrunc_mTypeMinMaxUTP Tol.
Arguments PassedFilt_SV – Calculated value of filter state variableSINT32
Kd – Denominator bits of filter coefficientSINT16
D – Deadband factorSINT16
Return ValueLow pass filter outputSINT32

Pseudo code:

<Lvalue> = (filt_SV >> Kd ) >>D

Note:- The division by D shall not be performed for D = 0.

Usage

For a module that executes a LPF, in its _Init() sub module execute the following macros in the given sequence

LPF_SvInit_s16InVarKTrunc_m (<Input>, <Kd>, <D>)

LPF_OpInit_s16InVarKTrunc_m (<Input>, <Filt_SV>, <Kn>, <Kd>, <D>)

In the same module’s _Per() sub module execute the following macros in the given sequence,

LPF_SvUpdate_s16InVarKTrunc_m (<Input>, <filt_SV>, <Kn>, <Kd>, <D>)

LPF_OpUpdate_s16InVarKTrunc_m ( <filt_SV>, <Kd>, <D>)

Topology 3 – 1LP1-CF (Floating Point Implementation)

The filter topology 1LP1-CF is as given,

Filter Equations

The filter equations are given below. Each equation shall be implemented as a library macro.

Coefficient K Calculation and State Variable Initialization

The equation to calculate the filter coefficient K is as follows: (Where Fp is in hertz and T is in seconds.)

K = 1 – exp(-2 * π * Fp * T)

And the equation for initialization of the state variable is as follows:

Filt_SV = Input

Coefficient K Recalculation

The equation for recalculation of the filter coefficient K is exactly the same as that defined in the initialization function above.

Normal Operation

The equation for the output (Node O) is as follows:

filt_Out = ( ( Input – prev_SV ) * K ) + prev_SV

The value of filt_SV is the value of filt_Out from the previous call to the above function.

Library Routines Design

Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input

There will be three macros defined for this implementation:- state variable and coefficient initialization, coefficient calculation, and filter output update.

Coefficient and State Variable Initialization Macro
Function NameLPF_Init_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Initial input to filterFloat 32FULLFULL
Fp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Str – Pointer to the state variable structureLPF32KSV_Str*See 2.3.2.1.4
Return ValueInitial output, node OFloat 32FULLFULL

Pseudo Code:

<SV_Str-> SV_Uls_f32> = Input

<Lvalue> = Input

LPF_KUpdate_f32_m(Fp, T, SV_Str)

Coefficient Recalculation Macro
Function NameLPF_KUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedFp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Str – Pointer to the state variable structureLPF32KSV_Str*See 2.3.2.1.4
Return ValueNew value of K stored in state variable structureFloat 320.01.0

Pseudo Code:

<SV_Str-> K_Uls_f32> = 1 – expf(-2π * Fp * T)

Output Update Macro
Function NameLPF_OpUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to low pass filterFloat 32FULLFULL
SV_Str – Pointer to the state variable structureLPF32KSV_Str*See 2.3.2.1.4
Return ValueOutput of low pass filterFloat 32FULLFULL

Pseudo code:

<Lvalue> = <SV_Str->SV_Uls_f32> =

(Input – <SV_Str->SV_Uls_f32>) * <SV_Str->K_Uls_f32> + <SV_Str->SV_Uls_f32>

Usable ranges for LPF32KSV_Str Structure
LPF32KSV_StrTypeMinMaxUTP Tol.
K_Uls_f32Float 320.01.0
SV_Uls_f32Float 32FULLFULL
Usage

For a module that executes a LPF, in its _Init() sub module execute the following macros:

LPF_Init_f32_m(<Input>, <Fp>, <T>, <LPF32KSV_Str>)

In the same module’s _Per() sub module execute the following macro:

LPF_OpUpdate_f32_m ( <Input>, <LPF32KSV_Str>)

The module may optionally call the following macro if the coefficient value K needs to be updated on the fly to support variable cutoff filtering.

LPF_KUpdate_f32_m(<Fp>, <T>, <LPF32KSV_Str>)

1st Order High Pass Filter, 1 Pole- coefficient

Topology 1 – HP-CF (Floating Point Implementation)

The filter topology HP-CF is as given:

Filter Equations

The filter equations are given below. Each equation shall be implemented as a library macro.

Low Pass Filter

The low-pass filter aspect of the design uses the 1LP1-CF implementation as described in section 2.3.

CF Calculation

The CF (correction factor) is calculated as follows:

CF = (1 + exp(2PI * Fp * T)) / (2 * sqrt(1 + ((2 * Fp * T)^2)))

Normal Operation

The equation for the output is as follows:

filt_Out = ( Input – LPF_Output ) * CF

Library Routine Design

Unity Gain, No Dead band Compensation, calibratable K, Single-Precision Float Input

There will be three macros defined for this implementation: state variable and coefficient initialization, coefficient calculation, and filter output update. The interface for these macros will be similar to that of the 1LP1-CF low pass filter design.

Coefficient and State Variable Initialization Macro
Function NameHPF_Init_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Initial input to filterFloat 32FULLFULL
Fp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Ptr – Pointer to the state variable structureHPF32KSV_Str*See 3.1.2.1.4
Return ValueAssignment returns initial output

Pseudo Code:

LPF_Init_f32_m(Input, Fp, T, &(SV_Ptr->LPF_Str))

HPF_KUpdate_f32_m(Fp, T, SV_Ptr)

Coefficient Recalculation Macro
Function NameHPF_KUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedFp – Pole cutoff frequency in hertzFloat 320.1% 1/T50% 1/T
T – Sampling interval in secondsFloat 320.0000510
SV_Ptr – Pointer to the state variable structureHPF32KSV_Str*See 3.1.2.1.4
Return ValueAssignment returns correction factor

Pseudo Code:

SV_Ptr->CF = (1 + exp(2PI * Fp * T)) / (2 * sqrt(1 + ((2 * Fp * T)^2)))

LPF_KUpdate_f32_m(Fp_f32, T_f32, &(SV_Ptr->LPF_Str))

Output Update Macro
Function NameHPF_OpUpdate_f32_mTypeMinMaxUTP Tol.
Arguments PassedInput – Input to low pass filterFloat 32FULLFULL
SV_Ptr – Pointer to the state variable structureHPF32KSV_Str*See 3.1.2.1.4
Return ValueAssignment returns filter output

Pseudo code:

(Input - LPF_OpUpdate_f32_m(input_f32, &(SV_Ptr->LPF_Str))) * SV_Ptr->CF_Uls_f32

Usable ranges for HPF32KSV_Str Structure
HPF32KSV_StrTypeMinMaxUTP Tol.
LPF_StrLPF32KSV_Str*See 2.3.2.1.4
CF_Uls_f32Float 320.0FULL
Usage

For a module that executes a HPF, in its _Init() sub module execute the following macros:

HPF_Init_f32_m(<Input>, <Fp>, <T>, <HPF32KSV_Str>)

In the same module’s _Per() sub module execute the following macro:

HPF_OpUpdate_f32_m ( <Input>, <HPF32KSV_Str>)

The module may optionally call the following macro if the coefficient value K needs to be updated on the fly to support variable cutoff filtering:

HPF_KUpdate_f32_m(<Fp>, <T>, <HPF32KSV_Str>)

Revision Control Log

#RevChangeDateAuthor
11.0Added floating point low-pass filter09FEB12Jared Julien
22.0Added floating point high-pass filter, fixed issues in FP LPF26-Apr-12Owen Tosh
33.0Correct output types for some filters (32 bits output instead of 16bits) – no code change25-Jan-13D. Djena
44.0Added new parameter to functions NF_FullUpdate_f32 and NF_SvUpdate_f3205-Dec-13VT

2 - Interpolation_Design_MDD

1 Variable X Variable Y 2D Table Lookup function (with interpolation) 2

1.1 Requirement 2

1.2 Implementation: 2

1.2.1 Unsigned X, Unsigned Y 4

1.2.2 Signed X, Unsigned Y 5

1.2.3 Signed X, Signed Y 7

1.2.4 Unsigned X, Signed Y 8

2 Fixed X Variable Y 2D Table Lookup function (with interpolation) 11

2.1 Requirement 11

2.2 Implementation: 11

2.2.1 Unsigned X, Unsigned Y 11

2.2.2 Signed X, Unsigned Y 13

2.2.3 Signed X, Signed Y 14

2.2.4 Unsigned X, Signed Y 16

3 Single X Multiple Y (Bilinear Interpolation) 17

3.1 Implementation: 17

3.1.1 Syntax: BilinearXYM_s16_u16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize) 17

3.1.2 Syntax: BilinearXYM_u16_u16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize) 20

3.1.3 Syntax: BilinearXYM_s16_s16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize) 23

3.1.4 Syntax: BilinearXYM_u16_s16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize) 26

4 Multiple X Multiple Y (Bilinear Interpolation) 29

4.1 Implementation 29

4.1.1 Syntax: BilinearXMYM_u16_u16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize) 29

4.1.2 Syntax: BilinearXMYM_s16_u16XMs16YM_Cnt(BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize) 32

4.1.3 Syntax: BilinearXMYM_u16_s16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize) 40

5 UnitTesting Range: Linear and Bilinear Interpolation 44

6 Revision Control Log 44

Variable X Variable Y 2D Table Lookup function (with interpolation)

Requirement

The Variable X Variable Y 2D table has the Variable X as the input (independent variable) and the Variable Y as the output (dependent variable). The lookup function with interpolation is used to interpolate the values of Y corresponding to the input value for X. This is implemented using the straight-line equation as given below:

$$y = (\frac{y_{n + 1} - y_{n}}{x_{n + 1} - x_{n}}) \ast (x - x_{n}) + y_{n}$$

where,

n = index into the independent and dependent variable tables

n+1 = next consecutive index into the tables.

(yn+1 - yn) = interval in the dependent table within which the interpolated output is calculated.

(xn+1 - xn) = interval in the independent table within which the input lies.

y = interpolated output (dependent variable)

x = input (independent variable)

Note that yn+1 < yn or yn+1 > yn, for negative or positive slopes and xn+1 > xn.

The index n and n+1, are determined using Straight-Forward Search method. Using the indices, the values of xn+1, xn, yn+1 and yn are determined.

The difference (yn+1 - yn) is held in a signed variable to ensure that the interpolation can handle both positive and negative slopes.

The Variable X VariableY interpolation function is defined as a function with the input x value and table name passed as parameters. The function will return the interpolated output y as its output.

Implementation:

Note: Straight Forward Search method is used for calculating the index n.

Unsigned X, Unsigned Y

Syntax : IntplVarXY_u16_u16Xu16Y_Cnt ( *TableX, *TableY, Size, input)

Arguments:

1) TableX: - The Variable X 2D table (independent table)

2) TableY: - The Variable Y 2D table (dependent table)

3) Size: - Size of the table

4) input: - The input to the table

output: The output from the table.

Pseudo Code :

UINT16 input, output, Size

UINT16 index = 0

SINT16 diffY, diffX, diffXinput, tmpout2

SINT32 tmpout1

const UINT16 TableX = [ x1, x2, x3, x4, x5,….. ]

const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

/* Check for Range */

if ( input <= TableX[0] )

return TableY[0]

else if ( input >= TableX[size-1] )

return TableY[size-1]

endif

/* In range. Get Index */

while ( TableX[index + 1] < input )

index = index + 1

endwhile

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffX = TableX[index+1] - TableX[index]

diffXinput = input - TableX[index]

/* Product in 32 bit */

tmpout1 = diffY* diffXinput

/* Check if Divide by zero */

if (diffX == 0)

tmpout2 = 0

else

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / diffX

endif

output = tmpout2 + TableY[index]

return output

end

Signed X, Unsigned Y

Syntax : IntplVarXY_u16_s16Xu16Y_Cnt (*TableX, *TableY, Size, input)

Arguments:

1) TableX: - The Variable X 2D table (independent table)

2) TableY: - The Variable Y 2D table (dependent table)

3) Size: - Size of the table

4) input: - The input to the table

output: The output from the table.

Pseudo Code :

SINT16 input

UINT16 output, Size

UINT16 index = 0

SINT16 diffY, diffX, diffXinput, tmpout2

SINT32 tmpout1

const SINT16 TableX = [ x1, x2, x3, x4, x5,….. ]

const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

/* Check for Range */

if ( input <= TableX[0] )

return TableY[0]

else if ( input >= TableX[size-1] )

return TableY[size-1]

endif

/* In range. Get Index */

while ( TableX[index + 1] < input )

index = index + 1

endwhile

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffX = TableX[index+1] - TableX[index]

diffXinput = input - TableX[index]

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Check if Divide by zero */

if (diffX == 0)

tmpout2 = 0

else

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / diffX

endif

output = tmpout2 + TableY[index]

return output

end

Signed X, Signed Y

Syntax : IntplVarXY_s16_s16Xs16Y_Cnt (*TableX, *TableY, Size, input)

Arguments:

1) TableX: - The Variable X 2D table (independent table)

2) TableY: - The Variable Y 2D table (dependent table)

3) Size: - Size of the table

4) input: - The input to the table

output: The output from the table.

Pseudo Code :

SINT16 input, output

UINT16 Size

UINT16 index = 0

SINT16 diffY, diffX, diffXinput, tmpout2

SINT32 tmpout1

const SINT16 TableX = [ x1, x2, x3, x4, x5,….. ]

const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

/* Check for Range */

if ( input <= TableX[0] )

return TableY[0]

else if ( input >= TableX[size-1] )

return TableY[size-1]

endif

/* In range. Get Index */

while ( TableX[index + 1] < input )

index = index + 1

endwhile

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffX = TableX[index+1] - TableX[index]

diffXinput = input - TableX[index]

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Check if Divide by zero */

if (diffX == 0)

tmpout2 = 0

else

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / diffX

endif

output = tmpout2 + TableY[index]

return output

end

Unsigned X, Signed Y

Syntax : IntplVarXY_s16_u16Xs16Y_Cnt (*TableX, *TableY, Size, input)

Arguments:

1) TableX: - The Variable X 2D table (independent table)

2) TableY: - The Variable Y 2D table (dependent table)

3) Size: - Size of the table

4) input: - The input to the table

output: The output from the table.

Pseudo Code :

UINT16 input, Size

SINT16 output

UINT16 index = 0

SINT16 diffY, diffX, diffXinput, tmpout2

SINT32 tmpout1

const UINT16 TableX = [ x1, x2, x3, x4, x5,….. ]

const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

/* Check for Range */

if ( input <= TableX[0] )

return TableY[0]

else if ( input >= TableX[size-1] )

return TableY[size-1]

endif

/* In range. Get Index */

while ( TableX[index + 1] < input )

index = index + 1

endwhile

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffX = TableX[index+1] - TableX[index]

diffXinput = input - TableX[index]

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Check if Divide by zero */

if (diffX == 0)

tmpout2 = 0

else

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / diffX

endif

output = tmpout2 + TableY[index]

return output

end

Fixed X Variable Y 2D Table Lookup function (with interpolation)

Requirement

The Fixed X Variable Y 2D table has the Fixed X as the input (independent variable) and the Variable Y (dependent variable) as the output. The interpolation function is used to interpolate the values of Y corresponding to the input value for X. It is assumed that the independent axis (X) will always start from 0. This is implemented using the straight-line equation as given below:

$$y = (\frac{y_{n + 1} - y_{n}}{\Delta x}) \ast (x - x_{n}) + y_{n}$$

where,

n = index into the Table

(yn+1 - yn) = interval in the dependent table within which the interpolated output is calculated.

∆x = fixed X interval within which the input lies.

y = interpolated output

x = input

Determine the value of n, i.e the index into the table, n = truncate ( x / ∆x ). Using this index n, determine the values of xn, yn and yn+1. The output y can then be calculated based on the straight line given above.

Implementation:

Unsigned X, Unsigned Y

Syntax : IntplFxdX_u16_u16Xu16Y_Cnt (DeltaX, *TableY, Size, input)

Arguments:

1. DeltaX: - The Fixed X interval

2. TableY: - The Variable Y 2D table (dependent table)

3. Size: - Size of the table

4. input: - The input to the table

output: The output from the table.

Pseudo Code :

UINT16 input, output, Size

UINT16 index = 0

SINT16 diffY, diffXinput, tmpout2

SINT32 tmpout1

const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

if (DeltaX == 0)

/* Cannot do interpolation. Return Y0 */

return TableY[0]

endif

/* Check for Range */

if ( input <= 0 )

return TableY[0]

else if ( input >= DeltaX * (size-1) )

return TableY[size-1]

endif

/* In range. Get Index */

index = truncate (input / DeltaX)

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffXinput = input - DeltaX * index

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / DeltaX

output = tmpout2 + TableY[index]

return output

end

Signed X, Unsigned Y

Syntax : IntplFxdX_u16_s16Xu16Y_Cnt (DeltaX, *TableY, Size, input)

Arguments:

1. DeltaX: - The Fixed X interval

2. TableY: - The Variable Y 2D table (dependent table)

3. Size: - Size of the table

4. input: - The input to the table

output: The output from the table.

Pseudo Code :

SINT16 input

UINT16 output, Size

UINT16 index = 0

SINT16 diffY, diffXinput, tmpout2

SINT32 tmpout1

const UINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

if (DeltaX == 0)

/* Cannot do interpolation. Return Y0 */

return TableY[0]

endif

/* Check for Range */

if ( input <= 0 )

return TableY[0]

else if ( input >= DeltaX * (size-1) )

return TableY[size-1]

endif

/* In range. Get Index */

index = truncate (input / DeltaX)

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffXinput = input - DeltaX * index

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / DeltaX

output = tmpout2 + TableY[index]

return output

end

Signed X, Signed Y

Syntax: IntplFxdX_s16_s16Xs16Y_Cnt (DeltaX, *TableY, Size, input)

Arguments:

1. DeltaX: - The Fixed X interval

2. TableY: - The Variable Y 2D table (dependent table)

3. Size: - Size of the table

4. input: - The input to the table

output: The output from the table.

Pseudo Code :

SINT16 input, output

UINT16 Size

UINT16 index = 0

SINT16 diffY, diffXinput, tmpout2

SINT32 tmpout1

const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

if (DeltaX == 0)

/* Cannot do interpolation. Return Y0 */

return TableY[0]

endif

/* Check for Range */

if ( input <= 0 )

return TableY[0]

else if ( input >= DeltaX * (size-1) )

return TableY[size-1]

endif

/* In range. Get Index */

index = truncate (input / DeltaX)

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffXinput = input - DeltaX * index

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / DeltaX

output = tmpout2 + TableY[index]

return output

end

Unsigned X, Signed Y

Syntax: IntplFxdX_s16_u16Xs16Y_Cnt (DeltaX, *TableY, Size, input)

Arguments:

1. DeltaX: - The Fixed X interval

2. TableY: - The Variable Y 2D table (dependent table)

3. Size: - Size of the table

4. input: - The input to the table

output: The output from the table.

Pseudo Code :

UINT16 input, Size

SINT16 output

UINT16 index = 0

SINT16 diffY, diffXinput, tmpout2

SINT32 tmpout1

const SINT16 TableY = [ y1, y2, y3, y4, y5,….. ]

if (DeltaX == 0)

/* Cannot do interpolation. Return Y0 */

return TableY[0]

endif

/* Check for Range */

if ( input <= 0 )

return TableY[0]

else if ( input >= DeltaX * (size-1) )

return TableY[size-1]

endif

/* In range. Get Index */

index = truncate (input / DeltaX)

/* Interpolate and get the output */

diffY = TableY[index+1] - TableY[index]

diffXinput = input - DeltaX * index

/* Product in 32 bit */

tmpout1 = diffY * diffXinput

/* Here, the lower 16 bits are assigned to tmpout2 */

tmpout2 = tmpout1 / DeltaX

output = tmpout2 + TableY[index]

return output

end

Single X Multiple Y (Bilinear Interpolation)

Implementation:

Syntax: BilinearXYM_s16_u16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. Input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, Xindex

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSinputDiff, XInputDiff

FLOAT32 Numerator_f32, Denominator_f32, Output_f32

SINT16 Output_s16

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl = [x1,x2,x3,x4,…...]

Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If (BS <= BSTbl[0])

BSindex = 0

BS = BSTbl[0]

Else if (BS >= BSTbl[BSize-1])

BSindex = BSsize -2

BS = BSTbl[BSsize -1]

While ((BSTbl[BSindex] = = BSTbl[BSindex + 1] && (BSindex > 0)))

BSindex = BSindex - 1

Wend

Else

BSindex = 0

While ( BSTbl[BSindex +1] < BS)

BSindex = BSindex + 1

Wend

Endif

If (input <= XTbl[0])

Xindex = 0

Input = XTbl[0]

Else if (input >= XTbl[XSize – 1])

Xindex = Xsize – 2

Input = XTbl[Xsize -1]

Else

Xindex = 0

While ( XTbl[Xindex +1] < input)

Xindex = Xindex+1

Wend

Endif

ArrayIndex1 = (BSindex * Xsize) + Xindex

ArrayIndex2 = (BSindex * Xsize) + Xindex + 1

ArrayIndex3 = ((BSindex + 1) * Xsize) + Xindex

ArrayIndex4 = ((BSindex + 1) * Xsize) + Xindex + 1

BSInputDiff = BS – BSTbl[BSindex]

XInputDiff = input – XTbl[Xindex]

Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) * ((BSTbl[BSindex+1] – BSTbl[BSindex]) * XInputDiff) +

(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) *

(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +

(XInputDiff * BSInputDiff ) *

((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))

Denominator_f32 = (BSTbl[BSindex +1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])

If (Denominator_f32 <= FLT_EPSILON)

Output_f32 = YMTbl[ArrayIndex1]

Else

Output_f32 = YMTbl[ArrayIndex1] + Numerator_f32 / Denominator_f32

Endif

If (Output_f32 >= 0)

Output_f32 = Output_f32 + 0.5

Else

Output_f32 =Output_f32 – 0.5

Endif

/*Float to SINT16 typecast*/

Output_s16 = Output_f32

return Output_s16

End

Syntax: BilinearXYM_u16_u16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize)

Arguments

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, Xindex

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSInputDiff, XInputDiff

FLOAT32 Numerator_f32, Denominator_f32

UINT16 Output_u16

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl = [x1,x2,x3,x4,…...]

Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If (BS <= BSTbl[0])

BSindex = 0

BS = BSTbl[0]

Else if (BS >= BSTbl[BSsize – 1])

BSindex = BSsize -2

BS = BSTbl [ BSsize – 1]

While (( BSTbl [BSindex] == BSTbl [ BSindex+1] && (BSindex > 0)))

BSindex = BSindex – 1

Wend

Else

BSindex = 0

While (BSTbl[BSindex +1]<BS)

BSindex = BSindex +1

Wend

Endif

If (input <= XTbl[0])

Xindex = 0

Input = XTbl[0]

Else if (input >= XTbl[XSize -1])

Xindex = Xsize -2

input = XTbl[Xsize -1]

Else

Xindex = 0

While ( XTbl[Xindex + 1] < input)

Xindex= Xindex + 1

Wend

Endif

ArrayIndex1 = (BSindex * Xsize) + Xindex

ArrayIndex2 = (BSindex * Xsize) + Xindex + 1

ArrayIndex3 = ((BSindex + 1)* Xsize) + Xindex

ArrayIndex4 = ((BSindex + 1)* Xsize) + Xindex + 1

BSInputDiff = BS – BSTbl[BSindex]

XInputDiff = input – XTbl[Xindex]

Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) *

((BSTbl [ BSindex + 1] – BSTbl[BSindex]) * XInputDiff) +

(YMTbl [ ArrayIndex3] – YMTbl[ArrayIndex1]) *

(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +

(XInputDiff * BSInputDiff) *

((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))

Denominator_f32 = (BSTbl[BSindex+1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])

If (Denominator_f32 <= FLT_EPSILON) Output_u16 = YMTbl[ArrayIndex1] + 0.5

Else

Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5

Endif

return Output_u16

end

Syntax: BilinearXYM_s16_s16Xs16YM_Cnt (BS, input, *BSTbl, BSize, *XTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. Input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, Xindex

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSinputDiff, XInputDiff

FLOAT32 Numerator_f32, Denominator_f32, Output_f32

SINT16 Output_s16

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl = [x1,x2,x3,x4,…...]

Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If (BS <= BSTbl[0])

BSindex = 0

BS = BSTbl[0]

Else if (BS >= BSTbl[BSize-1])

BSindex = BSsize -2

BS = BSTbl[BSsize -1]

While ((BSTbl[BSindex] = = BSTbl[BSindex + 1] && (BSindex > 0)))

BSindex = BSindex - 1

Wend

Else

BSindex = 0

While ( BSTbl[BSindex +1] < BS)

BSindex = BSindex + 1

Wend

Endif

If (input <= XTbl[0])

Xindex = 0

Input = XTbl[0]

Else if (input >= XTbl[XSize – 1])

Xindex = Xsize – 2

Input = XTbl[Xsize -1]

Else

Xindex = 0

While ( XTbl[Xindex +1] < input)

Xindex = Xindex+1

Wend

Endif

ArrayIndex1 = (BSindex * Xsize) + Xindex

ArrayIndex2 = (BSindex * Xsize) + Xindex + 1

ArrayIndex3 = ((BSindex + 1) * Xsize) + Xindex

ArrayIndex4 = ((BSindex + 1) * Xsize) + Xindex + 1

BSInputDiff = BS – BSTbl[BSindex]

XInputDiff = input – XTbl[Xindex]

Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) * ((BSTbl[BSindex+1] – BSTbl[BSindex]) * XInputDiff) +

(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) *

(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +

(XInputDiff * BSInputDiff ) *

((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))

Denominator_f32 = (BSTbl[BSindex +1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])

If (Denominator_f32 <= FLT_EPSILON) Output_f32 = YMTbl[ArrayIndex1]

Else

Output_f32 = YMTbl[ArrayIndex1] + Numerator_f32 / Denominator_f32

Endif

If (Output_f32 >= 0)

Output_f32 = Output_f32 + 0.5

Else

Output_f32 =Output_f32 – 0.5

Endif

/*Float to SINT16 typecast*/

Output_s16 = Output_f32

return Output_s16

End

Syntax: BilinearXYM_u16_s16Xu16YM_Cnt(BS, input, *BSTbl, BSsize, *XTbl, *YMTbl, Xsize)

Arguments

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X 2D

  6. YMTbl:- Table Y with MxN dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, Xindex

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSInputDiff, XInputDiff

FLOAT32 Numerator_f32, Denominator_f32

UINT16 Output_u16

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl = [x1,x2,x3,x4,…...]

Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If (BS <= BSTbl[0])

BSindex = 0

BS = BSTbl[0]

Else if (BS >= BSTbl[BSsize – 1])

BSindex = BSsize -2

BS = BSTbl [ BSsize – 1]

While (( BSTbl [BSindex] == BSTbl [ BSindex+1] && (BSindex > 0)))

BSindex = BSindex – 1

Wend

Else

BSindex = 0

While (BSTbl[BSindex +1]<BS)

BSindex = BSindex +1

Wend

Endif

If (input <= XTbl[0])

Xindex = 0

Input = XTbl[0]

Else if (input >= XTbl[XSize -1])

Xindex = Xsize -2

input = XTbl[Xsize -1]

Else

Xindex = 0

While ( XTbl[Xindex + 1] < input)

Xindex= Xindex + 1

Wend

Endif

ArrayIndex1 = (BSindex * Xsize) + Xindex

ArrayIndex2 = (BSindex * Xsize) + Xindex + 1

ArrayIndex3 = ((BSindex + 1)* Xsize) + Xindex

ArrayIndex4 = ((BSindex + 1)* Xsize) + Xindex + 1

BSInputDiff = BS – BSTbl[BSindex]

XInputDiff = input – XTbl[Xindex]

Numerator_f32 = ( YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) *

((BSTbl [ BSindex + 1] – BSTbl[BSindex]) * XInputDiff) +

(YMTbl [ ArrayIndex3] – YMTbl[ArrayIndex1]) *

(BSInputDiff * (XTbl[Xindex+1] – XTbl[Xindex])) +

(XInputDiff * BSInputDiff) *

((YMTbl[ArrayIndex4]) – (YMTbl[ArrayIndex3]) – (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]))

Denominator_f32 = (BSTbl[BSindex+1] – BSTbl[BSindex]) * (XTbl[Xindex+1] – XTbl[Xindex])

If (Denominator_f32 <= FLT_EPSILON) Output_u16 = YMTbl[ArrayIndex1] + 0.5

Else

Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5

Endif

return Output_u16

end

Multiple X Multiple Y (Bilinear Interpolation)

Implementation

Syntax: BilinearXMYM_u16_u16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, X1index, X2index,

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSInputDiff, XInputDiff1, XInputDiff2

SINT32 Mult1_s32, Mult2_s32

FLOAT32 Numerator_f32, Denominator_f32

UINT16 Output_u16

SINT32 Den1_s32, Den2_s32, Den3_s32

UINT16 input2 = input

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]

Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If ( BS <= BSTbl[0] )

BSindex = 0

BS = BSTbl [0]

Else if (BS >= BSTbl[BSsize -1])

BSindex = BSsize – 2

BS = BSTbl [ BSsize-1]

while (BSTbl[BSindex] == BSTbl[BSindex+1] && (BSindex > 0))

BSindex = BSindex -1

wend

Else

BSindex = 0

while ( BSTbl [ BSindex +1] < BS)

BSindex = BSindex +1

wend

Endif

If ( input <= XMTbl [ BSindex * Xsize])

X1index = 0

Input = XMTbl [BSindex * Xsize]

Else if (input >= XMTbl [ (BSindex * Xsize) + Xsize -1])

X1index = Xsize – 2

input = XMTbl [ (BSindex * Xsize) + Xsize – 1]

while ((XMTbl[(BSindex * Xsize)+X1index] == XMTbl[(BSindex * Xsize) + X1index +1]) && (X1index >0))

X1index = X1index – 1

wend

Else

X1index = 0

while (XMTbl[(BSindex * Xsize)+X1index+1] <input)

X1index = X1index + 1

wend

Endif

If (input2 <= XMTb1 [(BSindex+1) * Xsize])

X2index = 0

input2 = XMTbl[(BSindex + 1) * Xsize ]

Else if (input2 >= XMTbl [ ((BSindex +1) * Xsize) + Xsize -1])

X2index = Xsize -2

input2 = XMTbl[((BSindex +1)*Xsize) + Xsize -1]

while ((XMTbl[((BSindex+1)*Xsize)+X2index]==XMTbl[((BSindex+1)*Xsize)+X2index+1]) && (X2index >0))

X2index = X2index – 1

wend

Else

X2index = 0

while ( XMTbl[((BSindex+1)*Xsize)+X2index+1]<input)

X2index = X2index +1

wend

Endif

ArrayIndex1 = (BSindex * Xsize) + X1index

ArrayIndex2 = (BSindex * Xsize) + X1index + 1

ArrayIndex3 = ((BSindex +1)* Xsize) + X2index

ArrayIndex4 = ((BSindex +1)*Xsize)+X2index+1

XInputDiff1 = input – XMTbl[ArrayIndex1]

XInputDiff2 = input2 – XMTbl[ArrayIndex3]

BSInputDiff = BS – BSTbl[BSindex]

Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])

Mult2_s32 = BSInputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den1_s32 = (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3])

Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den3_s32 = (BSTbl[BSindex +1]-BSTbl[BSindex])

Numerator_f32 = Mult1_s32 * (BSTbl[BSindex+1]-BS) *

(YMTbl[ArrayIndex2]-YMTbl[ArrayIndex1]) +

Mult2_s32*(XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3]) *

(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +

Mult2_s32 * XInputDiff2*(YMTbl[ArrayIndex4] – YMTbl[ArrayIndex3])

Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32

If (Denominator_f32 <= FLT_EPSILON)

Output_u16 = YMTbl[ArrayIndex1] + 0.5

Else

Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5

Endif

return Output_u16

end

Syntax: BilinearXMYM_s16_u16XMs16YM_Cnt(BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, X1index, X2index

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSInputDiff, XInputDiff1, XInputDiff2

SINT32 Mult1_s32, Mult2_s32

FLOAT32 Numerator_f32, Denominator_f32

SINT16 Output_s16

SINT32 Den1_s32, Den2_s32, Den3_s32

UINT16 input2 = input

FLOAT32 Output_f32

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]

Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If ( BS <= BSTbl[0])

BSindex = 0

BS = BSTbl[0]

Else if (BS >= BSTbl[BSsize -1])

BSindex = BSsize – 2

BS = BSTbl [ BSsize – 1]

While ( BSTbl[BSindex] == BSTbl[BSindex + 1] && (BSindex >0))

BSindex = BSindex – 1

Wend

Else

BSindex = 0

While (BSTbl[BSindex +1] < BS)

BSindex = BSindex +1

Wend

Endif

If (input <= XMTbl[BSindex * Xsize ] )

X1index =0

input = XMTbl[BSindex * Xsize]

else if (input >= XMTbl[(BSindex * Xsize) + Xsize -1])

X1index = Xsize -2

input = XMTbl[(BSindex * Xsize) + Xsize -1]

while (( XMTbl[(BSindex * Xsize) + X1index] == XMTbl[(BSindex * Xsize) +X1index+1]) && (X1index > 0))

X1index =X1index – 1

Wend

Else

X1index = 0

While (XMTbl[(BSindex * Xsize)+X1index+1] < input)

X1index = X1index +1

Wend

Endif

If (input2 <= XMTbl[(BSindex+1) * Xsize])

X2index =0

Input2 = XMTbl[(BSindex+1)* Xsize]

Else if (input2 >= XMTbl[(BSindex+1) * Xsize) + XSize-1])

X2index = Xsize – 2

input2 = XMTbl[((BSindex +1)*Xsize)+Xsize – 1]

while ((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1) * Xsize)+X2index+1]) && (X2index >0))

X2index = X2index – 1

Wend

Else

X2index =0

While (XMTbl[((Bsindex+1)* Xsize) + X2index +1] < input)

X2index= X2index+1

Wend

Endif

ArrayIndex1 = (BSindex * Xsize) + X1index

ArrayIndex2 = (BSindex * Xsize) + X1index + 1

ArrayIndex3 = ((BSindex+1)*Xsize)+X2index

ArrayIndex4 = ((BSindex + 1)*Xsize) + X2index+1

XInputDiff1 = input – XMTbl[ArrayIndex1]

XInputDiff2 = input2 – XMTbl[ArrayIndex3]

BSInputDiff = BS – BSTbl[BSindex]

Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])

Mult2_s32 = BSinputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den1_s32 = (XMTbl[ArrayIndex4] - XMTbl[ArrayIndex3])

Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den3_s32 = (BSTbl[BSindex+1] – BSTbl[BSindex])

Numerator_f32 = Mult1_s32 * ((BSTbl[BSindex+1]-BS) * (YMTbl[ArrayIndex2] – YMTbl[ArrayIndex1]) +

Mult2_s32 * (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3])*

YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +

Mult2_s32*XInputDiff2*(YMTbl[ArrayIndex4]-YMTbl[ArrayIndex3])

Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32

If (Denominator_f32 <= FLT_EPSILON)

Output_f32 = YMTbl[ArrayIndex1]

Else

Output_f32 = YMTbl[ArrayIndex1]+Numerator_f32/Denominator_f32

Endif

If (Output_f32 >= 0)

Output_f32 = Output_f32 +0.5

Else

Output_f32 = Output_f32 -0.5

Endif

/*float to SINT16 typecasting*/

Output_s16 = Output_f32

return Output_s16

end

4.1.3 Syntax: BilinearXMYM_s16_s16XMs16YM_Cnt(BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, X1index, X2index

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSInputDiff, XInputDiff1, XInputDiff2

SINT32 Mult1_s32, Mult2_s32

FLOAT32 Numerator_f32, Denominator_f32

SINT16 Output_s16

SINT32 Den1_s32, Den2_s32, Den3_s32

SINT16 input2 = input

FLOAT32 Output_f32

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const SINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]

Const SINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If (BS <= BSTbl[0])

BSindex = 0

BS = BSTbl[0]

Else if (BS >= BSTbl[BSsize-1]

BSindex = BSsize – 2

BS = BSTbl[BSsize – 1]

While ( BSTbl[BSindex] == BSTbl[BSindex+1] && (BSindex >0))

BSindex = BSindex -1

Wend

Else

BSindex = 0

While (BSTbl[BSindex+1] < BS)

BSindex = BSindex +1

Wend

Endif

If (input <= XMTbl[BSindex * Xsize])

X1index = 0

input = XMTbl[BSindex * Xsize]

else if (input >= XMTbl[(BSindex * Xsize) + Xsize – 1])

X1index = Xsize-2

input = XMTbl[(BSindex*Xsize)+Xsize-1]

while ((XMTbl[(BSindex*Xsize)+X1index] = = XMTbl[(BSindex * Xsize)+X1index+1]) && (X1index > 0))

X1index = X1index-1

Wend

Else

X1index = 0

While ( XMTbl[(BSindex * Xsize) + X1index+1] < input)

X1index = X1index+1

Wend

Endif

If (input2 <= XMTbl[(BSindex+1)*Xsize])

X2index = 0

input2= XMTbl[(BSindex+1)*Xsize]

else if (input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])

X2index = Xsize-2

input2 = XMTbl[((BSindex+1)*Xsize)+Xsize-1]

while (( XMTbl[(BSindex+1)*Xsize) + X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) && (X2index > 0))

X2index = X2index-1

Wend

Else

X2index = 0

While ( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input)

X2index = X2index+1

Wend

Endif

ArrayIndex1 = (BSindex * Xsize) + X1index

ArrayIndex2 = (BSindex * Xsize) + X1index + 1

ArrayIndex3 = ((BSindex +1)*Xsize)+X2index

ArrayIndex4 = ((BSindex + 1)*Xsize)+X2index+1

XInputDiff1 = input – XMTbl[ArrayIndex1]

XInputDiff2 = inpu2 – XMTbl[ArrayIndex3]

BSInputDiff = BS – BSTbl[BSindex]

Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])

Mult2_s32 = BSInputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den1_s32 = (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])

Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den3_s32 = (BSTbl[BSindex + 1] – BSTbl[BSindex])

Numerator_f32 = Mult1_s32 * ((BSTbl[BSindex+1]-BS)* (YMTbl[ArrayIndex2]-YMTbl[ArrayIndex1])+

Mult2_s32 * (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3]) *

(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +

Mult2_s32 * XInputDiff2 * (YMTbl[ArrayIndex4] – YMTbl[ArrayIndex3])

Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32

If (Denominator_f32 <= FLT_EPSILON)

Output_f32 = YMTbl[ArrayIndex1]

Else

Output_f32 = YMTbl[ArrayIndex1] + Numerator_f32 / Denominator_f32

Endif

If (Output_f32 >= 0)

Output_f32 = Output_f32 +0.5

Else

Output_f32 = Output_f32 – 0.5

Endif

/*float to SINT16 typecast*/

Output_s16 = Output_f32

return Output_s16

end

Syntax: BilinearXMYM_u16_s16XMu16YM_Cnt( BS, input, *BSTbl, BSsize, *XMTbl, *YMTbl, Xsize)

Arguments:

  1. BS:- Bilinear Selector

  2. input:-The input to the table

  3. BSTbl:- Bilinear Selector Table 2D

  4. BSize:- Bilinear Selector Table Size

  5. XTbl:- Table X with [MxN] dimension

  6. YMTbl:- Table Y with [MxN] dimension

  7. Xsize:- Size of XTbl

Output:- The output from the table

Pseudo Code:

UINT16 BSindex, X1index, X2index,

UINT16 ArrayIndex1, ArrayIndex2, ArrayIndex3, ArrayIndex4

SINT32 BSInputDiff, XInputDiff1, XInputDiff2

SINT32 Mult1_s32, Mult2_s32

FLOAT32 Numerator_f32, Denominator_f32

UINT16 Output_u16

SINT32 Den1_s32, Den2_s32, Den3_s32

UINT16 input2 = input

Const UINT16 BSTbl = [z1,z2,z3,z4,…..]

Const UINT16 XTbl[mxn] = [(x1,x2,x3…),(x4,x5,x6….),….]

Const UINT16 YMTbl[mxn] = [(y1,y2,y3…),(y4,y5,y6….),….]

If ( BS <= BSTbl[0] )

BSindex = 0

BS = BSTbl [0]

Else if (BS >= BSTbl[BSsize -1])

BSindex = BSsize – 2

BS = BSTbl [ BSsize-1]

while (BSTbl[BSindex] == BSTbl[BSindex+1] && (BSindex > 0))

BSindex = BSindex -1

wend

Else

BSindex = 0

while ( BSTbl [ BSindex +1] < BS)

BSindex = BSindex +1

wend

Endif

If ( input <= XMTbl [ BSindex * Xsize])

X1index = 0

Input = XMTbl [BSindex * Xsize]

Else if (input >= XMTbl [ (BSindex * Xsize) + Xsize -1])

X1index = Xsize – 2

input = XMTbl [ (BSindex * Xsize) + Xsize – 1]

while ((XMTbl[(BSindex * Xsize)+X1index] == XMTbl[(BSindex * Xsize) + X1index +1]) && (X1index >0))

X1index = X1index – 1

wend

Else

X1index = 0

while (XMTbl[(BSindex * Xsize)+X1index+1] <input)

X1index = X1index + 1

wend

Endif

If (input2 <= XMTb1 [(BSindex+1) * Xsize])

X2index = 0

input2 = XMTbl[(BSindex + 1) * Xsize ]

Else if (input2 >= XMTbl [ ((BSindex +1) * Xsize) + Xsize -1])

X2index = Xsize -2

input2 = XMTbl[((BSindex +1)*Xsize) + Xsize -1]

while ((XMTbl[((BSindex+1)*Xsize)+X2index]==XMTbl[((BSindex+1)*Xsize)+X2index+1]) && (X2index >0))

X2index = X2index – 1

wend

Else

X2index = 0

while ( XMTbl[((BSindex+1)*Xsize)+X2index+1]<input)

X2index = X2index +1

wend

Endif

ArrayIndex1 = (BSindex * Xsize) + X1index

ArrayIndex2 = (BSindex * Xsize) + X1index + 1

ArrayIndex3 = ((BSindex +1)* Xsize) + X2index

ArrayIndex4 = ((BSindex +1)*Xsize)+X2index+1

XInputDiff1 = input – XMTbl[ArrayIndex1]

XInputDiff2 = input2 – XMTbl[ArrayIndex3]

BSInputDiff = BS – BSTbl[BSindex]

Mult1_s32 = XInputDiff1 * (XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3])

Mult2_s32 = BSInputDiff * (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den1_s32 = (XMTbl[ArrayIndex4]-XMTbl[ArrayIndex3])

Den2_s32 = (XMTbl[ArrayIndex2] – XMTbl[ArrayIndex1])

Den3_s32 = (BSTbl[BSindex +1]-BSTbl[BSindex])

Numerator_f32 = Mult1_s32 * (BSTbl[BSindex+1]-BS) *

(YMTbl[ArrayIndex2]-YMTbl[ArrayIndex1]) +

Mult2_s32*(XMTbl[ArrayIndex4] – XMTbl[ArrayIndex3]) *

(YMTbl[ArrayIndex3] – YMTbl[ArrayIndex1]) +

Mult2_s32 * XInputDiff2*(YMTbl[ArrayIndex4] – YMTbl[ArrayIndex3])

Denominator_f32 = (Den1_s32 * Den2_s32) * Den3_s32

If (Denominator_f32 <= FLT_EPSILON)

Output_u16 = YMTbl[ArrayIndex1] + 0.5

Else

Output_u16 = YMTbl[ArrayIndex1] + (Numerator_f32 / Denominator_f32) + 0.5

Endif

return Output_u16

end

UnitTesting Range: Linear and Bilinear Interpolation

For unit testing consider Ranges as FULL based on the data type of the tables and Input. Note a limitation for all interpolation functions is that the X tables and the BS Tables are assumed to be always increasing in value (or equal). The tables should never be decreasing in values as the index increases.

Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
1CBDInterpolation MDD13 April 12NRAR
22Added remaining bilinear interpolation functions28-Sep-12OT
33Changed divide by zero logic in bilinear interpolation to prevent floating point exceptions21-Mar-13LWW

3 - NxtrLib_Systemtime Integration_Manual

Contents

1 Dependencies 1

2 Configuration 1

2.1 Build Time Config 1

2.2 Generator Config 1

2.2.1 System 1

2.2.2 NvMProxyBlock 2

3 Integration 2

4 Runnable Scheduling 2

5 Memory Mapping 3

5.1 Mapping 3

5.2 Usage 3

6 Revision Control Log 4

Dependencies

ModuleRequired Feature

Configuration

Build Time Config

ConstantNotesSWC

Generator Config

System

ConstantNotesSWC

Integration

The following import steps must be completed:

  1. Place CBD project structure to appropriate integration folder

  2. Copy SystemTime_Cfg.h.tt into the Header folder and remove the .tt extension.

  3. Configure the constant D_TickRate_Cnt_u32 to the appropriate Os system tick time.

Runnable Scheduling

This section specifies the required runnable scheduling.

RunnableScheduling RequirementsTrigger

Memory Mapping

Mapping

ConstantNotes

* Each …START_SEC… constant is terminated by a …STOP_SEC… constant as specified in the AUTOSAR Memory Mapping requirements.

Usage

Table 1: ARM Cortex R4 Memory Usage

FeatureRAMROM
Full driver

Revision Control Log

Item #Rev #Change DescriptionDateAuthor Initials
1Initial version26Jul13SAH

4 - Interpolation_UnitTestResults


Overview

Unit Test Information
Module Definitions
Variable Range
BilinearXYM_s16_u16Xs16YM_Cnt
BilinearXYM_s16_u16Xs16YM_Cnt P
BilinearXYM_s16_u16Xs16YM_Cnt B
BilinearXYM_u16_u16Xu16YM_Cnt
BilinearXYM_u16_u16Xu16YM_Cnt P
BilinearXYM_u16_u16Xu16YM_Cnt B
BilinearXMYM_u16_u16XMu16YM_Cnt
BilinearXMYM_u16_u16XMu16YM_C P
BilinearXMYM_u16_u16XMu16YM_C B
BilinearXMYM_s16_u16XMs16YM_Cnt
BilinearXMYM_s16_u16XMs16YM_C P
BilinearXMYM_s16_u16XMs16YM_C B
BilinearXMYM_s16_s16XMs16YM_Cnt
BilinearXMYM_s16_s16XMs16YM_C P
BilinearXMYM_s16_s16XMs16YM_C B
IntplVarXY_u16_u16Xu16Y_Cnt
IntplVarXY_u16_u16Xu16Y_Cnt() P
IntplVarXY_u16_u16Xu16Y_Cnt() B
IntplVarXY_u16_s16Xu16Y_Cnt
IntplVarXY_u16_s16Xu16Y_Cnt() P
IntplVarXY_u16_s16Xu16Y_Cnt() B
IntplVarXY_s16_s16Xs16Y_Cnt
IntplVarXY_s16_s16Xs16Y_Cnt() P
IntplVarXY_s16_s16Xs16Y_Cnt() B
IntplVarXY_s16_u16Xs16Y_Cnt
IntplVarXY_s16_u16Xs16Y_Cnt() P
IntplVarXY_s16_u16Xs16Y_Cnt() B
IntplFxdX_u16_u16Xu16Y_Cnt
IntplFxdX_u16_u16Xu16Y_Cnt() P
IntplFxdX_u16_u16Xu16Y_Cnt() B
IntplFxdX_u16_s16Xu16Y_Cnt
IntplFxdX_u16_s16Xu16Y_Cnt() P
IntplFxdX_u16_s16Xu16Y_Cnt() B
IntplFxdX_s16_s16Xs16Y_Cnt
IntplFxdX_s16_s16Xs16Y_Cnt() P
IntplFxdX_s16_s16Xs16Y_Cnt() B
IntplFxdX_s16_u16Xs16Y_Cnt
IntplFxdX_s16_u16Xs16Y_Cnt() P
IntplFxdX_s16_u16Xs16Y_Cnt() B


Sheet 1: Unit Test Information

1.0a






















Nexteer EPS Unit Test Tool






Rev:2.7b












Name of Tester:Rajsi Tyagi
Source files to be added to the .pjt file Must include path from 'Source Code Directory' setting on the Unit Test Tool Options dialog Include Files:

Code File(s) Under Test:interpolation.c



Code File(s) Version:8



Module Design Document:Interpolation_Design_MDD.doc



Module Design Document Version:1



Unit Test Plan Version:1



Optimization Level:Level 2



Compiler (CodeGen) Version:TMS470_4.9.2



Model Type:Excel Macro



Model Version:1



Special Test Requirements:




Test Date:5/22/2012



Comments:NOTE1: Coverage is not 100% in IntplVarXY_u16_u16Xu16Y_Cnt,IntplVarXY_u16_s16Xu16Y_Cnt , IntplFxdX_u16_u16Xu16Y_Cnt ,IntplFxdX_u16_s16Xu16Y_Cnt ,IntplFxdX_s16_u16Xs16Y_Cnt function due to FPM_Fix_m macro.
NOTE2:In IntplVarXY_u16_u16Xu16Y_Cnt, IntplVarXY_u16_s16Xu16Y_Cnt, IntplVarXY_s16_s16Xs16Y_Cnt, IntplVarXY_s16_u16Xs16Y_Cnt function , (diffX == 0)=TRUE condition can not be covered.




Index of Tests:




Test Set upTest WorksheetsTest StatusRun TS

BilinearXYM_s16_u16Xs16YM_CntBilinearXYM_s16_u16Xs16YM_Cnt B----
21
7BilinearXYM_s16_u16Xs16YM_Cnt P----
7






BilinearXYM_u16_u16Xu16YM_CntBilinearXYM_u16_u16Xu16YM_Cnt B----
19
9BilinearXYM_u16_u16Xu16YM_Cnt P----
9






BilinearXMYM_u16_u16XMu16YM_CntBilinearXMYM_u16_u16XMu16YM_C B----
19
10BilinearXMYM_u16_u16XMu16YM_C P----
10






BilinearXMYM_s16_u16XMs16YM_CntBilinearXMYM_s16_u16XMs16YM_C B----
21
11BilinearXMYM_s16_u16XMs16YM_C P----
11






BilinearXMYM_s16_s16XMs16YM_CntBilinearXMYM_s16_s16XMs16YM_C B----
25
9BilinearXMYM_s16_s16XMs16YM_C P----
9






IntplVarXY_u16_u16Xu16Y_CntIntplVarXY_u16_u16Xu16Y_Cnt() B----
12
3IntplVarXY_u16_u16Xu16Y_Cnt() P----
3






IntplVarXY_u16_s16Xu16Y_CntIntplVarXY_u16_s16Xu16Y_Cnt() B----
16
3IntplVarXY_u16_s16Xu16Y_Cnt() P----
3






IntplVarXY_s16_s16Xs16Y_CntIntplVarXY_s16_s16Xs16Y_Cnt() B----
18
3IntplVarXY_s16_s16Xs16Y_Cnt() P----
3






IntplVarXY_s16_u16Xs16Y_CntIntplVarXY_s16_u16Xs16Y_Cnt() B----
14
3IntplVarXY_s16_u16Xs16Y_Cnt() P----
3






IntplFxdX_u16_u16Xu16Y_CntIntplFxdX_u16_u16Xu16Y_Cnt() B----
12
4IntplFxdX_u16_u16Xu16Y_Cnt() P----
4






IntplFxdX_u16_s16Xu16Y_CntIntplFxdX_u16_s16Xu16Y_Cnt() B----
16
4IntplFxdX_u16_s16Xu16Y_Cnt() P----
4






IntplFxdX_s16_s16Xs16Y_CntIntplFxdX_s16_s16Xs16Y_Cnt() B----
18
4IntplFxdX_s16_s16Xs16Y_Cnt() P----
4






IntplFxdX_s16_u16Xs16Y_CntIntplFxdX_s16_u16Xs16Y_Cnt() B----
14
4IntplFxdX_s16_u16Xs16Y_Cnt() P----
4


















































Sheet 2: Module Definitions












































Nexteer EPS Unit Test Tool












Rev:2.7b












Module Definitions
Module Test Functions
Module Set/Read Variables
Module Function Stubs
Return TypeNameParameter Prototype
ScopeTypeNameDefault Value
Return TypeNameParameter Prototype
sint16BilinearXYM_s16_u16Xs16YM_Cnt(uint16 BS1, uint16 input1, uint16 BSsize1, uint16 Xsize1)
Guint16BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]




uint16BilinearXYM_u16_u16Xu16YM_Cnt(uint16 BS2, uint16 input2, uint16 BSsize2, uint16 Xsize2)
Guint16BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]




uint16BilinearXMYM_u16_u16XMu16YM_Cnt(uint16 BS3, uint16 input3, uint16 BSsize3, uint16 Xsize3)
Gsint16BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]




sint16BilinearXMYM_s16_u16XMs16YM_Cnt(uint16 BS4, uint16 input4, uint16 BSsize4, uint16 Xsize4)
Gsint16BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]




sint16BilinearXMYM_s16_s16XMs16YM_Cnt(uint16 BS5, sint16 input5, uint16 BSsize5, uint16 Xsize5)
Gsint16BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]




uint16IntplVarXY_u16_u16Xu16Y_Cnt(uint16 Size6, uint16 input6)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]




uint16IntplVarXY_u16_s16Xu16Y_Cnt(uint16 Size7, sint16 input7)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]




sint16IntplVarXY_s16_s16Xs16Y_Cnt(uint16 Size8, sint16 input8)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]




sint16IntplVarXY_s16_u16Xs16Y_Cnt(uint16 Size9, uint16 input9)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]




uint16IntplFxdX_u16_u16Xu16Y_Cnt(uint16 DeltaX10, uint16 Size10, uint16 input10)
Guint16BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]




uint16IntplFxdX_u16_s16Xu16Y_Cnt(sint16 DeltaX11, uint16 Size11, sint16 input11)
Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]




sint16IntplFxdX_s16_s16Xs16Y_Cnt(sint16 DeltaX12, uint16 Size12, sint16 input12)
Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3]




sint16IntplFxdX_s16_u16Xs16Y_Cnt(uint16 DeltaX13, uint16 Size13, uint16 input13)
Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3]








Guint16BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3]








Guint16BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3]








Gsint16BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3]








Gsint16BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3]








Gsint16BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3]








Guint16BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3]








Gsint16BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3]








Guint16IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]








Guint16IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]








Gsint16IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]








Guint16IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]








Gsint16IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]








Gsint16IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]








Guint16IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]








Gsint16IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]








Guint16IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]








Guint16IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]








Gsint16IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]








Gsint16IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]





Sheet 3: Variable Range















































Nexteer EPS Unit Test Tool












Rev:2.7b
























Variable Range Definitions








Variable NameMax ValueMin Value








BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]










BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]










BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]










BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]










BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]










BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]










BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]










BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]










BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]










BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3]










BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3]










BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3]










BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3]










IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]










IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]










IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]










IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]










IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]










IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]










IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]










IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]










IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]










IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]










IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]










IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]











Sheet 4: BilinearXYM_s16_u16Xs16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXYM_s16_u16Xs16YM_CntB21BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]

BilinearXYM_s16_u16Xs16YM_CntP7BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]




BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]




BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]




BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]


Sheet 5: BilinearXYM_s16_u16Xs16YM_Cnt P

BilinearXYM_s16_u16Xs16YM_CntTS--











PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS1input1BSsize1Xsize1BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]BilinearXYM_s16_u16Xs16YM_CntBilinearXYM_s16_u16Xs16YM_CntP/FCPU Cycles
1(BS <= BSTbl[0]) = True
and
(input <= XTbl[0])=False
and
(input >= XTbl[Xsize-1])=True
and
((sint32)(Denominator_f32) == 0)=True
and
(Output_f32>=0)=False
05645337432 , 7432 , 74322222 ,2222 ,2222-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--

2(BS <= BSTbl[0]) = False
and
(BS >= BSTbl[BSsize-1])=True
and
((BSTbl[BSindex] == BSTbl[BSindex+1] = True && (BSindex > 0))) = True
and
((BSTbl[BSindex] == BSTbl[BSindex+1] = True && (BSindex > 0)))=False
6553586783326327 , 26327 ,263274633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521---2637--

3(input <= XTbl[0])=True
and
(Output_f32>=0)=True
100034533337382 , 37382 , 373826478 , 6478 ,64788546, 8546 ,85462521 , 2521 ,25211312 , 1312 ,1312--8546--

4(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=True
and
( BSTbl[BSindex+1] < BS )=False
6553086783326327 , 26327 ,655314633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521--4232--

5((BSTbl[BSindex] == BSTbl[BSindex+1] = False&& (BSindex > 0)))6553086783326327 , 26327 ,655294633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521--4232--

6(input >= XTbl[Xsize-1])=False
and
( XTbl[Xindex+1] < input )=True
and
( XTbl[Xindex+1] < input )=False
05645337432 , 7432 , 74322222 ,2222 ,5646-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--

7((sint32)(Denominator_f32) == 0)=False05645337430 , 7432 , 74322222 ,2220 ,2222-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--


































































































































































Sheet 6: BilinearXYM_s16_u16Xs16YM_Cnt B

BilinearXYM_s16_u16Xs16YM_CntTS--











BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS1input1BSsize1Xsize1BilinearXYM_s16_u16Xs16YM_Cnt_BSTbl[3]BilinearXYM_s16_u16Xs16YM_Cnt_XTbl[3]BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl1[3]BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl2[3]BilinearXYM_s16_u16Xs16YM_Cnt_YMTbl3[3]BilinearXYM_s16_u16Xs16YM_CntBilinearXYM_s16_u16Xs16YM_CntP/FCPU Cycles
1param 1 min05645337432 , 7432 , 74322222 ,2222 ,2222-12345, -12345 , -12345-6459, -6459 ,-64594232, 4232 ,4232---12345--

2param 1 max6553586783326327 , 26327 ,263274633 , 4633 ,4633-2637, -2637 ,-26374232, 4232 ,42322521 , 2521 ,2521---2637--

3param 1 pos100034533337382 , 37382 , 373826478 , 6478 ,64788546, 8546 ,85462521 , 2521 ,25211312 , 1312 ,1312--8546--

4param 2 min123403342769 , 42769 ,427693333 , 3333 ,3333-9484, -9484 ,-94841312 , 1312 ,1312-2637, -2637 ,-2637---9484--

5param 2 max2345655353352636 , 52636 ,526364444 , 4444 ,4444-3744, -3744 , -3744-2637, -2637 ,-26378546, 8546 ,8546---3744--

6param 2 pos34562000335555 , 5555 ,55555555 , 5555 ,555517633, 17633 ,176338546, 8546 ,8546-9484, -9484 ,-9484--17633--

7param 3 default45674342333637 , 3637 ,36373637 , 3637 ,363726385, 26385 ,26384-9484, -9484 ,-9484-3744, -3744 ,-3744--26385--

8param 4 default56787764332754 , 2754 ,27542754 , 2754 ,2754-7236, -7236 ,-7236-3744, -3744 ,-374417633, 17633 ,17633---7236--

9I/p 5 min67891234330, 0 ,07432 , 7432 , 74325820, 5820 ,582017633, 17633 ,1763326385, 26385 ,26385--5820--

10I/p 5 max890878973365535 ,65535 ,6553526327 , 26327 ,2632717552, 17552 ,1755226385, 26385 ,26385-7236, -7236 ,-7236--17552--

11I/p 5 pos11112345331000, 1000 ,100037382 , 37382 , 3738227544, 27544 ,27544-7236, -7236 ,-72365820, 5820 ,5820--27544--

12I/p 6 min22223456332222 ,2222 ,22220, 0 ,0-6439, -6439 ,-64395820, 5820 ,582017552, 17552 ,17552---6439--

13I/p 6 max33334567334633 , 4633 ,463365535 ,65535 ,65535-6459, -6459 ,-645917552, 17552 ,1755227544, 27544 ,27544---6459--

14I/p 6 pos44445678336478 , 6478 ,64782000, 2000 ,20004232, 4232 ,423227544, 27544 ,27544-6439, -6439 ,-6439--4232--

15I/p 7 min55556789333333 , 3333 ,333342769 , 42769 ,42769-32768, -32768 ,-32768-6439, -6439 ,-6439-6459, -6459 ,-6459---32768--

16I/p 7 max66668908334444 , 4444 ,444452636 , 52636 ,5263632767, 32767 ,32767-6459, -6459 ,-64594232, 4232 ,4232--32767--

17I/p 7 zero77771111335555 , 5555 ,55555555 , 5555 ,55550, 0 ,04232, 4232 ,42322521 , 2521 ,2521--0--

18I/p 7 neg88882222333637 , 3637 ,36373637 , 3637 ,3637-1500, -1500 ,-15002521 , 2521 ,25211312 , 1312 ,1312---1500--

19I/p 7 pos99994234332754 , 2754 ,27542754 , 2754 ,27541800, 1800 ,18001312 , 1312 ,1312-6459, -6459 ,-6459--1800--

20All min00330, 0 ,00, 0 ,0-32768, -32768 ,-32768-32768, -32768 ,-32768-32768, -32768 ,-32768---32768--

21All max65535655353365535 ,65535 ,6553565535 ,65535 ,6553532767, 32767 ,3276732767, 32767 ,3276732767, 32767 ,32767--32767--


































































































































































Sheet 7: BilinearXYM_u16_u16Xu16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXYM_u16_u16Xu16YM_CntB19BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]

BilinearXYM_u16_u16Xu16YM_CntP9BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]




BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]




BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]




BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]


Sheet 8: BilinearXYM_u16_u16Xu16YM_Cnt P

BilinearXYM_u16_u16Xu16YM_CntTS--











PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS2input2BSsize2Xsize2BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]BilinearXYM_u16_u16Xu16YM_CntBilinearXYM_u16_u16Xu16YM_CntP/FCPU Cycles
1(BS <= BSTbl[0])=True
and
(input <= XTbl[0])=True
and
((sint32)Denominator_f32 == 0)=True
07980332222 ,2222 ,222237382 , 37382 , 373822521 , 2521 ,25214232, 4232 ,423212345, 12345 , 12345--2521--

2(BS <= BSTbl[0])=False
and
(BS >= BSTbl[BSsize-1])=True
and
((BSTbl[BSindex] == BSTbl[BSindex+1] = True && (BSindex > 0)))=True
and
((BSTbl[BSindex] == BSTbl[BSindex+1] =True && (BSindex > 0)))=False
655355455334633 , 4633 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--4232--

3(input <= XTbl[0])=False
and
(input >= XTbl[Xsize-1])=True
564565535334444 , 4444 ,44441000, 1000 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

4(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=False
33335455332222 , 4633 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--4232--

5((BSTbl[BSindex] == BSTbl[BSindex+1] =False&& (BSindex > 0)))6553086783326327 , 26327 ,12344633 , 4633 ,46332637, 2637 ,26374232, 4232 ,42322521 , 2521 ,2521--4232--

6( BSTbl[BSindex+1] < BS )=True33335455332222 , 2222 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--2521--

7(input >= XTbl[Xsize-1])=False
and
( XTbl[Xindex+1] < input )=False
5645800334444 , 4444 ,4444500, 1000 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

8( XTbl[Xindex+1] < input )=True5645800334444 , 4444 ,4444500, 500 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

9((sint32)Denominator_f32 == 0)=False07980332220 ,2222 ,222237380 , 37382 , 373822521 , 2521 ,25214232, 4232 ,423212345, 12345 , 12345--2521--


































































































































































Sheet 9: BilinearXYM_u16_u16Xu16YM_Cnt B

BilinearXYM_u16_u16Xu16YM_CntTS--











BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS2input2BSsize2Xsize2BilinearXYM_u16_u16Xu16YM_Cnt_BSTbl[3]BilinearXYM_u16_u16Xu16YM_Cnt_XTbl[3]BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl1[3]BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl2[3]BilinearXYM_u16_u16Xu16YM_Cnt_YMTbl3[3]BilinearXYM_u16_u16Xu16YM_CntBilinearXYM_u16_u16Xu16YM_CntP/FCPU Cycles
1param 1 min07980332222 ,2222 ,222237382 , 37382 , 373822521 , 2521 ,25214232, 4232 ,423212345, 12345 , 12345--2521--

2param 1 max655355455334633 , 4633 ,463342769 , 42769 ,427694232, 4232 ,42322521 , 2521 ,25212637, 2637 ,2637--4232--

3param 1 pos123453123336478 , 6478 ,647852636 , 52636 ,526362521 , 2521 ,25211312 , 1312 ,13128546, 8546 ,8546--2521--

4param 2 min23420333333 , 3333 ,33335555 , 5555 ,55551312 , 1312 ,13122637, 2637 ,26379484, 9484 ,9484--1312--

5param 2 max564565535334444 , 4444 ,44441000, 1000 ,10002637, 2637 ,26378546, 8546 ,85463744, 3744 , 3744--2637--

6param 2 pos42324357335555 , 5555 ,55551432 , 1432, 14328546, 8546 ,85469484, 9484 ,948417633, 17633 ,17633--8546--

7param 3 default11116784333637 , 3637 ,36372525, 2525, 25259484, 9484 ,94843744, 3744 ,374426385, 26385 ,26384--9484--

8param 4 default22225467332754 , 2754 ,27541122, 1122, 11223744, 3744 ,374417633, 17633 ,176337236, 7236 ,7236--3744--

9I/p 5 min33333536330, 0 ,04633 , 4633 ,463317633, 17633 ,1763326385, 26385 ,263855820, 5820 ,5820--17633--

10I/p 5 max444497893365535 ,65535 ,655356478 , 6478 ,647826385, 26385 ,263857236, 7236 ,723617552, 17552 ,17552--26385--

11I/p 5 pos55554234332754 , 2754 ,27543333 , 3333 ,33337236, 7236 ,72365820, 5820 ,582027544, 27544 ,27544--7236--

12I/p 6 min666678893337382 , 37382 , 373820, 0 ,05820, 5820 ,582017552, 17552 ,175526439, 6439 ,6439--5820--

13I/p 6 max777742343342769 , 42769 ,4276965535 ,65535 ,6553517552, 17552 ,1755227544, 27544 ,275446459, 6459 ,6459--17552--

14I/p 6 pos888876563352636 , 52636 ,526365555 , 5555 ,555527544, 27544 ,275446439, 6439 ,64394232, 4232 ,4232--27544--

15I/p 7 min99998073335555 , 5555 ,55554444 , 4444 ,44440, 0 ,06459, 6459 ,64596439, 6439 ,6439--0--

16I/p 7 max64342436331000, 1000 ,10005555 , 5555 ,555565535 ,65535 ,655354232, 4232 ,42326459, 6459 ,6459--65535--

17I/p 7 pos85648674331432 , 1432, 14323637 , 3637 ,36375820, 5820 ,58202521 , 2521 ,25214232, 4232 ,4232--5820--

18All min00330, 0 ,00, 0 ,00, 0 ,00, 0 ,00, 0 ,0--0--

19All max65535655353365535 ,65535 ,6553565535 ,65535 ,6553565535 ,65535 ,6553565535 ,65535 ,6553565535 ,65535 ,65535--65535--


































































































































































Sheet 10: BilinearXMYM_u16_u16XMu16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXMYM_u16_u16XMu16YM_CntB19BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]

BilinearXMYM_u16_u16XMu16YM_CntP10BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3]




BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3]




BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3]




BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3]




BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3]




BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3]


Sheet 11: BilinearXMYM_u16_u16XMu16YM_C P

BilinearXMYM_u16_u16XMu16YM_CntTS--













PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS3input3BSsize3Xsize3BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3]BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3]BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3]BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3]BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3]BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3]BilinearXMYM_u16_u16XMu16YM_CntBilinearXMYM_u16_u16XMu16YM_CntP/FCPU Cycles
1(BS <= BSTbl[0])=True
and
(input <= XMTbl[BSindex*Xsize])=False
and
(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=True
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=False && (X1index > 0))
and
(input2 <= XMTbl[(BSindex+1)*Xsize])=false
and
(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=True
and
((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =false&& (X2index > 0))
and
((sint32)Denominator_f32 == 0)=False
09054332563 , 4739 , 69601628 , 4628 , 35372648 , 6895 , 28932839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--2372--

2(BS <= BSTbl[0])=False
and
(BS >= BSTbl[BSsize-1])=True
and
(BSTbl[BSindex] == BSTbl[BSindex+1]=False && (BSindex > 0))
and
(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False
and
( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False
and
(input2 <= XMTbl[(BSindex+1)*Xsize])=True
655353534332685 , 5689 , 68902764 , 4739 , 48941628 , 4628 , 35373849 , 6960 , 23721628 , 4628 , 35372648 , 6895 , 28932522 , 6960 , 26238--2522--

3(input <= XMTbl[BSindex*Xsize])=True64560333829 , 6893 , 23034527 , 6869 , 36386448 , 2376 , 69602764 , 4739 , 48946448 , 2376 , 69602764 , 4739 , 48942839 , 5894 , 2920--2839--

4( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True354765343338660 , 6950 , 36382685 , 5689 , 68902563 , 4739 , 69602638 , 3628 , 37822563 , 4739 , 69602638 , 3628 , 37826448 , 2376 , 6960--6960--

5(BSTbl[BSindex] == BSTbl[BSindex+1] =True && (BSindex > 0))=True
and
(BSTbl[BSindex] == BSTbl[BSindex+1] =True&& (BSindex > 0))=False
and
((sint32)Denominator_f32 == 0)=true
464326896330,0,04173 , 4580 , 48902685 , 5689 , 68902563 , 4739 , 69602685 , 5689 , 68902563 , 4739 , 69604527 , 6869 , 3638--5689--

6(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=False
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=True && (X1index > 0))=True
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=True && (X1index > 0))=False
25343335331628 , 4628 , 35370,0,07850 , 2783 , 59053829 , 6893 , 23037850 , 2783 , 59053829 , 6893 , 23032563 , 4739 , 6960--7850--

7( BSTbl[BSindex+1] < BS )=True25343335331628 , 2000 , 35370,0,07850 , 2783 , 59053829 , 6893 , 23037850 , 2783 , 59053829 , 6893 , 23032563 , 4739 , 6960--3389--

8(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=false
and
( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False
09054332563 , 4739 , 69601628 , 4628 , 35372648 , 6895 , 100002839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--2372--

9((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1])=True && (X2index > 0))=True
and
((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =True && (X2index > 0))=false
09054332563 , 4739 , 69601628 , 4628 , 35376895 , 6895 , 68952839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--6960--

10( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True09054332563 , 4739 , 69601628 , 4628 , 69002648 , 6895 , 100002839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--2372--






















































































































































































Sheet 12: BilinearXMYM_u16_u16XMu16YM_C B

BilinearXMYM_u16_u16XMu16YM_CntTS--













BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS3input3BSsize3Xsize3BilinearXMYM_u16_u16XMu16YM_Cnt_BSTbl[3]BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl1[3]BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl2[3]BilinearXMYM_u16_u16XMu16YM_Cnt_XMTbl3[3]BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl1[3]BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl2[3]BilinearXMYM_u16_u16XMu16YM_Cnt_YMTbl3[3]BilinearXMYM_u16_u16XMu16YM_CntBilinearXMYM_u16_u16XMu16YM_CntP/FCPU Cycles
1param 1 min09054332563 , 4739 , 69601628 , 4628 , 35372648 , 6895 , 28932839 , 5894 , 29203849 , 6960 , 23722728 , 5859 , 27386278 , 4849 , 6960--2372--

2param 1 max655353534332685 , 5689 , 68902764 , 4739 , 48941628 , 4628 , 35373849 , 6960 , 23721628 , 4628 , 35372648 , 6895 , 28932522 , 6960 , 26238--2522--

3param 1 pos65628064334173 , 4580 , 48906448 , 2376 , 69602764 , 4739 , 48941628 , 4628 , 35372764 , 4739 , 48941628 , 4628 , 353712637 , 4748 , 5850--5850--

4param 2 min64560333829 , 6893 , 23034527 , 6869 , 36386448 , 2376 , 69602764 , 4739 , 48946448 , 2376 , 69602764 , 4739 , 48942839 , 5894 , 2920--2839--

5param 2 max573365535337850 , 2783 , 59051528 , 3628 , 28204527 , 6869 , 36386448 , 2376 , 69604527 , 6869 , 36386448 , 2376 , 69603849 , 6960 , 2372--3638--

6param 2 pos79648087331839 , 2789 , 48402638 , 3628 , 37821528 , 3628 , 28204527 , 6869 , 36381528 , 3628 , 28204527 , 6869 , 36381628 , 4628 , 3537--3537--

7param 3 deafult25336978333895 , 6899 , 59052563 , 4739 , 69602638 , 3628 , 37821528 , 3628 , 28202638 , 3628 , 37821528 , 3628 , 28202764 , 4739 , 4894--3782--

8param 4 default354765343338660 , 6950 , 36382685 , 5689 , 68902563 , 4739 , 69602638 , 3628 , 37822563 , 4739 , 69602638 , 3628 , 37826448 , 2376 , 6960--6960--

9I/p 5 min464326896330,0,04173 , 4580 , 48902685 , 5689 , 68902563 , 4739 , 69602685 , 5689 , 68902563 , 4739 , 69604527 , 6869 , 3638--5689--

10I/p 5 max5354312343365535 , 65535, 655353829 , 6893 , 23034173 , 4580 , 48902685 , 5689 , 68904173 , 4580 , 48902685 , 5689 , 68901528 , 3628 , 2820--4173--

11I/p 5 pos614562534331234 , 2345 , 34567850 , 2783 , 59053829 , 6893 , 23034173 , 4580 , 48903829 , 6893 , 23034173 , 4580 , 48902638 , 3628 , 3782--2638--

12I/p 6 min25343335331628 , 4628 , 35370,0,07850 , 2783 , 59053829 , 6893 , 23037850 , 2783 , 59053829 , 6893 , 23032563 , 4739 , 6960--7850--

13I/p 6 max64334647332764 , 4739 , 489465535 , 65535, 655351839 , 2789 , 48407850 , 2783 , 59051839 , 2789 , 48407850 , 2783 , 59052685 , 5689 , 6890--2685--

14I/p 6 pos86545785336448 , 2376 , 69601111 , 2222 , 33333895 , 6899 , 59051839 , 2789 , 48403895 , 6899 , 59051839 , 2789 , 48404173 , 4580 , 4890--4890--

15I/p 9 min36456633334527 , 6869 , 36381839 , 2789 , 48408660 , 6950 , 36383895 , 6899 , 59050,0,03895 , 6899 , 59053829 , 6893 , 2303--0--

16I/p 9 max87077532331528 , 3628 , 28203895 , 6899 , 59056383 , 5690 , 28398660 , 6950 , 363865535 , 65535, 655358660 , 6950 , 36386484 , 2639 , 4849--6484--

17I/p 9 pos47458573332638 , 3628 , 37828660 , 6950 , 36386585 , 1920 , 58504683 , 2829 , 58954567 , 5678 , 67836383 , 5690 , 283932648 , 7494 , 2829--2829--

18All min00330,0,00,0,00,0,00,0,00,0,00,0,00,0,0--0--

19All max65535655353365535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 6553565535 , 65535, 65535--65535--






















































































































































































Sheet 13: BilinearXMYM_s16_u16XMs16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXMYM_s16_u16XMs16YM_CntB21BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]

BilinearXMYM_s16_u16XMs16YM_CntP11BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3]




BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3]




BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3]




BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3]




BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3]




BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3]


Sheet 14: BilinearXMYM_s16_u16XMs16YM_C P

BilinearXMYM_s16_u16XMs16YM_CntTS--













PParamParamParamParamI/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS4input4BSsize4Xsize4BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3]BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3]BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3]BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3]BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3]BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3]BilinearXMYM_s16_u16XMs16YM_CntBilinearXMYM_s16_u16XMs16YM_CntP/FCPU Cycles
1(BS <= BSTbl[0])=True
and
(input <= XMTbl[BSindex*Xsize])=True
and
(input2 <= XMTbl[(BSindex+1)*Xsize])=True
and
((sint32)Denominator_f32 == 0)=True
and
(Output_f32>=0)=False
01231332563 , 4739 , 69604444 , 4444 ,44443333 , 3333 ,33331628 , 2839 , 3839-6459, -6459 ,-64594683 , 5894 , 28292627 , 8942 , 2782---6459--

2(BS <= BSTbl[0])=False
and
(BS >= BSTbl[BSsize-1])=True
and
(BSTbl[BSindex] == BSTbl[BSindex+1] =False&& (BSindex > 0))
and
(input <= XMTbl[BSindex*Xsize])=False
and
(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=True
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =False&& (X1index > 0))
and
((sint32)Denominator_f32 == 0)=False
655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4728 , 12728494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

3((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =True && (X1index > 0))=True
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1])=True && (X1index > 0))=False
and
(input2 <= XMTbl[(BSindex+1)*Xsize])=False
and
(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=True
and
((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =False && (X2index > 0))
32165535337850 , 2783 , 59055555 , 5555 ,55555262 , 7283 , 89501629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

4(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=False
42348769333895 , 6899 , 59051432 , 1432, 14321628 , 2839 , 38392738 , 6956 , 2784-9484, -9484 ,-9484-9484, -9484 ,-9484-3744, -3744 , -3744---9484--

5(BSTbl[BSindex] == BSTbl[BSindex+1]=True && (BSindex > 0))=True
and
(BSTbl[BSindex] == BSTbl[BSindex+1] =True&& (BSindex > 0))=False
and
(Output_f32>=0)=True
42342266330 , 0, 01122, 1122, 11229505 , 6950 , 37392733 , 5990 , 283917633, 17633 ,1763317633, 17633 ,1763326385, 26385 ,26384--17633--

6( BSTbl[BSindex+1] < BS )=True31237567331111 , 2222 , 33336478 , 6478 ,64781629 , 7849 , 38408934 , 4984 , 2849-7236, -7236 ,-7236-7236, -7236 ,-72365820, 5820 ,5820--3352--

7(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False
and
( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False
655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4728 , 50008494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

8( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4000 , 50008494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

9(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=False
and
( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False
3211500337850 , 2783 , 59055555 , 5555 ,55551000 , 7283 , 20001629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

10((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =True && (X2index > 0))=true
and
((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1])=True && (X2index > 0))=False
32165535337850 , 2783 , 59055555 , 5555 ,55557283 , 7283 , 72831629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

11( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True3211500337850 , 2783 , 59055555 , 5555 ,55551000 , 5000 , 20001629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--






















































































































































































Sheet 15: BilinearXMYM_s16_u16XMs16YM_C B

BilinearXMYM_s16_u16XMs16YM_CntTS--













BParamParamParamParamI/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS4input4BSsize4Xsize4BilinearXMYM_s16_u16XMs16YM_Cnt_BSTbl[3]BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl1[3]BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl2[3]BilinearXMYM_s16_u16XMs16YM_Cnt_XMTbl3[3]BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl1[3]BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl2[3]BilinearXMYM_s16_u16XMs16YM_Cnt_YMTbl3[3]BilinearXMYM_s16_u16XMs16YM_CntBilinearXMYM_s16_u16XMs16YM_CntP/FCPU Cycles
1param 1 min01231332563 , 4739 , 69604444 , 4444 ,44443333 , 3333 ,33331628 , 2839 , 3839-6459, -6459 ,-64594683 , 5894 , 28292627 , 8942 , 2782---6459--

2param 1 max655354342332685 , 5689 , 68905555 , 5555 ,55553422 , 4728 , 12728494 , 2782 , 58944232, 4232 ,42324232, 4232 ,4232-6282 , -2892 , -2829---6282--

3param 1 pos55257885334173 , 4580 , 48903637 , 3637 ,36376890 , 2839 , 68959505 , 6950 , 37392521 , 2521 ,25212521 , 2521 ,2521-12345, -12345 , -12345---12345--

4param 2 min42440333829 , 6893 , 230352636 , 52636 ,526365172 , 5899 , 17836749 , 2839 , 78491312 , 1312 ,13121312 , 1312 ,1312-2637, -2637 ,-2637---2637--

5param 2 max32165535337850 , 2783 , 59055555 , 5555 ,55555262 , 7283 , 89501629 , 7849 , 3840-2637, -2637 ,-2637-2637, -2637 ,-26378546, 8546 ,8546---2637--

6param 2 pos75674233331839 , 2789 , 48401000, 1000 ,10004234 , 3783 , 26288590 , 2834 , 69508546, 8546 ,85468546, 8546 ,8546-9484, -9484 ,-9484---9484--

7param 3 default42348769333895 , 6899 , 59051432 , 1432, 14321628 , 2839 , 38392738 , 6956 , 2784-9484, -9484 ,-9484-9484, -9484 ,-9484-3744, -3744 , -3744---9484--

8param 4 deafult7874323338660 , 6950 , 36382525, 2525, 25258494 , 2782 , 58948595 , 2849 , 6956-3744, -3744 ,-3744-3744, -3744 ,-374417633, 17633 ,17633---3744--

9I/p 5 min42342266330 , 0, 01122, 1122, 11229505 , 6950 , 37392733 , 5990 , 283917633, 17633 ,1763317633, 17633 ,1763326385, 26385 ,26384--17633--

10I/p 5 max645624233365535 , 65535 , 655354633 , 4633 ,46336749 , 2839 , 78499505 , 2849 , 690526385, 26385 ,2638526385, 26385 ,26385-7236, -7236 ,-7236--26385--

11I/p 5 pos31237567331111 , 2222 , 33336478 , 6478 ,64781629 , 7849 , 38408934 , 4984 , 2849-7236, -7236 ,-7236-7236, -7236 ,-72365820, 5820 ,5820--3352--

12I/p 6 min78978678337432 , 7432 , 74320 , 0, 08590 , 2834 , 69502839 , 5895 ,29335820, 5820 ,58205820, 5820 ,582017552, 17552 ,17552--5820--

13I/p 6 max523490873326327 , 26327 ,2632765535 , 65535 , 655352738 , 6956 , 27844849 , 128 , 282917552, 17552 ,1755217552, 17552 ,1755227544, 27544 ,27544--17552--

14I/p 6 pos89794233337382 , 37382 , 373822345 , 3456 , 45678595 , 2849 , 69563333 , 3333 ,333327544, 27544 ,2754427544, 27544 ,27544-6439, -6439 ,-6439--27544--

15I/p 9 min535325223342769 , 42769 ,427693333 , 3333 ,33332733 , 5990 , 28393422 , 4728 , 1272-32768 , -32768 , -32768-6439, -6439 ,-6439-6459, -6459 ,-6459---32768--

16I/p 9 max907552223352636 , 52636 ,526363422 , 4728 , 12729505 , 2849 , 69056890 , 2839 , 689532767 , 32767 , 32767-6459, -6459 ,-64594232, 4232 ,4232--32767--

17I/p 9 zero425624523335555 , 5555 ,55556890 , 2839 , 68958934 , 4984 , 28495172 , 5899 , 17830 , 0 , 04232, 4232 ,4232-6282 , -2627 , -2782--0--

18I/p 9 neg45547564333637 , 3637 ,36375172 , 5899 , 17832839 , 5895 ,29335262 , 7283 , 8950-1111 , -2222 , -33332521 , 2521 ,25217239 , 4893 , 1282---2222--

19I/p 9 pos41284211332754 , 2754 ,27545262 , 7283 , 89504849 , 128 , 28294234 , 3783 , 26282345 , 4567 , 56431312 , 1312 ,1312-7292 , -2789 , -2829--2345--

20All min00330 , 0, 00 , 0, 00 , 0, 00 , 0, 0-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768---32768--

21All max65535655353365535 , 65535 , 6553565535 , 65535 , 6553565535 , 65535 , 6553565535 , 65535 , 6553532767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 32767--32767--






















































































































































































Sheet 16: BilinearXMYM_s16_s16XMs16YM_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
BilinearXMYM_s16_s16XMs16YM_CntB25BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]

BilinearXMYM_s16_s16XMs16YM_CntP9BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3]




BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3]




BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3]




BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3]




BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3]




BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3]


Sheet 17: BilinearXMYM_s16_s16XMs16YM_C P

BilinearXMYM_s16_s16XMs16YM_CntTS--













PParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS5input5BSsize5Xsize5BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3]BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3]BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3]BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3]BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3]BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3]BilinearXMYM_s16_s16XMs16YM_CntBilinearXMYM_s16_s16XMs16YM_CntP/FCPU Cycles
1(BS <= BSTbl[0])=True
and
(input <= XMTbl[BSindex*Xsize])=False
and
(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=True
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =True && (X1index > 0))=True
and
((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =True && (X1index > 0))=False
and
(input2 <= XMTbl[(BSindex+1)*Xsize])=False
and
(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=True
and
((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =False&& (X2index > 0))
and
((sint32)Denominator_f32 == 0)=True
and
(Output_f32>=0)=True
02000333441 , 5552 , 5252-12345, -12345 , -123451567 , 8922 , 1781-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--562--

2(BS <= BSTbl[0])=False
and
(BS >= BSTbl[BSsize-1])=True
and
(BSTbl[BSindex] == BSTbl[BSindex+1]=False && (BSindex > 0))
and
(input2 <= XMTbl[(BSindex+1)*Xsize])=True
and
(Output_f32>=0)=False
65535-2000336363 , 8349 , 3834-2637, -2637 ,-2637-6459, -6459 ,-6459-571 , -1781 , -17811567 , 8922 , 1781-6292 , -1278 , -1681-6188 , -1671 , -8292---6292--

3(input <= XMTbl[BSindex*Xsize])=True12343000336383 , 2782 , 2828546, 8546 ,85464232, 4232 ,42324232, 4232 ,4232-6459, -6459 ,-6459-571 , -1781 , -1781378 , 783 , 580---6459--

4((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1]) =True && (X2index > 0))=True
and
((XMTbl[((BSindex+1)*Xsize)+X2index] == XMTbl[((BSindex+1)*Xsize)+X2index+1])=True && (X2index > 0))=False
42343276733480 , 378 , 282-3744, -3744 , -37441312 , 1312 ,13121312 , 1312 ,13122521 , 2521 ,25212521 , 2521 ,2521-571 , -1781 , -1781--2521--

5(BSTbl[BSindex] == BSTbl[BSindex+1]=True && (BSindex > 0))=True
and
(BSTbl[BSindex] == BSTbl[BSindex+1] =True && (BSindex > 0))=False
5345-4000330, 0 , 027544, 27544 ,2754426385, 26385 ,2638526385, 26385 ,2638517633, 17633 ,1763317633, 17633 ,17633-9484, -9484 ,-9484--17633--

6(BS >= BSTbl[BSsize-1])=False
and
( BSTbl[BSindex+1] < BS )=True
and
( BSTbl[BSindex+1] < BS )=False
4234-5000332345 , 3456 , 4567-6459, -6459 ,-64595820, 5820 ,58205820, 5820 ,5820-7236, -7236 ,-7236-7236, -7236 ,-723617633, 17633 ,17633---7236--

7((XMTbl[(BSindex*Xsize)+X1index] == XMTbl[(BSindex*Xsize)+X1index+1]) =False&& (X1index > 0))
and
((sint32)Denominator_f32 == 0)=False
42345228337292 , 4279 , 2678-1581 , -2683 , -1270-6282 , -2782 , -27682628 , 1819 , 3782-2222 , -3333 , -4444-6459, -6459 ,-64592521 , 2521 ,2521---4444--

8(input >= XMTbl[(BSindex*Xsize)+Xsize-1])=False
and
( XMTbl[(BSindex*Xsize)+X1index+1] < input )=True
and
( XMTbl[(BSindex*Xsize)+X1index+1] < input )=False
and
(input2 >= XMTbl[((BSindex+1)*Xsize)+Xsize-1])=False
and
( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=False
02000333441 , 5552 , 5252-12345, -12345 , 21001567 , 8922 , 1781-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--1818--

9( XMTbl[((BSindex+1)*Xsize)+X2index+1] < input )=True02000333441 , 5552 , 5252-12345, -12345 , 21001567 , 1900 , 2100-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--1818--






















































































































































































Sheet 18: BilinearXMYM_s16_s16XMs16YM_C B

BilinearXMYM_s16_s16XMs16YM_CntTS--













BParam1Param2Param3Param4I/P5I/P6I/P7I/P8I/P9I/P10I/P11Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionBS5input5BSsize5Xsize5BilinearXMYM_s16_s16XMs16YM_Cnt_BSTbl[3]BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl1[3]BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl2[3]BilinearXMYM_s16_s16XMs16YM_Cnt_XMTbl3[3]BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl1[3]BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl2[3]BilinearXMYM_s16_s16XMs16YM_Cnt_YMTbl3[3]BilinearXMYM_s16_s16XMs16YM_CntBilinearXMYM_s16_s16XMs16YM_CntP/FCPU Cycles
1param 1 min02000333441 , 5552 , 5252-12345, -12345 , -123451567 , 8922 , 1781-6292 , -1278 , -1681562 , 7191 , 1781-618 , -178 , -7295712 , 7189 , 1718--562--

2param 1 max65535-2000336363 , 8349 , 3834-2637, -2637 ,-2637-6459, -6459 ,-6459-571 , -1781 , -17811567 , 8922 , 1781-6292 , -1278 , -1681-6188 , -1671 , -8292---6292--

3param 1 pos12343000336383 , 2782 , 2828546, 8546 ,85464232, 4232 ,42324232, 4232 ,4232-6459, -6459 ,-6459-571 , -1781 , -1781378 , 783 , 580---6459--

4param 2 min6336-32768334939 , 2782 , 1829-9484, -9484 ,-94842521 , 2521 ,25212521 , 2521 ,25214232, 4232 ,42324232, 4232 ,4232-6292 , -1278 , -1681--4232--

5param 2 max42343276733480 , 378 , 282-3744, -3744 , -37441312 , 1312 ,13121312 , 1312 ,13122521 , 2521 ,25212521 , 2521 ,2521-571 , -1781 , -1781--2521--

6param 2 zero7567033719 , 378 , 27817633, 17633 ,17633-2637, -2637 ,-2637-2637, -2637 ,-26371312 , 1312 ,13121312 , 1312 ,13124232, 4232 ,4232--1312--

7param 2 neg5234-100033719 , 182 , 49926385, 26385 ,263848546, 8546 ,85468546, 8546 ,8546-2637, -2637 ,-2637-2637, -2637 ,-26372521 , 2521 ,2521---2637--

8param 2 pos8567100033571 , 2379 , 7892-7236, -7236 ,-7236-9484, -9484 ,-9484-9484, -9484 ,-94848546, 8546 ,85468546, 8546 ,85461312 , 1312 ,1312--8546--

9param 3 default4234-2300336128 , 1781 , 37895820, 5820 ,5820-3744, -3744 ,-3744-3744, -3744 ,-3744-9484, -9484 ,-9484-9484, -9484 ,-9484-2637, -2637 ,-2637---9484--

10param 4 default66224000332280 , 1729 , 389117552, 17552 ,1755217633, 17633 ,1763317633, 17633 ,17633-3744, -3744 ,-3744-3744, -3744 ,-37448546, 8546 ,8546---3744--

11I/p 5 min5345-4000330, 0 , 027544, 27544 ,2754426385, 26385 ,2638526385, 26385 ,2638517633, 17633 ,1763317633, 17633 ,17633-9484, -9484 ,-9484--17633--

12I/p 5 max756750003365535 , 65535 , 65535-6439, -6439 ,-6439-7236, -7236 ,-7236-7236, -7236 ,-723626385, 26385 ,2638526385, 26385 ,26385-3744, -3744 ,-3744--26385--

13I/p 5 pos4234-5000332345 , 3456 , 4567-6459, -6459 ,-64595820, 5820 ,58205820, 5820 ,5820-7236, -7236 ,-7236-7236, -7236 ,-723617633, 17633 ,17633---7236--

14I/p 6 min67566000331512 , 3939 , 2923-32768 , -32768 , -3276817552, 17552 ,1755217552, 17552 ,175525820, 5820 ,58205820, 5820 ,582026385, 26385 ,26385--5820--

15I/p 6 max5256-6000337383 , 3930 , 272832767 , 32767 , 3276727544, 27544 ,2754427544, 27544 ,2754417552, 17552 ,1755217552, 17552 ,17552-7236, -7236 ,-7236--17552--

16I/p 6 zero24127000336383 , 2930 , 49040 , 0, 0-6439, -6439 ,-6439-6439, -6439 ,-643927544, 27544 ,2754427544, 27544 ,275445820, 5820 ,5820--27544--

17I/p 6 neg6789-7000336289 , 9402 , 4789-2222 , -3333 , -4444-6459, -6459 ,-6459-6459, -6459 ,-6459-6439, -6439 ,-6439-6439, -6439 ,-643917552, 17552 ,17552---6439--

18I/p 6 pos90868000332799 , 4789, 37834839 , 3812 , 48944232, 4232 ,42324232, 4232 ,4232-6459, -6459 ,-6459-6459, -6459 ,-645927544, 27544 ,27544---6459--

19I/p 9 min1242-8000331638 , 3489 , 47896282 , 1782 , 38392521 , 2521 ,25212521 , 2521 ,2521-32768 , -32768 , -327684232, 4232 ,4232-6439, -6439 ,-6439---32768--

20I/p 9 max64679000331792 , 4893 , 27899-1581 , -1278 , -17811312 , 1312 ,13121312 , 1312 ,131232767 , 32767 , 327672521 , 2521 ,2521-6459, -6459 ,-6459--2521--

21I/p 9 zero7809-9000331638 , 7493 , 78495282 , 1819 , 38204232 , 729, 8292-6459, -6459 ,-64590 , 0, 01312 , 1312 ,13124232, 4232 ,4232--1312--

22I/p 9 neg42345228337292 , 4279 , 2678-1581 , -2683 , -1270-6282 , -2782 , -27682628 , 1819 , 3782-2222 , -3333 , -4444-6459, -6459 ,-64592521 , 2521 ,2521---4444--

23I/p 9 pos3454-3478334794 , 7830 , 2782618 , 178 , 389681 , 168 , 1891-1576 , -2782 , -12784839 , 3812 , 48942628 , 1819 , 3782-618 , -5618 , -1781--4839--

24All min0-32768330, 0 , 0-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768-32768 , -32768 , -32768---32768--

25All max65535327673365535 , 65535 , 6553532767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 3276732767 , 32767 , 32767--32767--






















































































































































































Sheet 19: IntplVarXY_u16_u16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_u16_u16Xu16Y_CntB12IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]

IntplVarXY_u16_u16Xu16Y_CntP3IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]


Sheet 20: IntplVarXY_u16_u16Xu16Y_Cnt() P

IntplVarXY_u16_u16Xu16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize6input6IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]IntplVarXY_u16_u16Xu16Y_CntIntplVarXY_u16_u16Xu16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=True4536289 , 1801 , 3489 , 63836282 , 1829 , 8904 , 6171--6282--

2( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
4655358393 , 1781 , 3479 , 83931839 , 4903 , 2789 ,3782--3782--

3( input >= TableX[Size-1] )=False
and
( TableX[index+1] < input )=True
and
( TableX[index+1] < input )=False
and
(diffX == 0)=False
430002500 , 1781 , 3479 , 35001839 , 4903 , 2789 ,1811--3386--
















































































































Sheet 21: IntplVarXY_u16_u16Xu16Y_Cnt() B

IntplVarXY_u16_u16Xu16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize6input6IntplVarXY_u16_u16Xu16Y_Cnt_TableX[4]IntplVarXY_u16_u16Xu16Y_Cnt_TableY[4]IntplVarXY_u16_u16Xu16Y_CntIntplVarXY_u16_u16Xu16Y_CntP/FCPU Cycles
1param 1 default4536289 , 1801 , 3489 , 63836282 , 1829 , 8904 , 6171--6282--

2param 2 min402379 , 3789 , 2892 , 83907292 , 2380 , 2892 , 7111--7292--

3param 2 max4655358393 , 1781 , 3479 , 83931839 , 4903 , 2789 ,3782--3782--

4param 2 pos412341738 , 805 , 12791 , 89334890 , 2892 , 3905 , 7128--4890--

5I/p 3 min434240 , 0, 0 ,08022 , 2902 , 1289 ,1781--1781--

6I/p 3 max4423165535 , 65535 , 65535 ,655356283 , 1902 , 1890 , 8129--6283--

7I/p 3 pos4651111 , 2222, 3333 , 62897292 , 3890 , 2892 ,7282--7292--

8I/p 4 min43432345 , 56212 , 2782 , 78930 , 0, 0 ,0--0--

9I/p 4 max486791671 , 3893 , 189 , 782265535 , 65535 , 65535 ,65535--65535--

10I/p 4 pos421112682 , 1891 , 3893 , 78294444 , 5555, 6666 ,7829--4444--

11All min400 , 0, 0 , 00 , 0, 0 , 0--0--

12All max46553565535 , 65535 , 65535 ,6553565535 , 65535 , 65535 ,65535--65535--
















































































































Sheet 22: IntplVarXY_u16_s16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_u16_s16Xu16Y_CntB16IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]

IntplVarXY_u16_s16Xu16Y_CntP3IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]


Sheet 23: IntplVarXY_u16_s16Xu16Y_Cnt() P

IntplVarXY_u16_s16Xu16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize7input7IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]IntplVarXY_u16_s16Xu16Y_CntIntplVarXY_u16_s16Xu16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
3443-6282 , -2920 , -57388900 , 6920 , 2682--2682--

2( input <= TableX[0] )=True3-327687393 , 6282 , 48943782 , 8923 , 1892--3782--

3( input >= TableX[Size-1] )=False
and
( TableX[index+1] < input )=True
and
( TableX[index+1] < input )=False
and
(diffX == 0)=False
3443-6282 , -2920 , 5008900 , 6920 , 2682--2753--
















































































































Sheet 24: IntplVarXY_u16_s16Xu16Y_Cnt() B

IntplVarXY_u16_s16Xu16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize7input7IntplVarXY_u16_s16Xu16Y_Cnt_TableX[3]IntplVarXY_u16_s16Xu16Y_Cnt_TableY[3]IntplVarXY_u16_s16Xu16Y_CntIntplVarXY_u16_s16Xu16Y_CntP/FCPU Cycles
1param 1 default3443-6282 , -2920 , -57388900 , 6920 , 2682--2682--

2param 2 min3-327687393 , 6282 , 48943782 , 8923 , 1892--3782--

3param 2 max332767-6489 , -2768 , -75893678 , 8303 , 2792--2792--

4param 2 zero309373 , 2672 , 57894000 , 5000 , 6000--4000--

5param 2 neg3-1234-7353 , -5839 , -17891000 , 2000 , 3000--3000--

6param 2 pos32346282 , 8494 , 27917894 , 6282 , 8022--7894--

7I/p 3 min3-4332-32768 , -32768 , -327687289 , 9078 , 3782--3782--

8I/p 3 max325332767 , 32767 , 327671782 , 8393 , 8028--1782--

9I/p 3 zero3-45620, 0, 05278 , 8940 , 2622--5278--

10I/p 3 neg3255-2345 , -5618 , -78912628 , 1829 , 8504--8504--

11I/p 3 pos3-6535278 , 1611 , 17897832 , 2628 , 8494--7832--

12I/p 4 min334531267 , 2571 , 17910, 0, 0--0--

13I/p 4 max3-653-1568 , -2629 , -373365535 , 65535 , 65535--65535--

14I/p 4 pos325326393 , 3902 , 73831111 , 2222 , 3333--1111--

15All min3-32768-32768 , -32768 , -327680, 0, 0--0--

16All max33276732767 , 32767 , 3276765535 , 65535 , 65535--65535--
















































































































Sheet 25: IntplVarXY_s16_s16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_s16_s16Xs16Y_CntB18IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]

IntplVarXY_s16_s16Xs16Y_CntP3IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]


Sheet 26: IntplVarXY_s16_s16Xs16Y_Cnt() P

IntplVarXY_s16_s16Xs16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize8input8IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_s16Xs16Y_CntIntplVarXY_s16_s16Xs16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
36543-7638 , -7494 , -9037-733 , -7683 , -8494---8494--

2( input <= TableX[0] )=True3-327686389 , 8037 , 68927399 , 7290 , 8044--7399--

3( input >= TableX[Size-1] )=False
and
( TableX[index+1] < input )=True
and
( TableX[index+1] < input )=False
and
(diffX == 0)=False
3443-6282 , -2920 , 5008900 , 6920 , 2682--2753--
















































































































Sheet 27: IntplVarXY_s16_s16Xs16Y_Cnt() B

IntplVarXY_s16_s16Xs16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize8input8IntplVarXY_s16_s16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_s16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_s16Xs16Y_CntIntplVarXY_s16_s16Xs16Y_CntP/FCPU Cycles
1param 1 default36543-7638 , -7494 , -9037-733 , -7683 , -8494---8494--

2param 2 min3-327686389 , 8037 , 68927399 , 7290 , 8044--7399--

3param 2 max332767-5628 , -7892 , -89372783 , 7949 , 6389--6389--

4param 2 zero305648 , 7037 , 8037-5628 , -7238 , -6289---5628--

5param 2 neg3-1234-7383 , -6849 , -6839-6383 , -7289 , -4523---4523--

6param 2 pos324226783 , 8003 , 6289-7638 , -7494 , -9037---7638--

7I/p 3 min3-5544-32768 , -32768 , -327686389 , 8037 , 6892--6892--

8I/p 3 max3423532767 , 32767 , 32767-5628 , -7892 , -8937---5628--

9I/p 3 zero3-74430 , 0, 05648 , 7037 , 8037--5648--

10I/p 3 neg32342-4176 , -7282 , -6728-7383 , -6849 , -6839---6839--

11I/p 3 pos3-63435373 , 4279 , 80376783 , 8003 , 6289--6783--

12I/p 4 min33242-733 , -7683 , -8494-32768 , -32768 , -32768---32768--

13I/p 4 max3-67437399 , 7290 , 804432767 , 32767 , 32767--32767--

14I/p 4 zero342342783 , 7949 , 63890 , 0, 0--0--

15I/p 4 neg3-8744-5628 , -7238 , -6289-4176 , -7282 , -6728---4176--

16I/p 4 pos34123-6383 , -7289 , -45235373 , 4279 , 8037--8037--

17All min3-32768-32768 , -32768 , -32768-32768 , -32768 , -32768---32768--

18All max33276732767 , 32767 , 3276732767 , 32767 , 32767--32767--
















































































































Sheet 28: IntplVarXY_s16_u16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplVarXY_s16_u16Xs16Y_CntB14IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]

IntplVarXY_s16_u16Xs16Y_CntP3IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]


Sheet 29: IntplVarXY_s16_u16Xs16Y_Cnt() P

IntplVarXY_s16_u16Xs16Y_CntTS--






PParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize9input9IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_u16Xs16Y_CntIntplVarXY_s16_u16Xs16Y_CntP/FCPU Cycles
1( input <= TableX[0] )=True364337037 , 7393 , 28907840 , 8904 , 5683--7840--

2( input <= TableX[0] )=False
and
( input >= TableX[Size-1] )=True
3655352728 , 3893 , 47938936 , 7893 , 4728--4728--

3( input >= TableX[Size-1] )=False
and
( TableX[index+1] < input )=True
and
( TableX[index+1] < input )=False
and
(diffX == 0)=False
342343333 , 4000 , 6389-6238 , -9628 , -1822---8864--
















































































































Sheet 30: IntplVarXY_s16_u16Xs16Y_Cnt() B

IntplVarXY_s16_u16Xs16Y_CntTS--






BParam1Param2I/P3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionSize9input9IntplVarXY_s16_u16Xs16Y_Cnt_TableX[3]IntplVarXY_s16_u16Xs16Y_Cnt_TableY[3]IntplVarXY_s16_u16Xs16Y_CntIntplVarXY_s16_u16Xs16Y_CntP/FCPU Cycles
1param 1 default364337037 , 7393 , 28907840 , 8904 , 5683--7840--

2param 2 min308390 , 8037 , 1781-8036 , -5637 , -3738---8036--

3param 2 max3655352728 , 3893 , 47938936 , 7893 , 4728--4728--

4param 2 pos364525729 , 8947 , 3683-7937 , -5738 , -7933---7933--

5I/p 3 min376530 , 0, 06830 , 8903 , 5827--5827--

6I/p 3 max3978765535 , 65535 , 65535-7944 , -5683 , -6829---7944--

7I/p 3 pos334368356 , 5623 , 83075782 , 7936 , 2682--5782--

8I/p 4 min375659078 , 6383 , 8047-32768 , -32768 , -32768---32768--

9I/p 4 max334235279 , 8037 , 489432767 , 32767 , 32767--32767--

10I/p 4 zero354447292 , 8037 , 18920, 0, 0--0--

11I/p 4 neg342343333 , 8047 , 6389-6238 , -9628 , -1822---6885--

12I/p 4 pos312315555 , 6666 , 77776399 , 7803 , 5893--6399--

13All min300 , 0, 0-32768 , -32768 , -32768---32768--

14All max36553565535 , 65535 , 6553532767 , 32767 , 32767--32767--
















































































































Sheet 31: IntplFxdX_u16_u16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_u16_u16Xu16Y_CntB12IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]

IntplFxdX_u16_u16Xu16Y_CntP4



Sheet 32: IntplFxdX_u16_u16Xu16Y_Cnt() P

IntplFxdX_u16_u16Xu16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX10Size10input10IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_u16Xu16Y_CntIntplFxdX_u16_u16Xu16Y_CntP/FCPU Cycles
1(DeltaX == 0)=True03245347917 , 6193 , 8044--7917--

2(DeltaX == 0)=False
and
( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=False
655353365100 , 100, 100--100--

3( input <= 0 )=True564307892 , 1682 , 8027--7892--

4( input >= DeltaX * (Size-1) )=True6343475346829 , 7936 , 6926--6926--
















































































































Sheet 33: IntplFxdX_u16_u16Xu16Y_Cnt() B

IntplFxdX_u16_u16Xu16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX10Size10input10IntplFxdX_u16_u16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_u16Xu16Y_CntIntplFxdX_u16_u16Xu16Y_CntP/FCPU Cycles
1param 1 min03245347917 , 6193 , 8044--7917--

2param 1 max655353365100 , 100, 100--100--

3param 1 pos34353544800 , 900 , 1000--815--

4param 2 default6343475346829 , 7936 , 6926--6926--

5param 3 min564307892 , 1682 , 8027--7892--

6param 3 max43243655356822 , 7922 , 8027--8027--

7param 3 pos675634232111 , 6778 , 7681--4287--

8I/p 4 min4234367670 , 0, 0--0--

9I/p 4 max79553423465535 , 65535 , 65535--65535--

10I/p 4 pos2643364566784 , 7943 , 7689--7689--

11All min0300 , 0, 0--0--

12All max6553536553565535 , 65535 , 65535--65535--
















































































































Sheet 34: IntplFxdX_u16_s16Xu16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_u16_s16Xu16Y_CntB16IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]

IntplFxdX_u16_s16Xu16Y_CntP4



Sheet 35: IntplFxdX_u16_s16Xu16Y_Cnt() P

IntplFxdX_u16_s16Xu16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX11Size11input11IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_s16Xu16Y_CntIntplFxdX_u16_s16Xu16Y_CntP/FCPU Cycles
1(DeltaX == 0)=False
and
( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=True
-3276834903573 , 7037 , 3789--3789--

2( input <= 0 )=True327673-5789789 , 7017 , 782--789--

3(DeltaX == 0)=True03-689668 , 806 , 29--68--

4( input >= DeltaX * (Size-1) )=False8950380031682 , 378 , 793--515--
















































































































Sheet 36: IntplFxdX_u16_s16Xu16Y_Cnt() B

IntplFxdX_u16_s16Xu16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX11Size11input11IntplFxdX_u16_s16Xu16Y_Cnt_TableY[3]IntplFxdX_u16_s16Xu16Y_CntIntplFxdX_u16_s16Xu16Y_CntP/FCPU Cycles
1param 1 min-3276834903573 , 7037 , 3789--3789--

2param 1 max327673-5789789 , 7017 , 782--789--

3param 1 zero03-689668 , 806 , 29--68--

4param 1 neg-67383178938 , 89 , 792--792--

5param 1 pos79223-8923783 , 8037 , 783--783--

6param 2 default8950380031682 , 378 , 793--515--

7param 3 min-78393-327685793 , 2990 , 8074--5793--

8param 3 max67383327677923 , 8036 , 2782--2782--

9param 3 zero-6829305728 , 8932 , 7937--5728--

10param 3 neg43893-268195729 , 8037 , 5728--5729--

11param 3 pos-7939379398593 , 7893 , 8027--8027--

12I/p 4 min27823-58290, 0, 0--0--

13I/p 4 max-58293167165535 , 65535 , 65535--65535--

14I/p 4 pos17893-79237839 , 5738 , 9043--7839--

15All min-327683-327680, 0, 0--0--

16All max3276733276765535 , 65535 , 65535--65535--
















































































































Sheet 37: IntplFxdX_s16_s16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_s16_s16Xs16Y_CntB18IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]

IntplFxdX_s16_s16Xs16Y_CntP4



Sheet 38: IntplFxdX_s16_s16Xs16Y_Cnt() P

IntplFxdX_s16_s16Xs16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX12Size12input12IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_s16Xs16Y_CntIntplFxdX_s16_s16Xs16Y_CntP/FCPU Cycles
1(DeltaX == 0)=False
and
( input <= 0 )=True
-327683-11116833 , 8027 , 5782--6833--

2( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=False
3276732222-5672 , -6821 , -782---5749--

3(DeltaX == 0)=True03-33333792 , 8090 , 7892--3792--

4( input >= DeltaX * (Size-1) )=True-683934444-8027 , -6922 , -7020---7020--
















































































































Sheet 39: IntplFxdX_s16_s16Xs16Y_Cnt() B

IntplFxdX_s16_s16Xs16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX12Size12input12IntplFxdX_s16_s16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_s16Xs16Y_CntIntplFxdX_s16_s16Xs16Y_CntP/FCPU Cycles
1param 1 min-327683-11116833 , 8027 , 5782--6833--

2param 1 max3276732222-5672 , -6821 , -782---5749--

3param 1 zero03-33333792 , 8090 , 7892--3792--

4param 1 neg-683934444-8027 , -6922 , -7020---7020--

5param 1 pos78393-55555829 , 8027 , 5783--5829--

6param 2 default-748436666-8027 , -7027 , -4027---4027--

7param 3 min68393-327685892 , 2789 , 1781--5892--

8param 3 max-2728332767-7922 , -6811 , -5702---5702--

9param 3 zero1000305729 , 8027 , 1671--5729--

10param 3 neg-20003-5839-5729 , -7922 , -1678---5729--

11param 3 pos3000389266829 , 2782 , 7027--7027--

12I/p 4 min-40003-7777-32768 , -32768 , -32768---32768--

13I/p 4 max50003888832767 , 32767 , 32767--32767--

14I/p 4 zero-60003-99990, 0, 0--0--

15I/p 4 neg700036545-7683 , -3527 , -8936---3798--

16I/p 4 pos-80003-57644763 , 6822 , 8903--4763--

17All min-327683-32768-32768 , -32768 , -32768---32768--

18All max3276733276732767 , 32767 , 32767--32767--
















































































































Sheet 40: IntplFxdX_s16_u16Xs16Y_Cnt




















Nexteer EPS Unit Test Tool






Rev:2.7b






Test Setup


Number Of Calibrations0


Number Of Calibration Sets0


Calibration Sheet















Function(s) Under TestVariablesFunction Stubs
Function NameTestTypeTest VectorsSetReadFunction Name
IntplFxdX_s16_u16Xs16Y_CntB14IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]

IntplFxdX_s16_u16Xs16Y_CntP4



Sheet 41: IntplFxdX_s16_u16Xs16Y_Cnt() P

IntplFxdX_s16_u16Xs16Y_CntTS--






PParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX13Size13input13IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_u16Xs16Y_CntIntplFxdX_s16_u16Xs16Y_CntP/FCPU Cycles
1(DeltaX == 0)=True0344446782 , 8027 , 2682--6782--

2(DeltaX == 0)=False
and
( input <= 0 )=False
and
( input >= DeltaX * (Size-1) )=False
6553536553332765 , 32765 , 32765--32765--

3( input <= 0 )=True13443015761 , 6789 , 2892--15761--

4( input >= DeltaX * (Size-1) )=True645365535-6822 , -2682 , -7802---7802--
















































































































Sheet 42: IntplFxdX_s16_u16Xs16Y_Cnt() B

IntplFxdX_s16_u16Xs16Y_CntTS--






BParam1Param2Param3I/P4Function
Return Val
Expected
Return Val
Test StatusPerf. MetricsComments
Vector NumberVector DescriptionDeltaX13Size13input13IntplFxdX_s16_u16Xs16Y_Cnt_TableY[3]IntplFxdX_s16_u16Xs16Y_CntIntplFxdX_s16_u16Xs16Y_CntP/FCPU Cycles
1param 1 min0344446782 , 8027 , 2682--6782--

2param 1 max6553536553332765 , 32765 , 32765--32765--

3param 1 pos4553322225785 , 7899 , 9047--6816--

4param 2 default1233111-600 , -600 , -600---600--

5param 3 min13443015761 , 6789 , 2892--15761--

6param 3 max645365535-6822 , -2682 , -7802---7802--

7param 3 pos4234363428853 , 8027 , 3728--5887--

8I/p 4 min97803100-32768 , -32768 , -32768---32768--

9I/p 4 max5345320032767 , 32767 , 32767--32767--

10I/p 4 zero643533000, 0, 0--0--

11I/p 4 neg41233400-7282 , -6822 , -6922---7238--

12I/p 4 pos989035006238 , 8903 , 2562--6372--

13All min030-32768 , -32768 , -32768---32768--

14All max6553536553532767 , 32767 , 32767--32767--