916 lines
26 KiB
C++
916 lines
26 KiB
C++
/*
|
|
AUTOMATICALLY GENERATED FILE - DO NOT EDIT!
|
|
Please change MatrixNxN.py and re-run it
|
|
*/
|
|
/* Generated with ./MatrixNxN.py n = 4, TYPE = unsigned int */
|
|
|
|
#include "ZUnitTest.hpp"
|
|
#include <float.h>
|
|
#include <math.h>
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
#include <SST/SST_Mat44.h>
|
|
#include <SST/SST_Vec4.h>
|
|
|
|
|
|
|
|
|
|
static const char* testSST_Math_Mat44uAdd();
|
|
static const char* testSST_Math_Mat44uAddLocal();
|
|
static const char* testSST_Math_Mat44uSubtract();
|
|
static const char* testSST_Math_Mat44uSubtractLocal();
|
|
static const char* testSST_Math_Mat44uMultiplyElementwise();
|
|
static const char* testSST_Math_Mat44uMultiplyElementwiseLocal();
|
|
static const char* testSST_Math_Mat44uMultiplyScalar();
|
|
static const char* testSST_Math_Mat44uMultiplyScalarLocal();
|
|
static const char* testSST_Math_Mat44uMultiplyMatrix();
|
|
static const char* testSST_Math_Mat44uMultiplyMatrixLocal();
|
|
static const char* testSST_Math_Mat44uMultiplyVector();
|
|
static const char* testSST_Math_Mat44uMultiplyVectorLocal();
|
|
static const char* testSST_Math_Mat44uTranspose();
|
|
static const char* testSST_Math_Mat44uTransposeLocal();
|
|
// List of unit tests
|
|
ZUnitTest SST_Math_Mat44uUnitTests[] =
|
|
{
|
|
{ "testSST_Math_Mat44uAdd " , testSST_Math_Mat44uAdd },
|
|
{ "testSST_Math_Mat44uAddLocal " , testSST_Math_Mat44uAddLocal },
|
|
{ "testSST_Math_Mat44uSubtract " , testSST_Math_Mat44uSubtract },
|
|
{ "testSST_Math_Mat44uSubtractLocal " , testSST_Math_Mat44uSubtractLocal },
|
|
{ "testSST_Math_Mat44uMultiplyElementwise " , testSST_Math_Mat44uMultiplyElementwise },
|
|
{ "testSST_Math_Mat44uMultiplyElementwiseLocal " , testSST_Math_Mat44uMultiplyElementwiseLocal },
|
|
{ "testSST_Math_Mat44uMultiplyScalar " , testSST_Math_Mat44uMultiplyScalar },
|
|
{ "testSST_Math_Mat44uMultiplyScalarLocal " , testSST_Math_Mat44uMultiplyScalarLocal },
|
|
{ "testSST_Math_Mat44uMultiplyMatrix " , testSST_Math_Mat44uMultiplyMatrix },
|
|
{ "testSST_Math_Mat44uMultiplyMatrixLocal " , testSST_Math_Mat44uMultiplyMatrixLocal },
|
|
{ "testSST_Math_Mat44uMultiplyVector " , testSST_Math_Mat44uMultiplyVector },
|
|
{ "testSST_Math_Mat44uMultiplyVectorLocal " , testSST_Math_Mat44uMultiplyVectorLocal },
|
|
{ "testSST_Math_Mat44uTranspose " , testSST_Math_Mat44uTranspose },
|
|
{ "testSST_Math_Mat44uTransposeLocal " , testSST_Math_Mat44uTransposeLocal }
|
|
};
|
|
DECLARE_ZTESTBLOCK(SST_Math_Mat44u)
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uAdd(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
SST_Mat44u A; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 32;
|
|
X.v[1] = 39;
|
|
X.v[2] = 38;
|
|
X.v[3] = 32;
|
|
X.v[4] = 2;
|
|
X.v[5] = 38;
|
|
X.v[6] = 5;
|
|
X.v[7] = 1;
|
|
X.v[8] = 31;
|
|
X.v[9] = 30;
|
|
X.v[10] = 20;
|
|
X.v[11] = 26;
|
|
X.v[12] = 0;
|
|
X.v[13] = 2;
|
|
X.v[14] = 9;
|
|
X.v[15] = 13;
|
|
Y.v[0] = 25;
|
|
Y.v[1] = 38;
|
|
Y.v[2] = 28;
|
|
Y.v[3] = 18;
|
|
Y.v[4] = 7;
|
|
Y.v[5] = 3;
|
|
Y.v[6] = 13;
|
|
Y.v[7] = 2;
|
|
Y.v[8] = 27;
|
|
Y.v[9] = 30;
|
|
Y.v[10] = 18;
|
|
Y.v[11] = 14;
|
|
Y.v[12] = 25;
|
|
Y.v[13] = 6;
|
|
Y.v[14] = 16;
|
|
Y.v[15] = 22;
|
|
/*
|
|
[[32 2 31 0]
|
|
[39 38 30 2]
|
|
[38 5 20 9]
|
|
[32 1 26 13]]
|
|
[[25 7 27 25]
|
|
[38 3 30 6]
|
|
[28 13 18 16]
|
|
[18 2 14 22]]
|
|
[[57 9 58 25]
|
|
[77 41 60 8]
|
|
[66 18 38 25]
|
|
[50 3 40 35]]
|
|
*/
|
|
SST_Math_Mat44uAdd(&X,&Y,&A);
|
|
TASSERT((A.v[0])==(57),"Entry _a11 failed!");
|
|
TASSERT((A.v[4])==(9),"Entry _a12 failed!");
|
|
TASSERT((A.v[8])==(58),"Entry _a13 failed!");
|
|
TASSERT((A.v[12])==(25),"Entry _a14 failed!");
|
|
TASSERT((A.v[1])==(77),"Entry _a21 failed!");
|
|
TASSERT((A.v[5])==(41),"Entry _a22 failed!");
|
|
TASSERT((A.v[9])==(60),"Entry _a23 failed!");
|
|
TASSERT((A.v[13])==(8),"Entry _a24 failed!");
|
|
TASSERT((A.v[2])==(66),"Entry _a31 failed!");
|
|
TASSERT((A.v[6])==(18),"Entry _a32 failed!");
|
|
TASSERT((A.v[10])==(38),"Entry _a33 failed!");
|
|
TASSERT((A.v[14])==(25),"Entry _a34 failed!");
|
|
TASSERT((A.v[3])==(50),"Entry _a41 failed!");
|
|
TASSERT((A.v[7])==(3),"Entry _a42 failed!");
|
|
TASSERT((A.v[11])==(40),"Entry _a43 failed!");
|
|
TASSERT((A.v[15])==(35),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uAddLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 10;
|
|
X.v[1] = 26;
|
|
X.v[2] = 21;
|
|
X.v[3] = 18;
|
|
X.v[4] = 20;
|
|
X.v[5] = 0;
|
|
X.v[6] = 18;
|
|
X.v[7] = 37;
|
|
X.v[8] = 35;
|
|
X.v[9] = 37;
|
|
X.v[10] = 21;
|
|
X.v[11] = 28;
|
|
X.v[12] = 12;
|
|
X.v[13] = 17;
|
|
X.v[14] = 22;
|
|
X.v[15] = 20;
|
|
Y.v[0] = 39;
|
|
Y.v[1] = 20;
|
|
Y.v[2] = 11;
|
|
Y.v[3] = 8;
|
|
Y.v[4] = 8;
|
|
Y.v[5] = 32;
|
|
Y.v[6] = 19;
|
|
Y.v[7] = 18;
|
|
Y.v[8] = 3;
|
|
Y.v[9] = 34;
|
|
Y.v[10] = 7;
|
|
Y.v[11] = 16;
|
|
Y.v[12] = 18;
|
|
Y.v[13] = 23;
|
|
Y.v[14] = 1;
|
|
Y.v[15] = 1;
|
|
/*
|
|
[[10 20 35 12]
|
|
[26 0 37 17]
|
|
[21 18 21 22]
|
|
[18 37 28 20]]
|
|
[[39 8 3 18]
|
|
[20 32 34 23]
|
|
[11 19 7 1]
|
|
[ 8 18 16 1]]
|
|
[[49 28 38 30]
|
|
[46 32 71 40]
|
|
[32 37 28 23]
|
|
[26 55 44 21]]
|
|
*/
|
|
SST_Math_Mat44uAddLocal(&X,&Y); /* for accuracy */
|
|
TASSERT((X.v[0])==(49),"Entry _a11 failed!");
|
|
TASSERT((X.v[4])==(28),"Entry _a12 failed!");
|
|
TASSERT((X.v[8])==(38),"Entry _a13 failed!");
|
|
TASSERT((X.v[12])==(30),"Entry _a14 failed!");
|
|
TASSERT((X.v[1])==(46),"Entry _a21 failed!");
|
|
TASSERT((X.v[5])==(32),"Entry _a22 failed!");
|
|
TASSERT((X.v[9])==(71),"Entry _a23 failed!");
|
|
TASSERT((X.v[13])==(40),"Entry _a24 failed!");
|
|
TASSERT((X.v[2])==(32),"Entry _a31 failed!");
|
|
TASSERT((X.v[6])==(37),"Entry _a32 failed!");
|
|
TASSERT((X.v[10])==(28),"Entry _a33 failed!");
|
|
TASSERT((X.v[14])==(23),"Entry _a34 failed!");
|
|
TASSERT((X.v[3])==(26),"Entry _a41 failed!");
|
|
TASSERT((X.v[7])==(55),"Entry _a42 failed!");
|
|
TASSERT((X.v[11])==(44),"Entry _a43 failed!");
|
|
TASSERT((X.v[15])==(21),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uSubtract(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
SST_Mat44u A; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 34;
|
|
X.v[1] = 21;
|
|
X.v[2] = 8;
|
|
X.v[3] = 38;
|
|
X.v[4] = 13;
|
|
X.v[5] = 11;
|
|
X.v[6] = 12;
|
|
X.v[7] = 34;
|
|
X.v[8] = 11;
|
|
X.v[9] = 6;
|
|
X.v[10] = 4;
|
|
X.v[11] = 25;
|
|
X.v[12] = 25;
|
|
X.v[13] = 1;
|
|
X.v[14] = 26;
|
|
X.v[15] = 35;
|
|
Y.v[0] = 21;
|
|
Y.v[1] = 26;
|
|
Y.v[2] = 4;
|
|
Y.v[3] = 5;
|
|
Y.v[4] = 0;
|
|
Y.v[5] = 13;
|
|
Y.v[6] = 32;
|
|
Y.v[7] = 37;
|
|
Y.v[8] = 16;
|
|
Y.v[9] = 39;
|
|
Y.v[10] = 10;
|
|
Y.v[11] = 12;
|
|
Y.v[12] = 28;
|
|
Y.v[13] = 4;
|
|
Y.v[14] = 3;
|
|
Y.v[15] = 23;
|
|
/*
|
|
[[34 13 11 25]
|
|
[21 11 6 1]
|
|
[ 8 12 4 26]
|
|
[38 34 25 35]]
|
|
[[21 0 16 28]
|
|
[26 13 39 4]
|
|
[ 4 32 10 3]
|
|
[ 5 37 12 23]]
|
|
[[ 13 13 4294967291 4294967293]
|
|
[4294967291 4294967294 4294967263 4294967293]
|
|
[ 4 4294967276 4294967290 23]
|
|
[ 33 4294967293 13 12]]
|
|
*/
|
|
SST_Math_Mat44uSubtract(&X,&Y,&A);
|
|
TASSERT((A.v[0])==(13),"Entry _a11 failed!");
|
|
TASSERT((A.v[4])==(13),"Entry _a12 failed!");
|
|
TASSERT((A.v[8])==(4294967291),"Entry _a13 failed!");
|
|
TASSERT((A.v[12])==(4294967293),"Entry _a14 failed!");
|
|
TASSERT((A.v[1])==(4294967291),"Entry _a21 failed!");
|
|
TASSERT((A.v[5])==(4294967294),"Entry _a22 failed!");
|
|
TASSERT((A.v[9])==(4294967263),"Entry _a23 failed!");
|
|
TASSERT((A.v[13])==(4294967293),"Entry _a24 failed!");
|
|
TASSERT((A.v[2])==(4),"Entry _a31 failed!");
|
|
TASSERT((A.v[6])==(4294967276),"Entry _a32 failed!");
|
|
TASSERT((A.v[10])==(4294967290),"Entry _a33 failed!");
|
|
TASSERT((A.v[14])==(23),"Entry _a34 failed!");
|
|
TASSERT((A.v[3])==(33),"Entry _a41 failed!");
|
|
TASSERT((A.v[7])==(4294967293),"Entry _a42 failed!");
|
|
TASSERT((A.v[11])==(13),"Entry _a43 failed!");
|
|
TASSERT((A.v[15])==(12),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uSubtractLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 4;
|
|
X.v[1] = 7;
|
|
X.v[2] = 8;
|
|
X.v[3] = 17;
|
|
X.v[4] = 10;
|
|
X.v[5] = 19;
|
|
X.v[6] = 14;
|
|
X.v[7] = 16;
|
|
X.v[8] = 33;
|
|
X.v[9] = 17;
|
|
X.v[10] = 1;
|
|
X.v[11] = 13;
|
|
X.v[12] = 36;
|
|
X.v[13] = 17;
|
|
X.v[14] = 23;
|
|
X.v[15] = 0;
|
|
Y.v[0] = 9;
|
|
Y.v[1] = 21;
|
|
Y.v[2] = 35;
|
|
Y.v[3] = 24;
|
|
Y.v[4] = 2;
|
|
Y.v[5] = 9;
|
|
Y.v[6] = 31;
|
|
Y.v[7] = 23;
|
|
Y.v[8] = 37;
|
|
Y.v[9] = 31;
|
|
Y.v[10] = 33;
|
|
Y.v[11] = 24;
|
|
Y.v[12] = 16;
|
|
Y.v[13] = 21;
|
|
Y.v[14] = 25;
|
|
Y.v[15] = 35;
|
|
/*
|
|
[[ 4 10 33 36]
|
|
[ 7 19 17 17]
|
|
[ 8 14 1 23]
|
|
[17 16 13 0]]
|
|
[[ 9 2 37 16]
|
|
[21 9 31 21]
|
|
[35 31 33 25]
|
|
[24 23 24 35]]
|
|
[[4294967291 8 4294967292 20]
|
|
[4294967282 10 4294967282 4294967292]
|
|
[4294967269 4294967279 4294967264 4294967294]
|
|
[4294967289 4294967289 4294967285 4294967261]]
|
|
*/
|
|
SST_Math_Mat44uSubtractLocal(&X,&Y); /* for accuracy */
|
|
TASSERT((X.v[0])==(4294967291),"Entry _a11 failed!");
|
|
TASSERT((X.v[4])==(8),"Entry _a12 failed!");
|
|
TASSERT((X.v[8])==(4294967292),"Entry _a13 failed!");
|
|
TASSERT((X.v[12])==(20),"Entry _a14 failed!");
|
|
TASSERT((X.v[1])==(4294967282),"Entry _a21 failed!");
|
|
TASSERT((X.v[5])==(10),"Entry _a22 failed!");
|
|
TASSERT((X.v[9])==(4294967282),"Entry _a23 failed!");
|
|
TASSERT((X.v[13])==(4294967292),"Entry _a24 failed!");
|
|
TASSERT((X.v[2])==(4294967269),"Entry _a31 failed!");
|
|
TASSERT((X.v[6])==(4294967279),"Entry _a32 failed!");
|
|
TASSERT((X.v[10])==(4294967264),"Entry _a33 failed!");
|
|
TASSERT((X.v[14])==(4294967294),"Entry _a34 failed!");
|
|
TASSERT((X.v[3])==(4294967289),"Entry _a41 failed!");
|
|
TASSERT((X.v[7])==(4294967289),"Entry _a42 failed!");
|
|
TASSERT((X.v[11])==(4294967285),"Entry _a43 failed!");
|
|
TASSERT((X.v[15])==(4294967261),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyElementwise(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
SST_Mat44u A; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 5;
|
|
X.v[1] = 38;
|
|
X.v[2] = 32;
|
|
X.v[3] = 15;
|
|
X.v[4] = 33;
|
|
X.v[5] = 21;
|
|
X.v[6] = 36;
|
|
X.v[7] = 8;
|
|
X.v[8] = 6;
|
|
X.v[9] = 13;
|
|
X.v[10] = 8;
|
|
X.v[11] = 4;
|
|
X.v[12] = 6;
|
|
X.v[13] = 13;
|
|
X.v[14] = 17;
|
|
X.v[15] = 6;
|
|
Y.v[0] = 35;
|
|
Y.v[1] = 27;
|
|
Y.v[2] = 20;
|
|
Y.v[3] = 1;
|
|
Y.v[4] = 20;
|
|
Y.v[5] = 23;
|
|
Y.v[6] = 39;
|
|
Y.v[7] = 38;
|
|
Y.v[8] = 31;
|
|
Y.v[9] = 27;
|
|
Y.v[10] = 33;
|
|
Y.v[11] = 32;
|
|
Y.v[12] = 33;
|
|
Y.v[13] = 9;
|
|
Y.v[14] = 37;
|
|
Y.v[15] = 31;
|
|
/*
|
|
[[ 5 33 6 6]
|
|
[38 21 13 13]
|
|
[32 36 8 17]
|
|
[15 8 4 6]]
|
|
[[35 20 31 33]
|
|
[27 23 27 9]
|
|
[20 39 33 37]
|
|
[ 1 38 32 31]]
|
|
[[ 175 660 186 198]
|
|
[1026 483 351 117]
|
|
[ 640 1404 264 629]
|
|
[ 15 304 128 186]]
|
|
*/
|
|
SST_Math_Mat44uMultiplyElementwise(&X, &Y, &A);
|
|
TASSERT((A.v[0])==(175),"Entry _a11 failed!");
|
|
TASSERT((A.v[4])==(660),"Entry _a12 failed!");
|
|
TASSERT((A.v[8])==(186),"Entry _a13 failed!");
|
|
TASSERT((A.v[12])==(198),"Entry _a14 failed!");
|
|
TASSERT((A.v[1])==(1026),"Entry _a21 failed!");
|
|
TASSERT((A.v[5])==(483),"Entry _a22 failed!");
|
|
TASSERT((A.v[9])==(351),"Entry _a23 failed!");
|
|
TASSERT((A.v[13])==(117),"Entry _a24 failed!");
|
|
TASSERT((A.v[2])==(640),"Entry _a31 failed!");
|
|
TASSERT((A.v[6])==(1404),"Entry _a32 failed!");
|
|
TASSERT((A.v[10])==(264),"Entry _a33 failed!");
|
|
TASSERT((A.v[14])==(629),"Entry _a34 failed!");
|
|
TASSERT((A.v[3])==(15),"Entry _a41 failed!");
|
|
TASSERT((A.v[7])==(304),"Entry _a42 failed!");
|
|
TASSERT((A.v[11])==(128),"Entry _a43 failed!");
|
|
TASSERT((A.v[15])==(186),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyElementwiseLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 22;
|
|
X.v[1] = 11;
|
|
X.v[2] = 20;
|
|
X.v[3] = 39;
|
|
X.v[4] = 30;
|
|
X.v[5] = 37;
|
|
X.v[6] = 8;
|
|
X.v[7] = 20;
|
|
X.v[8] = 34;
|
|
X.v[9] = 12;
|
|
X.v[10] = 21;
|
|
X.v[11] = 6;
|
|
X.v[12] = 36;
|
|
X.v[13] = 26;
|
|
X.v[14] = 0;
|
|
X.v[15] = 33;
|
|
Y.v[0] = 38;
|
|
Y.v[1] = 15;
|
|
Y.v[2] = 9;
|
|
Y.v[3] = 3;
|
|
Y.v[4] = 2;
|
|
Y.v[5] = 13;
|
|
Y.v[6] = 26;
|
|
Y.v[7] = 18;
|
|
Y.v[8] = 21;
|
|
Y.v[9] = 34;
|
|
Y.v[10] = 39;
|
|
Y.v[11] = 14;
|
|
Y.v[12] = 39;
|
|
Y.v[13] = 19;
|
|
Y.v[14] = 22;
|
|
Y.v[15] = 35;
|
|
/*
|
|
[[22 30 34 36]
|
|
[11 37 12 26]
|
|
[20 8 21 0]
|
|
[39 20 6 33]]
|
|
[[38 2 21 39]
|
|
[15 13 34 19]
|
|
[ 9 26 39 22]
|
|
[ 3 18 14 35]]
|
|
[[ 836 60 714 1404]
|
|
[ 165 481 408 494]
|
|
[ 180 208 819 0]
|
|
[ 117 360 84 1155]]
|
|
*/
|
|
SST_Math_Mat44uMultiplyElementwiseLocal(&X,&Y);
|
|
TASSERT((X.v[0])==(836),"Entry _a11 failed!");
|
|
TASSERT((X.v[4])==(60),"Entry _a12 failed!");
|
|
TASSERT((X.v[8])==(714),"Entry _a13 failed!");
|
|
TASSERT((X.v[12])==(1404),"Entry _a14 failed!");
|
|
TASSERT((X.v[1])==(165),"Entry _a21 failed!");
|
|
TASSERT((X.v[5])==(481),"Entry _a22 failed!");
|
|
TASSERT((X.v[9])==(408),"Entry _a23 failed!");
|
|
TASSERT((X.v[13])==(494),"Entry _a24 failed!");
|
|
TASSERT((X.v[2])==(180),"Entry _a31 failed!");
|
|
TASSERT((X.v[6])==(208),"Entry _a32 failed!");
|
|
TASSERT((X.v[10])==(819),"Entry _a33 failed!");
|
|
TASSERT((X.v[14])==(0),"Entry _a34 failed!");
|
|
TASSERT((X.v[3])==(117),"Entry _a41 failed!");
|
|
TASSERT((X.v[7])==(360),"Entry _a42 failed!");
|
|
TASSERT((X.v[11])==(84),"Entry _a43 failed!");
|
|
TASSERT((X.v[15])==(1155),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyScalar(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u A; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 26;
|
|
X.v[1] = 25;
|
|
X.v[2] = 4;
|
|
X.v[3] = 18;
|
|
X.v[4] = 33;
|
|
X.v[5] = 28;
|
|
X.v[6] = 15;
|
|
X.v[7] = 21;
|
|
X.v[8] = 30;
|
|
X.v[9] = 19;
|
|
X.v[10] = 33;
|
|
X.v[11] = 25;
|
|
X.v[12] = 23;
|
|
X.v[13] = 19;
|
|
X.v[14] = 37;
|
|
X.v[15] = 38;
|
|
/*
|
|
[[26 33 30 23]
|
|
[25 28 19 19]
|
|
[ 4 15 33 37]
|
|
[18 21 25 38]]
|
|
[[52 66 60 46]
|
|
[50 56 38 38]
|
|
[ 8 30 66 74]
|
|
[36 42 50 76]]
|
|
*/
|
|
SST_Math_Mat44uMultiplyScalar(&X,2,&A);
|
|
TASSERT((A.v[0])==(52),"Entry _a11 failed!");
|
|
TASSERT((A.v[4])==(66),"Entry _a12 failed!");
|
|
TASSERT((A.v[8])==(60),"Entry _a13 failed!");
|
|
TASSERT((A.v[12])==(46),"Entry _a14 failed!");
|
|
TASSERT((A.v[1])==(50),"Entry _a21 failed!");
|
|
TASSERT((A.v[5])==(56),"Entry _a22 failed!");
|
|
TASSERT((A.v[9])==(38),"Entry _a23 failed!");
|
|
TASSERT((A.v[13])==(38),"Entry _a24 failed!");
|
|
TASSERT((A.v[2])==(8),"Entry _a31 failed!");
|
|
TASSERT((A.v[6])==(30),"Entry _a32 failed!");
|
|
TASSERT((A.v[10])==(66),"Entry _a33 failed!");
|
|
TASSERT((A.v[14])==(74),"Entry _a34 failed!");
|
|
TASSERT((A.v[3])==(36),"Entry _a41 failed!");
|
|
TASSERT((A.v[7])==(42),"Entry _a42 failed!");
|
|
TASSERT((A.v[11])==(50),"Entry _a43 failed!");
|
|
TASSERT((A.v[15])==(76),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyScalarLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 28;
|
|
X.v[1] = 2;
|
|
X.v[2] = 32;
|
|
X.v[3] = 36;
|
|
X.v[4] = 14;
|
|
X.v[5] = 31;
|
|
X.v[6] = 18;
|
|
X.v[7] = 34;
|
|
X.v[8] = 14;
|
|
X.v[9] = 7;
|
|
X.v[10] = 33;
|
|
X.v[11] = 0;
|
|
X.v[12] = 28;
|
|
X.v[13] = 22;
|
|
X.v[14] = 14;
|
|
X.v[15] = 21;
|
|
/*
|
|
[[28 14 14 28]
|
|
[ 2 31 7 22]
|
|
[32 18 33 14]
|
|
[36 34 0 21]]
|
|
[[56 28 28 56]
|
|
[ 4 62 14 44]
|
|
[64 36 66 28]
|
|
[72 68 0 42]]
|
|
*/
|
|
SST_Math_Mat44uMultiplyScalarLocal(&X,2);
|
|
TASSERT((X.v[0])==(56),"Entry _a11 failed!");
|
|
TASSERT((X.v[4])==(28),"Entry _a12 failed!");
|
|
TASSERT((X.v[8])==(28),"Entry _a13 failed!");
|
|
TASSERT((X.v[12])==(56),"Entry _a14 failed!");
|
|
TASSERT((X.v[1])==(4),"Entry _a21 failed!");
|
|
TASSERT((X.v[5])==(62),"Entry _a22 failed!");
|
|
TASSERT((X.v[9])==(14),"Entry _a23 failed!");
|
|
TASSERT((X.v[13])==(44),"Entry _a24 failed!");
|
|
TASSERT((X.v[2])==(64),"Entry _a31 failed!");
|
|
TASSERT((X.v[6])==(36),"Entry _a32 failed!");
|
|
TASSERT((X.v[10])==(66),"Entry _a33 failed!");
|
|
TASSERT((X.v[14])==(28),"Entry _a34 failed!");
|
|
TASSERT((X.v[3])==(72),"Entry _a41 failed!");
|
|
TASSERT((X.v[7])==(68),"Entry _a42 failed!");
|
|
TASSERT((X.v[11])==(0),"Entry _a43 failed!");
|
|
TASSERT((X.v[15])==(42),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyMatrix(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
SST_Mat44u A; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 33;
|
|
X.v[1] = 22;
|
|
X.v[2] = 19;
|
|
X.v[3] = 4;
|
|
X.v[4] = 2;
|
|
X.v[5] = 31;
|
|
X.v[6] = 36;
|
|
X.v[7] = 10;
|
|
X.v[8] = 7;
|
|
X.v[9] = 19;
|
|
X.v[10] = 15;
|
|
X.v[11] = 7;
|
|
X.v[12] = 3;
|
|
X.v[13] = 38;
|
|
X.v[14] = 2;
|
|
X.v[15] = 23;
|
|
Y.v[0] = 28;
|
|
Y.v[1] = 32;
|
|
Y.v[2] = 26;
|
|
Y.v[3] = 8;
|
|
Y.v[4] = 18;
|
|
Y.v[5] = 38;
|
|
Y.v[6] = 19;
|
|
Y.v[7] = 11;
|
|
Y.v[8] = 20;
|
|
Y.v[9] = 33;
|
|
Y.v[10] = 12;
|
|
Y.v[11] = 9;
|
|
Y.v[12] = 21;
|
|
Y.v[13] = 15;
|
|
Y.v[14] = 31;
|
|
Y.v[15] = 10;
|
|
/*
|
|
X
|
|
[[33 2 7 3]
|
|
[22 31 19 38]
|
|
[19 36 15 2]
|
|
[ 4 10 7 23]]
|
|
Y
|
|
[[28 18 20 21]
|
|
[32 38 33 15]
|
|
[26 19 12 31]
|
|
[ 8 11 9 10]]
|
|
[[1194 836 837 970]
|
|
[2406 2353 2033 1896]
|
|
[2090 2017 1766 1424]
|
|
[ 798 838 701 681]]
|
|
*/
|
|
SST_Math_Mat44uMultiplyMatrix(&X,&Y,&A);
|
|
TASSERT((A.v[0])==(1194),"Entry _a11 failed!");
|
|
TASSERT((A.v[4])==(836),"Entry _a12 failed!");
|
|
TASSERT((A.v[8])==(837),"Entry _a13 failed!");
|
|
TASSERT((A.v[12])==(970),"Entry _a14 failed!");
|
|
TASSERT((A.v[1])==(2406),"Entry _a21 failed!");
|
|
TASSERT((A.v[5])==(2353),"Entry _a22 failed!");
|
|
TASSERT((A.v[9])==(2033),"Entry _a23 failed!");
|
|
TASSERT((A.v[13])==(1896),"Entry _a24 failed!");
|
|
TASSERT((A.v[2])==(2090),"Entry _a31 failed!");
|
|
TASSERT((A.v[6])==(2017),"Entry _a32 failed!");
|
|
TASSERT((A.v[10])==(1766),"Entry _a33 failed!");
|
|
TASSERT((A.v[14])==(1424),"Entry _a34 failed!");
|
|
TASSERT((A.v[3])==(798),"Entry _a41 failed!");
|
|
TASSERT((A.v[7])==(838),"Entry _a42 failed!");
|
|
TASSERT((A.v[11])==(701),"Entry _a43 failed!");
|
|
TASSERT((A.v[15])==(681),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyMatrixLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u Y; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 29;
|
|
X.v[1] = 16;
|
|
X.v[2] = 1;
|
|
X.v[3] = 34;
|
|
X.v[4] = 22;
|
|
X.v[5] = 28;
|
|
X.v[6] = 15;
|
|
X.v[7] = 35;
|
|
X.v[8] = 4;
|
|
X.v[9] = 4;
|
|
X.v[10] = 18;
|
|
X.v[11] = 11;
|
|
X.v[12] = 30;
|
|
X.v[13] = 1;
|
|
X.v[14] = 34;
|
|
X.v[15] = 17;
|
|
Y.v[0] = 35;
|
|
Y.v[1] = 5;
|
|
Y.v[2] = 10;
|
|
Y.v[3] = 16;
|
|
Y.v[4] = 31;
|
|
Y.v[5] = 11;
|
|
Y.v[6] = 15;
|
|
Y.v[7] = 26;
|
|
Y.v[8] = 24;
|
|
Y.v[9] = 9;
|
|
Y.v[10] = 12;
|
|
Y.v[11] = 25;
|
|
Y.v[12] = 26;
|
|
Y.v[13] = 19;
|
|
Y.v[14] = 14;
|
|
Y.v[15] = 38;
|
|
/*
|
|
X
|
|
[[29 22 4 30]
|
|
[16 28 4 1]
|
|
[ 1 15 18 34]
|
|
[34 35 11 17]]
|
|
Y
|
|
[[35 31 24 26]
|
|
[ 5 11 9 19]
|
|
[10 15 12 14]
|
|
[16 26 25 38]]
|
|
X
|
|
[[1645 1981 1692 2368]
|
|
[ 756 890 709 1042]
|
|
[ 834 1350 1225 1855]
|
|
[1747 2046 1688 2349]]
|
|
*/
|
|
SST_Math_Mat44uMultiplyMatrixLocal(&X,&Y);
|
|
TASSERT((X.v[0])==(1645),"Entry _a11 failed!");
|
|
TASSERT((X.v[4])==(1981),"Entry _a12 failed!");
|
|
TASSERT((X.v[8])==(1692),"Entry _a13 failed!");
|
|
TASSERT((X.v[12])==(2368),"Entry _a14 failed!");
|
|
TASSERT((X.v[1])==(756),"Entry _a21 failed!");
|
|
TASSERT((X.v[5])==(890),"Entry _a22 failed!");
|
|
TASSERT((X.v[9])==(709),"Entry _a23 failed!");
|
|
TASSERT((X.v[13])==(1042),"Entry _a24 failed!");
|
|
TASSERT((X.v[2])==(834),"Entry _a31 failed!");
|
|
TASSERT((X.v[6])==(1350),"Entry _a32 failed!");
|
|
TASSERT((X.v[10])==(1225),"Entry _a33 failed!");
|
|
TASSERT((X.v[14])==(1855),"Entry _a34 failed!");
|
|
TASSERT((X.v[3])==(1747),"Entry _a41 failed!");
|
|
TASSERT((X.v[7])==(2046),"Entry _a42 failed!");
|
|
TASSERT((X.v[11])==(1688),"Entry _a43 failed!");
|
|
TASSERT((X.v[15])==(2349),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyVector(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Vec4u v; /* 4 vector */
|
|
SST_Vec4u w; /* 4 vector */
|
|
/* Resetting test vectors / mats */
|
|
v.v[0] = 34;
|
|
v.v[1] = 14;
|
|
v.v[2] = 1;
|
|
v.v[3] = 10;
|
|
X.v[0] = 26;
|
|
X.v[1] = 24;
|
|
X.v[2] = 24;
|
|
X.v[3] = 37;
|
|
X.v[4] = 9;
|
|
X.v[5] = 35;
|
|
X.v[6] = 10;
|
|
X.v[7] = 37;
|
|
X.v[8] = 6;
|
|
X.v[9] = 9;
|
|
X.v[10] = 35;
|
|
X.v[11] = 34;
|
|
X.v[12] = 0;
|
|
X.v[13] = 22;
|
|
X.v[14] = 31;
|
|
X.v[15] = 17;
|
|
/*
|
|
X
|
|
[[26 9 6 0]
|
|
[24 35 9 22]
|
|
[24 10 35 31]
|
|
[37 37 34 17]]
|
|
v
|
|
[34 14 1 10]
|
|
w
|
|
[1016 1535 1301 1980]
|
|
*/
|
|
SST_Math_Mat44uMultiplyVector(&X,&v,&w);
|
|
TASSERT((w.v[0])==(1016),"Entry .v[0] failed!");
|
|
TASSERT((w.v[1])==(1535),"Entry .v[1] failed!");
|
|
TASSERT((w.v[2])==(1301),"Entry .v[2] failed!");
|
|
TASSERT((w.v[3])==(1980),"Entry .v[3] failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uMultiplyVectorLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Vec4u v; /* 4 vector */
|
|
/* Resetting test vectors / mats */
|
|
v.v[0] = 33;
|
|
v.v[1] = 29;
|
|
v.v[2] = 13;
|
|
v.v[3] = 20;
|
|
X.v[0] = 37;
|
|
X.v[1] = 11;
|
|
X.v[2] = 37;
|
|
X.v[3] = 19;
|
|
X.v[4] = 20;
|
|
X.v[5] = 32;
|
|
X.v[6] = 19;
|
|
X.v[7] = 17;
|
|
X.v[8] = 4;
|
|
X.v[9] = 12;
|
|
X.v[10] = 24;
|
|
X.v[11] = 8;
|
|
X.v[12] = 33;
|
|
X.v[13] = 27;
|
|
X.v[14] = 21;
|
|
X.v[15] = 32;
|
|
/*
|
|
X
|
|
[[37 20 4 33]
|
|
[11 32 12 27]
|
|
[37 19 24 21]
|
|
[19 17 8 32]]
|
|
v
|
|
[33 29 13 20]
|
|
v
|
|
[2513 1987 2504 1864]
|
|
*/
|
|
SST_Math_Mat44uMultiplyVectorLocal(&X,&v);
|
|
TASSERT((v.v[0])==(2513),"Entry .v[0] failed!");
|
|
TASSERT((v.v[1])==(1987),"Entry .v[1] failed!");
|
|
TASSERT((v.v[2])==(2504),"Entry .v[2] failed!");
|
|
TASSERT((v.v[3])==(1864),"Entry .v[3] failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uTranspose(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
SST_Mat44u A; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 7;
|
|
X.v[1] = 19;
|
|
X.v[2] = 31;
|
|
X.v[3] = 31;
|
|
X.v[4] = 21;
|
|
X.v[5] = 10;
|
|
X.v[6] = 1;
|
|
X.v[7] = 0;
|
|
X.v[8] = 5;
|
|
X.v[9] = 3;
|
|
X.v[10] = 3;
|
|
X.v[11] = 24;
|
|
X.v[12] = 0;
|
|
X.v[13] = 0;
|
|
X.v[14] = 4;
|
|
X.v[15] = 0;
|
|
SST_Math_Mat44uTranspose(&X,&A);
|
|
TASSERT((A.v[0])==(7),"Entry _a11 failed!");
|
|
TASSERT((A.v[4])==(19),"Entry _a12 failed!");
|
|
TASSERT((A.v[8])==(31),"Entry _a13 failed!");
|
|
TASSERT((A.v[12])==(31),"Entry _a14 failed!");
|
|
TASSERT((A.v[1])==(21),"Entry _a21 failed!");
|
|
TASSERT((A.v[5])==(10),"Entry _a22 failed!");
|
|
TASSERT((A.v[9])==(1),"Entry _a23 failed!");
|
|
TASSERT((A.v[13])==(0),"Entry _a24 failed!");
|
|
TASSERT((A.v[2])==(5),"Entry _a31 failed!");
|
|
TASSERT((A.v[6])==(3),"Entry _a32 failed!");
|
|
TASSERT((A.v[10])==(3),"Entry _a33 failed!");
|
|
TASSERT((A.v[14])==(24),"Entry _a34 failed!");
|
|
TASSERT((A.v[3])==(0),"Entry _a41 failed!");
|
|
TASSERT((A.v[7])==(0),"Entry _a42 failed!");
|
|
TASSERT((A.v[11])==(4),"Entry _a43 failed!");
|
|
TASSERT((A.v[15])==(0),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|
|
static const char* testSST_Math_Mat44uTransposeLocal(){
|
|
SST_Mat44u X; /* 4 x 4 matrix */
|
|
/* Resetting test vectors / mats */
|
|
X.v[0] = 30;
|
|
X.v[1] = 32;
|
|
X.v[2] = 4;
|
|
X.v[3] = 10;
|
|
X.v[4] = 31;
|
|
X.v[5] = 33;
|
|
X.v[6] = 36;
|
|
X.v[7] = 2;
|
|
X.v[8] = 27;
|
|
X.v[9] = 12;
|
|
X.v[10] = 7;
|
|
X.v[11] = 11;
|
|
X.v[12] = 38;
|
|
X.v[13] = 23;
|
|
X.v[14] = 24;
|
|
X.v[15] = 22;
|
|
SST_Math_Mat44uTransposeLocal(&X);
|
|
TASSERT((X.v[0])==(30),"Entry _a11 failed!");
|
|
TASSERT((X.v[4])==(32),"Entry _a12 failed!");
|
|
TASSERT((X.v[8])==(4),"Entry _a13 failed!");
|
|
TASSERT((X.v[12])==(10),"Entry _a14 failed!");
|
|
TASSERT((X.v[1])==(31),"Entry _a21 failed!");
|
|
TASSERT((X.v[5])==(33),"Entry _a22 failed!");
|
|
TASSERT((X.v[9])==(36),"Entry _a23 failed!");
|
|
TASSERT((X.v[13])==(2),"Entry _a24 failed!");
|
|
TASSERT((X.v[2])==(27),"Entry _a31 failed!");
|
|
TASSERT((X.v[6])==(12),"Entry _a32 failed!");
|
|
TASSERT((X.v[10])==(7),"Entry _a33 failed!");
|
|
TASSERT((X.v[14])==(11),"Entry _a34 failed!");
|
|
TASSERT((X.v[3])==(38),"Entry _a41 failed!");
|
|
TASSERT((X.v[7])==(23),"Entry _a42 failed!");
|
|
TASSERT((X.v[11])==(24),"Entry _a43 failed!");
|
|
TASSERT((X.v[15])==(22),"Entry _a44 failed!");
|
|
return ZTEST_SUCCESS;
|
|
}
|
|
|
|
/******************************************************************************/
|
|
|