MOOCHO (Single Doxygen Collection) Version of the Day
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 #include "Teuchos_RCP.hpp"
00040 
00041 namespace AbstractLinAlgPack {
00042 
00043 #include "DenseLinAlgPack_PublicTypes.ud"
00044 
00045 typedef RTOp_index_type  size_type;
00046 typedef RTOp_value_type  value_type;
00047 typedef RTOp_index_type  index_type;
00048 using Teuchos::RCP;
00049 
00050 #ifdef DOXYGEN_COMPILE // Doxygen needs a little help finding these links
00051 
00052 typedef DenseLinAlgPack::VectorTmpl<value_type>             DVector;
00054 typedef DenseLinAlgPack::VectorSliceTmpl<value_type>        DVectorSlice;
00056 typedef DenseLinAlgPack::DMatrix                            DMatrix;
00058 typedef DenseLinAlgPack::DMatrixSlice                       DMatrixSlice;
00060 typedef DenseLinAlgPack::DMatrixSliceTriEle                 DMatrixSliceTriEle;
00062 typedef DenseLinAlgPack::DMatrixSliceTri                    DMatrixSliceTri;
00064 typedef DenseLinAlgPack::DMatrixSliceSym                    DMatrixSliceSym;
00066 typedef RangePack::Range1D Range1D;
00067 #endif
00068 
00069 
00072 
00074 class PreConditionException : public std::logic_error
00075 {public: PreConditionException(const std::string& what_arg) : std::logic_error(what_arg) {}};
00076 
00078 class PostConditionException : public std::runtime_error
00079 {public: PostConditionException(const std::string& what_arg) : std::runtime_error(what_arg) {}};
00080 
00082 class InputException : public PreConditionException
00083 {public: InputException(const std::string& what_arg) : PreConditionException(what_arg) {}};
00084 
00086 class SetupException : public PreConditionException
00087 {public: SetupException(const std::string& what_arg) : PreConditionException(what_arg) {}};
00088 
00089 
00091 
00094 
00095 class InnerProduct;
00096 
00097 class VectorSpaceFactory;
00098 class VectorSpace;
00099 class Vector;
00100 class VectorMutable;
00101 
00102 class MatrixBase;
00103 class MatrixOp;
00104 class MatrixNonsing;
00105 class MatrixOpNonsing;
00106 class MatrixSymOp;
00107 class MatrixSymNonsing;
00108 class MatrixSymOpNonsing;
00109 class MatrixSymDiag;
00110 
00111 class MultiVector;
00112 class MultiVectorMutable;
00113 
00114 class MatrixSymSecant;
00115 
00116 class BasisSystem;
00117 class BasisSystemPerm;
00118 class BasisSystemFactory;
00119 
00120 class Permutation;
00121 
00122 // template classes
00123 
00124 template <class T_Indice, class T_Value>  class SparseElement;
00125 template <class T_Element, class T_Alloc> class SparseVector;
00126 template <class T_Element>          class SparseVectorSlice;
00127 
00128 // concrete classes
00129 
00130 class EtaVector;
00131 class GenPermMatrixSlice;
00132 typedef SparseVector<
00133   SparseElement<index_type,value_type>
00134   , std::allocator<
00135     SparseElement<index_type,value_type>
00136     >
00137   >                       SpVector;
00138 typedef SparseVectorSlice<
00139   SparseElement<index_type,value_type> >    SpVectorSlice;
00140 
00142 
00145 
00146 // pure abstract classes
00147 
00148 class PermVector;
00149 
00150 class MatrixSymInitDiag;
00151 class MatrixSymDiag;
00152 
00153 // concrete subclasses
00154 
00155 class BasisSystemComposite;
00156 class VectorSpaceBlocked;
00157 class VectorMutableBlocked;
00158 class MatrixOpSubView;
00159 class MatrixComposite;
00160 class MatrixSymIdent;
00161 class MatrixSymDiagStd;
00162 class MatrixZero;
00163 class MatrixPermAggr;
00164 class MatrixOpNonsingAggr;
00165 
00166 // testing classes
00167 
00168 class VectorSpaceTester;
00169 class VectorSpaceTesterSetOptions;
00170 class MatrixOpNonsingTester;
00171 class BasisSystemTester;
00172 class BasisSystemTesterSetOptions;
00173 
00175 
00178 
00179 // pure abstract classes
00180 
00181 class MatrixOpSerial;
00182 class MatrixNonsingSerial;
00183 class MatrixSymOpSerial;
00184 class MatrixSymNonsingSerial;
00185 class MatrixOpNonsingSerial;
00186 class MatrixSymOpNonsingSerial;
00187 class MatrixSymDenseInitialize;
00188 class MatrixSymDiagSparse;
00189 class MatrixLoadSparseElements;
00190 class MatrixConvertToSparse;
00191 class MatrixExtractSparseElements;
00192 class MatrixExtractInvCholFactor;
00193 class MatrixSymOpGetGMSSymMutable;
00194 class MatrixSymOpGetGMSSym;
00195 class MatrixSymAddDelUpdateable;
00196 
00198 
00201 
00202 class VectorDenseEncap;
00203 class VectorDenseMutableEncap;
00204 class MatrixDenseEncap;
00205 class MatrixDenseMutableEncap;
00206 class MatrixDenseSymEncap;
00207 class MatrixDenseSymMutableEncap;
00208 class MatrixDenseTriEncap;
00209 
00210 class PermutationSerial;
00211 class VectorSpaceSerial;
00212 class VectorMutableDense;
00213 class VectorSparse;
00214 class MatrixSparseCOORSerial;
00215 class MatrixSymPosDefCholFactor;
00216 class MatrixConvertToSparseEncap;
00217 class MultiVectorMutableDense;
00218 
00219 class MatrixSymDiagSparseStd;
00220 
00222 
00225 
00226 // Matrix scaling classes
00227 
00228 class MatrixScaling_Strategy;
00229 
00230 // Sparse linear solver classes
00231 
00232 class DirectSparseSolver;        // Abstract interface
00233 class DirectSparseSolverImp;     // Node implementation classs
00234 class DirectSparseSolverMA28;    // Concrete subclass
00235 class DirectSparseSolverMA48;    // ""
00236 class DirectSparseSolverSuperLU; // ""
00237 
00238 // BasisSystem classes
00239 
00240 class BasisSystemPermDirectSparse;
00241 class BasisSystemFactoryStd;
00242 
00244 
00245 } // end namespace AbstractLinAlgPack
00246 
00247 #endif // ABSTRACT_LIN_ALG_PACK_TYPES_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines