From d0942a7bfd14dad60ba3dbce911615f9e767e7e5 Mon Sep 17 00:00:00 2001 From: Ricardo Date: Wed, 15 May 2013 18:12:32 +0100 Subject: [PATCH] chol_inv added somewhere --- GPy/likelihoods/EP.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/GPy/likelihoods/EP.py b/GPy/likelihoods/EP.py index cfaf5e38..4e1e0c5b 100644 --- a/GPy/likelihoods/EP.py +++ b/GPy/likelihoods/EP.py @@ -1,6 +1,6 @@ import numpy as np from scipy import stats, linalg -from ..util.linalg import pdinv,mdot,jitchol,DSYR,tdot +from ..util.linalg import pdinv,mdot,jitchol,chol_inv,DSYR,tdot from likelihood import likelihood class EP(likelihood): @@ -133,7 +133,6 @@ class EP(likelihood): return self._compute_GP_variables() - #@profile def fit_DTC(self, Kmm, Kmn): """ The expectation-propagation algorithm with sparse pseudo-input. @@ -150,7 +149,7 @@ class EP(likelihood): """ KmnKnm = np.dot(Kmn,Kmn.T) Lm = jitchol(Kmm) - Lmi,info = linalg.lapack.flapack.dtrtrs(Lm,np.asfortranarray(np.eye(M)),lower=1,trans=1) + Lmi = chol_inv(Lm) Kmmi = np.dot(Lmi.T,Lmi) KmmiKmn = np.dot(Kmmi,Kmn) Qnn_diag = np.sum(Kmn*KmmiKmn,-2) @@ -242,7 +241,9 @@ class EP(likelihood): q(f|X) = int_{df}{N(f|KfuKuu_invu,diag(Kff-Qff)*N(u|0,Kuu)} = N(f|0,Sigma0) Sigma0 = diag(Knn-Qnn) + Qnn, Qnn = Knm*Kmmi*Kmn """ - Kmmi, self.Lm, self.Lmi, Kmm_logdet = pdinv(Kmm) + Lm = jitchol(Kmm) + Lmi = chol_inv(Lm) + Kmmi = np.dot(Lmi.T,Lmi) P0 = Kmn.T KmnKnm = np.dot(P0.T, P0) KmmiKmn = np.dot(Kmmi,P0.T)