Commit 44004a4e by Laurent Belcour

### Adding a way to bootstrap the DCA. And some more TODOs ;-)

parent c033a7f8
 ... ... @@ -109,16 +109,25 @@ double distance(const rational_function* f, const data* d) return distance; } // Bootstrap the DCA algorithm with the Papamarkos fitting // algorithm [Papamarkos 1988] // \todo Finish the Papamarkos implementation // Bootstrap the DCA algorithm with an already done fit void rational_fitter_dca::bootstrap(const data* d, int np, int nq, rational_function* fit, double& delta) { vec p(np*d->dimY()); vec q(nq*d->dimY()); q[0] = 1.0; if(args.is_defined("bootstrap")) { fit->load(args["bootstrap"]; } else { #ifdef DEBUG std::cout << "<> Using the constant function equals to 0 as input: not optimal" << std::endl; #endif q[0] = 1.0; fit->update(p, q); } fit->update(p, q); delta = distance(fit, d); } ... ...
 ... ... @@ -14,6 +14,12 @@ #include #include /*! \brief A rational function optimizer following the DCA algorithm. * * \todo Implement Papamarkos fitter? * \todo I should be able to test when load a BRDF text file to ensure the * loaded object is correct. */ class rational_fitter_dca : public QObject, public fitter { Q_OBJECT ... ... @@ -43,8 +49,9 @@ class rational_fitter_dca : public QObject, public fitter // elements in the denominator virtual bool fit_data(const data* d, int np, int nq, rational_function* fit) ; // Bootstrap the DCA algorithm with the Papamarkos fitting // algorithm [Papamarkos 1988] //! \brief Bootstrap the DCA algorithm with an already fitted function. It will //! load the the rational function object from a text file defined in the argument //! --bootstrap %filename%. void bootstrap(const data* d, int np, int nq, rational_function* fit, double& delta) ; protected: // data ... ...
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!