Peano
Loading...
Searching...
No Matches
DynamicMatrixTest.cpp
Go to the documentation of this file.
1#include "DynamicMatrixTest.h"
3
4
6 TestCase ("tarch::la::DynamicMatrixTest") {
7}
8
9
11 testMethod (testBatchedMultiplyAoS);
12}
13
14
17 P = {
18 {0, 0, 0, 0, 0, 0, 0, 0},
19 {0, 1, 0, 0, 0, 0, 0, 0},
20 {0, 0, 0, 0, 0, 0, 0, 0},
21 {0, 1, 0, 0, 0, 0, 0, 0},
22 {0, 0, 0, 0, 0, 0, 0, 0},
23 {0, 0.666667, 0, 0.333333, 0, 0, 0, 0},
24 {0, 0, 0, 0, 0, 0, 0, 0},
25 {0, 0.333333, 0, 0.666667, 0, 0, 0, 0},
26 {0, 0, 0, 0, 0, 0, 0, 0},
27 {0, 0, 0, 1, 0, 0, 0, 0},
28 {0, 0, 0, 0, 0, 0, 0, 0},
29 {0, 0, 0, 0.666667, 0, 0.333333, 0, 0},
30 {0, 0, 0, 0, 0, 0, 0, 0},
31 {0, 0, 0, 0.333333, 0, 0.666667, 0, 0},
32 {0, 0, 0, 0, 0, 0, 0, 0},
33 {0, 0, 0, 0, 0, 1, 0, 0},
34 {0, 0, 0, 0, 0, 0, 0, 0},
35 {0, 0, 0, 0, 0, 0.666667, 0, 0.333333},
36 {0, 0, 0, 0, 0, 0, 0, 0},
37 {0, 0, 0, 0, 0, 0.333333, 0, 0.666667},
38 {0, 0, 0, 0, 0, 0, 0, 0},
39 {0, 0, 0, 0, 0, 0, 0, 1},
40 {0, 0, 0, 0, 0, 0, 0, 0},
41 {0, 0, 0, 0, 0, 0, 0, 1}
42 };
43
44 double Q[] = {
45 4.0, 0.0, 0.0, 0.0, 0.0, // Q[0] as AoS
46 0.1, 0.0, 0.0, 0.0, 0.0,
47 4.0, 0.0, 0.0, 0.0, 0.0,
48 0.1, 0.0, 0.0, 0.0, 0.0,
49 4.0, 0.0, 0.0, 0.0, 0.0,
50 0.1, 0.0, 0.0, 0.0, 0.0,
51 4.0, 0.0, 0.0, 0.0, 0.0,
52 0.1, 0.0, 0.0, 0.0, 0.0
53 };
54
55 double result[5*4*2];
56
57 P.batchedMultiplyAoS(
58 result, // image
59 Q, // preimage
60 5, // batch size, i.e. how often to apply it in one AoS rush
61 4*2,
62 0 // first block
63 );
64
65 validateEqualsWithParams1( result[0*5], 0.0, P.toString(true) );
66 validateEqualsWithParams1( result[1*5], 0.1, P.toString(true) );
67 validateEqualsWithParams1( result[2*5], 0.0, P.toString(true) );
68 validateEqualsWithParams1( result[3*5], 0.1, P.toString(true) );
69 validateEqualsWithParams1( result[4*5], 0.0, P.toString(true) );
70 validateEqualsWithParams1( result[5*5], 0.1, P.toString(true) );
71 validateEqualsWithParams1( result[6*5], 0.0, P.toString(true) );
72 validateEqualsWithParams1( result[7*5], 0.1, P.toString(true) );
73
74 P.batchedMultiplyAoS(
75 result, // image
76 Q, // preimage
77 5, // batch size, i.e. how often to apply it in one AoS rush
78 4*2,
79 8 // first block
80 );
81
82 validateEqualsWithParams1( result[0*5], 0.0, P.toString(true) );
83 validateEqualsWithParams1( result[1*5], 0.1, P.toString(true) );
84 validateEqualsWithParams1( result[2*5], 0.0, P.toString(true) );
85 validateEqualsWithParams1( result[3*5], 0.1, P.toString(true) );
86 validateEqualsWithParams1( result[4*5], 0.0, P.toString(true) );
87 validateEqualsWithParams1( result[5*5], 0.1, P.toString(true) );
88 validateEqualsWithParams1( result[6*5], 0.0, P.toString(true) );
89 validateEqualsWithParams1( result[7*5], 0.1, P.toString(true) );
90
91 P.batchedMultiplyAoS(
92 result, // image
93 Q, // preimage
94 5, // batch size, i.e. how often to apply it in one AoS rush
95 4*2,
96 16 // first block
97 );
98
99 validateEqualsWithParams1( result[0*5], 0.0, P.toString(true) );
100 validateEqualsWithParams1( result[1*5], 0.1, P.toString(true) );
101 validateEqualsWithParams1( result[2*5], 0.0, P.toString(true) );
102 validateEqualsWithParams1( result[3*5], 0.1, P.toString(true) );
103 validateEqualsWithParams1( result[4*5], 0.0, P.toString(true) );
104 validateEqualsWithParams1( result[5*5], 0.1, P.toString(true) );
105 validateEqualsWithParams1( result[6*5], 0.0, P.toString(true) );
106 validateEqualsWithParams1( result[7*5], 0.1, P.toString(true) );
107}
#define validateEqualsWithParams1(actualValue, validValue, param0)
Definition TestMacros.h:318
#define testMethod(name)
Run a test method and check for errors.
Definition TestMacros.h:24
float P
My standard matrix is a matrix where the size is fixed at compile time.
void testBatchedMultiplyAoS()
Tests constructors.
virtual void run() override
This routine is triggered by the TestCaseCollection.