1619
Comment:
|
2560
|
Deletions are marked like this. | Additions are marked like this. |
Line 5: | Line 5: |
* evaluation | === remaining items === |
Line 9: | Line 9: |
* print order (William's list) {{{ Now, sage: x^2 + x^4 + x^3 x^2 + x^3 + x^4 sage: a^3*x^10 + x^12 - a^15 x^12 + a^3*x^10 - a^15 So it is printing from lowest to highest degree, like mathematica (or power series), but unlike the standard sage convention (or maple, singular, MATH, etc.): sage: R.<a,x> = QQ[] sage: a^3*x^10 + x^12 - a^15 -a^15 + a^3*x^10 + x^12 sage: singular(a^3*x^10 + x^12 - a^15) -a^15+a^3*x^10+x^12 }}} * 1/gamma(-1) = 0 * collect_common_factors (William's list) {{{ need to be able to do this (from ginsh): > collect_common_factors(x/(x^2 + x)); (1+x)^(-1) }}} * pretty printing (latex() method, a/b instead of a*b^{-1}, etc.) |
|
Line 50: | Line 27: |
* callable symbolic expressions?? | |
Line 53: | Line 29: |
=== long term === * find a better scheme for handling compare() === in progress === * Arithmetic with infinity (almost done) * Series expansions === done === * 1/gamma(-1) = 0 ==== Sage 3.3 - pynac-0.1.2 ==== * symbolic binomial and factorial * iterator for sage.symbolic.expression.Expression * operator method (similar to current _operator(), but returns the function if the expression is a function application) {{{ sage: var('x,y,z,n,i,j',ns=1) (x, y, z, n, i, j) sage: sin(x).operator() sin sage: type(sin(x).operator()) <class 'sage.calculus.calculus.Function_sin'> sage: factorial(n).operator() factorial sage: type(factorial(n).operator()) <class 'sage.calculus.calculus.Function_factorial'> }}} * evaluation Substitution for more than variable done, call semantics/syntax needs more thought * print order (William's list) {{{ This text was a part of William's original todo notes, perhaps now it's confusing to include it here. Now, sage: x^2 + x^4 + x^3 x^2 + x^3 + x^4 sage: a^3*x^10 + x^12 - a^15 x^12 + a^3*x^10 - a^15 So it is printing from lowest to highest degree, like mathematica (or power series), but unlike the standard sage convention (or maple, singular, MATH, etc.): sage: R.<a,x> = QQ[] sage: a^3*x^10 + x^12 - a^15 -a^15 + a^3*x^10 + x^12 sage: singular(a^3*x^10 + x^12 - a^15) -a^15+a^3*x^10+x^12 }}} * collect_common_factors (William's list) {{{ need to be able to do this (from ginsh): > collect_common_factors(x/(x^2 + x)); (1+x)^(-1) }}} * pretty printing (latex() method, a/b instead of a*b^{-1}, etc.) * callable symbolic expressions |
TODO list for the pynac interface
"fully get rid of maxima-based symbolic variables"
remaining items
- support for _fast_eval
- hash is random
- pyobject deallocations, memory leaks
- noncommutative symbols
- symbol domains (ginac supports real, complex, integer)
- precision for numeric evaluation (evalf, _mpfr_, William's list)
genuine coercions to real field, etc.
- pickling (William's list)
Support pickle via the "archive" print mode.
- gcd (William's list)
Maybe change SAGE's Ginac to make a call to a cython gcd function, then use singular, since singular's gcd over QQ is much better than ginac's, I think, and ginac *only* does GCD over QQ. Actually, just make everything in normal.cpp be implemented via Singular, probably...
- unevaluated expressions?
- piecewise expressions, substitution and pattern matching
long term
- find a better scheme for handling compare()
in progress
- Arithmetic with infinity (almost done)
- Series expansions
done
- 1/gamma(-1) = 0
Sage 3.3 - pynac-0.1.2
- symbolic binomial and factorial
- iterator for sage.symbolic.expression.Expression
- operator method
- (similar to current _operator(), but returns the function if the expression is a function application)
sage: var('x,y,z,n,i,j',ns=1) (x, y, z, n, i, j) sage: sin(x).operator() sin sage: type(sin(x).operator()) <class 'sage.calculus.calculus.Function_sin'> sage: factorial(n).operator() factorial sage: type(factorial(n).operator()) <class 'sage.calculus.calculus.Function_factorial'>
- evaluation
- Substitution for more than variable done, call semantics/syntax needs more thought
- print order (William's list)
This text was a part of William's original todo notes, perhaps now it's confusing to include it here. Now, sage: x^2 + x^4 + x^3 x^2 + x^3 + x^4 sage: a^3*x^10 + x^12 - a^15 x^12 + a^3*x^10 - a^15 So it is printing from lowest to highest degree, like mathematica (or power series), but unlike the standard sage convention (or maple, singular, MATH, etc.): sage: R.<a,x> = QQ[] sage: a^3*x^10 + x^12 - a^15 -a^15 + a^3*x^10 + x^12 sage: singular(a^3*x^10 + x^12 - a^15) -a^15+a^3*x^10+x^12
- collect_common_factors (William's list)
need to be able to do this (from ginsh): > collect_common_factors(x/(x^2 + x)); (1+x)^(-1)
- pretty printing (latex() method, a/b instead of a*b^{-1}, etc.)
- callable symbolic expressions