예제 #1
0
 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)))
예제 #2
0
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]
예제 #3
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)