Commit 2fd223c9 authored by David Bommes's avatar David Bommes

moved NSolve into COMISO

git-svn-id: http://www.openflipper.org/svnrepo/CoMISo/trunk@64 1355f012-dd97-4b2f-ae87-10fa9f823a57
parent b813b111
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -126,6 +126,41 @@ inv_transform_x( double* _xC, double* _x) ...@@ -126,6 +126,41 @@ inv_transform_x( double* _xC, double* _x)
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
void
LinearConstraintHandlerElimination::
project_x( const std::vector<double>& _x, std::vector<double>& _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 void
LinearConstraintHandlerElimination:: LinearConstraintHandlerElimination::
transform_gradient( const std::vector<double>& _g, std::vector<double>& _gC) transform_gradient( const std::vector<double>& _g, std::vector<double>& _gC)
...@@ -168,5 +203,5 @@ transform_hessian( const RMatrix& _H, RMatrix& _HC) ...@@ -168,5 +203,5 @@ transform_hessian( const RMatrix& _H, RMatrix& _HC)
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_LINEARCONSTRAINTHANDLERELIMINATION_HH #ifndef COMISO_LINEARCONSTRAINTHANDLERELIMINATION_HH
#define ACG_LINEARCONSTRAINTHANDLERELIMINATION_HH #define COMISO_LINEARCONSTRAINTHANDLERELIMINATION_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -81,6 +81,10 @@ public: ...@@ -81,6 +81,10 @@ public:
void inv_transform_x( const std::vector<double>& _xC, std::vector<double>& _x); void inv_transform_x( const std::vector<double>& _xC, std::vector<double>& _x);
void inv_transform_x( double* _xC, double* _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<double>& _x, std::vector<double>& _xp);
void project_x( double* _x, double* _xp);
// transform gradient // transform gradient
void transform_gradient( const std::vector<double>& _g, std::vector<double>& _gC); void transform_gradient( const std::vector<double>& _g, std::vector<double>& _gC);
void transform_gradient( double* _g, double* _gC); void transform_gradient( double* _g, double* _gC);
...@@ -111,11 +115,11 @@ private: ...@@ -111,11 +115,11 @@ private:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace ACG
//============================================================================= //=============================================================================
#if defined(INCLUDE_TEMPLATES) && !defined(ACG_LINEARCONSTRAINTHANDLERELIMINATION_C) #if defined(INCLUDE_TEMPLATES) && !defined(COMISO_LINEARCONSTRAINTHANDLERELIMINATION_C)
#define ACG_LINEARCONSTRAINTHANDLERELIMINATION_TEMPLATES #define COMISO_LINEARCONSTRAINTHANDLERELIMINATION_TEMPLATES
#include "LinearConstraintHandlerEliminationT.cc" #include "LinearConstraintHandlerEliminationT.cc"
#endif #endif
//============================================================================= //=============================================================================
#endif // ACG_LINEARCONSTRAINTHANDLERELIMINATION_HH defined #endif // COMISO_LINEARCONSTRAINTHANDLERELIMINATION_HH defined
//============================================================================= //=============================================================================
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// //
//============================================================================= //=============================================================================
#define ACG_LINEARCONSTRAINTHANDLERELIMINATION_C #define COMISO_LINEARCONSTRAINTHANDLERELIMINATION_C
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -85,5 +85,5 @@ initialize( const MatrixT& _C, const VectorT& _c) ...@@ -85,5 +85,5 @@ initialize( const MatrixT& _C, const VectorT& _c)
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -97,5 +97,5 @@ add_penalty_hessian( RMatrix& _H) ...@@ -97,5 +97,5 @@ add_penalty_hessian( RMatrix& _H)
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_LINEARCONSTRAINTHANDLERPENALTY_HH #ifndef COMISO_LINEARCONSTRAINTHANDLERPENALTY_HH
#define ACG_LINEARCONSTRAINTHANDLERPENALTY_HH #define COMISO_LINEARCONSTRAINTHANDLERPENALTY_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -104,7 +104,7 @@ private: ...@@ -104,7 +104,7 @@ private:
}; };
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#if defined(INCLUDE_TEMPLATES) && !defined(ACG_LINEARCONSTRAINTHANDLERPENALTY_C) #if defined(INCLUDE_TEMPLATES) && !defined(ACG_LINEARCONSTRAINTHANDLERPENALTY_C)
#define ACG_LINEARCONSTRAINTHANDLERPENALTY_TEMPLATES #define ACG_LINEARCONSTRAINTHANDLERPENALTY_TEMPLATES
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
// //
//============================================================================= //=============================================================================
#define ACG_LINEARCONSTRAINTHANDLERPENALTY_C #define COMISO_LINEARCONSTRAINTHANDLERPENALTY_C
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -49,5 +49,5 @@ initialize( const MatrixT& _C, const VectorT& _c) ...@@ -49,5 +49,5 @@ initialize( const MatrixT& _C, const VectorT& _c)
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_NPDERIVATIVECHECKER_HH #ifndef COMISO_NPDERIVATIVECHECKER_HH
#define ACG_NPDERIVATIVECHECKER_HH #define COMISO_NPDERIVATIVECHECKER_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -189,7 +189,7 @@ private: ...@@ -189,7 +189,7 @@ private:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // ACG_NPDERIVATIVECHECKER defined #endif // ACG_NPDERIVATIVECHECKER defined
//============================================================================= //=============================================================================
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_NPLINEARCONSTRAINTS_HH #ifndef COMISO_NPLINEARCONSTRAINTS_HH
#define ACG_NPLINEARCONSTRAINTS_HH #define COMISO_NPLINEARCONSTRAINTS_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -223,6 +223,6 @@ private: ...@@ -223,6 +223,6 @@ private:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace ACG
//============================================================================= //=============================================================================
#endif // ACG_NSOLVERGMMINTERFACE_HH defined #endif // COMISO_NSOLVERGMMINTERFACE_HH defined
//============================================================================= //=============================================================================
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_NPTIMING_HH #ifndef COMISO_NPTIMING_HH
#define ACG_NPTIMING_HH #define COMISO_NPTIMING_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -142,8 +142,8 @@ private: ...@@ -142,8 +142,8 @@ private:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // ACG_NPTIMING_HH defined #endif // COMISO_NPTIMING_HH defined
//============================================================================= //=============================================================================
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_NPROBLEMGMMINTERFACE_HH #ifndef COMISO_NPROBLEMGMMINTERFACE_HH
#define ACG_NPROBLEMGMMINTERFACE_HH #define COMISO_NPROBLEMGMMINTERFACE_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -52,8 +52,8 @@ public: ...@@ -52,8 +52,8 @@ public:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // ACG_NROBLEMGMMINTERFACE_HH defined #endif // COMISO_NPROBLEMGMMINTERFACE_HH defined
//============================================================================= //=============================================================================
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -114,5 +114,5 @@ solve(NProblemGmmInterface* _problem) ...@@ -114,5 +114,5 @@ solve(NProblemGmmInterface* _problem)
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_NEWTONSOLVER_HH #ifndef COMISO_NEWTONSOLVER_HH
#define ACG_NEWTONSOLVER_HH #define COMISO_NEWTONSOLVER_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -70,7 +70,7 @@ private: ...@@ -70,7 +70,7 @@ private:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // ACG_NEWTONSOLVER_HH defined #endif // ACG_NEWTONSOLVER_HH defined
//============================================================================= //=============================================================================
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== IMPLEMENTATION ========================================================== //== IMPLEMENTATION ==========================================================
...@@ -280,7 +280,7 @@ cleanup() ...@@ -280,7 +280,7 @@ cleanup()
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // COMISO_TAO_AVAILABLE #endif // COMISO_TAO_AVAILABLE
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_TAOSOLVER_HH #ifndef COMISO_TAOSOLVER_HH
#define ACG_TAOSOLVER_HH #define COMISO_TAOSOLVER_HH
//== COMPILE-TIME PACKAGE REQUIREMENTS ======================================== //== COMPILE-TIME PACKAGE REQUIREMENTS ========================================
#include <CoMISo/Config/config.hh> #include <CoMISo/Config/config.hh>
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -69,7 +69,7 @@ private: ...@@ -69,7 +69,7 @@ private:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // COMISO_TAO_AVAILABLE #endif // COMISO_TAO_AVAILABLE
......
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
//============================================================================= //=============================================================================
#ifndef ACG_TESTINTERFACE_HH #ifndef COMISO_TESTINTERFACE_HH
#define ACG_TESTINTERFACE_HH #define COMISO_TESTINTERFACE_HH
//== INCLUDES ================================================================= //== INCLUDES =================================================================
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
//== NAMESPACES =============================================================== //== NAMESPACES ===============================================================
namespace ACG { namespace COMISO {
//== CLASS DEFINITION ========================================================= //== CLASS DEFINITION =========================================================
...@@ -77,8 +77,8 @@ public: ...@@ -77,8 +77,8 @@ public:
//============================================================================= //=============================================================================
} // namespace ACG } // namespace COMISO
//============================================================================= //=============================================================================
#endif // ACG_TESTINTERFACE_HH defined #endif // COMISO_TESTINTERFACE_HH defined
//============================================================================= //=============================================================================
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment