def algo_jaco(*args, **kwargs): var = UTPM.init_hessian(args[narg]) diff_args = list(args) # We are making a copy of args diff_args[narg] = var diff_args[-1]= var diff_args = tuple(diff_args) return UTPM.extract_hessian(rhfenergy(*(diff_args)))
def gradient(f, theta, x): a = UTPM.init_hessian(x) y = f(theta, a) res = UTPM.extract_hessian(2, y) #UTPM.extract_jacobian(y) out = res.diagonal(1) return out[0]
def _forward(self, x, *args, **kwds): x = np.atleast_1d(x) tmp = UTPM.init_hessian(x) y = self.fun(tmp, *args, **kwds) return UTPM.extract_hessian(len(x), y)