Automating numerical partial differentiation | Synapse