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 
00079   class PETScSeq
00080   {
00081   };
00082 
00083 
00084   class PETScPar
00085   {
00086   };
00087 
00088 
00089   class PETScSeqDense
00090   {
00091   };
00092 
00093 
00094   class PETScMPIDense
00095   {
00096   };
00097 
00098 
00099   class PETScMPIAIJ
00100   {
00101   };
00102 
00103 
00105   // SPARSE //
00107 
00108 
00109   inline int ColSparse::GetFirst(int i, int j)
00110   {
00111     return j;
00112   }
00113   inline int ColSparse::GetSecond(int i, int j)
00114   {
00115     return i;
00116   }
00117 
00118 
00119   inline int RowSparse::GetFirst(int i, int j)
00120   {
00121     return i;
00122   }
00123   inline int RowSparse::GetSecond(int i, int j)
00124   {
00125     return j;
00126   }
00127 
00128 
00129   inline int ColComplexSparse::GetFirst(int i, int j)
00130   {
00131     return j;
00132   }
00133   inline int ColComplexSparse::GetSecond(int i, int j)
00134   {
00135     return i;
00136   }
00137 
00138 
00139   inline int RowComplexSparse::GetFirst(int i, int j)
00140   {
00141     return i;
00142   }
00143   inline int RowComplexSparse::GetSecond(int i, int j)
00144   {
00145     return j;
00146   }
00147 
00148 
00149   inline int ColSymSparse::GetFirst(int i, int j)
00150   {
00151     return j;
00152   }
00153   inline int ColSymSparse::GetSecond(int i, int j)
00154   {
00155     return i;
00156   }
00157 
00158 
00159   inline int RowSymSparse::GetFirst(int i, int j)
00160   {
00161     return i;
00162   }
00163   inline int RowSymSparse::GetSecond(int i, int j)
00164   {
00165     return j;
00166   }
00167 
00168 
00169   inline int ColSymComplexSparse::GetFirst(int i, int j)
00170   {
00171     return j;
00172   }
00173   inline int ColSymComplexSparse::GetSecond(int i, int j)
00174   {
00175     return i;
00176   }
00177 
00178 
00179   inline int RowSymComplexSparse::GetFirst(int i, int j)
00180   {
00181     return i;
00182   }
00183   inline int RowSymComplexSparse::GetSecond(int i, int j)
00184   {
00185     return j;
00186   }
00187 
00188 
00189 
00191   // SYMMETRIC //
00193 
00194 
00195   inline int ColSymPacked::GetFirst(int i, int j)
00196   {
00197     return j;
00198   }
00199   inline int ColSymPacked::GetSecond(int i, int j)
00200   {
00201     return i;
00202   }
00203 
00204 
00205   inline int RowSymPacked::GetFirst(int i, int j)
00206   {
00207     return i;
00208   }
00209   inline int RowSymPacked::GetSecond(int i, int j)
00210   {
00211     return j;
00212   }
00213 
00214 
00215   inline int ColSym::GetFirst(int i, int j)
00216   {
00217     return j;
00218   }
00219   inline int ColSym::GetSecond(int i, int j)
00220   {
00221     return i;
00222   }
00223 
00224 
00225   inline int RowSym::GetFirst(int i, int j)
00226   {
00227     return i;
00228   }
00229   inline int RowSym::GetSecond(int i, int j)
00230   {
00231     return j;
00232   }
00233 
00234 
00235 
00237   // HERMITIAN //
00239 
00240 
00241   inline int ColHerm::GetFirst(int i, int j)
00242   {
00243     return j;
00244   }
00245   inline int ColHerm::GetSecond(int i, int j)
00246   {
00247     return i;
00248   }
00249 
00250 
00251   inline int RowHerm::GetFirst(int i, int j)
00252   {
00253     return i;
00254   }
00255   inline int RowHerm::GetSecond(int i, int j)
00256   {
00257     return j;
00258   }
00259 
00260 
00261   inline int ColHermPacked::GetFirst(int i, int j)
00262   {
00263     return j;
00264   }
00265   inline int ColHermPacked::GetSecond(int i, int j)
00266   {
00267     return i;
00268   }
00269 
00270 
00271   inline int RowHermPacked::GetFirst(int i, int j)
00272   {
00273     return i;
00274   }
00275   inline int RowHermPacked::GetSecond(int i, int j)
00276   {
00277     return j;
00278   }
00279 
00280 
00281 
00283   // TRIANGULAR //
00285 
00286 
00287   inline int ColUpTriang::GetFirst(int i, int j)
00288   {
00289     return j;
00290   }
00291   inline int ColUpTriang::GetSecond(int i, int j)
00292   {
00293     return i;
00294   }
00295   inline bool ColUpTriang::UpLo()
00296   {
00297     return true;
00298   }
00299 
00300 
00301   inline int ColLoTriang::GetFirst(int i, int j)
00302   {
00303     return j;
00304   }
00305   inline int ColLoTriang::GetSecond(int i, int j)
00306   {
00307     return i;
00308   }
00309   inline bool ColLoTriang::UpLo()
00310   {
00311     return false;
00312   }
00313 
00314 
00315   inline int RowUpTriang::GetFirst(int i, int j)
00316   {
00317     return i;
00318   }
00319   inline int RowUpTriang::GetSecond(int i, int j)
00320   {
00321     return j;
00322   }
00323   inline bool RowUpTriang::UpLo()
00324   {
00325     return true;
00326   }
00327 
00328 
00329   inline int RowLoTriang::GetFirst(int i, int j)
00330   {
00331     return i;
00332   }
00333   inline int RowLoTriang::GetSecond(int i, int j)
00334   {
00335     return j;
00336   }
00337   inline bool RowLoTriang::UpLo()
00338   {
00339     return false;
00340   }
00341 
00342 
00343   inline int ColUpTriangPacked::GetFirst(int i, int j)
00344   {
00345     return j;
00346   }
00347   inline int ColUpTriangPacked::GetSecond(int i, int j)
00348   {
00349     return i;
00350   }
00351   inline bool ColUpTriangPacked::UpLo()
00352   {
00353     return true;
00354   }
00355 
00356 
00357   inline int ColLoTriangPacked::GetFirst(int i, int j)
00358   {
00359     return j;
00360   }
00361   inline int ColLoTriangPacked::GetSecond(int i, int j)
00362   {
00363     return i;
00364   }
00365   inline bool ColLoTriangPacked::UpLo()
00366   {
00367     return false;
00368   }
00369 
00370 
00371   inline int RowUpTriangPacked::GetFirst(int i, int j)
00372   {
00373     return i;
00374   }
00375   inline int RowUpTriangPacked::GetSecond(int i, int j)
00376   {
00377     return j;
00378   }
00379   inline bool RowUpTriangPacked::UpLo()
00380   {
00381     return true;
00382   }
00383 
00384 
00385   inline int RowLoTriangPacked::GetFirst(int i, int j)
00386   {
00387     return i;
00388   }
00389   inline int RowLoTriangPacked::GetSecond(int i, int j)
00390   {
00391     return j;
00392   }
00393   inline bool RowLoTriangPacked::UpLo()
00394   {
00395     return false;
00396   }
00397 
00398 
00399 } // namespace Seldon.
00400 
00401 #define SELDON_FILE_STORAGE_CXX
00402 #endif