[ADOL-C] Change parameters of a function without retaping
Brad Bell
bradbell at seanet.com
Sat May 9 17:49:32 EDT 2015
The following example demonstrates having a Sparse Hessian w.r.t. one
set of variables and parameters (in the sense below) with respect to
another set of variables.
http://www.coin-or.org/CppAD/Doc/sub_sparse_hes.cpp.xml
It makes use of the fact that CppAD allows for AD< AD<double> >. I
think that this example could be modified to accomplish your goal below.
Note that one can use ADOLC at the lower level; i.e., use
CppAD::AD< adouble >
where adouble is the ADOLC type adouble; see
http://www.coin-or.org/CppAD/Doc/mul_level_adolc.cpp.xml
On 5/8/2015 3:49 PM, Leitz, Thomas wrote:
> Hi,
>
> lets assume I have a function f(x,y) : R^n \times R^m -> R and I only
> need the gradient with respect to x, but every time I need to change
> both variables x and y. (y could be some parameters like coefficients
> of a polynomial function etc.). There are basically two ways I know
> how to achieve this:
>
> 1. mark both x and y as independent variables, tape once and every
> time I need a gradient I compute the whole gradient df/d(x,y) at some
> (x0,y0) and just use df/dx (i.e. the first n values of the gradient
> df/d(x,y)). This way I can change both variables but I also compute
> the gradient df/dy that I don't need.
>
> 2. mark only x as independent and tape the function with any y0 every
> time before computing the gradient df/dx.
>
> Is there any way to tape once, and later compute the gradient df/dx at
> any (x0,y0) without retaping?
>
>
> Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/adol-c/attachments/20150509/3e6164b6/attachment.html>
More information about the ADOL-C
mailing list