arbitrary-order automatic differentiation library