aboutsummaryrefslogtreecommitdiffhomepage
path: root/std/Math/Rational.bruijn
diff options
context:
space:
mode:
Diffstat (limited to 'std/Math/Rational.bruijn')
-rw-r--r--std/Math/Rational.bruijn6
1 files changed, 6 insertions, 0 deletions
diff --git a/std/Math/Rational.bruijn b/std/Math/Rational.bruijn
index f1509b0..e72b6a9 100644
--- a/std/Math/Rational.bruijn
+++ b/std/Math/Rational.bruijn
@@ -43,6 +43,12 @@ add &[[&[[p : q]]]] ⧗ Rational → Rational → Rational
:test ((+1.8) + (+1.2) =? (+3.0)) (true)
:test ((-1.8) + (+1.2) =? (-0.6)) (true)
+reduce [[[(N.div 2 0) : N.--(N.div 1 0)] (N.gcd 1 0)]]
+
+add' &[[&[[reduce p q]]]]
+ p N.add (N.mul 3 N.++0) (N.mul 1 N.++2)
+ q N.mul N.++0 N.++2
+
# subtracts two rational numbers
sub &[[&[[p : q]]]] ⧗ Rational → Rational → Rational
p N.sub (N.mul 3 N.++0) (N.mul 1 N.++2)