// Author: Douglas Wilhelm Harder // Copyright (c) 2009 by Douglas Wilhelm Harder. All rights reserved. #include "Sparse.h" #include using namespace std; int main() { Matrix<4, 4> A; Vector<4, ROW> u; Vector<4> v; for ( int i = 0; i < 4; ++i ) { u(i) = i + 1; v(i) = i + 1; for ( int j = 0; j < 4; ++j ) { A.set( i, j, 1 ); } } cout << A << endl; cout << u << endl; cout << "FULL: " << vector_matrix_product( u, A, FULL ) << endl; cout << "DIAGONAL: " << vector_matrix_product( u, A, DIAGONAL ) << endl; cout << "OFF DIAGONAL: " << vector_matrix_product( u, A, OFF_DIAGONAL ) << endl; cout << "LOWER: " << vector_matrix_product( u, A, LOWER ) << endl; cout << "UPPER: " << vector_matrix_product( u, A, UPPER ) << endl; cout << "STRICT_LOWER: " << vector_matrix_product( u, A, STRICT_LOWER ) << endl; cout << "STRICT_UPPER: " << vector_matrix_product( u, A, STRICT_UPPER ) << endl; cout << A << endl; cout << v << endl; cout << "FULL: " << matrix_vector_product( A, v, FULL ) << endl; cout << "DIAGONAL: " << matrix_vector_product( A, v, DIAGONAL ) << endl; cout << "OFF DIAGONAL: " << matrix_vector_product( A, v, OFF_DIAGONAL ) << endl; cout << "LOWER: " << matrix_vector_product( A, v, LOWER ) << endl; cout << "UPPER: " << matrix_vector_product( A, v, UPPER ) << endl; cout << "STRICT_LOWER: " << matrix_vector_product( A, v, STRICT_LOWER ) << endl; cout << "STRICT_UPPER: " << matrix_vector_product( A, v, STRICT_UPPER ) << endl; return 0; }