From aa4e1cc9c1dd594b12d4357ce6303f00e538f278 Mon Sep 17 00:00:00 2001 From: James Hensman Date: Mon, 17 Dec 2012 11:45:25 +0000 Subject: [PATCH 1/2] removed dL_dZ from sympykern (it's not needed, we can always use dK_dX) --- GPy/kern/sympykern.py | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/GPy/kern/sympykern.py b/GPy/kern/sympykern.py index 4d912dc8..4ac123ec 100644 --- a/GPy/kern/sympykern.py +++ b/GPy/kern/sympykern.py @@ -199,23 +199,6 @@ class spkern(kernpart): %s """%(gradient_funcs,"/*"+str(self._sp_k)+"*/") #adding a string representation forces recompile when needed - #Here's some code to do gradients wrt z (should be the same as for X, but this is easier - gradient_funcs_Z = "\n".join(["target[j*D+%i] += partial[i*M+j]*dk_dz%i(%s);"%(q,q,arglist) for q in range(self.D)]) - self._dK_dZ_code = \ - """ - int i; - int j; - int N = partial_array->dimensions[0]; - int M = partial_array->dimensions[1]; - int D = X_array->dimensions[1]; - for (i=0;i Date: Mon, 17 Dec 2012 11:47:54 +0000 Subject: [PATCH 2/2] made sympykern truly work in place --- GPy/kern/sympykern.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/GPy/kern/sympykern.py b/GPy/kern/sympykern.py index 4ac123ec..4e58f52a 100644 --- a/GPy/kern/sympykern.py +++ b/GPy/kern/sympykern.py @@ -221,35 +221,28 @@ class spkern(kernpart): def K(self,X,Z,target): param = self._param weave.inline(self._K_code,arg_names=['target','X','Z','param'],**self.weave_kwargs) - return target def Kdiag(self,X,target): param = self._param weave.inline(self._Kdiag_code,arg_names=['target','X','param'],**self.weave_kwargs) - return target def dK_dtheta(self,partial,X,Z,target): param = self._param weave.inline(self._dK_dtheta_code,arg_names=['target','X','Z','param','partial'],**self.weave_kwargs) - return target def dKdiag_dtheta(self,partial,X,target): param = self._param Z = X weave.inline(self._dKdiag_dtheta_code,arg_names=['target','X','Z','param','partial'],**self.weave_kwargs) - return target def dK_dX(self,partial,X,Z,target): - target = np.zeros_like(X) param = self._param weave.inline(self._dK_dX_code,arg_names=['target','X','Z','param','partial'],**self.weave_kwargs) - return target def dKdiag_dX(self,partial,X,target): param = self._param Z = X weave.inline(self._dKdiag_dX_code,arg_names=['target','X','Z','param','partial'],**self.weave_kwargs) - return target def set_param(self,param): #print param.flags['C_CONTIGUOUS']