share/Storage.hxx

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