|
template<matrix_order RO, matrix_style RS, typename T , matrix_order PO, matrix_style PS, typename FUNCTOR >
Calculate gradient of a function using a forward difference formula.
This function numerically calculates the gradient of a vector-valued function at theta using a forward difference formula.
- Parameters:
-
fun | The function to calculate the gradient of. This function should both take and return a single Matrix (vector) of type T. |
theta | The column vector of values at which to calculate the gradient of the function. |
- See also:
- gradfdifls(FUNCTOR fun, T alpha, const Matrix<T,PO1,PS1>& theta, const Matrix<T,PO2,PS2>& p)
-
jacfdif(FUNCTOR fun, const Matrix<T,PO,PS>& theta)
-
hesscdif(FUNCTOR fun, const Matrix<T,PO,PS>& theta)
- Exceptions:
-
- Note:
- Users will typically wish to implement fun in terms of a functor. Using a functor provides a generic way in which to evaluate functions with more than one parameter. Furthermore, although one can pass a function pointer to this routine, the compiler cannot inline and fully optimize code referenced by function pointers.
References scythe::Matrix_base< ORDER, STYLE >::isColVector(), SCYTHE_CHECK_10, scythe::Matrix_base< ORDER, STYLE >::size(), and sqrt().
Referenced by BFGS(), and linesearch1().
|