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