share/Storage.cxx

00001 // Copyright (C) 2001-2009 Vivien Mallet
00002 //
00003 // This file is part of the linear-algebra library Seldon,
00004 // http://seldon.sourceforge.net/.
00005 //
00006 // Seldon is free software; you can redistribute it and/or modify it under the
00007 // terms of the GNU Lesser General Public License as published by the Free
00008 // Software Foundation; either version 2.1 of the License, or (at your option)
00009 // any later version.
00010 //
00011 // Seldon is distributed in the hope that it will be useful, but WITHOUT ANY
00012 // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
00013 // FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for
00014 // more details.
00015 //
00016 // You should have received a copy of the GNU Lesser General Public License
00017 // along with Seldon. If not, see http://www.gnu.org/licenses/.
00018 
00019 
00020 #ifndef SELDON_FILE_STORAGE_CXX
00021 
00022 #include "Storage.hxx"
00023 
00024 namespace Seldon
00025 {
00026 
00027 
00029   // GENERAL MATRICES //
00031 
00032 
00033   inline int ColMajor::GetFirst(int i, int j)
00034   {
00035     return j;
00036   }
00037   inline int ColMajor::GetSecond(int i, int j)
00038   {
00039     return i;
00040   }
00041 
00042 
00043   inline int RowMajor::GetFirst(int i, int j)
00044   {
00045     return i;
00046   }
00047   inline int RowMajor::GetSecond(int i, int j)
00048   {
00049     return j;
00050   }
00051 
00052 
00053 
00055   // VECTORS //
00057 
00058 
00059   class VectFull
00060   {
00061   };
00062 
00063 
00064   class VectSparse
00065   {
00066   };
00067 
00068 
00069   class Collection
00070   {
00071   };
00072 
00073 
00074   class DenseSparseCollection
00075   {
00076   };
00077 
00078 
00080   // SPARSE //
00082 
00083 
00084   inline int ColSparse::GetFirst(int i, int j)
00085   {
00086     return j;
00087   }
00088   inline int ColSparse::GetSecond(int i, int j)
00089   {
00090     return i;
00091   }
00092 
00093 
00094   inline int RowSparse::GetFirst(int i, int j)
00095   {
00096     return i;
00097   }
00098   inline int RowSparse::GetSecond(int i, int j)
00099   {
00100     return j;
00101   }
00102 
00103 
00104   inline int ColComplexSparse::GetFirst(int i, int j)
00105   {
00106     return j;
00107   }
00108   inline int ColComplexSparse::GetSecond(int i, int j)
00109   {
00110     return i;
00111   }
00112 
00113 
00114   inline int RowComplexSparse::GetFirst(int i, int j)
00115   {
00116     return i;
00117   }
00118   inline int RowComplexSparse::GetSecond(int i, int j)
00119   {
00120     return j;
00121   }
00122 
00123 
00124   inline int ColSymSparse::GetFirst(int i, int j)
00125   {
00126     return j;
00127   }
00128   inline int ColSymSparse::GetSecond(int i, int j)
00129   {
00130     return i;
00131   }
00132 
00133 
00134   inline int RowSymSparse::GetFirst(int i, int j)
00135   {
00136     return i;
00137   }
00138   inline int RowSymSparse::GetSecond(int i, int j)
00139   {
00140     return j;
00141   }
00142 
00143 
00144   inline int ColSymComplexSparse::GetFirst(int i, int j)
00145   {
00146     return j;
00147   }
00148   inline int ColSymComplexSparse::GetSecond(int i, int j)
00149   {
00150     return i;
00151   }
00152 
00153 
00154   inline int RowSymComplexSparse::GetFirst(int i, int j)
00155   {
00156     return i;
00157   }
00158   inline int RowSymComplexSparse::GetSecond(int i, int j)
00159   {
00160     return j;
00161   }
00162 
00163 
00164 
00166   // SYMMETRIC //
00168 
00169 
00170   inline int ColSymPacked::GetFirst(int i, int j)
00171   {
00172     return j;
00173   }
00174   inline int ColSymPacked::GetSecond(int i, int j)
00175   {
00176     return i;
00177   }
00178 
00179 
00180   inline int RowSymPacked::GetFirst(int i, int j)
00181   {
00182     return i;
00183   }
00184   inline int RowSymPacked::GetSecond(int i, int j)
00185   {
00186     return j;
00187   }
00188 
00189 
00190   inline int ColSym::GetFirst(int i, int j)
00191   {
00192     return j;
00193   }
00194   inline int ColSym::GetSecond(int i, int j)
00195   {
00196     return i;
00197   }
00198 
00199 
00200   inline int RowSym::GetFirst(int i, int j)
00201   {
00202     return i;
00203   }
00204   inline int RowSym::GetSecond(int i, int j)
00205   {
00206     return j;
00207   }
00208 
00209 
00210 
00212   // HERMITIAN //
00214 
00215 
00216   inline int ColHerm::GetFirst(int i, int j)
00217   {
00218     return j;
00219   }
00220   inline int ColHerm::GetSecond(int i, int j)
00221   {
00222     return i;
00223   }
00224 
00225 
00226   inline int RowHerm::GetFirst(int i, int j)
00227   {
00228     return i;
00229   }
00230   inline int RowHerm::GetSecond(int i, int j)
00231   {
00232     return j;
00233   }
00234 
00235 
00236   inline int ColHermPacked::GetFirst(int i, int j)
00237   {
00238     return j;
00239   }
00240   inline int ColHermPacked::GetSecond(int i, int j)
00241   {
00242     return i;
00243   }
00244 
00245 
00246   inline int RowHermPacked::GetFirst(int i, int j)
00247   {
00248     return i;
00249   }
00250   inline int RowHermPacked::GetSecond(int i, int j)
00251   {
00252     return j;
00253   }
00254 
00255 
00256 
00258   // TRIANGULAR //
00260 
00261 
00262   inline int ColUpTriang::GetFirst(int i, int j)
00263   {
00264     return j;
00265   }
00266   inline int ColUpTriang::GetSecond(int i, int j)
00267   {
00268     return i;
00269   }
00270   inline bool ColUpTriang::UpLo()
00271   {
00272     return true;
00273   }
00274 
00275 
00276   inline int ColLoTriang::GetFirst(int i, int j)
00277   {
00278     return j;
00279   }
00280   inline int ColLoTriang::GetSecond(int i, int j)
00281   {
00282     return i;
00283   }
00284   inline bool ColLoTriang::UpLo()
00285   {
00286     return false;
00287   }
00288 
00289 
00290   inline int RowUpTriang::GetFirst(int i, int j)
00291   {
00292     return i;
00293   }
00294   inline int RowUpTriang::GetSecond(int i, int j)
00295   {
00296     return j;
00297   }
00298   inline bool RowUpTriang::UpLo()
00299   {
00300     return true;
00301   }
00302 
00303 
00304   inline int RowLoTriang::GetFirst(int i, int j)
00305   {
00306     return i;
00307   }
00308   inline int RowLoTriang::GetSecond(int i, int j)
00309   {
00310     return j;
00311   }
00312   inline bool RowLoTriang::UpLo()
00313   {
00314     return false;
00315   }
00316 
00317 
00318   inline int ColUpTriangPacked::GetFirst(int i, int j)
00319   {
00320     return j;
00321   }
00322   inline int ColUpTriangPacked::GetSecond(int i, int j)
00323   {
00324     return i;
00325   }
00326   inline bool ColUpTriangPacked::UpLo()
00327   {
00328     return true;
00329   }
00330 
00331 
00332   inline int ColLoTriangPacked::GetFirst(int i, int j)
00333   {
00334     return j;
00335   }
00336   inline int ColLoTriangPacked::GetSecond(int i, int j)
00337   {
00338     return i;
00339   }
00340   inline bool ColLoTriangPacked::UpLo()
00341   {
00342     return false;
00343   }
00344 
00345 
00346   inline int RowUpTriangPacked::GetFirst(int i, int j)
00347   {
00348     return i;
00349   }
00350   inline int RowUpTriangPacked::GetSecond(int i, int j)
00351   {
00352     return j;
00353   }
00354   inline bool RowUpTriangPacked::UpLo()
00355   {
00356     return true;
00357   }
00358 
00359 
00360   inline int RowLoTriangPacked::GetFirst(int i, int j)
00361   {
00362     return i;
00363   }
00364   inline int RowLoTriangPacked::GetSecond(int i, int j)
00365   {
00366     return j;
00367   }
00368   inline bool RowLoTriangPacked::UpLo()
00369   {
00370     return false;
00371   }
00372 
00373 
00374 } // namespace Seldon.
00375 
00376 #define SELDON_FILE_STORAGE_CXX
00377 #endif