#include <ConstrainedOptPack_DecompositionSystem.hpp>
Inheritance diagram for ConstrainedOptPack::DecompositionSystem:
Public types | |
| typedef Teuchos::RefCountPtr< const Teuchos::AbstractFactory< MatrixOpNonsing > > | mat_nonsing_fcty_ptr_t |
| | |
| typedef Teuchos::RefCountPtr< const Teuchos::AbstractFactory< MatrixOp > > | mat_fcty_ptr_t |
| | |
| enum | EOutputLevel |
Enumeration for the amount of output to create from update_decomp(). More... | |
| enum | ERunTests |
| Enumeration for if to run internal tests or not. More... | |
| enum | EMatRelations |
| More... | |
Dimensionality of the decomposition | |
| virtual size_type | n () const |
Return the number of rows in Gc. | |
| virtual size_type | m () const =0 |
Return the number of columns in Gc. | |
| virtual size_type | r () const |
Returns the rank of Gc(:,equ_decomp()). | |
| virtual Range1D | equ_decomp () const |
| Returns the range of the decomposed equalities. | |
| virtual Range1D | equ_undecomp () const |
| Returns the range of the undecomposed equalities. | |
Range and null vector spaces | |
| virtual const VectorSpace::space_ptr_t | space_range () const =0 |
Return a VectorSpace object for the range space. | |
| virtual const VectorSpace::space_ptr_t | space_null () const =0 |
Return a VectorSpace object for the range space. | |
Matrix factories | |
| virtual const mat_fcty_ptr_t | factory_Z () const =0 |
Return a matrix factory object for Z. | |
| virtual const mat_fcty_ptr_t | factory_Y () const =0 |
Return a matrix factory object for Y. | |
| virtual const mat_nonsing_fcty_ptr_t | factory_R () const =0 |
Return a matrix factory object for R. | |
| virtual const mat_fcty_ptr_t | factory_Uz () const =0 |
Return a matrix factory object for Uz. | |
| virtual const mat_fcty_ptr_t | factory_Uy () const =0 |
Return a matrix factory object for Uy. | |
Update range/null decomposition | |
| 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)'. | |
| 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. | |
Public Member Functions | |
| virtual | ~DecompositionSystem () |
| | |
Gc = [ Gc(:,equ_decomp), Gc(:,equ_undecomp) ]
where Gc is n x m, Gc(:,equ_decomp) is n x r and Gc(:,equ_undecomp) is n x (m - r).
Note that the columns in Gc(:,equ_undecomp) may be linearly dependent with the columns in Gc(:,equ_undecomp) or they may just be undecomposed linearly independent equality constraints.
The decomposition formed by subclasses must have the properties:
Z s.t. Gc(:,equ_decomp)' * Z = 0 Y s.t. [Z Y] is nonsingular R = Gc(:,equ_decomp)' * Y is nonsingular Uz = Gc(:,equ_undecomp)' * Z Uy = Gc(:,equ_undecomp)' * Y
The matrix factory objects returned by ??? are ment to have a lifetime that is independent of this.
The decomposition matrices Z, Y, R, Uz and Uy which are updated in this->update_decomp() must be completely independent from this and from each other and Gc that they based on. For example, Once update_decomp() is called, this, Gc can be destroyed and the behaviors of the decomposition matrices must not be altered. In this respect the DecompositionSystem interface is really nothing more than a "Strategy" interface (with some state data of course) for computing range/null decompositions. This gives the client great flexibility in how the decomposition matrices are used.
ToDo: Finish documentation!
Definition at line 76 of file ConstrainedOptPack_DecompositionSystem.hpp.
|
|
Definition at line 84 of file ConstrainedOptPack_DecompositionSystem.hpp. |
|
|
Definition at line 87 of file ConstrainedOptPack_DecompositionSystem.hpp. |
|
|
Enumeration for the amount of output to create from
Definition at line 98 of file ConstrainedOptPack_DecompositionSystem.hpp. |
|
|
Enumeration for if to run internal tests or not.
Definition at line 106 of file ConstrainedOptPack_DecompositionSystem.hpp. |
|
|
Definition at line 108 of file ConstrainedOptPack_DecompositionSystem.hpp. |
|
|
Definition at line 113 of file ConstrainedOptPack_DecompositionSystem.hpp. |
|
|
Return the number of rows in Postconditions:
The default implementation returns Reimplemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. Definition at line 33 of file ConstrainedOptPack_DecompositionSystem.cpp. |
|
|
Return the number of columns in Postconditions:
Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Returns the rank of Postconditions:
The default implementation returns Reimplemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. Definition at line 38 of file ConstrainedOptPack_DecompositionSystem.cpp. |
|
|
Returns the range of the decomposed equalities.
The default implementation returns Reimplemented in ConstrainedOptPack::DecompositionSystemVarReductPermStd. Definition at line 43 of file ConstrainedOptPack_DecompositionSystem.cpp. |
|
|
Returns the range of the undecomposed equalities.
The default implementation returns Reimplemented in ConstrainedOptPack::DecompositionSystemVarReductPermStd. Definition at line 50 of file ConstrainedOptPack_DecompositionSystem.cpp. |
|
|
Return a Postconditions:
Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Return a Postconditions: Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Return a matrix factory object for
Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Return a matrix factory object for
Implemented in ConstrainedOptPack::DecompositionSystemCoordinate, ConstrainedOptPack::DecompositionSystemOrthogonal, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Return a matrix factory object for
Implemented in ConstrainedOptPack::DecompositionSystemCoordinate, ConstrainedOptPack::DecompositionSystemOrthogonal, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Return a matrix factory object for
Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
|
Return a matrix factory object for
Implemented in ConstrainedOptPack::DecompositionSystemCoordinate, ConstrainedOptPack::DecompositionSystemOrthogonal, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
||||||||||||||||||||||||||||||||||||||||||||
|
Creates the range/null decomposition for
The decomposition is based on the linearly independent columns
Specifically this operation finds the matrices: Z s.t. Gc(:,equ_deomp)' * Z = 0 Y s.t. [Z Y] is nonsingular R = Gc(:,equ_decomp)' * Y is nonsingular Uz = Gc(:,equ_undecomp)' * Z Uy = Gc(:,equ_undecomp)' * Y std::exception may be thrown. The meaning of these exceptions are more associated with the subclasses that implement this operation.
The concrete types for
Postconditions:
Note that this method requires that all of the output matrix objects Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
|
||||||||||||
|
Print the sub-algorithm by which the decomposition is formed.
Implemented in ConstrainedOptPack::DecompositionSystemVarReductImp, and ConstrainedOptPack::DecompositionSystemVarReductPermStd. |
1.3.9.1