Differences between revisions 3 and 12 (spanning 9 versions)
Revision 3 as of 2008-11-25 21:35:57
Size: 1619
Editor: BurcinErocal
Comment:
Revision 12 as of 2009-05-07 18:24:59
Size: 2998
Editor: was
Comment:
Deletions are marked like this. Additions are marked like this.
Line 2: Line 2:

[[/push|Final Push for sage-4.0]]
Line 5: Line 7:
 * evaluation
 * support for _fast_eval
=== remaining items ===
Line 9: Line 10:
 * noncommutative symbols
 * symbol domains (ginac supports real, complex, integer)
 * 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
 * Series expansions

=== long term ===
 * find a better scheme for handling compare()

=== in progress ===


=== done ===
[[http://trac.sagemath.org/sage_trac/ticket/5777|Trac ticket #5777]]
 * pickling (William's list)
{{{
Support pickle via the "archive" print mode.
}}}
 * precision for numeric evaluation (evalf, _mpfr_, William's list)
{{{
genuine coercions to real field, etc.
}}}


[[http://trac.sagemath.org/sage_trac/ticket/5753|Trac ticket #5753]]

 * Arithmetic with infinity
 * 1/gamma(-1) = 0
 * better latex output for symbol names, use sage.misc.latex.latex_variable_name
 * configurable printing for symbolic functions
 * ability to change how partial derivatives are printed

[[http://trac.sagemath.org/sage_trac/ticket/5546|Trac ticket #5546]]

 * symbolic matrices, vectors

==== 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
Line 11: Line 75:
This text was a part of William's original todo notes, perhaps now it's confusing to include it here.
Line 24: Line 90:
 * 1/gamma(-1) = 0
Line 32: Line 97:
 * 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?
 * callable symbolic expressions??

 * piecewise expressions, substitution and pattern matching
 * callable symbolic expressions

TODO list for the pynac interface

Final Push for sage-4.0

"fully get rid of maxima-based symbolic variables"

remaining items

  • hash is random
  • pyobject deallocations, memory leaks
  • noncommutative symbols
  • symbol domains (ginac supports real, complex, integer)
  • 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
  • Series expansions

long term

  • find a better scheme for handling compare()

in progress

done

Trac ticket #5777

  • pickling (William's list)

Support pickle via the "archive" print mode.
  • precision for numeric evaluation (evalf, _mpfr_, William's list)

genuine coercions to real field, etc.

Trac ticket #5753

  • Arithmetic with infinity
  • 1/gamma(-1) = 0
  • better latex output for symbol names, use sage.misc.latex.latex_variable_name
  • configurable printing for symbolic functions
  • ability to change how partial derivatives are printed

Trac ticket #5546

  • symbolic matrices, vectors

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