4 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
20 #include "../../../matrix.h"
24 float arr0[2][2] = {{-2.243, 2.57}, {3.56, -3.02}};
25 float arr1[2][2] = {{2.2, 2.5}, {3.5, 3.0}};
26 float arr5[3][2] = {{0.22, 4.56}, {3.652, 5.86}, {1.430, 0.45}};
27 float arr11[1][3] = {{2.0, 3.0, 4.0}};
28 float arr12[3][1] = {{2.0}, {1.0}, {3.0}};
29 float arr15[2][3] = {{20.0, -40.0, 10.0}, {36.0, 52.0, -55.0}};
30 float arr3[3][3] = {{20.2, 40.5, 10.0}, {3.6, 52.0, 5.5}, {1.0, 45.5, 66.6}};
31 float arr4[3][3] = {{2.24, 0.5, 0.023}, {3.675, 5.32, 0.556}, {1.023, 45.75, 621.6}};
32 float arr8[3][3] = {{4.75, 0.65, 0.123}, {0.075, 5.302, 0.56}, {1.113, 0.475, 2.362}};
33 float arr9[3][3] = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}};
35 matrix<float, 2, 2> m1(arr0);
36 matrix<float, 2, 2> m2(arr1);
37 matrix<float, 2, 2> m3;
38 matrix<float, 3, 3> m10(arr3);
39 matrix<float, 3, 2> m11(arr5);
40 matrix<float, 3, 3> m6;
41 matrix<float, 3, 2> m13;
42 matrix<float, 3, 3> m12(arr4);
43 matrix<float, 3, 3> m15(arr8);
44 matrix<float, 1, 3> m20(arr11);
45 matrix<float, 3, 1> m21(arr12);
46 matrix<float, 2, 3> m22(arr15);
47 matrix<float, 3, 3> m9(arr9);
49 cout << "Constructor Test\n";
52 cout << "\n\nAddition\n";
55 cout << "\n" << m10 << "\n" << m15;
56 cout << "\nSum:\n" << m6 << endl;
57 cout << "\n" << m11 << "\n" << m11;
58 cout << "\nSum:\n" << m13 << endl;
60 cout << "\n\n\nSubtraction\n";
62 cout << "\n" << m10 << "\n" << m12;
63 cout << "\nDifference:\n" << m6 << endl;
65 cout << "\n\n\nMultiplication\n";
68 matrix<float, 1, 1> m7;
70 cout << "\n" << m10 << "\n" << m12;
71 cout << "\nProduct:\n" << m6 << endl;
72 cout << "\n" << m1 << "\n" << m2;
73 cout << "\nProduct:\n" << m3 << endl;
74 cout << "\n" << m20 << "\n" << m21;
75 cout << "\nProduct:\n" << m7 << endl;
76 cout << "\n" << m9 << "\n" << m21;
78 cout << "\nProduct:\n" << m21 << endl;
80 cout << "\n\n\nDivision\n";
82 cout << "\n" << m1 << "\n" << "2.5";
83 cout << "\nResult:\n" << m3 << endl;
84 m6 = m12 / (float)0.125;
85 cout << "\n" << m12 << "\n" << ".125";
86 cout << "\nResult:\n" << m6 << endl;
90 cout << "\n\n\nScalar addition\n";
93 cout << "\nNumber added:" << num;
95 cout << "\nResult:\n\n" << m3;
96 cout << "\nNumber added:" << num1;
97 cout << "\n\n" << m10;
98 cout << "\nResult:\n\n" << m6;
102 cout << "\n\n\nScalar subtraction\n";
105 cout << "\nNumber Subtracted:" << x;
106 cout << "\n\n" << m11;
107 cout << "\nResult:\n\n" << m13;
108 cout << "\nNumber Subtracted:" << x1;
109 cout << "\n\n" << m10;
110 cout << "\nResult:\n\n" << m6;
114 cout << "\n\n\nScalar multiplication\n";
117 cout << "\nNumber Multiplied:" << z;
118 cout << "\n\n" << m1;
119 cout << "\nResult:\n\n" << m3;
120 cout << "\nNumber Multiplied:" << z1;
121 cout << "\n\n" << m12;
122 cout << "\nResult:\n\n" << m6;
125 cout << "\n\n\nTranspose:";
126 cout << "\n\n" << m15;
127 cout << "\nResult:\n\n" << m6;
129 cout << "\n\nm1:\n\n" << m1;
130 cout << "\n\nm2:\n\n" << m2;
131 cout << "\n\n\nm1 == m2 :";
134 cout << "\n\nm2:\n\n" << m2;
135 cout << "\n\nm2:\n\n" << m2;
136 cout << "\n\n\nm2 == m2 :";
139 cout << "\n\nm6:\n\n" << m6;
140 cout << "\n\nm6:\n\n" << m6;
141 cout << "\n\n\nm6 != m6 :";
144 cout << "\n\nm6:\n\n" << m6;
145 cout << "\n\nm1:\n\n" << m1;
146 cout << "\n\n\nm6 != m1 :";
150 cout << "\n\nAssignment\n";
151 matrix<float, 3, 3> m30 = m12;
152 cout << "Input \n" << m12;
153 cout << "\nOutput:\n" << m30 << endl;