diff --git a/CoMISo/NSolver/LinearConstraintHandlerElimination.cc b/CoMISo/NSolver/LinearConstraintHandlerElimination.cc index 6aee5c65b732ad617a72ca284532755ce68d7f74..a34d85a85e95570799c6c02fc629c7fc6b47963b 100644 --- a/CoMISo/NSolver/LinearConstraintHandlerElimination.cc +++ b/CoMISo/NSolver/LinearConstraintHandlerElimination.cc @@ -12,7 +12,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== IMPLEMENTATION ========================================================== @@ -126,6 +126,41 @@ inv_transform_x( double* _xC, double* _x) //----------------------------------------------------------------------------- +void +LinearConstraintHandlerElimination:: +project_x( const std::vector& _x, std::vector& _xp) +{ + _xp.resize(n_); + if( _x.size()) + project_x((double*)&(_x[0]), &(_xp[0])); +} + + +//----------------------------------------------------------------------------- + + +void +LinearConstraintHandlerElimination:: +project_x( double* _x, double* _xp) +{ + if( n_ == n_red_) // special case of no constraints + { + // just copy + gmm::copy(VectorPT(_x, n_), VectorPT(_xp, n_)); + } + else + { + Vtemp_.resize( n_red_); + + transform_x (_x , &Vtemp_[0]); + inv_transform_x( &Vtemp_[0], _xp ); + } +} + + +//----------------------------------------------------------------------------- + + void LinearConstraintHandlerElimination:: transform_gradient( const std::vector& _g, std::vector& _gC) @@ -168,5 +203,5 @@ transform_hessian( const RMatrix& _H, RMatrix& _HC) //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= diff --git a/CoMISo/NSolver/LinearConstraintHandlerElimination.hh b/CoMISo/NSolver/LinearConstraintHandlerElimination.hh index 1a2af0cb0b28af2f8c9945f9233affd3110fbeba..0f65f221295e69e7727948f6b8377d3ef70848bd 100644 --- a/CoMISo/NSolver/LinearConstraintHandlerElimination.hh +++ b/CoMISo/NSolver/LinearConstraintHandlerElimination.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_LINEARCONSTRAINTHANDLERELIMINATION_HH -#define ACG_LINEARCONSTRAINTHANDLERELIMINATION_HH +#ifndef COMISO_LINEARCONSTRAINTHANDLERELIMINATION_HH +#define COMISO_LINEARCONSTRAINTHANDLERELIMINATION_HH //== INCLUDES ================================================================= @@ -18,7 +18,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -81,6 +81,10 @@ public: void inv_transform_x( const std::vector& _xC, std::vector& _x); void inv_transform_x( double* _xC, double* _x); + // project x to closest one fullfilling the constraints: inv_transform_x(transform_x(x)) + void project_x( const std::vector& _x, std::vector& _xp); + void project_x( double* _x, double* _xp); + // transform gradient void transform_gradient( const std::vector& _g, std::vector& _gC); void transform_gradient( double* _g, double* _gC); @@ -111,11 +115,11 @@ private: //============================================================================= } // namespace ACG //============================================================================= -#if defined(INCLUDE_TEMPLATES) && !defined(ACG_LINEARCONSTRAINTHANDLERELIMINATION_C) -#define ACG_LINEARCONSTRAINTHANDLERELIMINATION_TEMPLATES +#if defined(INCLUDE_TEMPLATES) && !defined(COMISO_LINEARCONSTRAINTHANDLERELIMINATION_C) +#define COMISO_LINEARCONSTRAINTHANDLERELIMINATION_TEMPLATES #include "LinearConstraintHandlerEliminationT.cc" #endif //============================================================================= -#endif // ACG_LINEARCONSTRAINTHANDLERELIMINATION_HH defined +#endif // COMISO_LINEARCONSTRAINTHANDLERELIMINATION_HH defined //============================================================================= diff --git a/CoMISo/NSolver/LinearConstraintHandlerEliminationT.cc b/CoMISo/NSolver/LinearConstraintHandlerEliminationT.cc index 8108b2389282714e7671ad8727ff5a671f9fb7dd..55c39cf40b84cad69655bb7594afd29a58ac1ab6 100644 --- a/CoMISo/NSolver/LinearConstraintHandlerEliminationT.cc +++ b/CoMISo/NSolver/LinearConstraintHandlerEliminationT.cc @@ -4,7 +4,7 @@ // //============================================================================= -#define ACG_LINEARCONSTRAINTHANDLERELIMINATION_C +#define COMISO_LINEARCONSTRAINTHANDLERELIMINATION_C //== INCLUDES ================================================================= @@ -13,7 +13,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== IMPLEMENTATION ========================================================== @@ -85,5 +85,5 @@ initialize( const MatrixT& _C, const VectorT& _c) //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= diff --git a/CoMISo/NSolver/LinearConstraintHandlerPenalty.cc b/CoMISo/NSolver/LinearConstraintHandlerPenalty.cc index a9ffb2cf3d9a4f14b38fcd82fa2dd00cb7be7aa4..f2ed377db399dfa4c8c59818349de623b375cf25 100644 --- a/CoMISo/NSolver/LinearConstraintHandlerPenalty.cc +++ b/CoMISo/NSolver/LinearConstraintHandlerPenalty.cc @@ -12,7 +12,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== IMPLEMENTATION ========================================================== @@ -97,5 +97,5 @@ add_penalty_hessian( RMatrix& _H) //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= diff --git a/CoMISo/NSolver/LinearConstraintHandlerPenalty.hh b/CoMISo/NSolver/LinearConstraintHandlerPenalty.hh index 283167c4d60d7b5028bd11d2ba6bd9d8b2372f9b..bd5f317b616a2d08f9e851325bc14c1a21475a11 100644 --- a/CoMISo/NSolver/LinearConstraintHandlerPenalty.hh +++ b/CoMISo/NSolver/LinearConstraintHandlerPenalty.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_LINEARCONSTRAINTHANDLERPENALTY_HH -#define ACG_LINEARCONSTRAINTHANDLERPENALTY_HH +#ifndef COMISO_LINEARCONSTRAINTHANDLERPENALTY_HH +#define COMISO_LINEARCONSTRAINTHANDLERPENALTY_HH //== INCLUDES ================================================================= @@ -18,7 +18,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -104,7 +104,7 @@ private: }; //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= #if defined(INCLUDE_TEMPLATES) && !defined(ACG_LINEARCONSTRAINTHANDLERPENALTY_C) #define ACG_LINEARCONSTRAINTHANDLERPENALTY_TEMPLATES diff --git a/CoMISo/NSolver/LinearConstraintHandlerPenaltyT.cc b/CoMISo/NSolver/LinearConstraintHandlerPenaltyT.cc index 99ea49023c7b52ffc9a5cf4e7b687b7bd4ac2931..17337c51f57bd580bef61df982a76b80f136d63d 100644 --- a/CoMISo/NSolver/LinearConstraintHandlerPenaltyT.cc +++ b/CoMISo/NSolver/LinearConstraintHandlerPenaltyT.cc @@ -4,7 +4,7 @@ // //============================================================================= -#define ACG_LINEARCONSTRAINTHANDLERPENALTY_C +#define COMISO_LINEARCONSTRAINTHANDLERPENALTY_C //== INCLUDES ================================================================= @@ -12,7 +12,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== IMPLEMENTATION ========================================================== @@ -49,5 +49,5 @@ initialize( const MatrixT& _C, const VectorT& _c) //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= diff --git a/CoMISo/NSolver/NPDerivativeChecker.hh b/CoMISo/NSolver/NPDerivativeChecker.hh index 9f910fc707f1219b2c3817fc45672cb2c982b671..a5891283fcefd42a25ce30145bcb11dcf66e812b 100644 --- a/CoMISo/NSolver/NPDerivativeChecker.hh +++ b/CoMISo/NSolver/NPDerivativeChecker.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_NPDERIVATIVECHECKER_HH -#define ACG_NPDERIVATIVECHECKER_HH +#ifndef COMISO_NPDERIVATIVECHECKER_HH +#define COMISO_NPDERIVATIVECHECKER_HH //== INCLUDES ================================================================= @@ -22,7 +22,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -189,7 +189,7 @@ private: //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= #endif // ACG_NPDERIVATIVECHECKER defined //============================================================================= diff --git a/CoMISo/NSolver/NPLinearConstraints.hh b/CoMISo/NSolver/NPLinearConstraints.hh index 93fc6ce421197cd2edb2414b9ce2783c9293ef9f..7bcc35e3d9ed51d0e3819e49dec58a73fa172605 100644 --- a/CoMISo/NSolver/NPLinearConstraints.hh +++ b/CoMISo/NSolver/NPLinearConstraints.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_NPLINEARCONSTRAINTS_HH -#define ACG_NPLINEARCONSTRAINTS_HH +#ifndef COMISO_NPLINEARCONSTRAINTS_HH +#define COMISO_NPLINEARCONSTRAINTS_HH //== INCLUDES ================================================================= @@ -22,7 +22,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -223,6 +223,6 @@ private: //============================================================================= } // namespace ACG //============================================================================= -#endif // ACG_NSOLVERGMMINTERFACE_HH defined +#endif // COMISO_NSOLVERGMMINTERFACE_HH defined //============================================================================= diff --git a/CoMISo/NSolver/NPTiming.hh b/CoMISo/NSolver/NPTiming.hh index e03a1defa7b1e602fcb396adc3aa635b144ca5b5..282a54ee8d6d04cdc3f26dddc9d468b1bf24ed8b 100644 --- a/CoMISo/NSolver/NPTiming.hh +++ b/CoMISo/NSolver/NPTiming.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_NPTIMING_HH -#define ACG_NPTIMING_HH +#ifndef COMISO_NPTIMING_HH +#define COMISO_NPTIMING_HH //== INCLUDES ================================================================= @@ -22,7 +22,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -142,8 +142,8 @@ private: //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= -#endif // ACG_NPTIMING_HH defined +#endif // COMISO_NPTIMING_HH defined //============================================================================= diff --git a/CoMISo/NSolver/NProblemGmmInterface.hh b/CoMISo/NSolver/NProblemGmmInterface.hh index d798880f0231ea78c95c9a26cb21727cf40af3f3..68275354b197a7a2c00e8144e7b32001d1ab2e88 100644 --- a/CoMISo/NSolver/NProblemGmmInterface.hh +++ b/CoMISo/NSolver/NProblemGmmInterface.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_NPROBLEMGMMINTERFACE_HH -#define ACG_NPROBLEMGMMINTERFACE_HH +#ifndef COMISO_NPROBLEMGMMINTERFACE_HH +#define COMISO_NPROBLEMGMMINTERFACE_HH //== INCLUDES ================================================================= @@ -17,7 +17,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -52,8 +52,8 @@ public: //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= -#endif // ACG_NROBLEMGMMINTERFACE_HH defined +#endif // COMISO_NPROBLEMGMMINTERFACE_HH defined //============================================================================= diff --git a/CoMISo/NSolver/NewtonSolver.cc b/CoMISo/NSolver/NewtonSolver.cc index 02c542fc2b84e6417d92fb2a57319c99cc308c68..189e6d8b7aedf319b5742d73ca9aa4fc64029c79 100644 --- a/CoMISo/NSolver/NewtonSolver.cc +++ b/CoMISo/NSolver/NewtonSolver.cc @@ -11,7 +11,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== IMPLEMENTATION ========================================================== @@ -114,5 +114,5 @@ solve(NProblemGmmInterface* _problem) //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= diff --git a/CoMISo/NSolver/NewtonSolver.hh b/CoMISo/NSolver/NewtonSolver.hh index 5061a52cb3c5628b0c3974c53c18ccd045da14f6..ade098cb019ff0f8ee91dae7cf59870d1d926530 100644 --- a/CoMISo/NSolver/NewtonSolver.hh +++ b/CoMISo/NSolver/NewtonSolver.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_NEWTONSOLVER_HH -#define ACG_NEWTONSOLVER_HH +#ifndef COMISO_NEWTONSOLVER_HH +#define COMISO_NEWTONSOLVER_HH //== INCLUDES ================================================================= @@ -18,7 +18,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -70,7 +70,7 @@ private: //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= #endif // ACG_NEWTONSOLVER_HH defined //============================================================================= diff --git a/CoMISo/NSolver/TAOSolver.cc b/CoMISo/NSolver/TAOSolver.cc index c19212c701f950a8eeb0c607570ff3a8e122254f..693227cbdb938eb250be6fdb9a8aeda5c68a0ece 100644 --- a/CoMISo/NSolver/TAOSolver.cc +++ b/CoMISo/NSolver/TAOSolver.cc @@ -17,7 +17,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== IMPLEMENTATION ========================================================== @@ -280,7 +280,7 @@ cleanup() //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= #endif // COMISO_TAO_AVAILABLE diff --git a/CoMISo/NSolver/TAOSolver.hh b/CoMISo/NSolver/TAOSolver.hh index 9f6bd7b208971d15cbabb05dfd8ae3074ddc97d6..f7bdd3d3030aa21287bcb0fd010f713c55e4efb7 100644 --- a/CoMISo/NSolver/TAOSolver.hh +++ b/CoMISo/NSolver/TAOSolver.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_TAOSOLVER_HH -#define ACG_TAOSOLVER_HH +#ifndef COMISO_TAOSOLVER_HH +#define COMISO_TAOSOLVER_HH //== COMPILE-TIME PACKAGE REQUIREMENTS ======================================== #include @@ -24,7 +24,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -69,7 +69,7 @@ private: //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= #endif // COMISO_TAO_AVAILABLE diff --git a/CoMISo/NSolver/TestInterface.hh b/CoMISo/NSolver/TestInterface.hh index b838b2acb91f14d64c2238f7afc261d0cdccfbdc..04a74209c9ae38af1c6daef3995c450bcb175bd8 100644 --- a/CoMISo/NSolver/TestInterface.hh +++ b/CoMISo/NSolver/TestInterface.hh @@ -5,8 +5,8 @@ //============================================================================= -#ifndef ACG_TESTINTERFACE_HH -#define ACG_TESTINTERFACE_HH +#ifndef COMISO_TESTINTERFACE_HH +#define COMISO_TESTINTERFACE_HH //== INCLUDES ================================================================= @@ -18,7 +18,7 @@ //== NAMESPACES =============================================================== -namespace ACG { +namespace COMISO { //== CLASS DEFINITION ========================================================= @@ -77,8 +77,8 @@ public: //============================================================================= -} // namespace ACG +} // namespace COMISO //============================================================================= -#endif // ACG_TESTINTERFACE_HH defined +#endif // COMISO_TESTINTERFACE_HH defined //=============================================================================