MPIR 1.2 looks to be passing all its tests, so should be out officially over the weekend, so time to think about the next release....
There will be an MPIR 1.2.1 which will merge Robert Gerbicz' contributed code, "turn on" some improvements we have for the FFT, and clean up some longstanding issues we have lurking in our trac server (see those issues flagged for mpir-1.2.1: http://trac.mpir.org/mpir_trac/report/1 ). Here are some of the things we've been musing about for the next release(s) (MPIR 1.3 and following), roughly in order of importance in each section: Multiplication: * Further improvements to assembly language on x86_64 (yes, we think even for K8 :-)) * Move more of karatsuba into assembly language (there should be two new assembly functions for this) * Factor Karatsuba code out into separate files (kara_mul_n.c and kara_mul.c) * Unbalanced version of karatsuba * Implement an improvement to Toom 3 suggested by Thorsten Kleinjung * Toom 4 variants for unbalanced operands based on the code of Marco Bodrato that we have * Toom 7 variants for "slightly unbalanced" operands * Factor out some of the lower level FFT helper functions into separate files * Implement some interesting strategies for speeding up pointwise multiplications in the FFT code * Work on left and right truncated products and middle products Division: * Asymptotically fast division code based on Newton iteration - Fredrick Johansson has python code which demonstrates an asymptotic improvement * Implement Peter Montgomery's mod_1 algorithm * Further assembly improvements to divrem_1 and divrem_2 GCD: * Strassen multiplication for the 2x2 matrix multiplication used by the asymptotically fast GCD code of Niels Moller * A best of breed implementation at the mpn level making use of the different strengths of the currently implemented GCD variants in Niels Moller's code * A super fast implementation of GCD for 1 and 2 limbs - I have some code for the < 1 limb case already, but this is not merged XGCD: * An XGCD implementation of at least one of the GCD algorithms which is fast for smaller operands (currently we only have good asymptotically fast code, after I finally got around to writing it) Benchmarketing: * The new GMP benchmark is better than the old one, however Brian Gladman has written some code for a new benchmark program entirely in C which will become a base for a new mpir benchmark. As we aren't legally allowed to report gmpbench results for MPIR, we may as well write our own benchmark to prevent people inadvertently doing this. mpn layer: * If we are serious about maintaining compatibility with GMP, it looks as if we have to think about catching up with some of the new mpn functions they have implemented - it seems they plan to expose many to the user in a later version - some of them I think we already have, but perhaps with different names, but others I don't have a clue what they do. We'll probably do this on a case by case basis for now, essentially looking to implement the more canonical looking ones before we implement ones which may be internal only - e.g. I think mpn_neg is a safe bet for a user exposed function. Then we can think towards MPIR 2.0. Immediately that MPIR 1.2 is out I will create mpir-mt, mpir-cuda and mpir-cell branches in svn. Glenn reports the cuda1 machine is back up with working CUDA 2.0 drivers, though there may still be some more packages we need to install from NVIDIA for maximum joy. There are other things in the works, but these depend on us getting written contracts and will be announced once we have signed copies in our hands. :-) Of course all of the above is open for discussion (high level ideas and algorithms can be discussed here, implementation details and debugging will be thrashed out on mpir-dev). Further code contributions and ideas are most welcome!! Bill. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "mpir-devel" group. To post to this group, send email to mpir-devel@googlegroups.com To unsubscribe from this group, send email to mpir-devel+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/mpir-devel?hl=en -~----------~----~----~----~------~----~------~--~---