sympy 0.6.4.beta3 released

9 views
Skip to first unread message

Ondrej Certik

unread,
Mar 30, 2009, 12:06:31 AM3/30/09
to sy...@googlegroups.com
Hi,

sympy 0.6.4 beta3 is out. Tarballs available here:

http://code.google.com/p/sympy/downloads/list

or from our front page.

This is the last beta and unless there show up some release critical
bugs, I expect to release the final 0.6.4 on Tuesday or Wednesday.

Changes since the last beta2 attached. Besides lots of bugfixes, sympy
now has a robust multivariate factorization. In some cases it's even
faster than Maxima via Sage:

sympy:

In [1]: time factor(2*x*y*z + x*y**2 + x*z**2 + y*x**2 + y*z**2 +
z*x**2 + z*y**2)
CPU times: user 0.04 s, sys: 0.00 s, total: 0.04 s
Wall time: 0.04 s
Out[2]: (x + y)⋅(y + z)⋅(x + z)

Sage:

sage: var("x y z")
(x, y, z)
sage: time factor(y*z^2 + x*z^2 + y^2*z + 2*x*y*z + x^2*z + x*y^2 + x^2*y)
CPU times: user 0.09 s, sys: 0.03 s, total: 0.12 s
Wall time: 2.12 s
(y + x)*(z + x)*(z + y)
sage: time factor(y*z^2 + x*z^2 + y^2*z + 2*x*y*z + x^2*z + x*y^2 + x^2*y)
CPU times: user 0.03 s, sys: 0.01 s, total: 0.04 s
Wall time: 0.21 s
(y + x)*(z + x)*(z + y)
sage: time factor(y*z^2 + x*z^2 + y^2*z + 2*x*y*z + x^2*z + x*y^2 + x^2*y)
CPU times: user 0.02 s, sys: 0.01 s, total: 0.04 s
Wall time: 0.19 s
(y + x)*(z + x)*(z + y)
sage: time factor(y*z^2 + x*z^2 + y^2*z + 2*x*y*z + x^2*z + x*y^2 + x^2*y)
CPU times: user 0.04 s, sys: 0.00 s, total: 0.05 s
Wall time: 0.21 s
(y + x)*(z + x)*(z + y)

That was implemented by Mateusz Paprocki. Great job again Mateusz!

In some other cases it takes about the same, in some more complex
cases it takes longer than maxima, but it always returns, and I think
it's a great start. There are still possible rooms for improvements,
as Mateusz says here:

http://code.google.com/p/sympy/issues/detail?id=500#c7


Ondrej

----------------------------

Ondrej Certik (31):
0.6.4.beta2
Remove the print statement from tests_latex.py
Slow tests from core moved to sympy/slow_tests
solvers.py: typo in documentation fixed
Fixes the A*f(x).diff(x)*A problem (#1327)
Make Matrix.jacobian() work with any vectors
curvilinear_coordinates example added
recursive trigsimp() implemented, thanks to Alan Bromborsky
Fixes the trigsimp(2.0*sin(x)**2+2.0*cos(x)**2) problem (#1274)
trigsimp() two hacks removed and done right
Removing the hack from fraction() as it is not necessary anymore
Added a new test for roots (#1305)
solve(Eq(cos(x), sin(x)), x) raises a NotImplementedError
./setup.py test_doc now runs our testsuite
Integral._eval_subs() implemented
Make all examples run again (#1297)
Examples documentation improved with regards to the PYTHONPATH issues
Use systemwide sphinx (e.g. don't download it)
Fixes the test_secondquant tests to use symbols instead of var
guess_solve_strategy() improved to handle numbers as well
solve() extended to handle equations of the form 4*x*(1 - a*x**(S(1)/2))
solve( x**Rational(1,2) - 2, x) fixed
Printing precision fixed all over sympy (#1052)
Make PrettyPrinter use the profile mechanism
Akshay and Aaron added to credits
Integral.subs() fixed for integration variables
Make Integral(exp(-x**2), (3, -oo, oo)) raise a ValueError
Make lambdify() work with Integral
setup.py: sympy.slow_tests added to the tests list
setup.py: modules list refactored
v0.6.4.beta3

Mateusz Paprocki (9):
Implemented recursive dense multivariate polynomials
Implemented factorization of x**n - 1 and x**n + 1 polynomials
Improved sparse polynomial GCD in Z[X] by reducing polynomials
Implemented more useful tools for polynomials in Z[X]
Fixed corner case in heuristic GCD algorithm
Implemented Eisenstein's criterion, improved factorization in Z[x]
Implemented Wang's algorithm for multivariate factorization
Use Wang's multivariate factorization algorithm in factor()
Use sqrt() from mpmath in HEUGCD, if gmpy is not available

Aaron Meurer (2):
Solvers: dsolve - Added Bernoulli case
Fixed typo in docstring

Freddie Witherden (2):
LaTeX: support multiple styles of inverse trig functions.
Add unit tests for the new inverse trig styles.

Akshay Srinivasan (1):
Fixed printing of 1/cos(x)*sin(x) to sin(x)/cos(x)

Andrew Docherty (1):
Fixes the (1/(1+(a+b)*x)).series(x, 0) problem (#1342)

Fabian Seoane (1):
roots: Just added a docstring reminding that we don't check the
correct result

Priit Laes (1):
Added tests for issues 580 and 689.

Robert Kern (1):
BUG: Fixes the issue 1263.

Neal Becker

unread,
Mar 30, 2009, 6:44:31 AM3/30/09
to sy...@googlegroups.com
Fedora F10 x86_64. Looks like all tests OK:

./setup.py test
running test
============================= test process starts
==============================
executable: /usr/bin/python (2.5.2-final-0)

sympy/concrete/tests/test_gosper.py[2] ..
[OK]
sympy/concrete/tests/test_products.py[3] ...
[OK]
sympy/concrete/tests/test_sums_products.py[13] ...fff.......
[OK]
sympy/core/tests/test_arit.py[41] ...ff....................................
[OK]
sympy/core/tests/test_assumptions.py[27] ...f.......................
[OK]
sympy/core/tests/test_basic.py[39] .......................................
[OK]
sympy/core/tests/test_complex.py[10] ..........
[OK]
sympy/core/tests/test_count_ops.py[1] .
[OK]
sympy/core/tests/test_diff.py[5] .....
[OK]
sympy/core/tests/test_equal.py[5] .....
[OK]
sympy/core/tests/test_eval.py[8] ...f....
[OK]
sympy/core/tests/test_eval_power.py[9] .........
[OK]
sympy/core/tests/test_evalf.py[19] ...................
[OK]
sympy/core/tests/test_facts.py[11] ...........
[OK]
sympy/core/tests/test_functions.py[25] ....ff...................
[OK]
sympy/core/tests/test_logic.py[10] ..........
[OK]
sympy/core/tests/test_match.py[26] ..f.......................
[OK]
sympy/core/tests/test_multidimensional.py[4] ....
[OK]
sympy/core/tests/test_numbers.py[27] ...........................
[OK]
sympy/core/tests/test_relational.py[4] ....
[OK]
sympy/core/tests/test_subs.py[18] ..................
[OK]
sympy/core/tests/test_symbol.py[5] .....
[OK]
sympy/core/tests/test_sympify.py[18] ..................
[OK]
sympy/core/tests/test_truediv.py[3] ...
[OK]
sympy/core/tests/test_var.py[4] ....
[OK]
sympy/functions/combinatorial/tests/test_comb_factorials.py[3] ...
[OK]
sympy/functions/combinatorial/tests/test_comb_numbers.py[4] ....
[OK]
sympy/functions/elementary/tests/test_complexes.py[9] .........
[OK]
sympy/functions/elementary/tests/test_exponential.py[9] .........
[OK]
sympy/functions/elementary/tests/test_hyperbolic.py[11] .f.........
[OK]
sympy/functions/elementary/tests/test_integers.py[3] .f.
[OK]
sympy/functions/elementary/tests/test_interface.py[3] ...
[OK]
sympy/functions/elementary/tests/test_miscellaneous.py[2] ..
[OK]
sympy/functions/elementary/tests/test_piecewise.py[1] .
[OK]
sympy/functions/elementary/tests/test_trigonometric.py[11] ...........
[OK]
sympy/functions/special/tests/test_delta_functions.py[2] ..
[OK]
sympy/functions/special/tests/test_error_functions.py[3] ...
[OK]
sympy/functions/special/tests/test_gamma_functions.py[6] ......
[OK]
sympy/functions/special/tests/test_spec_polynomials.py[4] ....
[OK]
sympy/functions/special/tests/test_spherical_harmonics.py[5] .....
[OK]
sympy/functions/special/tests/test_tensor_functions.py[2] ..
[OK]
sympy/functions/special/tests/test_zeta_functions.py[2] ..
[OK]
sympy/galgebra/tests/test_GA.py[6] ......
[OK]
sympy/geometry/tests/test_geometry.py[7] .......
[OK]
sympy/integrals/tests/test_integrals.py[38]
....................................
..
[OK]
sympy/integrals/tests/test_lineintegrals.py[1] .
[OK]
sympy/integrals/tests/test_rationaltools.py[1] .
[OK]
sympy/integrals/tests/test_risch.py[19] ...ffff............ [OK]
sympy/integrals/tests/test_trigonometry.py[2] ..
[OK]
sympy/matrices/tests/test_matrices.py[39]
......................................
.
[OK]
sympy/mpmath/tests/test_basic_ops.py[10] ..........
[OK]
sympy/mpmath/tests/test_bitwise.py[10] ..........
[OK]
sympy/mpmath/tests/test_calculus.py[6] ......
[OK]
sympy/mpmath/tests/test_compatibility.py[3] ...
[OK]
sympy/mpmath/tests/test_convert.py[11] ...........
[OK]
sympy/mpmath/tests/test_diff_mpmath.py[2] ..
[OK]
sympy/mpmath/tests/test_division.py[7] .......
[OK]
sympy/mpmath/tests/test_elliptic.py[11] ...........
[OK]
sympy/mpmath/tests/test_functions2.py[16] ................
[OK]
sympy/mpmath/tests/test_functions_mpmath.py[39]
................................
.......
[OK]
sympy/mpmath/tests/test_gammazeta.py[24] ........................
[OK]
sympy/mpmath/tests/test_hp.py[3] ...
[OK]
sympy/mpmath/tests/test_identify.py[2] ..
[OK]
sympy/mpmath/tests/test_interval.py[7] .......
[OK]
sympy/mpmath/tests/test_linalg.py[12] ............
[OK]
sympy/mpmath/tests/test_matrices_mpmath.py[8] ........
[OK]
sympy/mpmath/tests/test_mpmath.py[7] .......
[OK]
sympy/mpmath/tests/test_ode_mpmath.py[5] .....
[OK]
sympy/mpmath/tests/test_pickle.py[1] .
[OK]
sympy/mpmath/tests/test_power.py[3] ...
[OK]
sympy/mpmath/tests/test_quad.py[13] .............
[OK]
sympy/mpmath/tests/test_rootfinding.py[7] .......
[OK]
sympy/mpmath/tests/test_special.py[5] .....
[OK]
sympy/mpmath/tests/test_summation.py[5] .....
[OK]
sympy/mpmath/tests/test_trig.py[3] ...
[OK]
sympy/ntheory/tests/test_ntheory.py[18] ..................
[OK]
sympy/parsing/tests/test_mathematica.py[1] .
[OK]
sympy/parsing/tests/test_maxima.py[3] ...
[OK]
sympy/physics/tests/test_paulialgebra.py[1] .
[OK]
sympy/physics/tests/test_physics_matrices.py[2] ..
[OK]
sympy/physics/tests/test_secondquant.py[14] ..............
[OK]
sympy/physics/tests/test_units.py[1] .
[OK]
sympy/plotting/tests/test_plotting.py[10] ..........
[OK]
sympy/polys/tests/test_galoispolys.py[19] ...................
[OK]
sympy/polys/tests/test_integerpolys.py[80]
.....................................
...........................................
[OK]
sympy/polys/tests/test_polynomial.py[52]
.......................................
.............
[OK]
sympy/polys/tests/test_specialpolys.py[3] ...
[OK]
sympy/printing/pretty/tests/test_pretty.py[17] .................
[OK]
sympy/printing/pretty/tests/test_pretty_unicode.py[18] ..................
[OK]
sympy/printing/tests/test_ccode.py[4] ....
[OK]
sympy/printing/tests/test_gtk.py[1] X
[OK]
sympy/printing/tests/test_lambdarepr.py[2] ..
[OK]
sympy/printing/tests/test_latex.py[15] ...f...........
[OK]
sympy/printing/tests/test_mathml.py[8] ........
[OK]
sympy/printing/tests/test_precedence.py[11] ...........
[OK]
sympy/printing/tests/test_python.py[6] ......
[OK]
sympy/printing/tests/test_repr.py[19] ...................
[OK]
sympy/printing/tests/test_str.py[55]
...........................................
............
[OK]
sympy/series/tests/test_demidovich.py[17] .................
[OK]
sympy/series/tests/test_gruntz.py[22] .f....................
[OK]
sympy/series/tests/test_limits.py[16] ...f............
[OK]
sympy/series/tests/test_lseries.py[4] ....
[OK]
sympy/series/tests/test_nseries.py[62]
.........................................
.....................
[OK]
sympy/series/tests/test_order.py[26] ..........................
[OK]
sympy/simplify/tests/test_cse.py[9] .........
[OK]
sympy/simplify/tests/test_rewrite.py[6] ...X..
[OK]
sympy/simplify/tests/test_simplify.py[27] ...ffff.................... [OK]
sympy/simplify/tests/test_sqrtdenest.py[2] .f
[OK]
sympy/slow_tests/test_core.py[1] .
[OK]
sympy/solvers/tests/test_numeric.py[1] .
[OK]
sympy/solvers/tests/test_ode.py[12] ............
[OK]
sympy/solvers/tests/test_polysys.py[1] .
[OK]
sympy/solvers/tests/test_recurr.py[39] .......................................
[OK]
sympy/solvers/tests/test_solvers.py[14] ..............
[OK]
sympy/statistics/tests/test_statistics.py[5] .....
[OK]
sympy/test_external/test_numpy.py[19] ...................
[OK]
sympy/test_external/test_sage.py[0]
[OK]
sympy/utilities/tests/test_code_quality.py[2] ..
[OK]
sympy/utilities/tests/test_decorator.py[1] .
[OK]
sympy/utilities/tests/test_iterables.py[4] ....
[OK]
sympy/utilities/tests/test_lambdify.py[25] ....f....................
[OK]
sympy/utilities/tests/test_pickling.py[28] ffffff...................... [OK]
sympy/utilities/tests/test_pytest.py[1] .
[OK]
sympy/utilities/tests/test_tests_names.py[1] .
[OK]

________________________________ xpassed tests
_________________________________
sympy/printing/tests/test_gtk.py:
sympy/simplify/tests/test_rewrite.py:

===== tests finished: 1422 passed, 31 xfailed, 2 xpassed in 119.79 seconds
=====
============================= test process starts
==============================
executable: /usr/bin/python (2.5.2-final-0)

sympy/__init__.py[0]
[OK]
sympy/abc.py[0]
[OK]
sympy/concrete/__init__.py[0]
[OK]
sympy/concrete/gosper.py[1] .
[OK]
sympy/concrete/products.py[0]
[OK]
sympy/concrete/summations.py[2] ..
[OK]
sympy/concrete/sums_products.py[0]
[OK]
sympy/core/__init__.py[0]
[OK]
sympy/core/add.py[0]
[OK]
sympy/core/assumptions.py[1] .
[OK]
sympy/core/ast_parser.py[0]
[OK]
sympy/core/ast_parser_python24.py[0]
[OK]
sympy/core/basic.py[22] ......................
[OK]
sympy/core/cache.py[0]
[OK]
sympy/core/evalf.py[1] .
[OK]
sympy/core/facts.py[0]
[OK]
sympy/core/function.py[3] ...
[OK]
sympy/core/interval.py[0]
[OK]
sympy/core/logic.py[1] .
[OK]
sympy/core/mul.py[0]
[OK]
sympy/core/multidimensional.py[0]
[OK]
sympy/core/numbers.py[2] ..
[OK]
sympy/core/operations.py[1] .
[OK]
sympy/core/power.py[1] .
[OK]
sympy/core/relational.py[7] .......
[OK]
sympy/core/symbol.py[5] .....
[OK]
sympy/core/sympify.py[2] ..
[OK]
sympy/functions/__init__.py[0]
[OK]
sympy/functions/combinatorial/__init__.py[0]
[OK]
sympy/functions/combinatorial/factorials.py[4] ....
[OK]
sympy/functions/combinatorial/numbers.py[5] .....
[OK]
sympy/functions/elementary/__init__.py[0]
[OK]
sympy/functions/elementary/complexes.py[4] ....
[OK]
sympy/functions/elementary/exponential.py[0]
[OK]
sympy/functions/elementary/hyperbolic.py[0]
[OK]
sympy/functions/elementary/integers.py[2] ..
[OK]
sympy/functions/elementary/miscellaneous.py[0]
[OK]
sympy/functions/elementary/piecewise.py[1] .
[OK]
sympy/functions/elementary/trigonometric.py[3] ...
[OK]
sympy/functions/special/__init__.py[0]
[OK]
sympy/functions/special/delta_functions.py[2] ..
[OK]
sympy/functions/special/error_functions.py[0]
[OK]
sympy/functions/special/gamma_functions.py[0]
[OK]
sympy/functions/special/polynomials.py[7] .......
[OK]
sympy/functions/special/spherical_harmonics.py[0]
[OK]
sympy/functions/special/tensor_functions.py[0]
[OK]
sympy/functions/special/zeta_functions.py[0]
[OK]
sympy/galgebra/__init__.py[0]
[OK]
sympy/geometry/__init__.py[0]
[OK]
sympy/geometry/curve.py[1] .
[OK]
sympy/geometry/ellipse.py[2] ..
[OK]
sympy/geometry/entity.py[0]
[OK]
sympy/geometry/exceptions.py[0]
[OK]
sympy/geometry/line.py[0]
[OK]
sympy/geometry/point.py[6] ......
[OK]
sympy/geometry/polygon.py[5] .....
[OK]
sympy/geometry/util.py[2] ..
[OK]
sympy/integrals/__init__.py[0]
[OK]
sympy/integrals/deltafunctions.py[0]
[OK]
sympy/integrals/integrals.py[0]
[OK]
sympy/integrals/rationaltools.py[1] .
[OK]
sympy/integrals/risch.py[2] ..
[OK]
sympy/integrals/trigonometry.py[1] .
[OK]
sympy/interactive/__init__.py[0]
[OK]
sympy/matrices/__init__.py[0]
[OK]
sympy/matrices/matrices.py[18] ..................
[OK]
sympy/ntheory/__init__.py[0]
[OK]
sympy/ntheory/bbp_pi.py[0]
[OK]
sympy/ntheory/factor_.py[6] ......
[OK]
sympy/ntheory/generate.py[0]
[OK]
sympy/ntheory/modular.py[0]
[OK]
sympy/ntheory/multinomial.py[1] .
[OK]
sympy/ntheory/partitions_.py[0]
[OK]
sympy/ntheory/primetest.py[1] .
[OK]
sympy/ntheory/residue.py[0]
[OK]
sympy/parsing/__init__.py[0]
[OK]
sympy/parsing/mathematica.py[0]
[OK]
sympy/parsing/maxima.py[0]
[OK]
sympy/physics/__init__.py[0]
[OK]
sympy/physics/matrices.py[0]
[OK]
sympy/physics/paulialgebra.py[1] .
[OK]
sympy/physics/secondquant.py[0]
[OK]
sympy/physics/units.py[0]
[OK]
sympy/polys/__init__.py[0]
[OK]
sympy/polys/algorithms.py[5] .....
[OK]
sympy/polys/factortools.py[3] ...
[OK]
sympy/polys/galoispolys.py[6] ......
[OK]
sympy/polys/integerpolys.py[2] ..
[OK]
sympy/polys/monomial.py[1] .
[OK]
sympy/polys/polynomial.py[17] .................
[OK]
sympy/polys/rootfinding.py[4] ....
[OK]
sympy/polys/specialpolys.py[0]
[OK]
sympy/polys/wrappers.py[5] .....
[OK]
sympy/printing/__init__.py[0]
[OK]
sympy/printing/ccode.py[1] .
[OK]
sympy/printing/gtk.py[0]
[OK]
sympy/printing/lambdarepr.py[0]
[OK]
sympy/printing/latex.py[1] .
[OK]
sympy/printing/mathml.py[1] .
[OK]
sympy/printing/precedence.py[0]
[OK]
sympy/printing/pretty/__init__.py[0]
[OK]
sympy/printing/pretty/pretty.py[0]
[OK]
sympy/printing/pretty/pretty_symbology.py[0]
[OK]
sympy/printing/pretty/stringpict.py[2] ..
[OK]
sympy/printing/preview.py[0]
[OK]
sympy/printing/printer.py[0]
[OK]
sympy/printing/python.py[0]
[OK]
sympy/printing/repr.py[0]
[OK]
sympy/printing/str.py[0]
[OK]
sympy/printing/tree.py[0]
[OK]
sympy/series/__init__.py[0]
[OK]
sympy/series/acceleration.py[2] ..
[OK]
sympy/series/gruntz.py[0]
[OK]
sympy/series/limits.py[2] ..
[OK]
sympy/series/order.py[1] .
[OK]
sympy/simplify/__init__.py[0]
[OK]
sympy/simplify/cse_main.py[0]
[OK]
sympy/simplify/cse_opts.py[1] .
[OK]
sympy/simplify/rewrite.py[1] .
[OK]
sympy/simplify/simplify.py[10] ..........
[OK]
sympy/simplify/sqrtdenest.py[0]
[OK]
sympy/solvers/__init__.py[0]
[OK]
sympy/solvers/numeric.py[0]
[OK]
sympy/solvers/polysys.py[1] .
[OK]
sympy/solvers/recurr.py[3] ...
[OK]
sympy/solvers/solvers.py[7] .......
[OK]
sympy/statistics/__init__.py[0]
[OK]
sympy/statistics/distributions.py[5] .....
[OK]
sympy/thirdparty/__init__.py[0]
[OK]
sympy/utilities/__init__.py[0]
[OK]
sympy/utilities/decorator.py[0]
[OK]
sympy/utilities/iterables.py[7] .......
[OK]
sympy/utilities/lambdify.py[2] ..
[OK]
sympy/utilities/mathml/__init__.py[0]
[OK]
sympy/utilities/memoization.py[0]
[OK]
sympy/utilities/pkgdata.py[0]
[OK]
sympy/utilities/pytest.py[0]
[OK]
sympy/utilities/runtests.py[0]
[OK]
sympy/utilities/source.py[0]
[OK]

================== tests finished: 214 passed in 3.32 seconds
==================

Ondrej Certik

unread,
Mar 30, 2009, 1:35:22 PM3/30/09
to sy...@googlegroups.com
On Mon, Mar 30, 2009 at 3:44 AM, Neal Becker <ndbe...@gmail.com> wrote:
>
> Fedora F10 x86_64.  Looks like all tests OK:

Yes, all tests are fine. Thanks for running it!

Ondrej

Reply all
Reply to author
Forward
0 new messages