From f3b969b6991f154a1fde1ea6b4488320ed0b486f Mon Sep 17 00:00:00 2001 From: Mattias Andrée Date: Tue, 15 Mar 2016 11:40:46 +0100 Subject: Optimise zsetup, zgcd, zmul, and zsqr and add -flto MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- src/zmul.c | 31 +++++++------------------------ 1 file changed, 7 insertions(+), 24 deletions(-) (limited to 'src/zmul.c') diff --git a/src/zmul.c b/src/zmul.c index ae02844..ab41213 100644 --- a/src/zmul.c +++ b/src/zmul.c @@ -57,39 +57,22 @@ zmul(z_t a, z_t b, z_t c) zsplit(b_high, b_low, b, m2); zsplit(c_high, c_low, c, m2); -#if 1 + zmul(z0, b_low, c_low); zmul(z2, b_high, c_high); - zadd(b_low, b_low, b_high); - zadd(c_low, c_low, c_high); + zadd_unsigned_assign(b_low, b_high); + zadd_unsigned_assign(c_low, c_high); zmul(z1, b_low, c_low); - zsub(z1, z1, z0); - zsub(z1, z1, z2); + zsub_nonnegative_assign(z1, z0); + zsub_nonnegative_assign(z1, z2); zlsh(z1, z1, m2); m2 <<= 1; - zlsh(z2, z2, m2); - - zadd(a, z2, z1); - zadd(a, a, z0); -#else - zmul(z0, b_low, c_low); - zmul(z2, b_high, c_high); - zsub(b_low, b_high, b_low); - zsub(c_low, c_high, c_low); - zmul(z1, b_low, c_low); - - zlsh(z0, z0, m2 + 1); - zlsh(z1, z1, m2); zlsh(a, z2, m2); - m2 <<= 1; - zlsh(z2, z2, m2); - zadd(z2, z2, a); + zadd_unsigned_assign(a, z1); + zadd_unsigned_assign(a, z0); - zsub(a, z2, z1); - zadd(a, a, z0); -#endif zfree(z0); zfree(z1); -- cgit v1.2.3-70-g09d2