Adding AK8975 geo-sensor info in sensors.xml.in required by geo-plugin
[platform/core/system/sensord.git] / src / sensor_fusion / standalone / util / test / matrix_test / matrix_main.cpp
1 /*
2  * sensord
3  *
4  * Copyright (c) 2014 Samsung Electronics Co., Ltd.
5  *
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
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
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.
17  *
18  */
19
20 #include "../../matrix.h"
21
22 int main()
23 {
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}};
34
35         matrix<float> m1(2, 2, (float *) arr0);
36         matrix<float> m2(2, 2, (float *) arr1);
37         matrix<float> m3(2, 2);
38         matrix<float> m10(3, 3, (float *) arr3);
39         matrix<float> m11(3, 2, (float *) arr5);
40         matrix<float> m6(3, 3);
41         matrix<float> m13(3, 2);
42         matrix<float> m12(3, 3, (float *) arr4);
43         matrix<float> m15(3, 3, (float *) arr8);
44         matrix<float> m20(1, 3, (float *) arr11);
45         matrix<float> m21(3, 1, (float *) arr12);
46         matrix<float> m22(2, 3, (float *) arr15);
47         matrix<float> m9(3, 3, (float *) arr9);
48
49         cout<< "Constructor Test\n";
50         cout<< "\n" << m6;
51
52         cout<<"\n\nAddition\n";
53         m6 = m10 + m15;
54         m13 = m11 + m11;
55         cout<< "\n" << m10 <<"\n"<< m15;
56         cout<< "\nSum:\n" << m6 << endl;
57         cout<< "\n" << m11 << "\n"<< m11;
58         cout<< "\nSum:\n" << m13 << endl;
59
60         cout<< "\n\n\nSubtraction\n";
61         m6 = m10 - m12;
62         cout<< "\n" << m10 << "\n" << m12;
63         cout<< "\nDifference:\n" << m6 << endl;
64
65         cout<< "\n\n\nMultiplication\n";
66         m6 = m10 * m12;
67         m3 = m1 * m2;
68         matrix<float> m7(m20.m_rows, m21.m_cols);
69         m7 = m20 * m21;
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;
77         m21 = mul(m9, m21);
78         cout<< "\nProduct:\n" << m21 << endl;
79
80         cout<< "\n\n\nDivision\n";
81         m3 = m1 / (float)2.5;
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;
87
88         float num = 5.5650;
89         float num1 = -2.32;
90         cout<< "\n\n\nScalar addition\n";
91         m3 = m2 + num;
92         m6 = m10 + num1;
93         cout<< "\nNumber added:" << num;
94         cout<< "\n\n" << m2;
95         cout<< "\nResult:\n\n" << m3;
96         cout<< "\nNumber added:" << num1;
97         cout<< "\n\n" << m10;
98         cout<< "\nResult:\n\n" << m6;
99
100         float x = 4.0;
101         float x1 = -2.5;
102         cout<< "\n\n\nScalar subtraction\n";
103         m13 = m11 - x;
104         m6 = m10 - x1;
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;
111
112         float z = 3.50;
113         float z1 = -5.567;
114         cout<< "\n\n\nScalar multiplication\n";
115         m3 = m1 * z;
116         m6 = m12 * z1;
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;
123
124         m6 = tran(m15);
125         cout<< "\n\n\nTranspose:";
126         cout << "\n\n" << m15;
127         cout << "\nResult:\n\n" << m6;
128
129         cout << "\n\nm1:\n\n" << m1;
130         cout << "\n\nm2:\n\n" << m2;
131         cout << "\n\n\nm1 == m2 :";
132         cout << (m1 == m2);
133
134         cout << "\n\nm2:\n\n" << m2;
135         cout << "\n\nm2:\n\n" << m2;
136         cout << "\n\n\nm2 == m2 :";
137         cout << (m2 == m2);
138
139         cout << "\n\nm6:\n\n" << m6;
140         cout << "\n\nm6:\n\n" << m6;
141         cout << "\n\n\nm6 != m6 :";
142         cout << (m6 != m6);
143
144         cout << "\n\nm6:\n\n" << m6;
145         cout << "\n\nm1:\n\n" << m1;
146         cout << "\n\n\nm6 != m1 :";
147         cout << (m6 != m1);
148
149
150         cout<< "\n\nAssignment\n";
151         m3 = m12;
152         cout<< "Input \n" << m12;
153         cout<< "\nOutput:\n" << m3 << endl;
154
155 }