octave-maintainers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Algorithmic Differentiation (Using a C++ library)


From: Oliver Heimlich
Subject: Re: Algorithmic Differentiation (Using a C++ library)
Date: Wed, 1 Mar 2017 20:12:59 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Icedove/45.6.0

On 01.03.2017 15:38, Brad Bell wrote:
> Another thing to consider, instead of the library, is using CppAD +
> Eigen. That would make it easy to implement matrix operations. For
> example, see
>     https://www.coin-or.org/CppAD/Doc/eigen_array.cpp.htm

Slightly off topic: There once was an Octave package for AD [1], which
is now unmaintained. I believe the reason is that it was mainly build in
CPP code, which is no longer compatible with the current Octave API.
Most of the code is used to introduce a new data type into Octave, with
overloaded operations.

Now that we have classes in Octave, it would be possible to revive this
package using a classdef data type, overloaded operators and vectorized
m-file code. (Possible GSoC project?!?)

The unmaintained package contains documentation and many test cases,
which could easily be taken over.

If everything goes well, we would have:
- fast code that uses Octave's matrix operations
- easier to maintain m-file code
- the possibility to use other data types in AD

Regarding the last point: I think of combining AD with the interval data
type. This way it would become possible to compute guaranteed enclosures
for the Jacobian, and you don't have to rely on “NearEqual” checks with
approximate values in your script.

Oliver

[1] https://octave.sourceforge.io/ad/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]