[CppAD] gradient of vector-valued function

Brad Bell bradbell at seanet.com
Mon Feb 11 22:19:06 EST 2013


The work for computing the Jacobian involves repeated first order calls 
to either f.Forward(1, u) or f.Reverse(1, v).
See the functions JacobianFor and JacobianRev in
https://projects.coin-or.org/CppAD/browser/trunk/cppad/local/jacobian.hpp
Each of these forward and reverse mode calls involves about the same 
amount of work.

On the other hand
     w^T * f.Jacobain(x)
can be computed with one f.Reverse(1, w) call. See
     http://www.coin-or.org/CppAD/Doc/reverse_one.xml


On 02/11/2013 02:29 AM, Norman Goldstein wrote:
> The Hessian driver
>
> hes = f.Hessian(x, w)
>
> is very convenient for a function F : B^n --> B^m
>
> I did not find in the CppAD documentation a similar call
>
> grad = f.Gradient(x, w )
>
> Of course, this is the same as
>
> w^t * f.Jacobian(x)
>
> but would avoid calculating the full jacobian.
>
> ??
>
> Thank you.
> _______________________________________________
> CppAD mailing list
> CppAD at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cppad
>



More information about the CppAD mailing list