aboutsummaryrefslogtreecommitdiff
path: root/contrib/fourier/fourier.ml
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/fourier/fourier.ml')
-rw-r--r--contrib/fourier/fourier.ml3
1 files changed, 3 insertions, 0 deletions
diff --git a/contrib/fourier/fourier.ml b/contrib/fourier/fourier.ml
index ea124ed17e..bb8b4ea136 100644
--- a/contrib/fourier/fourier.ml
+++ b/contrib/fourier/fourier.ml
@@ -43,6 +43,7 @@ let r1 = {num=1;den=1};;
let rnorm x = let x = (if x.den<0 then {num=(-x.num);den=(-x.den)} else x) in
if x.num=0 then r0
else (let d=pgcd x.num x.den in
+ let d= (if d<0 then -d else d) in
{num=(x.num)/d;den=(x.den)/d});;
let rop x = rnorm {num=(-x.num);den=x.den};;
@@ -55,6 +56,8 @@ let rmult x y = rnorm {num=x.num*y.num;den=x.den*y.den};;
let rinv x = rnorm {num=x.den;den=x.num};;
+let rdiv x y = rnorm {num=x.num*y.den;den=x.den*y.num};;
+
let rinf x y = x.num*y.den < y.num*x.den;;
let rinfeq x y = x.num*y.den <= y.num*x.den;;