On Apr 28, 4:10 pm, William Stein <wst...@gmail.com> wrote: > Maple 13 was released today, I think. The "new features" page is here: > http://www.maplesoft.com/products/maple/new_features/full_list.aspx > > Looking it over, the only overlap with Sage (current or in development > features) seems to be the following: > > * They now have graph isomorphism testing > * They now have graph enumeration > * They have fast linear algebra over cyclotomic fields > * Solving systems of linear equations uses a new default > algorithm, the dense p-adic lift, which is faster on most inputs > * The combinatorics package now includes the Eulerian numbers of > first and second order. > * FastArithmeticTools offers building blocks based on > asymptotically fast polynomial arithmetic for programmers who want to > extend the package by their own routines for large problems. > > We've had very good implementations of the first four above for over a > year, and I'm looking forward to seeing if our implementations in Sage > blow them away or not.
I'm also interested in how Maple's linear solver compares with LinBox, IML, etc. I don't really expect Maple to win, but it should have good complexity and storage cost. Here is Maple code to solve a random N x N linear system with integer entries from -10 to 10. N := 1000: A := LinearAlgebra:-RandomMatrix(N,N+1,generator=rand(-10..10)): TIMER := time(): X := LinearAlgebra:-Modular:-IntegerLinearSolve(A,N): time()-TIMER; A somewhat harder task is to compute a basis for the nullspace. Maple inverts a leading block of pivots if the total number of columns is greater than twice the rank. All of the complicated work is done by the RowEchelonTransform command, written by Arne Storjohann and Zhuliang Chen. You should have this command in IML, maybe Sage should use it ? N := 1000: A := LinearAlgebra:-RandomMatrix(N/4,N,generator=rand(-10..10)): TIMER := time(): X := LinearAlgebra:-Modular:-IntegerLinearSolve(A,N): time()-TIMER; Please note that the whole thing is built on the LinearAlgebra:- Modular package, so a great deal of credit is due there. You can set infolevel[LinearAlgebra:-Modular:-IntegerLinearSolve] := 5: to see what the algorithm is doing. > The FastArithmeticTools might be Roman Peirce's multivariable > polynomial arithmetic library. Nope, that's the modpn library from the group at the University of Western Ontario: http://www.orcca.on.ca/~raqeeb/Publications/LMRS-JSC.pdf An early version of my library is there, but it's not documented. It is called to multiply and divide polynomials mod p. For example: f := expand((1+x+y+z)^20): g := f+1: time(Expand(f*g) mod 32003); time(expand(f*g)); # old code --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to sage-devel-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---