Releasing Toom-8.5 (mpn level)
bodrato at mail.dm.unipi.it
bodrato at mail.dm.unipi.it
Sat Oct 31 08:56:38 CET 2009
Thanks Niels,
>> Suggestions? Should I add toom44_itch() computed on the threshold point?
>
> Something like that, yes.
Ok, so, a very conservative definition can be:
#define mpn_toom6h_mul_n_itch(n) \
( ((n) - MUL_TOOM6H_THRESHOLD)*2 + GMP_NUMB_BITS*6 + \
MAX(MUL_TOOM6H_THRESHOLD * 2, \
mpn_toom44_mul_itch(MUL_TOOM6H_THRESHOLD, MUL_TOOM6H_THRESHOLD)))
It is complex, but the compiler should shrink it to (n*2+CONST) and I hope
it keeps on being correct even if the memory usage by toom44 will be
reduced below (n*2).
> When you derive the itch function for toom66, you need to take into
> account that when recursing, you sooner or later get a multiplication
> below the toom66 threshold and recurse to toom44, and then the scratch
I say it is very conservative, because toom8h exists... and e.g. on my
laptop the ranges for the different balanced Toom are:
Toom-2 [ 20.. 76]
Toom-3 [ 77..182]
Toom-4 [183..250]
Toom-6 [251..379]
Toom-8 [380..14000+]
and 251/6 = 41; 380/6+2=65 ... this means that on this machine, the
balanced Toom-6 shall _always_ use Toom-2 for recursion.
By the way, both Toom-3 and Toom-4 always use Toom-2 for recursion with
the ranges above...
... maybe this means that the upper threshold for Toom-8 is expected below
(76-1)*8 = 600 ;-)
Regards,
Marco
--
http://bodrato.it/
More information about the gmp-devel
mailing list