[ADOL-C] active_integer

Kshitij Kulshreshtha kshitij at math.upb.de
Mon Jul 12 10:18:08 EDT 2010

Dear Manuel,

as far as I understand your description, you have a function like

void eval(adouble *indep, double *coeff, adouble *dep);

which you tape and then evaluate derivatives of dep w.r.t. indep, and in
each step coeff may change. Is that right? I also suspect that the
number of these coefficients is significantly lower than the number of
independents and dependents. Or am I wrong to assume that?

One way to avoid retaping is to simply declare the coeff also as a part
of the set of independents like this:

void eval(adouble *indep_and_coeff, adouble *dep);

In the forward mode you can explicitly choose which derivatives you
want, and in the reverse mode you'll get derivatives w.r.t. coeff as a
byproduct, which you can discard if you don't need them.

Your tape is going to become somewhat bigger by doing this but it will
be faster to evaluate from this bigger tape than retaping in each step.


As on 2010-07-09 12:05, Manuel Kudruss did write:
> Dear all,
> i'm using ADOL-C to generate derivatives for experimental design
> problems. 
> The coefficients of the function i want to differentiate, may change
> during the ADOL-C call, but there won't be any derivatives with respect
> to them.
> Is there an alternative to retaping in each step? Maybe an approach like
> setting the integers or doubles active and pass them with the
> independant variables.
> Maybe someone knows a solution or work-around.
> Thanks a lot,
> Manuel Kudruss

Kshitij Kulshreshtha

Institut für Mathematik,
Universität Paderborn,
Warburger Straße 100,
33098 Paderborn.

Büro: A3.319

Arnikaweg 62
33100 Paderborn.

More information about the ADOL-C mailing list