Main Page | Namespace List | Alphabetical List | Class List | File List | Class Members | File Members

main_Matrix.cpp

Go to the documentation of this file.
00001 //=======================================================================
00002 // Basic C++: a simple mathematical matrix class
00003 //      Test
00004 //-----------------------------------------------------------------------
00005 // Jean-Paul Rigault --- Copyright 2004
00006 // $Id: main_Matrix.cpp,v 1.2 2004/11/28 16:50:16 jpr Exp $
00007 //=======================================================================
00008 
00009 #include "common_defs.h"
00010 #include "Matrix.h"
00011 
00012 int main()
00013 {
00014     cout << boolalpha;
00015 
00016     MSG(Constructors);
00017 
00018     Matrix mat0;
00019     Matrix mat1(5, 5, 1.5);
00020     OUT(mat0);
00021     OUT(mat1);
00022     OUT(mat1 == mat0);
00023 
00024     MSG(Assignments);
00025 
00026     EXEC(mat0 = mat1);
00027     OUT(mat0);
00028     OUT(mat1 == mat0);
00029     OUT(mat1 += mat1);
00030     OUT(mat1 -= mat1);
00031     OUT(mat0 *= mat0);
00032 
00033     MSG (Arithmetic operations); 
00034 
00035     OUT(mat0 + mat0);
00036     OUT(mat0 - mat0);
00037     OUT(mat0 * mat0);
00038 
00039     try
00040     {
00041         Matrix mat(10, 10);
00042         OUT(mat0 + mat);
00043     }
00044     catch (Matrix::Bad_Dimensions)
00045     {
00046         cerr << "*** Bad dimensions" << endl;
00047     }
00048 
00049     try
00050     {
00051         Matrix mat(5, 10, 3.0);
00052         OUT(mat0 * mat);
00053         OUT(mat0 * mat.transpose());        
00054     }
00055     catch (Matrix::Bad_Dimensions)
00056     {
00057         cerr << "*** Bad dimensions" << endl;
00058     }
00059     
00060     MSG (Subscript and transpose);
00061 
00062     Matrix mat2(3, 4);
00063     for (int i = 0; i < 3; ++i)
00064         for (int j = 0; j < 4; ++j)
00065             mat2[i][j] = i;
00066     OUT(mat2);
00067     OUT(mat2.transpose());    
00068     OUT(~mat2);
00069     EXEC(mat2(0, 0) = 2.75);
00070     OUT(mat2(0, 0));
00071 
00072     MSG(Conversion between Matrices and MVectors);
00073 
00074     OUT(mat2.line(1));
00075     OUT(mat2.transpose().column(1));
00076 
00077     MVector mv(5, 2.5);
00078     Matrix mat3 = mv;
00079     OUT(mat3);
00080     OUT(mat3.transpose());
00081      
00082     EXEC(mv = mat3);
00083     OUT(mv);
00084     OUT(static_cast<MVector>(mv));
00085    
00086     return 0;
00087 }

Generated on Mon Dec 12 18:25:41 2005 for Vectors_and_Matrices by  doxygen 1.4.3