Write your functions to compute your result, and the library will
automatically generate functions to compute your gradient.
Implements heterogeneous reverse-mode automatic differentiation, commonly
known as "backpropagation".
See https://backprop.jle.im for official introduction and documentation.