Opened 12 years ago

Last modified 5 years ago

#10137 new enhancement

rewrite function for symbolic expressions

Reported by: Burcin Erocal Owned by: Burcin Erocal
Priority: major Milestone: sage-feature
Component: symbolics Keywords:
Cc: Ralf Stephan, Marc Mezzarobba Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Status badges

Description (last modified by Ralf Stephan)

We should have a clean interface to various transformations one might want to perform on symbolic expressions. For example,

sage: rewrite(exp(x), "exp2sincos")
-I*sin(I*x) + cos(I*x)
sage: rewrite(exp(-I*x), "exp2sincos")
-I*sin(x) + cos(x)
sage: rewrite(exp(a+I*b), "exp2trig")
(sinh(a) + cosh(a))*(I*sin(b) + cos(b))
sage: rewrite((e^x)^2-e^(-2*x)+e^(-4*x)+(e^x)^4, 'exp2sinhcosh')
2*sinh(2*x) + 2*cosh(4*x)

The design of this interface is being fleshed out in

See also

Change History (4)

comment:1 Changed 8 years ago by Ralf Stephan

Cc: Ralf Stephan added

comment:2 Changed 8 years ago by Marc Mezzarobba

Cc: Marc Mezzarobba added

comment:3 Changed 7 years ago by Ralf Stephan

Description: modified (diff)

comment:4 Changed 5 years ago by Ralf Stephan

I think the first tangible step would be to provide a x.rewrite() with the same interface as SymPy's, calling SymPy. Later this can be adapted. However, I think the SymPy way is quite a good start.

Note: See TracTickets for help on using tickets.