Come back later!
To implement the
AbstractDifferentiation interface for your backend, you only need to provide a "primitive" from which the rest of the functions can be deduced. However, for performance reasons, you can implement more of the interface to make certain calls faster.
At the moment, the only primitives supported are
AD.@primitive macro uses the provided function to implement
AD.jacobian, and all the other functions follow.
AD.@primitive function AD.myprimitive(ab::MyBackend, f, xs...)
# write your code here
See the backend-specific extensions in the
ext/ folder of the repository for example implementations.
These details are not part of the public API and are expected to change. They are just listed here to help readers figure out the code structure:
jacobianhas no default implementation