I'm pretty sure the charpoly routine in Flint is much more recent that 2 years. Are you referring to a Sage implementation on top of Flint arithmetic or something?
The only timing that I can find right at the moment had us about 5x faster than Sage. It's not in a released version of Flint though, just in master. Bill. On Tuesday, 27 September 2016 05:49:47 UTC+2, Jonathan Bober wrote: > > On Tue, Sep 27, 2016 at 4:18 AM, William Stein <wst...@gmail.com > <javascript:>> wrote: > >> On Mon, Sep 26, 2016 at 6:55 PM, Jonathan Bober <jwb...@gmail.com >> <javascript:>> wrote: >> > On Mon, Sep 26, 2016 at 11:52 PM, William Stein <wst...@gmail.com >> <javascript:>> wrote: >> >> >> >> On Mon, Sep 26, 2016 at 3:27 PM, Jonathan Bober <jwb...@gmail.com >> <javascript:>> wrote: >> >> > In the matrix_integer_dense charpoly() function, there is a note in >> the >> >> > docstring which says "Linbox charpoly disabled on 64-bit machines, >> since >> >> > it >> >> > hangs in many cases." >> >> > >> >> > As far as I can tell, that is not true, in the sense that (1) I have >> >> > 64-bit >> >> > machines, and Linbox charpoly is not disabled, (2) >> >> > charpoly(algorithm='flint') is so horribly broken that if it were >> ever >> >> > used >> >> > it should be quickly noticed that it is broken, and (3) I can't see >> >> > anywhere >> >> > where it is actually disabled. >> >> > >> >> > So I actually just submitted a patch which removes this note while >> >> > fixing >> >> > point (2). (Trac #21596). >> >> > >> >> > However... >> >> > >> >> > In some testing I'm noticing problems with charpoly(), so I'm >> wondering >> >> > where that message came from, and who knows something about it. >> >> >> >> Do you know about "git blame", or the "blame" button when viewing any >> >> file here: https://github.com/sagemath/sage/tree/master/src >> > >> > >> > Ah, yes. Of course I know about that. And it was you! >> > >> > You added that message here: >> >> Dang... I had a bad feeling that would be the conclusion :-) > > > Well, I'm sure you've done one or two things in the meantime that will > allow me to forgive this one oversight. > > >> In my defense, Linbox/FLINT have themselves changed a lot over the >> years... We added Linbox in 2007, I think. >> >> > Yes. As I said, this comment, and the design change, is ancient. In some > limiting testing, linbox tends to be faster than flint, but has very high > variance in the timings. (I haven't actually checked flint much.) Right now > I'm running the following code on 64 cores, which should test linbox: > > import time > > @parallel > def test(n): > start = time.clock() > f = B.charpoly() > end = time.clock() > runtime = end - start > if f != g: > print n, 'ohno' > return runtime, 'ohno' > else: > return runtime, 'ok' > > A = load('hecke_matrix') > A._clear_cache() > B, denom = A._clear_denom() > g = B.charpoly() > B._clear_cache() > > import sys > > for result in test(range(100000)): > print result[0][0][0], ' '.join([str(x) for x in result[1]]) > sys.stdout.flush() > > where the file hecke_matrix was produced by > > sage: M = ModularSymbols(3633, 2, -1) > sage: S = M.cuspidal_subspace().new_subspace() > sage: H = S.hecke_matrix(2) > sage: H.save('hecke_matrix') > > and the results are interesting: > > jb12407@lmfdb5:~/sage-bug$ sort -n -k 2 test_output3 | head > 30 27.98 ok > 64 28.0 ok > 2762 28.02 ok > 2790 28.02 ok > 3066 28.02 ok > 3495 28.03 ok > 3540 28.03 ok > 292 28.04 ok > 437 28.04 ok > 941 28.04 ok > > jb12407@lmfdb5:~/sage-bug$ sort -n -k 2 test_output3 | tail > 817 2426.04 ok > 1487 2466.3 ok > 1440 2686.43 ok > 459 2745.74 ok > 776 2994.01 ok > 912 3166.9 ok > 56 3189.98 ok > 546 3278.22 ok > 1008 3322.74 ok > 881 3392.73 ok > > jb12407@lmfdb5:~/sage-bug$ python analyze_output.py test_output3 > average time: 53.9404572616 > unfinished: [490, 523, 1009, 1132, 1274, 1319, 1589, 1726, 1955, 2019, > 2283, 2418, 2500, 2598, 2826, 2979, 2982, 3030, 3057, 3112, 3166, 3190, > 3199, 3210, 3273, 3310, 3358, 3401, 3407, 3434, 3481, 3487, 3534, 3546, > 3593, 3594, 3681, 3685, 3695, 3748, 3782, 3812, 3858, 3864, 3887] > > There hasn't yet been an ohno, but on a similar run of 5000 tests > computing A.charpoly() instead of B I have 1 ohno and 4 still running after > 5 hours. (So I'm expecting an error in the morning...) > > I think that maybe I was getting a higher error rate in Sage 7.3. The > current beta is using a newer linbox, so maybe it fixed something, but > maybe it isn't quite fixed. > > Maybe I should use a small matrix to run more tests more quickly, but this > came from a "real world" example. > > >> -- >> William (http://wstein.org) >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sage-devel" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to sage-devel+...@googlegroups.com <javascript:>. >> To post to this group, send email to sage-...@googlegroups.com >> <javascript:>. >> Visit this group at https://groups.google.com/group/sage-devel. >> For more options, visit https://groups.google.com/d/optout. >> > > -- You received this message because you are subscribed to the Google Groups "sage-devel" group. To unsubscribe from this group and stop receiving emails from it, send an email to sage-devel+unsubscr...@googlegroups.com. To post to this group, send email to sage-devel@googlegroups.com. Visit this group at https://groups.google.com/group/sage-devel. For more options, visit https://groups.google.com/d/optout.