Single variable automatic differentiation
We use the function
module Main where
import Hax
main:: IO ()
main=let f=gcos $ (gsin gid) |+| (gconstant 1.0)
df_dx=gradient f
d2f_dx2=gradient df_dx
print $ evaluate f 1.0
print $ evaluate df_dx 1.0
print $ evaluate d2f_dx2 1.0