saved a little computation by exploiting the symmetry of a matrix

This commit is contained in:
James Hensman 2012-12-02 12:35:54 +00:00
parent 1c60e50fed
commit 365d069ae8

View file

@ -91,8 +91,7 @@ class sparse_GP_regression(GP_regression):
# Computes dL_dKmm TODO: nicer precomputations # Computes dL_dKmm TODO: nicer precomputations
self.dL_dKmm = -0.5 * self.beta * self.D * mdot(self.Lmi.T, self.A, self.Lmi) # dB self.dL_dKmm = -0.5 * self.beta * self.D * mdot(self.Lmi.T, self.A, self.Lmi) # dB
tmp = self.beta*mdot(self.LBL_inv, self.psi2, self.Kmmi) self.dL_dKmm += -0.5 * self.D * (- self.LBL_inv - 2.*self.beta*mdot(self.LBL_inv, self.psi2, self.Kmmi) + self.Kmmi) # dC
self.dL_dKmm += -0.5 * self.D * (- self.LBL_inv - tmp - tmp.T + self.Kmmi) # dC #TODO: is tmp PD? save some computations here
tmp = (mdot(self.LBL_inv, self.psi1YYpsi1, self.Kmmi) tmp = (mdot(self.LBL_inv, self.psi1YYpsi1, self.Kmmi)
- self.beta*mdot(self.G, self.psi2, self.Kmmi)) - self.beta*mdot(self.G, self.psi2, self.Kmmi))
self.dL_dKmm += -0.5*self.beta2*(tmp + tmp.T - self.G) # dE self.dL_dKmm += -0.5*self.beta2*(tmp + tmp.T - self.G) # dE