Exemple #1
0
SmartPtr<Vector> NLPScalingObject::unapply_vector_scaling_d_LU_NonConst(
   const Matrix&                 Pd_LU,
   const SmartPtr<const Vector>& lu,
   const VectorSpace&            d_space
   )
{
   DBG_START_METH("NLPScalingObject::unapply_vector_scaling_d_LU_NonConst", dbg_verbosity);
   SmartPtr<Vector> unscaled_d_LU = lu->MakeNew();
   if( have_d_scaling() )
   {
      SmartPtr<Vector> tmp_d = d_space.MakeNew();

      // move to full d space
      Pd_LU.MultVector(1.0, *lu, 0.0, *tmp_d);

      // scale in full x space
      tmp_d = unapply_vector_scaling_d_NonConst(ConstPtr(tmp_d));

      // move back to x_L space
      Pd_LU.TransMultVector(1.0, *tmp_d, 0.0, *unscaled_d_LU);
   }
   else
   {
      unscaled_d_LU->Copy(*lu);
   }

   return unscaled_d_LU;
}
Exemple #2
0
 SmartPtr<const Vector> StandardScalingBase::unapply_vector_scaling_d(
   const SmartPtr<const Vector>& v)
 {
   if (IsValid(scaled_jac_d_space_) &&
       IsValid(scaled_jac_d_space_->RowScaling())) {
     return ConstPtr(unapply_vector_scaling_d_NonConst(v));
   }
   else {
     return v;
   }
 }
Exemple #3
0
 SmartPtr<const Vector> StandardScalingBase::unapply_vector_scaling_d(
   const SmartPtr<const Vector>& v)
 {
   DBG_START_METH("NLPScalingObject::unapply_vector_scaling_d", dbg_verbosity);
   if (IsValid(scaled_jac_d_space_) &&
       IsValid(scaled_jac_d_space_->RowScaling())) {
     return ConstPtr(unapply_vector_scaling_d_NonConst(v));
   }
   else {
     return v;
   }
 }