[CppAD] from ADOL-C to CppAD

Brad Bell bradbell at apl.washington.edu
Sat Apr 24 12:59:32 EDT 2010



On Fri, 23 Apr 2010, Nikhil Kriplani wrote:

> Hello Dr. Bell,
>
> I am considering using CppAD for a circuit simulator application
> (fREEDA, www.freeda.org) that currently uses ADOL-C. This is mainly
> because I want to get away from using "tapes" which places an upper
> limit on how large a circuit I can simulate, and permit easy debugging
> of code.

CppAD uses a tape to store the floating point operations (much the way 
ADOLC does). That said, CppAD is very careful to be efficient in its use 
of memory.

I suggest that you make the type for your floating point operations a 
template parameter. That way you can use your code (and debug it) with any 
of the C++ operator overloading AD types. See the heading "CppAD Numerical 
Template Library" on the page
 	http://www.coin-or.org/CppAD/Doc/library.xml
for some examples of how to do this.


>
> I had a few questions:
>
> 1. Will CppAD be actively supported in the near future?

Yes. You can see a list of recent activity from the users point of view 
at
 	http://www.coin-or.org/CppAD/Doc/whats_new_10.xml

>
> 2. ADOL-C has a jac_vec() function which is very handy for our
> application. Is there an equivalent helper function in CppAD? If not,
> can you suggest a block of code that can duplicate that functionality?

I think you are interested in the routines listed at
 	http://www.coin-or.org/CppAD/Doc/drivers.xml


>
> 3. How does the performance of CppAD compare to ADOL-C? Is it fairly 
> comparable?


There are speed tests that compare ADOLC with CppAD on your machine.
You can find documentation for them at
 	http://www.coin-or.org/CppAD/Doc/speed.xml

I do not fully understand why, but sometimes CppAD is much faster. I am 
working with the ADOLC development group to try and understand this.


>
> Look forward to hearing from you.
>
> Regards,
> Nik Kriplani
>



More information about the CppAD mailing list