AbstractLinAlgPack_Types.hpp

Go to the documentation of this file.
00001 // @HEADER
00002 // ***********************************************************************
00003 // 
00004 // Moocho: Multi-functional Object-Oriented arCHitecture for Optimization
00005 //                  Copyright (2003) Sandia Corporation
00006 // 
00007 // Under terms of Contract DE-AC04-94AL85000, there is a non-exclusive
00008 // license for use of this work by or on behalf of the U.S. Government.
00009 // 
00010 // This library is free software; you can redistribute it and/or modify
00011 // it under the terms of the GNU Lesser General Public License as
00012 // published by the Free Software Foundation; either version 2.1 of the
00013 // License, or (at your option) any later version.
00014 //  
00015 // This library is distributed in the hope that it will be useful, but
00016 // WITHOUT ANY WARRANTY; without even the implied warranty of
00017 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018 // Lesser General Public License for more details.
00019 //  
00020 // You should have received a copy of the GNU Lesser General Public
00021 // License along with this library; if not, write to the Free Software
00022 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00023 // USA
00024 // Questions? Contact Roscoe A. Bartlett (rabartl@sandia.gov) 
00025 // 
00026 // ***********************************************************************
00027 // @HEADER
00028 
00029 #ifndef ABSTRACT_LIN_ALG_PACK_TYPES_H
00030 #define ABSTRACT_LIN_ALG_PACK_TYPES_H
00031 
00032 #include <memory>
00033 #include <stdexcept>
00034 
00035 #include "RTOp.h"
00036 #include "RTOpPack_OldTypes.hpp"
00037 #include "DenseLinAlgPack_Types.hpp"
00038 #include "Teuchos_TestForException.hpp"
00039 
00040 namespace AbstractLinAlgPack {
00041 
00042 #include "DenseLinAlgPack_PublicTypes.ud"
00043 
00044 typedef RTOp_index_type  size_type;
00045 typedef RTOp_value_type  value_type;
00046 typedef RTOp_index_type  index_type;
00047 
00048 #ifdef DOXYGEN_COMPILE // Doxygen needs a little help finding these links
00049 
00050 typedef DenseLinAlgPack::VectorTmpl<value_type>             DVector;
00052 typedef DenseLinAlgPack::VectorSliceTmpl<value_type>        DVectorSlice;
00054 typedef DenseLinAlgPack::DMatrix                            DMatrix;
00056 typedef DenseLinAlgPack::DMatrixSlice                       DMatrixSlice;
00058 typedef DenseLinAlgPack::DMatrixSliceTriEle                 DMatrixSliceTriEle;
00060 typedef DenseLinAlgPack::DMatrixSliceTri                    DMatrixSliceTri;
00062 typedef DenseLinAlgPack::DMatrixSliceSym                    DMatrixSliceSym;
00064 typedef RangePack::Range1D Range1D;
00065 #endif
00066 
00067 
00070 
00072 class PreConditionException : public std::logic_error
00073 {public: PreConditionException(const std::string& what_arg) : std::logic_error(what_arg) {}};
00074 
00076 class PostConditionException : public std::runtime_error
00077 {public: PostConditionException(const std::string& what_arg) : std::runtime_error(what_arg) {}};
00078 
00080 class InputException : public PreConditionException
00081 {public: InputException(const std::string& what_arg) : PreConditionException(what_arg) {}};
00082 
00084 class SetupException : public PreConditionException
00085 {public: SetupException(const std::string& what_arg) : PreConditionException(what_arg) {}};
00086 
00087 
00089 
00092 
00093 class InnerProduct;
00094 
00095 class VectorSpaceFactory;
00096 class VectorSpace;
00097 class Vector;
00098 class VectorMutable;
00099 
00100 class MatrixBase;
00101 class MatrixOp;
00102 class MatrixNonsing;
00103 class MatrixOpNonsing;
00104 class MatrixSymOp;
00105 class MatrixSymNonsing;
00106 class MatrixSymOpNonsing;
00107 class MatrixSymDiag;
00108 
00109 class MultiVector;
00110 class MultiVectorMutable;
00111 
00112 class MatrixSymSecant;
00113 
00114 class BasisSystem;
00115 class BasisSystemPerm;
00116 class BasisSystemFactory;
00117 
00118 class Permutation;
00119 
00120 // template classes
00121 
00122 template <class T_Indice, class T_Value>  class SparseElement;
00123 template <class T_Element, class T_Alloc> class SparseVector;
00124 template <class T_Element>          class SparseVectorSlice;
00125 
00126 // concrete classes
00127 
00128 class EtaVector;
00129 class GenPermMatrixSlice;
00130 typedef SparseVector<
00131   SparseElement<index_type,value_type>
00132   , std::allocator<
00133     SparseElement<index_type,value_type>
00134     >
00135   >                       SpVector;
00136 typedef SparseVectorSlice<
00137   SparseElement<index_type,value_type> >    SpVectorSlice;
00138 
00140 
00143 
00144 // pure abstract classes
00145 
00146 class PermVector;
00147 
00148 class MatrixSymInitDiag;
00149 class MatrixSymDiag;
00150 
00151 // concrete subclasses
00152 
00153 class BasisSystemComposite;
00154 class VectorSpaceBlocked;
00155 class VectorMutableBlocked;
00156 class MatrixOpSubView;
00157 class MatrixComposite;
00158 class MatrixSymIdent;
00159 class MatrixSymDiagStd;
00160 class MatrixZero;
00161 class MatrixPermAggr;
00162 class MatrixOpNonsingAggr;
00163 
00164 // testing classes
00165 
00166 class VectorSpaceTester;
00167 class VectorSpaceTesterSetOptions;
00168 class MatrixOpNonsingTester;
00169 class BasisSystemTester;
00170 class BasisSystemTesterSetOptions;
00171 
00173 
00176 
00177 // pure abstract classes
00178 
00179 class MatrixOpSerial;
00180 class MatrixNonsingSerial;
00181 class MatrixSymOpSerial;
00182 class MatrixSymNonsingSerial;
00183 class MatrixOpNonsingSerial;
00184 class MatrixSymOpNonsingSerial;
00185 class MatrixSymDenseInitialize;
00186 class MatrixSymDiagSparse;
00187 class MatrixLoadSparseElements;
00188 class MatrixConvertToSparse;
00189 class MatrixExtractSparseElements;
00190 class MatrixExtractInvCholFactor;
00191 class MatrixSymOpGetGMSSymMutable;
00192 class MatrixSymOpGetGMSSym;
00193 class MatrixSymAddDelUpdateable;
00194 
00196 
00199 
00200 class VectorDenseEncap;
00201 class VectorDenseMutableEncap;
00202 class MatrixDenseEncap;
00203 class MatrixDenseMutableEncap;
00204 class MatrixDenseSymEncap;
00205 class MatrixDenseSymMutableEncap;
00206 class MatrixDenseTriEncap;
00207 
00208 class PermutationSerial;
00209 class VectorSpaceSerial;
00210 class VectorMutableDense;
00211 class VectorSparse;
00212 class MatrixSparseCOORSerial;
00213 class MatrixSymPosDefCholFactor;
00214 class MatrixConvertToSparseEncap;
00215 class MultiVectorMutableDense;
00216 
00217 class MatrixSymDiagSparseStd;
00218 
00220 
00223 
00224 // Matrix scaling classes
00225 
00226 class MatrixScaling_Strategy;
00227 
00228 // Sparse linear solver classes
00229 
00230 class DirectSparseSolver;        // Abstract interface
00231 class DirectSparseSolverImp;     // Node implementation classs
00232 class DirectSparseSolverMA28;    // Concrete subclass
00233 class DirectSparseSolverMA48;    // ""
00234 class DirectSparseSolverSuperLU; // ""
00235 
00236 // BasisSystem classes
00237 
00238 class BasisSystemPermDirectSparse;
00239 class BasisSystemFactoryStd;
00240 
00242 
00243 } // end namespace AbstractLinAlgPack
00244 
00245 #endif // ABSTRACT_LIN_ALG_PACK_TYPES_H

Generated on Wed May 12 21:52:27 2010 for MOOCHO (Single Doxygen Collection) by  doxygen 1.4.7