From 1deb1bee86871df6ec70b92e2f7928450094dc27 Mon Sep 17 00:00:00 2001 From: Neil Lawrence Date: Thu, 21 Nov 2013 21:42:09 +0000 Subject: [PATCH] Merge with James's changes --- GPy/kern/constructors.py | 22 ---------------------- GPy/testing/kernel_tests.py | 9 +++------ 2 files changed, 3 insertions(+), 28 deletions(-) diff --git a/GPy/kern/constructors.py b/GPy/kern/constructors.py index 083960b4..4ab06bba 100644 --- a/GPy/kern/constructors.py +++ b/GPy/kern/constructors.py @@ -292,7 +292,6 @@ except ImportError: if sympy_available: from parts.sympykern import spkern from sympy.parsing.sympy_parser import parse_expr - from GPy.util.symbolic import sinc def rbf_sympy(input_dim, ARD=False, variance=1., lengthscale=1.): """ @@ -337,27 +336,6 @@ if sympy_available: f = scale_i*scale_j*sp.exp(-dist/(2*(lengthscale_i**2 + lengthscale_j**2 + shared_lengthscale**2))) return kern(input_dim, [spkern(input_dim, f, output_dim=output_dim, name='eq_sympy')]) - def sinc(input_dim, ARD=False, variance=1., lengthscale=1.): - """ - TODO: Not clear why this isn't working, suggests argument of sinc is not a number. - sinc covariance funciton - """ - X = sp.symbols('x_:' + str(input_dim)) - Z = sp.symbols('z_:' + str(input_dim)) - variance = sp.var('variance',positive=True) - if ARD: - lengthscales = [sp.var('lengthscale_%i' % i, positive=True) for i in range(input_dim)] - dist_string = ' + '.join(['(x_%i-z_%i)**2/lengthscale_%i**2' % (i, i, i) for i in range(input_dim)]) - dist = parse_expr(dist_string) - f = variance*sinc(sp.pi*sp.sqrt(dist)) - else: - lengthscale = sp.var('lengthscale',positive=True) - dist_string = ' + '.join(['(x_%i-z_%i)**2' % (i, i) for i in range(input_dim)]) - dist = parse_expr(dist_string) - f = variance*sinc(sp.pi*sp.sqrt(dist)/lengthscale) - - return kern(input_dim, [spkern(input_dim, f, name='sinc')]) - def sympykern(input_dim, k=None, output_dim=1, name=None, param=None): """ A base kernel object, where all the hard work in done by sympy. diff --git a/GPy/testing/kernel_tests.py b/GPy/testing/kernel_tests.py index f64dac2b..f75eb580 100644 --- a/GPy/testing/kernel_tests.py +++ b/GPy/testing/kernel_tests.py @@ -34,12 +34,9 @@ class KernelTests(unittest.TestCase): self.assertTrue(GPy.kern.kern_test(kern, verbose=verbose)) def test_eq_sympykernel(self): - kern = GPy.kern.eq_sympy(5, 3, output_ind=4) - self.assertTrue(GPy.kern.kern_test(kern, verbose=verbose)) - - def test_sinckernel(self): - kern = GPy.kern.sinc(5) - self.assertTrue(GPy.kern.kern_test(kern, verbose=verbose)) + if SYMPY_AVAILABLE: + kern = GPy.kern.eq_sympy(5, 3, output_ind=4) + self.assertTrue(GPy.kern.kern_test(kern, verbose=verbose)) def test_rbf_invkernel(self): kern = GPy.kern.rbf_inv(5)