Demo program for Array class and Matrix class.
Dependencies: Array_Matrix mbed
main.cpp@0:90a30b7b0f2f, 2016-05-22 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Sun May 22 06:17:14 2016 +0000
- Revision:
- 0:90a30b7b0f2f
- Child:
- 1:3df59f65bdcc
1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:90a30b7b0f2f | 1 | //------------------------------------------------------------ |
MikamiUitOpen | 0:90a30b7b0f2f | 2 | // Demo program for Array class and Matrix class |
MikamiUitOpen | 0:90a30b7b0f2f | 3 | // |
MikamiUitOpen | 0:90a30b7b0f2f | 4 | // 2016/05/22, Copyright (c) 2016 MIKAMI, Naoki |
MikamiUitOpen | 0:90a30b7b0f2f | 5 | //------------------------------------------------------------ |
MikamiUitOpen | 0:90a30b7b0f2f | 6 | |
MikamiUitOpen | 0:90a30b7b0f2f | 7 | #define DEBUG_ARRAY_CHECK // Range check of index available |
MikamiUitOpen | 0:90a30b7b0f2f | 8 | |
MikamiUitOpen | 0:90a30b7b0f2f | 9 | #include "Matrix.hpp" |
MikamiUitOpen | 0:90a30b7b0f2f | 10 | #include <string> |
MikamiUitOpen | 0:90a30b7b0f2f | 11 | |
MikamiUitOpen | 0:90a30b7b0f2f | 12 | using namespace Mikami; |
MikamiUitOpen | 0:90a30b7b0f2f | 13 | void PrintMatrix(const char str[], const Matrix<int> &x); |
MikamiUitOpen | 0:90a30b7b0f2f | 14 | |
MikamiUitOpen | 0:90a30b7b0f2f | 15 | void Square(Array<float> & x); |
MikamiUitOpen | 0:90a30b7b0f2f | 16 | void Sqrt(float x[], int N); |
MikamiUitOpen | 0:90a30b7b0f2f | 17 | |
MikamiUitOpen | 0:90a30b7b0f2f | 18 | int main() |
MikamiUitOpen | 0:90a30b7b0f2f | 19 | { |
MikamiUitOpen | 0:90a30b7b0f2f | 20 | printf("\r\n14:58\r\n"); |
MikamiUitOpen | 0:90a30b7b0f2f | 21 | |
MikamiUitOpen | 0:90a30b7b0f2f | 22 | // Test of Array class |
MikamiUitOpen | 0:90a30b7b0f2f | 23 | Array<int> sn(10); |
MikamiUitOpen | 0:90a30b7b0f2f | 24 | sn[9] = 0; |
MikamiUitOpen | 0:90a30b7b0f2f | 25 | |
MikamiUitOpen | 0:90a30b7b0f2f | 26 | //// Array<uint8_t> a1(100000); // Size error |
MikamiUitOpen | 0:90a30b7b0f2f | 27 | Array<uint8_t> a1(10000); |
MikamiUitOpen | 0:90a30b7b0f2f | 28 | printf("OK\r\n"); |
MikamiUitOpen | 0:90a30b7b0f2f | 29 | |
MikamiUitOpen | 0:90a30b7b0f2f | 30 | const int N1 = 10; |
MikamiUitOpen | 0:90a30b7b0f2f | 31 | Array<float> x1(N1), x2, x3; |
MikamiUitOpen | 0:90a30b7b0f2f | 32 | for (int n=0; n<N1; n++) x1[n] = n; |
MikamiUitOpen | 0:90a30b7b0f2f | 33 | x3 = x2 = x1; |
MikamiUitOpen | 0:90a30b7b0f2f | 34 | |
MikamiUitOpen | 0:90a30b7b0f2f | 35 | Square(x2); |
MikamiUitOpen | 0:90a30b7b0f2f | 36 | Sqrt(x3, N1); |
MikamiUitOpen | 0:90a30b7b0f2f | 37 | for (int n=0; n<N1; n++) |
MikamiUitOpen | 0:90a30b7b0f2f | 38 | printf("%8.4f, %8.4f, %8.4f\r\n", x1[n], x2[n], x3[n]); |
MikamiUitOpen | 0:90a30b7b0f2f | 39 | printf("\r\n"); |
MikamiUitOpen | 0:90a30b7b0f2f | 40 | |
MikamiUitOpen | 0:90a30b7b0f2f | 41 | Array<string> str(5, "abc"); |
MikamiUitOpen | 0:90a30b7b0f2f | 42 | for (int n=0; n<str.Length(); n++) printf("%s\r\n", str[n].c_str()); |
MikamiUitOpen | 0:90a30b7b0f2f | 43 | |
MikamiUitOpen | 0:90a30b7b0f2f | 44 | // Test of Matrix class |
MikamiUitOpen | 0:90a30b7b0f2f | 45 | Matrix<int> mat1(3, 2), mat2; |
MikamiUitOpen | 0:90a30b7b0f2f | 46 | for (int n2=0; n2<mat1.Cols(); n2++) |
MikamiUitOpen | 0:90a30b7b0f2f | 47 | for (int n1=0; n1<mat1.Rows(); n1++) |
MikamiUitOpen | 0:90a30b7b0f2f | 48 | mat1[n1][n2] = n2*mat1.Rows() + n1; |
MikamiUitOpen | 0:90a30b7b0f2f | 49 | mat2 = mat1; |
MikamiUitOpen | 0:90a30b7b0f2f | 50 | |
MikamiUitOpen | 0:90a30b7b0f2f | 51 | PrintMatrix("mat2:", mat2); |
MikamiUitOpen | 0:90a30b7b0f2f | 52 | |
MikamiUitOpen | 0:90a30b7b0f2f | 53 | Matrix<int> mat3(5, 2, 10); |
MikamiUitOpen | 0:90a30b7b0f2f | 54 | PrintMatrix("mat3: Initialized valeus", mat3); |
MikamiUitOpen | 0:90a30b7b0f2f | 55 | |
MikamiUitOpen | 0:90a30b7b0f2f | 56 | mat3.Fill(5); |
MikamiUitOpen | 0:90a30b7b0f2f | 57 | PrintMatrix("mat3: Updated valeus", mat3); |
MikamiUitOpen | 0:90a30b7b0f2f | 58 | |
MikamiUitOpen | 0:90a30b7b0f2f | 59 | while (true) {} |
MikamiUitOpen | 0:90a30b7b0f2f | 60 | } |
MikamiUitOpen | 0:90a30b7b0f2f | 61 | |
MikamiUitOpen | 0:90a30b7b0f2f | 62 | void Square(Array<float> & x) |
MikamiUitOpen | 0:90a30b7b0f2f | 63 | { for (int n=0; n<x.Length(); n++) x[n] = x[n]*x[n]; } |
MikamiUitOpen | 0:90a30b7b0f2f | 64 | |
MikamiUitOpen | 0:90a30b7b0f2f | 65 | void Sqrt(float x[], int N) |
MikamiUitOpen | 0:90a30b7b0f2f | 66 | { for (int n=0; n<N; n++) x[n] = sqrtf(x[n]); } |
MikamiUitOpen | 0:90a30b7b0f2f | 67 | |
MikamiUitOpen | 0:90a30b7b0f2f | 68 | void PrintMatrix(const char str[], const Matrix<int> &x) |
MikamiUitOpen | 0:90a30b7b0f2f | 69 | { |
MikamiUitOpen | 0:90a30b7b0f2f | 70 | printf("%s\r\n", str); |
MikamiUitOpen | 0:90a30b7b0f2f | 71 | for (int n2=0; n2<x.Cols(); n2++) |
MikamiUitOpen | 0:90a30b7b0f2f | 72 | { |
MikamiUitOpen | 0:90a30b7b0f2f | 73 | for (int n1=0; n1<x.Rows(); n1++) |
MikamiUitOpen | 0:90a30b7b0f2f | 74 | printf("%3d", x[n1][n2]); |
MikamiUitOpen | 0:90a30b7b0f2f | 75 | printf("\r\n"); |
MikamiUitOpen | 0:90a30b7b0f2f | 76 | } |
MikamiUitOpen | 0:90a30b7b0f2f | 77 | } |