Warning: this documentation for the development version is under construction.
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