00001 #ifndef MATRICES_H 00002 #define MATRICES_H 00003 /* 00004 _____ _____ __ __ _ _ 00005 / ____/ ____| \/ | | | (_) 00006 | (___| (___ | \ / | __ _| |_ _ __ ___ __ 00007 \___ \\___ \| |\/| |/ _` | __| '__| \ \/ / 00008 ____) |___) | | | | (_| | |_| | | |> < 00009 |_____/_____/|_| |_|\__,_|\__|_| |_/_/\_\ 00010 */ 00011 #include <iostream> // pour std::cout 00012 #include <math.h> 00014 00017 class SSMatrix 00018 { 00019 public : 00021 00022 float ** _Values; 00024 int _NbLines; 00026 int _NbColumns; 00027 00029 00030 SSMatrix(); 00032 SSMatrix(SSMatrix& M); 00034 SSMatrix(int Size, int InitMode); 00036 SSMatrix(int NbLines, int NbColumns, int InitMode); 00038 ~SSMatrix(); 00040 Destroy(); 00042 SSMatrix& Redim(int NbLines,int NbColumns); 00044 SSMatrix& Multiply(float scalar); 00046 bool Multiply(const SSMatrix& B); 00048 bool Multiply(const SSMatrix& B,const SSMatrix& C); 00050 SSMatrix& Kronecker(const SSMatrix& B); 00052 SSMatrix& Kronecker(const SSMatrix& B,const SSMatrix& C); 00054 Print(); 00055 00057 SSMatrix& operator=(const SSMatrix& m) 00058 { 00059 Destroy(); 00060 _NbLines = m._NbLines; 00061 _NbColumns = m._NbColumns; 00062 _Values = new float*[_NbLines]; 00063 for (int i=0; i<_NbLines ; i++) 00064 { 00065 _Values[i] = new float[_NbColumns]; 00066 for (int j=0; j<_NbColumns ; j++) 00067 { 00068 _Values[i][j] = m._Values[i][j]; 00069 } 00070 } 00071 return *this; 00072 }; 00073 }; 00074 #endif