aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Pierre Letouzey <pierre.letouzey@inria.fr>2017-05-23 10:18:33 +0200
committerGravatar Pierre Letouzey <pierre.letouzey@inria.fr>2017-05-23 10:18:33 +0200
commit60ca3fb1f2724f9a6d1b2e808a94a394711b7258 (patch)
tree02afd2b139db1c05016c7172c87a3251644db538
parent107ef2db28b7abc75afe32350e7c2eb3c8ddbe82 (diff)
Bigint.euclid: clarify which sign convention is used
-rw-r--r--lib/bigint.ml6
-rw-r--r--lib/bigint.mli6
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/bigint.ml b/lib/bigint.ml
index e95604ffc..1ecc2ce2c 100644
--- a/lib/bigint.ml
+++ b/lib/bigint.ml
@@ -257,9 +257,9 @@ let sub_mult m d q k =
end
done
-(** Euclid division m/d = (q,r)
- This is the "Floor" variant, as with ocaml's /
- (but not as ocaml's Big_int.quomod_big_int).
+(** Euclid division m/d = (q,r), with m = q*d+r and |r|<|q|.
+ This is the "Trunc" variant (a.k.a "Truncated-Toward-Zero"),
+ as with ocaml's / (but not as ocaml's Big_int.quomod_big_int).
We have sign r = sign m *)
let euclid m d =
diff --git a/lib/bigint.mli b/lib/bigint.mli
index e5525f164..a1dc66077 100644
--- a/lib/bigint.mli
+++ b/lib/bigint.mli
@@ -30,6 +30,12 @@ val mult_2 : bigint -> bigint
val add : bigint -> bigint -> bigint
val sub : bigint -> bigint -> bigint
val mult : bigint -> bigint -> bigint
+
+(** Euclid division m/d = (q,r), with m = q*d+r and |r|<|q|.
+ This is the "Trunc" variant (a.k.a "Truncated-Toward-Zero"),
+ as with ocaml's / (but not as ocaml's Big_int.quomod_big_int).
+ We have sign r = sign m *)
+
val euclid : bigint -> bigint -> bigint * bigint
val less_than : bigint -> bigint -> bool