diff options
Diffstat (limited to '')
| -rw-r--r-- | zahl.h | 4 | ||||
| -rw-r--r-- | zahl/inlines.h | 14 | ||||
| -rw-r--r-- | zahl/internals.h | 4 |
3 files changed, 20 insertions, 2 deletions
@@ -93,9 +93,9 @@ void zadd(z_t, z_t, z_t); /* a := b + c */ void zsub(z_t, z_t, z_t); /* a := b - c */ ZAHL_INLINE void zmul(z_t, z_t, z_t); /* a := b * c */ void zmodmul(z_t, z_t, z_t, z_t); /* a := (b * c) % d */ -void zdiv(z_t, z_t, z_t); /* a := b / c */ +ZAHL_INLINE void zdiv(z_t, z_t, z_t); /* a := b / c */ void zdivmod(z_t, z_t, z_t, z_t); /* a := c / d, b = c % d */ -void zmod(z_t, z_t, z_t); /* a := b % c */ +ZAHL_INLINE void zmod(z_t, z_t, z_t); /* a := b % c */ ZAHL_INLINE void zsqr(z_t, z_t); /* a := b² */ void zmodsqr(z_t, z_t, z_t); /* a := b² % c */ void zpow(z_t, z_t, z_t); /* a := b ↑ c */ diff --git a/zahl/inlines.h b/zahl/inlines.h index 8f6b490..9884812 100644 --- a/zahl/inlines.h +++ b/zahl/inlines.h @@ -291,3 +291,17 @@ zsqr(z_t a, z_t b) ZAHL_SET_SIGNUM(a, 1); } } + + +ZAHL_INLINE void +zdiv(z_t a, z_t b, z_t c) +{ + zdivmod(a, libzahl_tmp_div, b, c); +} + + +ZAHL_INLINE void +zmod(z_t a, z_t b, z_t c) +{ + zdivmod(libzahl_tmp_mod, a, b, c); +} diff --git a/zahl/internals.h b/zahl/internals.h index e0aa248..672dfcd 100644 --- a/zahl/internals.h +++ b/zahl/internals.h @@ -107,6 +107,10 @@ struct zahl { }; +extern struct zahl libzahl_tmp_div[1]; +extern struct zahl libzahl_tmp_mod[1]; + + void libzahl_realloc(struct zahl *, size_t); ZAHL_INLINE void |
