diff options
| author | Mattias Andrée <maandree@kth.se> | 2016-03-15 11:40:46 +0100 |
|---|---|---|
| committer | Mattias Andrée <maandree@kth.se> | 2016-03-15 11:40:46 +0100 |
| commit | f3b969b6991f154a1fde1ea6b4488320ed0b486f (patch) | |
| tree | d17fd525c8bcfed5dd218501214330262efb52c0 /src/zsqr.c | |
| parent | Optimisations (diff) | |
| download | libzahl-f3b969b6991f154a1fde1ea6b4488320ed0b486f.tar.gz libzahl-f3b969b6991f154a1fde1ea6b4488320ed0b486f.tar.bz2 libzahl-f3b969b6991f154a1fde1ea6b4488320ed0b486f.tar.xz | |
Optimise zsetup, zgcd, zmul, and zsqr and add -flto
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat (limited to 'src/zsqr.c')
| -rw-r--r-- | src/zsqr.c | 21 |
1 files changed, 3 insertions, 18 deletions
@@ -42,32 +42,17 @@ zsqr(z_t a, z_t b) zsplit(high, low, b, m2); -#if 1 + zsqr(z0, low); zsqr(z2, high); zmul(z1, low, high); zlsh(z1, z1, m2 + 1); m2 <<= 1; - zlsh(z2, z2, m2); - - zadd(a, z2, z1); - zadd(a, a, z0); -#else - zsqr(z0, low); - zsqr(z2, high); - zmul(z1, low, low); - - zlsh(z0, z0, m2 + 1); - zlsh(z1, z1, m2 + 1); 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); |
