| 1 | initial version |
Hello, @Emmanuel Charpentier! I am not 100% sure if this is exactly what you are looking for, but there exist these methods called _sympy_() and _sage_(). The first one converts some Sage expression to Sympy, while the second converts Maxima/Sympy/Giac/etc. expressions to Sage.
For example, I can wrap your code inside a function like this:
def sympy_sin(a, b):
# Convert to Sympy (this renders the sympify method unnecessary in this case)
sa = a._sympy_()
sb = b._sympy_()
from sympy import sin as ssin
res = ssin(sa + sb)
# Convert back to Sage and return result
return res._sage_()
I hope this helps!
| 2 | No.2 Revision |
Hello, @Emmanuel Charpentier! I am not 100% sure if this is exactly what you are looking for, but there exist these methods called _sympy_() and _sage_(). The first one converts some Sage expression to Sympy, while the second converts Maxima/Sympy/Giac/etc. expressions to Sage.
For example, I can wrap your code inside a function like this:
def sympy_sin(a, b):
# Convert to Sympy (this renders the sympify method unnecessary in this case)
sa = a._sympy_()
sb = b._sympy_()
from sympy import sin as ssin
res = ssin(sa + sb)
# Convert back to Sage and return result
return res._sage_()
Now, you could do something like the following:
var('a b')
ss = sympy_sin(a, b)
ss.trig_expand()
and you will get the correct answer, cos(b)*sin(a) + cos(a)*sin(b). To further verify the conversion step, we do
type(ss)
and we get the expected <class 'sage.symbolic.expression.Expression'>.
Of course, it is NOT necessary to wrap this into a function, like I did above; you can use these methods in any place on Sage.
I hope this helps!
Copyright Sage, 2010. Some rights reserved under creative commons license. Content on this site is licensed under a Creative Commons Attribution Share Alike 3.0 license.