Line minimization methods Each of the linmin methods in this namespace advance the parameters in obj along direction d. updating the energy E, gradient g, and the step-size alpha. The return value specifies if the step succeeded at reducing E. If the step fails, alpha MUST contain the total progress along dir. made by this step, so that minimize may reset it back to the original value. More...
Functions | |
template<typename Vector > | |
bool | linminRelax (Minimizable< Vector > &obj, const MinimizeParams &p, const Vector &d, double alphaT, double &alpha, double &E, Vector &g, Vector &Kg) |
template<typename Vector > | |
bool | linminQuad (Minimizable< Vector > &obj, const MinimizeParams &p, const Vector &d, double alphaT, double &alpha, double &E, Vector &g, Vector &Kg) |
Quadratic line minimization. | |
template<typename Vector > | |
bool | linminCubicWolfe (Minimizable< Vector > &obj, const MinimizeParams &p, const Vector &d, double alphaT, double &alpha, double &E, Vector &g, Vector &Kg) |
Cubic line minimization, designed to handle fluids which can be highly non-quadratic. | |
Line minimization methods Each of the linmin methods in this namespace advance the parameters in obj along direction d. updating the energy E, gradient g, and the step-size alpha. The return value specifies if the step succeeded at reducing E. If the step fails, alpha MUST contain the total progress along dir. made by this step, so that minimize may reset it back to the original value.
bool MinimizeLinmin::linminRelax | ( | Minimizable< Vector > & | obj, |
const MinimizeParams & | p, | ||
const Vector & | d, | ||
double | alphaT, | ||
double & | alpha, | ||
double & | E, | ||
Vector & | g, | ||
Vector & | Kg | ||
) |
Equation-of-motion / Relaxation method stepping. NOTE: Criterion for success of this method is different from the others. It only ensures that the energy is not NaN/Inf.