diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2015-02-07 19:58:38 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2015-02-07 19:58:38 -0800 |
commit | 45fe65bb4305b896ac95bfa70c3273662e8e44f1 (patch) | |
tree | a925250b15d656980cc1c97ec26ec0620c7382df /arith.c | |
parent | 91664c356f4eb1f31a90f36d369bceb386466f42 (diff) | |
download | txr-45fe65bb4305b896ac95bfa70c3273662e8e44f1.tar.gz txr-45fe65bb4305b896ac95bfa70c3273662e8e44f1.tar.bz2 txr-45fe65bb4305b896ac95bfa70c3273662e8e44f1.zip |
* arith.c (trunc_rem): New function.
* eval.c (eval_init): Register trunc-rem intrinsic.
* lib.h (trunc_rem): Declared.
* txr.1: Documented trunc-rem.
* tl.vim, txr.vim: Updated.
Diffstat (limited to 'arith.c')
-rw-r--r-- | arith.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -945,6 +945,13 @@ divzero: uw_throw(numeric_error_s, lit("mod: division by zero")); } +val trunc_rem(val anum, val bnum) +{ + val quot = trunc(anum, bnum); + val rem = minus(anum, mul(quot, bnum)); + return list(quot, rem, nao); +} + val wrap_star(val start, val end, val num) { val modulus = minus(end, start); |