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 @@
//== NAMESPACES ===============================================================
namespace ACG {
namespace COMISO {
//== IMPLEMENTATION ==========================================================
......@@ -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
LinearConstraintHandlerElimination::
transform_gradient( const std::vector<double>& _g, std::vector<double>& _gC)
......@@ -168,5 +203,5 @@ transform_hessian( const RMatrix& _H, RMatrix& _HC)
//=============================================================================
} // namespace ACG
} // namespace COMISO
//=============================================================================
......@@ -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<double>& _xC, std::vector<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
void transform_gradient( const std::vector<double>& _g, std::vector<double>& _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
//=============================================================================
......@@ -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
//=============================================================================
......@@ -12,7 +12,7 @@
//== NAMESPACES ===============================================================
namespace ACG {
namespace COMISO {
//== IMPLEMENTATION ==========================================================
......@@ -97,5 +97,5 @@ add_penalty_hessian( RMatrix& _H)
//=============================================================================
} // namespace ACG
} // namespace COMISO
//=============================================================================
......@@ -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
......
......@@ -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
//=============================================================================
......@@ -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
//=============================================================================
......
......@@ -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
//=============================================================================
......@@ -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
//=============================================================================
......@@ -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
//=============================================================================
......@@ -11,7 +11,7 @@
//== NAMESPACES ===============================================================
namespace ACG {
namespace COMISO {
//== IMPLEMENTATION ==========================================================
......@@ -114,5 +114,5 @@ solve(NProblemGmmInterface* _problem)
//=============================================================================
} // namespace ACG
} // namespace COMISO
//=============================================================================
......@@ -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
//=============================================================================
......
......@@ -17,7 +17,7 @@
//== NAMESPACES ===============================================================
namespace ACG {
namespace COMISO {
//== IMPLEMENTATION ==========================================================
......@@ -280,7 +280,7 @@ cleanup()
//=============================================================================
} // namespace ACG
} // namespace COMISO
//=============================================================================
#endif // COMISO_TAO_AVAILABLE
......@@ -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 <CoMISo/Config/config.hh>
......@@ -24,7 +24,7 @@
//== NAMESPACES ===============================================================
namespace ACG {
namespace COMISO {
//== CLASS DEFINITION =========================================================
......@@ -69,7 +69,7 @@ private:
//=============================================================================
} // namespace ACG
} // namespace COMISO
//=============================================================================
#endif // COMISO_TAO_AVAILABLE
......
......@@ -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
//=============================================================================
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