# Ipopt::NLPScalingObject Class Reference

This is the abstract base class for problem scaling. More...

`#include <IpNLPScaling.hpp>`

Inheritance diagram for Ipopt::NLPScalingObject:
[legend]

List of all members.

## Public Member Functions
bool | Initialize (const Journalist &jnlst, const OptionsList &options, const std::string &prefix)
| Method to initialize the options.
virtual void | DetermineScaling (const SmartPtr< const VectorSpace > x_space, const SmartPtr< const VectorSpace > c_space, const SmartPtr< const VectorSpace > d_space, const SmartPtr< const MatrixSpace > jac_c_space, const SmartPtr< const MatrixSpace > jac_d_space, const SmartPtr< const SymMatrixSpace > h_space, SmartPtr< const MatrixSpace > &new_jac_c_space, SmartPtr< const MatrixSpace > &new_jac_d_space, SmartPtr< const SymMatrixSpace > &new_h_space, const Matrix &Px_L, const Vector &x_L, const Matrix &Px_U, const Vector &x_U)=0
| This method is called by the IpoptNLP's at a convenient time to compute and/or read scaling factors.
Constructors/Destructors
| NLPScalingObject ()
virtual | ~NLPScalingObject ()
| Default destructor.
virtual Number | apply_obj_scaling (const Number &f)=0
| Methods to map scaled and unscaled matrices.
virtual Number | unapply_obj_scaling (const Number &f)=0
| Returns an obj-unscaled version of the given scalar.
virtual SmartPtr< Vector > | apply_vector_scaling_x_NonConst (const SmartPtr< const Vector > &v)=0
| Returns an x-scaled version of the given vector.
virtual SmartPtr< const Vector > | apply_vector_scaling_x (const SmartPtr< const Vector > &v)=0
| Returns an x-scaled version of the given vector.
virtual SmartPtr< Vector > | unapply_vector_scaling_x_NonConst (const SmartPtr< const Vector > &v)=0
| Returns an x-unscaled version of the given vector.
virtual SmartPtr< const Vector > | unapply_vector_scaling_x (const SmartPtr< const Vector > &v)=0
| Returns an x-unscaled version of the given vector.
virtual SmartPtr< const Vector > | apply_vector_scaling_c (const SmartPtr< const Vector > &v)=0
| Returns an c-scaled version of the given vector.
virtual SmartPtr< const Vector > | unapply_vector_scaling_c (const SmartPtr< const Vector > &v)=0
| Returns an c-unscaled version of the given vector.
virtual SmartPtr< Vector > | apply_vector_scaling_c_NonConst (const SmartPtr< const Vector > &v)=0
| Returns an c-scaled version of the given vector.
virtual SmartPtr< Vector > | unapply_vector_scaling_c_NonConst (const SmartPtr< const Vector > &v)=0
| Returns an c-unscaled version of the given vector.
virtual SmartPtr< const Vector > | apply_vector_scaling_d (const SmartPtr< const Vector > &v)=0
| Returns an d-scaled version of the given vector.
virtual SmartPtr< const Vector > | unapply_vector_scaling_d (const SmartPtr< const Vector > &v)=0
| Returns an d-unscaled version of the given vector.
virtual SmartPtr< Vector > | apply_vector_scaling_d_NonConst (const SmartPtr< const Vector > &v)=0
| Returns an d-scaled version of the given vector.
virtual SmartPtr< Vector > | unapply_vector_scaling_d_NonConst (const SmartPtr< const Vector > &v)=0
| Returns an d-unscaled version of the given vector.
virtual SmartPtr< const Matrix > | apply_jac_c_scaling (SmartPtr< const Matrix > matrix)=0
| Returns a scaled version of the jacobian for c.
virtual SmartPtr< const Matrix > | apply_jac_d_scaling (SmartPtr< const Matrix > matrix)=0
| Returns a scaled version of the jacobian for d If the overloaded method does not create a new matrix, make sure to set the matrix ptr passed in to NULL.
virtual SmartPtr< const SymMatrix > | apply_hessian_scaling (SmartPtr< const SymMatrix > matrix)=0
| Returns a scaled version of the hessian of the lagrangian If the overloaded method does not create a new matrix, make sure to set the matrix ptr passed in to NULL.
SmartPtr< Vector > | apply_vector_scaling_x_LU_NonConst (const Matrix &Px_LU, const SmartPtr< const Vector > &lu, const VectorSpace &x_space)
| Methods for scaling bounds - these wrap those above.
SmartPtr< const Vector > | apply_vector_scaling_x_LU (const Matrix &Px_LU, const SmartPtr< const Vector > &lu, const VectorSpace &x_space)
| Returns an x-scaled vector in the x_L or x_U space.
SmartPtr< Vector > | apply_vector_scaling_d_LU_NonConst (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
| Returns an d-scaled vector in the d_L or d_U space.
SmartPtr< const Vector > | apply_vector_scaling_d_LU (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
| Returns an d-scaled vector in the d_L or d_U space.
SmartPtr< Vector > | unapply_vector_scaling_d_LU_NonConst (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
| Returns an d-unscaled vector in the d_L or d_U space.
SmartPtr< const Vector > | unapply_vector_scaling_d_LU (const Matrix &Pd_LU, const SmartPtr< const Vector > &lu, const VectorSpace &d_space)
| Returns an d-unscaled vector in the d_L or d_U space.
virtual SmartPtr< Vector > | apply_grad_obj_scaling_NonConst (const SmartPtr< const Vector > &v)
| Methods for scaling the gradient of the objective - wraps the virtual methods above.
virtual SmartPtr< const Vector > | apply_grad_obj_scaling (const SmartPtr< const Vector > &v)
| Returns a grad_f scaled version (d_f * D_x^{-1}) of the given vector.
virtual SmartPtr< Vector > | unapply_grad_obj_scaling_NonConst (const SmartPtr< const Vector > &v)
| Returns a grad_f unscaled version (d_f * D_x^{-1}) of the given vector.
virtual SmartPtr< const Vector > | unapply_grad_obj_scaling (const SmartPtr< const Vector > &v)
| Returns a grad_f unscaled version (d_f * D_x^{-1}) of the given vector.
Methods for determining whether scaling for entities is
done
virtual bool | have_x_scaling ()=0
| Returns true if the primal x variables are scaled.
virtual bool | have_c_scaling ()=0
| Returns true if the equality constraints are scaled.
virtual bool | have_d_scaling ()=0
| Returns true if the inequality constraints are scaled.
## Protected Member Functions
virtual bool | InitializeImpl (const OptionsList &options, const std::string &prefix)=0
| Implementation of the initialization method that has to be overloaded by for each derived class.
const Journalist & | Jnlst () const
| Accessor method for the journalist.
## Private Member Functions
Default Compiler Generated Methods
(Hidden to avoid implicit creation/calling). These methods are not implemented and we do not want the compiler to implement them for us, so we declare them private and do not define them. This ensures that they will not be implicitly created/called.
| NLPScalingObject (const NLPScalingObject &)
| Copy Constructor.
void | operator= (const NLPScalingObject &)
| Overloaded Equals Operator.
## Private Attributes
SmartPtr< const Journalist > | jnlst_

## Detailed Description

This is the abstract base class for problem scaling.

It is repsonsible for determining the scaling factors and mapping quantities in and out of scaled and unscaled versions

Definition at line 32 of file IpNLPScaling.hpp.

## Constructor & Destructor Documentation

Ipopt::NLPScalingObject::NLPScalingObject | ( |  | ) |

virtual Ipopt::NLPScalingObject::~NLPScalingObject | ( |  | ) | `[virtual]`

Default destructor.

Ipopt::NLPScalingObject::NLPScalingObject | ( | const NLPScalingObject & |  | ) | `[private]`

Copy Constructor.

## Member Function Documentation

bool Ipopt::NLPScalingObject::Initialize | ( | const Journalist & | jnlst,
|  | const OptionsList & | options,
|  | const std::string & | prefix |
| ) |  |  | `[inline]`

Method to initialize the options.

Definition at line 44 of file IpNLPScaling.hpp.

virtual Number Ipopt::NLPScalingObject::apply_obj_scaling | ( | const Number & | f | ) | `[pure virtual]`

Methods to map scaled and unscaled matrices.

Returns an obj-scaled version of the given scalar

Implemented in Ipopt::StandardScalingBase.

virtual Number Ipopt::NLPScalingObject::unapply_obj_scaling | ( | const Number & | f | ) | `[pure virtual]`

Returns an obj-unscaled version of the given scalar.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::apply_vector_scaling_x_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an x-scaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::apply_vector_scaling_x | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an x-scaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_x_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an x-unscaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_x | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an x-unscaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::apply_vector_scaling_c | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an c-scaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_c | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an c-unscaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::apply_vector_scaling_c_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an c-scaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_c_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an c-unscaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::apply_vector_scaling_d | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an d-scaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_d | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an d-unscaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::apply_vector_scaling_d_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an d-scaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_d_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[pure virtual]`

Returns an d-unscaled version of the given vector.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Matrix> Ipopt::NLPScalingObject::apply_jac_c_scaling | ( | SmartPtr< const Matrix > | matrix | ) | `[pure virtual]`

Returns a scaled version of the jacobian for c.

If the overloaded method does not make a new matrix, make sure to set the matrix ptr passed in to NULL.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const Matrix> Ipopt::NLPScalingObject::apply_jac_d_scaling | ( | SmartPtr< const Matrix > | matrix | ) | `[pure virtual]`

Returns a scaled version of the jacobian for d If the overloaded method does not create a new matrix, make sure to set the matrix ptr passed in to NULL.

Implemented in Ipopt::StandardScalingBase.

virtual SmartPtr<const SymMatrix> Ipopt::NLPScalingObject::apply_hessian_scaling | ( | SmartPtr< const SymMatrix > | matrix | ) | `[pure virtual]`

Returns a scaled version of the hessian of the lagrangian If the overloaded method does not create a new matrix, make sure to set the matrix ptr passed in to NULL.

Implemented in Ipopt::StandardScalingBase.

SmartPtr<Vector> Ipopt::NLPScalingObject::apply_vector_scaling_x_LU_NonConst | ( | const Matrix & | Px_LU,
|  | const SmartPtr< const Vector > & | lu,
|  | const VectorSpace & | x_space |
| ) |  |  |

Methods for scaling bounds - these wrap those above.

Returns an x-scaled vector in the x_L or x_U space

SmartPtr<const Vector> Ipopt::NLPScalingObject::apply_vector_scaling_x_LU | ( | const Matrix & | Px_LU,
|  | const SmartPtr< const Vector > & | lu,
|  | const VectorSpace & | x_space |
| ) |  |  |

Returns an x-scaled vector in the x_L or x_U space.

SmartPtr<Vector> Ipopt::NLPScalingObject::apply_vector_scaling_d_LU_NonConst | ( | const Matrix & | Pd_LU,
|  | const SmartPtr< const Vector > & | lu,
|  | const VectorSpace & | d_space |
| ) |  |  |

Returns an d-scaled vector in the d_L or d_U space.

SmartPtr<const Vector> Ipopt::NLPScalingObject::apply_vector_scaling_d_LU | ( | const Matrix & | Pd_LU,
|  | const SmartPtr< const Vector > & | lu,
|  | const VectorSpace & | d_space |
| ) |  |  |

Returns an d-scaled vector in the d_L or d_U space.

SmartPtr<Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_d_LU_NonConst | ( | const Matrix & | Pd_LU,
|  | const SmartPtr< const Vector > & | lu,
|  | const VectorSpace & | d_space |
| ) |  |  |

Returns an d-unscaled vector in the d_L or d_U space.

SmartPtr<const Vector> Ipopt::NLPScalingObject::unapply_vector_scaling_d_LU | ( | const Matrix & | Pd_LU,
|  | const SmartPtr< const Vector > & | lu,
|  | const VectorSpace & | d_space |
| ) |  |  |

Returns an d-unscaled vector in the d_L or d_U space.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::apply_grad_obj_scaling_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[virtual]`

Methods for scaling the gradient of the objective - wraps the virtual methods above.

Returns a grad_f scaled version (d_f * D_x^{-1}) of the given vector

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::apply_grad_obj_scaling | ( | const SmartPtr< const Vector > & | v | ) | `[virtual]`

Returns a grad_f scaled version (d_f * D_x^{-1}) of the given vector.

virtual SmartPtr<Vector> Ipopt::NLPScalingObject::unapply_grad_obj_scaling_NonConst | ( | const SmartPtr< const Vector > & | v | ) | `[virtual]`

Returns a grad_f unscaled version (d_f * D_x^{-1}) of the given vector.

virtual SmartPtr<const Vector> Ipopt::NLPScalingObject::unapply_grad_obj_scaling | ( | const SmartPtr< const Vector > & | v | ) | `[virtual]`

Returns a grad_f unscaled version (d_f * D_x^{-1}) of the given vector.

virtual bool Ipopt::NLPScalingObject::have_x_scaling | ( |  | ) | `[pure virtual]`

Returns true if the primal x variables are scaled.

Implemented in Ipopt::StandardScalingBase.

virtual bool Ipopt::NLPScalingObject::have_c_scaling | ( |  | ) | `[pure virtual]`

Returns true if the equality constraints are scaled.

Implemented in Ipopt::StandardScalingBase.

virtual bool Ipopt::NLPScalingObject::have_d_scaling | ( |  | ) | `[pure virtual]`

Returns true if the inequality constraints are scaled.

Implemented in Ipopt::StandardScalingBase.

virtual void Ipopt::NLPScalingObject::DetermineScaling | ( | const SmartPtr< const VectorSpace > | x_space,
|  | const SmartPtr< const VectorSpace > | c_space,
|  | const SmartPtr< const VectorSpace > | d_space,
|  | const SmartPtr< const MatrixSpace > | jac_c_space,
|  | const SmartPtr< const MatrixSpace > | jac_d_space,
|  | const SmartPtr< const SymMatrixSpace > | h_space,
|  | SmartPtr< const MatrixSpace > & | new_jac_c_space,
|  | SmartPtr< const MatrixSpace > & | new_jac_d_space,
|  | SmartPtr< const SymMatrixSpace > & | new_h_space,
|  | const Matrix & | Px_L,
|  | const Vector & | x_L,
|  | const Matrix & | Px_U,
|  | const Vector & | x_U |
| ) |  |  | `[pure virtual]`

This method is called by the IpoptNLP's at a convenient time to compute and/or read scaling factors.

Implemented in Ipopt::StandardScalingBase.

virtual bool Ipopt::NLPScalingObject::InitializeImpl | ( | const OptionsList & | options,
|  | const std::string & | prefix |
| ) |  |  | `[protected, pure virtual]`

Implementation of the initialization method that has to be overloaded by for each derived class.

Implemented in Ipopt::EquilibrationScaling, Ipopt::GradientScaling, and Ipopt::StandardScalingBase.

const Journalist& Ipopt::NLPScalingObject::Jnlst | ( |  | ) | const`[inline, protected]`

Accessor method for the journalist.

Definition at line 200 of file IpNLPScaling.hpp.

void Ipopt::NLPScalingObject::operator= | ( | const NLPScalingObject & |  | ) | `[private]`

Overloaded Equals Operator.

Reimplemented in Ipopt::EquilibrationScaling, Ipopt::GradientScaling, Ipopt::StandardScalingBase, Ipopt::NoNLPScalingObject, and Ipopt::UserScaling.

## Member Data Documentation

SmartPtr<const Journalist> Ipopt::NLPScalingObject::jnlst_`[private]`

Definition at line 222 of file IpNLPScaling.hpp.

The documentation for this class was generated from the following file:

- src/Algorithm/IpNLPScaling.hpp

All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines