matrix/SubMatrix.cxx

00001 // Copyright (C) 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_SUBMATRIX_CXX
00021 
00022 
00023 #include "SubMatrix.hxx"
00024 
00025 
00026 namespace Seldon
00027 {
00028 
00029 
00031   // MATRIX<SUBSTORAGE> //
00033 
00034 
00035   /***************
00036    * CONSTRUCTOR *
00037    ***************/
00038 
00039 
00041   template <class T, class Prop, class M, class Allocator>
00042   inline Matrix<T, Prop, SubStorage<M>, Allocator>
00043   ::Matrix(M& A, Vector<int>& row_list, Vector<int>& column_list):
00044     SubMatrix_Base<T, Prop, M, Allocator>(A, row_list, column_list)
00045   {
00046   }
00047 
00048 
00049   /**************
00050    * DESTRUCTOR *
00051    **************/
00052 
00053 
00055   template <class T, class Prop, class M, class Allocator>
00056   inline Matrix<T, Prop, SubStorage<M>, Allocator>::~Matrix()
00057   {
00058   }
00059 
00060 
00062   // SUBMATRIX //
00064 
00065 
00066   /***************
00067    * CONSTRUCTOR *
00068    ***************/
00069 
00070 
00072   template <class M>
00073   inline SubMatrix<M>
00074   ::SubMatrix(M& A, Vector<int>& row_list, Vector<int>& column_list):
00075     Matrix<typename M::value_type, typename M::property,
00076     SubStorage<M>, typename M::allocator>(A, row_list, column_list)
00077   {
00078   }
00079 
00080 
00081 } // namespace Seldon.
00082 
00083 
00084 #define SELDON_FILE_SUBMATRIX_CXX
00085 #endif