00001 #ifndef _SOPTIMIZER_H_
00002 #define _SOPTIMIZER_H_
00003
00004 #include "vuSimpleTypes.h"
00005
00006 #include "SMatrix.h"
00007
00015 using namespace coool;
00016
00017 class SOptimizer
00018 {
00019 public:
00021 SOptimizer();
00023 ~SOptimizer();
00024
00033 SVector minimize(const SMatrix& M, const SVector& y,
00034 const SVector& lb, const SVector& ub);
00035 SVector minimize(const SMatrix& M, const SVector& y,
00036 const SVector& lb, const SVector& ub,
00037 const SVector& gradstep);
00038
00044 SVector minimize(const SMatrix& M, const SVector& y);
00045
00047 void setVerbose(bool verbose=true) { m_Verbose = verbose;}
00049 void setItMax(int itmax) { m_ItMax=itmax;}
00051 void setItMaxLine(int itmaxline) { m_ItMaxLine = itmaxline;}
00053 void setTol(double tol) { m_Tol = tol;}
00055 void setGradStep(float gradstep) {m_GradStep = gradstep;};
00056
00058 double getNIterations() const {return m_NIter;};
00060 double getResidue() const {return m_Residue;};
00061
00062 protected:
00063
00064 bool m_Verbose;
00065 int m_ItMax;
00066 int m_ItMaxLine;
00067 double m_Tol;
00068 float m_GradStep;
00069
00070 double m_Residue;
00071 int m_NIter;
00072 };
00073
00074 #endif
00075