Added dpotrs instead of cho_solve

This commit is contained in:
Alan Saul 2013-10-28 19:21:38 +00:00
parent e7b79b1fb0
commit f80b616d10

View file

@ -12,10 +12,8 @@
import numpy as np import numpy as np
import scipy as sp import scipy as sp
from scipy.linalg import cho_solve
from likelihood import likelihood from likelihood import likelihood
from ..util.linalg import mdot, jitchol, pddet from ..util.linalg import mdot, jitchol, pddet, dpotrs
from scipy.linalg.lapack import dtrtrs
from functools import partial as partial_func from functools import partial as partial_func
class Laplace(likelihood): class Laplace(likelihood):
@ -282,7 +280,7 @@ class Laplace(likelihood):
B = np.eye(self.N) + W_12*K*W_12.T B = np.eye(self.N) + W_12*K*W_12.T
L = jitchol(B) L = jitchol(B)
W12BiW12= W_12*cho_solve((L, True), W_12*a) W12BiW12, _ = W_12*dpotrs(L, np.asfortranarray(W_12*a), lower=1)
ln_B_det = 2*np.sum(np.log(np.diag(L))) ln_B_det = 2*np.sum(np.log(np.diag(L)))
return W12BiW12, ln_B_det return W12BiW12, ln_B_det