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/zadd.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'src/zadd.c') diff --git a/src/zadd.c b/src/zadd.c index 557ec6f..b730b81 100644 --- a/src/zadd.c +++ b/src/zadd.c @@ -71,6 +71,33 @@ zadd_unsigned(z_t a, z_t b, z_t c) libzahl_zadd_unsigned(a, b, c); } +void +zadd_unsigned_assign(z_t a, z_t b) +{ + size_t size, n; + + if (unlikely(zzero(a))) { + zabs(a, b); + return; + } else if (unlikely(zzero(b))) { + return; + } + + size = MAX(a->used, b->used); + n = a->used + b->used - size; + + ENSURE_SIZE(a, size + 1); + a->chars[size] = 0; + + if (a->used < b->used) { + n = b->used; + zmemset(a->chars + a->used, 0, n - a->used); + } + zadd_impl(a, b, n); + + SET_SIGNUM(a, 1); +} + void zadd(z_t a, z_t b, z_t c) { -- cgit v1.2.3-70-g09d2