AbstractLinAlgPack_Types.hpp

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

Generated on Thu Sep 18 12:33:52 2008 for AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects by doxygen 1.3.9.1