ConstrainedOptPack_DecompositionSystemVarReductPerm.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 DECOMPOSITION_SYSTEM_VAR_REDUCT_PERM_H
00030 #define DECOMPOSITION_SYSTEM_VAR_REDUCT_PERM_H
00031 
00032 #include <stdexcept>
00033 
00034 #include "ConstrainedOptPack_DecompositionSystemVarReduct.hpp"
00035 #include "AbstractLinAlgPack_VectorSpace.hpp"
00036 
00037 namespace ConstrainedOptPack {
00038 
00043 class DecompositionSystemVarReductPerm : public DecompositionSystemVarReduct {
00044 public:
00045 
00048 
00050   typedef Teuchos::RCP<
00051     const Teuchos::AbstractFactory<Permutation> >         perm_fcty_ptr_t;
00052 
00054 
00057 
00059   DecompositionSystemVarReductPerm(
00060     EExplicitImplicit     D_imp    = MAT_IMP_AUTO
00061     ,EExplicitImplicit    Uz_imp   = MAT_IMP_AUTO
00062     )
00063     :DecompositionSystemVarReduct(D_imp,Uz_imp)
00064   {}
00065 
00067 
00070 
00072   virtual const perm_fcty_ptr_t   factory_P_var() const = 0;
00074   virtual const perm_fcty_ptr_t   factory_P_equ() const = 0;
00075 
00077 
00080 
00083   virtual bool has_basis() const = 0;
00084 
00089   virtual void set_decomp(
00090     std::ostream          *out
00091     ,EOutputLevel         olevel
00092     ,ERunTests            test_what
00093     ,const Permutation    &P_var
00094     ,const Range1D        &var_dep
00095     ,const Permutation    *P_equ
00096     ,const Range1D        *equ_decomp
00097     ,const MatrixOp       &Gc
00098     ,MatrixOp             *Z
00099     ,MatrixOp             *Y
00100     ,MatrixOpNonsing      *R
00101     ,MatrixOp             *Uz
00102     ,MatrixOp             *Uy
00103     ,EMatRelations        mat_rel = MATRICES_INDEP_IMPS
00104     ) = 0;
00105   
00110   virtual void select_decomp(
00111     std::ostream              *out
00112     ,EOutputLevel             olevel
00113     ,ERunTests                test_what
00114     ,const Vector             *nu
00115     ,MatrixOp                 *Gc
00116     ,Permutation              *P_var
00117     ,Range1D                  *var_dep
00118     ,Permutation              *P_equ
00119     ,Range1D                  *equ_decomp
00120     ,MatrixOp                 *Z
00121     ,MatrixOp                 *Y
00122     ,MatrixOpNonsing          *R
00123     ,MatrixOp                 *Uz
00124     ,MatrixOp                 *Uy
00125     ,EMatRelations            mat_rel = MATRICES_INDEP_IMPS
00126     ) = 0;
00127 
00129   
00130 };  // end class DecompositionSystemVarReductPerm
00131 
00132 } // end namespace ConstrainedOptPack
00133 
00134 #endif // DECOMPOSITION_SYSTEM_VAR_REDUCT_PERM_H

Generated on Tue Oct 20 12:51:44 2009 for MOOCHO (Single Doxygen Collection) by doxygen 1.4.7