
On 03/10/2011 01:06 AM, falcou wrote:
[snip]
4/ Have a way to say large integer use SIMD register of 128 bits and implement a SIMD aware large integer
This last item seems particularly useful, but I don't see how it has anything to do with a potential restructuring. Since non-bitwise operations aren't explicitly single instruction multiple data operations, really what we are talking about is optimizing the library so as to make the most use of the processor capabilities, which may include SSE instructions, etc. (Presumably the performance of GMP already reflects such optimizations.) Maybe what you have in mind is letting the digit type be a template parameter, and then substituting in a user-defined type (or in the case of some compilers, a compiler-defined non-standard type) that serves as a 128-bit unsigned integer. I'm not convinced that this level of abstraction is compatible with generation of optimal code, though. Furthermore, this abstraction doesn't seem particularly useful, as the only purpose I can imagine of specifying a non-default digit type would be for this particular optimization.