package kappa-library
Public internals of the Kappa tool suite. Use this package to use kappa as a lib
Install
Dune Dependency
Authors
Maintainers
Sources
v4.1.3.tar.gz
md5=1c9a8a0d79f085757817f90834e166f5
sha512=13ac40442940ba6e72d7dc5bf952e67443872f7bff63e9c76a3a699a6904c88696047fe04519b7ec6546371642f6ee7b0983117be302694aca15500b0df40de3
doc/src/kappa-library.generic/fractions.ml.html
Source file fractions.ml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
type t = { num: int; den: int } let sign f = if f.num = 0 then { num = 0; den = 1 } else if f.den < 0 then { num = -f.num; den = -f.den } else f let simplify f = let gcd = Tools.gcd_2 f.num f.den in sign { num = f.num / gcd; den = f.den / gcd } let add a b = simplify { num = (a.num * b.den) + (b.num * a.den); den = b.den * a.den } let op f = { f with num = -f.num } let sub a b = add a (op b) let mult a b = simplify { num = a.num * b.num; den = a.den * b.den } let inv a = if a.num = 0 then None else Some { num = a.den; den = a.num } let div a b = match inv b with | None -> None | Some b_inv -> Some (mult a b_inv) let zero = { num = 0; den = 1 } let is_equal a b = a = b let of_int i = simplify { num = i; den = 1 } let is_zero a = a.num = 0 let one = of_int 1
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>