Opened 9 years ago

Last modified 2 years ago

#10137 new enhancement

rewrite function for symbolic expressions

Reported by: burcin Owned by: burcin
Priority: major Milestone: sage-feature
Component: symbolics Keywords:
Cc: rws, mmezzarobba Merged in:
Authors: Reviewers:
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by rws)

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

http://wiki.sagemath.org/symbolics/rewrite

See also http://docs.sympy.org/dev/modules/rewriting.html

Change History (4)

comment:1 Changed 5 years ago by rws

  • Cc rws added

comment:2 Changed 5 years ago by mmezzarobba

  • Cc mmezzarobba added

comment:3 Changed 4 years ago by rws

  • Description modified (diff)

comment:4 Changed 2 years ago by rws

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.