#include "itbase.h"
using std::cout;
using std::endl;
using namespace itpp;
int main(void)
{
mat A = randn(3,4);
mat B = randn(3,4);
mat C = randn(4,3);
vec v = randn(4);
vec u = randn(3);
mat E = randn(1,3);
mat D;
vec s;
cout << "====================================================" << endl;
cout << "mat_test: Test of matrix operations in mat.h/mat.cpp" << endl;
cout << "====================================================" << endl;
cout << "A = " << A << endl;
cout << "B = " << B << endl;
cout << "C = " << C << endl;
cout << "E = " << E << endl;
cout << "Testing indexing" << endl;
cout << "================" << endl;
cout << "A(1,2) = " << A(1,2) << endl;
cout << "A(2,3) = " << A(2,3) << endl;
cout << "A(6) = " << A(6) << endl;
cout << "A(0,2,1,3) = " << A(0,2,1,3) << endl;
cout << "A.get_row(1) = " << A.get_row(1) << endl;
cout << "A.get_rows(1,2) = " << A.get_rows(1,2) << endl;
cout << "A.get_col(2) = " << A.get_col(2) << endl;
cout << "A.get_cols(2,3) = " << A.get_cols(2,3) << endl;
cout << "Testing setting/copying/swapping" << endl;
cout << "================================" << endl;
cout << "v = " << v << endl;
cout << "u = " << u << endl;
D = A;
cout << "D = " << D << endl;
D.set_row(1, v);
cout << "D.set_row(1, v):" << endl;
cout << "D = " << D << endl;
D.set_col(2, u);
cout << "D.set_col(2, u):" << endl;
cout << "D = " << D << endl;
D.copy_row(1, 2);
cout << "D.copy_row(1, 2):" << endl;
cout << "D = " << D << endl;
D.copy_col(2, 3);
cout << "D.copy_col(2, 3):" << endl;
cout << "D = " << D << endl;
D.swap_rows(0, 2);
cout << "D.swap_rows(0, 2):" << endl;
cout << "D = " << D << endl;
D.swap_cols(0, 3);
cout << "D.swap_cols(0, 3):" << endl;
cout << "D = " << D << endl;
D.set_submatrix(1,2,2,3, A(0,1,0,1));
cout << "D.set_submatrix(1,2,2,3, A(0,1,0,1): " << endl;
cout << "D = " << D << endl;
D.set_submatrix(1,2,2,3, 5.3);
cout << "D.set_submatrix(1,2,2,3, 5.3): " << endl;
cout << "D = " << D << endl;
cout << "A = " << A << endl;
cout << "B = " << B << endl;
D = concat_horizontal(A,B);
cout << "D = concat_horizontal(A,B):" << endl;
cout << "D = " << D << endl;
D = concat_vertical(A,B);
cout << "D = concat_vertical(A,B):" << endl;
cout << "D = " << D << endl;
cout << "Testing operators (=, +, - *, /)" << endl;
cout << "================================" << endl;
D = A;
cout << "D = A = " << D << endl;
D = 5.3;
cout << "D = 5.3 = " << D << endl;
D = A+B;
cout << "D = A+B = " << D << endl;
D += A;
cout << "D += A = " << D << endl;
D = A+5.3;
cout << "D = A+5.3 = " << D << endl;
D += 5.3;
cout << "D += 5.3 = " << D << endl;
D = A-B;
cout << "D = A-B = " << D << endl;
D -= A;
cout << "D -= A = " << D << endl;
D = A-5.3;
cout << "D = A-5.3 = " << D << endl;
D -= 5.3;
cout << "D -= 5.3 = " << D << endl;
D = A*C;
cout << "D = A*C = " << D << endl;
D *= A;
cout << "D *= A = " << D << endl;
D = A*5.3;
cout << "D = A*5.3 = " << D << endl;
D = 3.9*A;
cout << "D = 3.9*A = " << D << endl;
D *= 5.3;
cout << "D *= 5.3 = " << D << endl;
D = elem_mult(A,B);
cout << "D = elem_mult(A,B) = " << D << endl;
s = A*v;
cout << "s = A*v = " << s << endl;
D = u*E;
cout << "D = u*E = " << D << endl;
D = A/5.3;
cout << "D = A/5.3 = " << D << endl;
D /= 5.3;
cout << "D /= 5.3 = " << D << endl;
D = elem_div(A,B);
cout << "D = elem_div(A,B) = " << D << endl;
D /= A;
cout << "D /= A = " << D << endl;
return 0;
}
syntax highlighted by Code2HTML, v. 0.9.1