|  | 
template<typename T , matrix_order PO1, matrix_style PS1, matrix_order PO2, matrix_style PS2, typename FUNCTOR >  
        
          | T scythe::gradfdifls | ( | FUNCTOR | fun, |  
          |  |  | T | alpha, |  
          |  |  | const Matrix< T, PO1, PS1 > & | theta, |  
          |  |  | const Matrix< T, PO2, PS2 > & | p |  
          |  | ) |  |  |  
Calculate the first derivative of the function using a forward difference formula.  This function numerically calculates the first derivative of a function with respect to alpha at  using a forward difference formula. This function is primarily useful for linesearches. Parameters:
  
    | fun | The function to calculate the first derivative of. This function should take a single Matrix<T> argument and return a value of type T. |  | alpha | Double the step length. |  | theta | A Matrix (vector) of parameter values at which to calculate the gradient. |  | p | A direction vector. | 
 See also:gradfdif(FUNCTOR fun, const Matrix<T,PO,PS>& theta) 
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 linesearch2(), and zoom(). |