split_expression function

(Shortest import: from brian2.stateupdaters.explicit import split_expression)


Split an expression into a part containing the function f and another one containing the function g. Returns a tuple of the two expressions (as sympy expressions).


expr : str

An expression containing references to functions f and g.


(non_stochastic, stochastic) : tuple of sympy expressions

A pair of expressions representing the non-stochastic (containing function-independent terms and terms involving f) and the stochastic part of the expression (terms involving g and/or dW).


>>> split_expression('dt * __f(__x, __t)')
(dt*__f(__x, __t), None)
>>> split_expression('dt * __f(__x, __t) + __dW * __g(__x, __t)')
(dt*__f(__x, __t), __dW*__g(__x, __t))
>>> split_expression('1/(2*sqrt(dt))*(__g_support - __g(__x, __t))*(sqrt(__dW))')
(0, sqrt(__dW)*__g_support/(2*sqrt(dt)) - sqrt(__dW)*__g(__x, __t)/(2*sqrt(dt)))