[ADOL-C] Change parameters of a function without retaping
Leitz, Thomas
thomas.leitz at fau.de
Fri May 15 05:35:04 EDT 2015
Hi Brad,
Thanks for your reply. I'm not (yet) familiar with CppAD, but since I'm currently trying to figure out which of all the autodiff-packages to use for my project, it is good to know, that what I'm trying to do is possible with CppAD. It is also nice to know, that a combination of ADOL-C and CppAD is easy.
Thomas
--
Thomas Leitz
Chair of Applied Dynamics
University of Erlangen-Nuremberg
Haberstrasse 1
D-91058 Erlangen, Germany
room 01.012
phone +49 (0)9131 85 61005
On 09.05.2015, at 23:49, Brad Bell <bradbell at seanet.com<mailto:bradbell at seanet.com>> wrote:
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/20150515/d631946d/attachment.html>
More information about the ADOL-C
mailing list