steinwurf/fifi — pull request #53 by petya2164 (2014-12-09 01:16:32+00:00)
Title: Add SIMD layer for Prime2325

@mortenvp @jpihl Please take a look here when you have time.
This SIMD magic got a bit complex for the prime field and I also had to add some SFINAE to the dispatcher to work with incompatible value_types. The modifications are relatively simple.
I also changed some of the test code, as it was impossible to properly test the prime field arithmetics with purely random values. There are some special values that would be extremely rare with random generation, so I modified the "pseudo-random" test buffers. These buffers are used for testing region arithmetics and now they start with our predefined operands from expected_results.cpp. So this only changes the first few bytes, and the buffers are random afterwards. Now we can be certain that the SIMD layers are producing correct results in these special cases, because we can compare against the results of the reference implementation.

Finding a good name for the new stack was also difficult. I went with `simd_optimal_prime`. Let me know if you have a better candidate. This stack replaces `optimal_prime` as the default implementation for prime2325. But `optimal_prime` remains to be the reference implementation for prime2325.