/* Integer Math */ export { import "int.lt"; /* Euclidean Algorithm to calculate greatest common divisor */ let gcd = λ{ a : machine.Int64 ~ machine.Word; b : machine.Int64 ~ machine.Word; } ↦ { while( int-gt b 0 ) { let tmp = i% a b; ! a b; ! b tmp; }; a; }; /* least common multiple */ let lcm = λ{ a : machine.Int64 ~ machine.Word; b : machine.Int64 ~ machine.Word; } ↦ i* (int-abs a) (i/ (int-abs b) (gcd a b)); };