rjhogan / Adept-2

Combined array and automatic differentiation library in C++
http://www.met.reading.ac.uk/clouds/adept/
Apache License 2.0
163 stars 29 forks source link

new user considering porting from CppAD #33

Open a-jp opened 6 months ago

a-jp commented 6 months ago

Hi,

I currently use CppAD and was considering porting my codebase to use your library. I make use of gradient, jacobian, and hessian computations in cppad. The optimisation framework I'm using also makes use of the sparsity pattern that CppAD can compute for both jacobian and hessian matrices. Is there anything that I'm currently using from CppAD as per the above that's not currently provided in your library before I begin the porting work? Thanks

rjhogan commented 6 months ago

Hi, while you should find that Adept is much faster than CppAD for the pure AD, it is missing some of the functionality you require. Firstly it only does first-order differentiation, so can't compute the Hessian of arbitrary functions, although as explained in section 4.1 of the documentation (https://www.met.reading.ac.uk/clouds/adept/adept_documentation.pdf), if your cost function is quadratic then you can compute a good approximation to the Hessian from the Jacobian, which Adept can calculate. Secondly there is no sparse array functionality, nor a way for Adept to report the sparsity pattern for Jacobian matrices.