Reverse Mode Auto Differentiation