⇤ ← Revision 1 as of 20071111 15:35:35
1674
Comment:

1686

Deletions are marked like this.  Additions are marked like this. 
Line 3:  Line 3: 
* pattern matching * subexpression substitution * unifying and especially simplify the way to check the type of an expression. Now you need to do this ugly switch: 
* pattern matching * subexpression substitution * unifying and especially simplify the way to check the type of an expression. Now you need to do this ugly switch: 
Line 41:  Line 41: 
* working with unknown functions, expanding them in series, etc.  * working with unknown functions, expanding them in series, etc. 
Things to improve:
 pattern matching
 subexpression substitution
 unifying and especially simplify the way to check the type of an
 expression. Now you need to do this ugly switch:
def _is(e, what):
 import operator if what == "Mul":
return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \
 e._operator == operator.mul
return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \
 e._operator == operator.add
return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \
 e._operator == operator.pow
return isinstance(e, sage.calculus.calculus.SymbolicArithmetic) and \
 e._operator == operator.div
return isinstance(e, sage.calculus.calculus.SymbolicComposition) and \
 bool(e._operands[0] == sage.all.log)
return isinstance(e, sage.calculus.calculus.SymbolicComposition) and \
 bool(e._operands[0] == sage.all.exp)
return isinstance(e, sage.calculus.calculus.SymbolicComposition)
 return isinstance(e, sage.rings.rational.Rational)
return isinstance(e, sage.rings.real_mpfr.RealNumber)
 raise "Sorry, unknown 'class': %s" % what
Those are just things I discovered when trying to port the limits from SymPy to SAGE. Then there are other things, for example:
 working with unknown functions, expanding them in series, etc.
(there is some trac ticket for that already)