initial commit
This commit is contained in:
+30
@@ -0,0 +1,30 @@
|
||||
module Fraction
|
||||
|
||||
open common
|
||||
|
||||
let reduce (n,d) =
|
||||
let g = gcd(n,d)
|
||||
(n/g,d/g)
|
||||
|
||||
let mul (n1,d1) (n2,d2) =
|
||||
(n1 * n2, d1 * d2)
|
||||
|
||||
let reciprocal (n,d) = (d,n)
|
||||
|
||||
let add (n1,d1) (n2,d2) =
|
||||
let f = (n1*d2 + n2*d1, d2*d1)
|
||||
reduce f
|
||||
|
||||
let reduceI (n:bigint,d:bigint) =
|
||||
let g = gcdI(n,d)
|
||||
(n/g,d/g)
|
||||
|
||||
let mulI (n1:bigint,d1:bigint) (n2:bigint,d2:bigint) =
|
||||
reduceI (n1 * n2, d1 * d2)
|
||||
|
||||
let reciprocalI (n:bigint,d:bigint) = (d,n)
|
||||
|
||||
let addI (n1:bigint,d1:bigint) (n2,d2) =
|
||||
let f = (n1*d2 + n2*d1, d2*d1)
|
||||
f
|
||||
//reduceI f
|
||||
Reference in New Issue
Block a user