42 #ifndef DECOMPOSITION_SYSTEM_H
43 #define DECOMPOSITION_SYSTEM_H
47 #include "ConstrainedOptPack_Types.hpp"
48 #include "AbstractLinAlgPack_VectorSpace.hpp"
50 namespace ConstrainedOptPack {
106 {
public:
InvalidMatrixType(
const std::string& what_arg) : std::logic_error(what_arg) {}};
109 {
public:
TestFailed(
const std::string& what_arg) : std::runtime_error(what_arg) {}};
113 PRINT_BASIC_INFO = 1,
116 PRINT_EVERY_THING = 4
186 virtual const VectorSpace::space_ptr_t
space_range()
const = 0;
195 virtual const VectorSpace::space_ptr_t
space_null()
const = 0;
368 std::ostream& out,
const std::string& leading_str )
const = 0;
376 #endif // DECOMPOSITION_SYSTEM_H
virtual const mat_fcty_ptr_t factory_Uz() const =0
Return a matrix factory object for Uz
virtual const mat_fcty_ptr_t factory_Y() const =0
Return a matrix factory object for Y
virtual Range1D equ_undecomp() const
Returns the range of the undecomposed equalities.
EOutputLevel
Enumeration for the amount of output to create from update_decomp().
ERunTests
Enumeration for if to run internal tests or not.
virtual size_type r() const
Returns the rank of Gc(:,equ_decomp()).
virtual const VectorSpace::space_ptr_t space_range() const =0
Return a VectorSpace object for the range space.
virtual ~DecompositionSystem()
virtual Range1D equ_decomp() const
Returns the range of the decomposed equalities.
virtual void print_update_decomp(std::ostream &out, const std::string &leading_str) const =0
Print the sub-algorithm by which the decomposition is formed.
virtual const mat_fcty_ptr_t factory_Uy() const =0
Return a matrix factory object for Uy
This class abstracts a decomposition choice for the quasi-range space Y and null space Z matrices for...
virtual const mat_fcty_ptr_t factory_Z() const =0
Return a matrix factory object for Z
virtual size_type n() const
Return the number of rows in Gc.
virtual void update_decomp(std::ostream *out, EOutputLevel olevel, ERunTests test_what, const MatrixOp &Gc, MatrixOp *Z, MatrixOp *Y, MatrixOpNonsing *R, MatrixOp *Uz, MatrixOp *Vy, EMatRelations mat_rel=MATRICES_INDEP_IMPS) const =0
Creates the range/null decomposition for Gc(:,equ_decomp)'.
Teuchos::RCP< const Teuchos::AbstractFactory< MatrixOp > > mat_fcty_ptr_t
virtual const VectorSpace::space_ptr_t space_null() const =0
Return a VectorSpace object for the range space.
virtual size_type m() const =0
Return the number of columns in Gc.
Teuchos::RCP< const Teuchos::AbstractFactory< MatrixOpNonsing > > mat_nonsing_fcty_ptr_t
virtual const mat_nonsing_fcty_ptr_t factory_R() const =0
Return a matrix factory object for R.