[sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-09 Thread William Stein
New blog post from Bill Hart. It includes a section claiming Sage’s multivariate polynomial arithmetic speed is much worse than expected... -- Forwarded message - From: Bill Hart Date: Sun, Jul 9, 2017 at 8:34 AM Subject: [ODK participants] Blog post on fast multivariate arithmet

Re: [sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-12 Thread Francesco Biscani
Interesting timings, they give me some motivation to revisit the dense multiplication algorithm in piranha :) As an aside (and apologies if this is a slight thread hijack?), I have been spending some time in the last few weeks decoupling the multiprecision arithmetic bits from piranha into its own

Re: [sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-12 Thread 'Bill Hart' via sage-devel
Beware, Bernard Parisse has just helped me track down why the Flint timings for the sparse division only benchmark looked so ridiculously low. It turns out that due to an accident of interfacing between Nemo and Flint, it was using reflected lexicographical ordering instead of true lexicographic

Re: [sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-12 Thread Francesco Biscani
In the benchmarks I use the C++ interfaces of FLINT and Boost.Multiprecision only for ease of initialization/destruction. The bulk of the operations is performed using directly the C API of FLINT and GMP. mp++ itself has some moderate template metaprogramming in place, but for instance it is curren

Re: [sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-13 Thread 'Bill Hart' via sage-devel
So why is it faster than Flint say? Except for the overhead in the Flint fmpz type, which uses a single word initially and only upgrades to an mpz_t on overflow, it should currently be doing more allocations than Flint. And Flint should be faster for something like a dot product, especially if t

Re: [sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-13 Thread Francesco Biscani
mppp also uses a small value optimisation. The number of limbs that can be stored without dynamic memory allocation can be selected at compile time, and the benchmarks on the website are done using 1 limb (64 bits) of static storage. I can think of a few things that might influence positively mppp

Re: [sage-devel] Fwd: [ODK participants] Blog post on fast multivariate arithmetic

2017-07-14 Thread 'Bill Hart' via sage-devel
It seems like you've done a good job with it anyway. Thanks for the description. Bill. On Thursday, 13 July 2017 20:46:21 UTC+2, bluescarni wrote: > > mppp also uses a small value optimisation. The number of limbs that can be > stored without dynamic memory allocation can be selected at compile