From b502efb1c55e770bd750a8142485468044a3434a Mon Sep 17 00:00:00 2001 From: Neil Lawrence Date: Wed, 13 Nov 2013 07:57:57 +0000 Subject: [PATCH] Changes to symbolic. --- GPy/util/symbolic.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/GPy/util/symbolic.py b/GPy/util/symbolic.py index 8b368a77..a49a507d 100644 --- a/GPy/util/symbolic.py +++ b/GPy/util/symbolic.py @@ -1,4 +1,4 @@ -from sympy import Function, S, oo, I, cos, sin, asin, log, erf,pi,exp +from sympy import Function, S, oo, I, cos, sin, asin, log, erf,pi,exp, sqrt class ln_diff_erf(Function): @@ -22,6 +22,19 @@ class ln_diff_erf(Function): class sim_h(Function): nargs = 5 + def fdiff(self, argindex=5): + t, tprime, d_i, d_j, l = self.args + if argindex == 5: + return -2*sin(t) + elif argindex == 4: + return 2*exp(d_i) + elif argindex == 3: + return 4*exp(d_j) + elif argindex == 2: + return 3*exp(l) + elif argindex == 1: + return 2*d_j + @classmethod def eval(cls, t, tprime, d_i, d_j, l): return exp((d_j/2*l)**2)/(d_i+d_j)*(exp(-d_j*(tprime - t))*(erf((tprime-t)/l - d_j/2*l) + erf(t/l + d_j/2*l)) - exp(-(d_j*tprime + d_i))*(erf(tprime/l - d_j/2*l) + erf(d_j/2*l)))