42 #ifndef NLP_VAR_REDUCT_PERM_H
43 #define NLP_VAR_REDUCT_PERM_H
47 namespace NLPInterfacePack {
118 {
public:
InvalidBasis(
const std::string& what_arg) : std::logic_error(what_arg) {}};
203 #ifdef DOXYGEN_COMPILE
212 #endif // NLP_VAR_REDUCT_PERM_H
Thrown if an invalid basis selection is made.
virtual Range1D var_dep() const =0
virtual bool get_next_basis(Permutation *P_var, Range1D *var_dep, Permutation *P_equ, Range1D *equ_decomp)=0
Returns the next basis the NLP has and sets the NLP to the returned basis.
virtual void set_basis(const Permutation &P_var, const Range1D &var_dep, const Permutation *P_equ, const Range1D *equ_decomp)=0
Sets the basis the that the NLP will use to permute the problem.
virtual Range1D equ_decomp() const =0
virtual bool nlp_selects_basis() const =0
Returns true if the NLP can suggest one or more basis selections.
virtual const perm_fcty_ptr_t factory_P_equ() const =0
NLP interface class that adds variable and constriant permutations for variable reduction basis selec...
Teuchos::AbstractFactory< AbstractLinAlgPack::Permutation > * factory_P_var
Teuchos::AbstractFactory< AbstractLinAlgPack::Permutation > * factory_P_equ
Teuchos::RCP< const Teuchos::AbstractFactory< Permutation > > perm_fcty_ptr_t
virtual const perm_fcty_ptr_t factory_P_var() const =0
NLP interface class {abstract}.
virtual const Permutation & P_var() const
Return the permutation object for the variables.
InvalidBasis(const std::string &what_arg)
virtual const Permutation & P_equ() const
Return the permutation object for the constraints.
virtual void get_basis(Permutation *P_var, Range1D *var_dep, Permutation *P_equ, Range1D *equ_decomp) const =0
Returns the basis selection currently being used by the NLP.
virtual Range1D var_indep() const =0
virtual Range1D equ_undecomp() const =0
RangePack::Range1D Range1D