module std/num/ddoublestd/num/ddouble
import std/core/undivstd/core/undiv
import std/num/float64std/num/float64
import std/num/decimalstd/num/decimal
import std/text/parsestd/text/parse
abstract value struct ddoublestd/num/ddouble/ddouble: V
histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 : float64std/core/types/float64: V
lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64 : float64std/core/types/float64: V
pub fun float64/ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble( dd: float64 : float64std/core/types/float64: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(dd: float64,0.0literal: float64
hex64= 0x0p+0)
val maxprecisestd/num/ddouble/maxprecise: int : intstd/core/types/int: V = 9007199254740991literal: int
dec = 9007199254740991
hex64= 0x001FFFFFFFFFFFFF
bit64= 0b0000000000011111111111111111111111111111111111111111111111111111
val minprecisestd/num/ddouble/minprecise: int : intstd/core/types/int: V = ~std/core/int/(~): (i : int) -> intmaxprecisestd/num/ddouble/maxprecise: int
fun is-precisestd/num/ddouble/is-precise: (i : int) -> bool(ii: int : intstd/core/types/int: V )result: -> total bool : boolstd/core/types/bool: V
(ii: int >=std/core/int/(>=): (x : int, y : int) -> bool minprecisestd/num/ddouble/minprecise: int &&std/core/types/(&&): (x : bool, y : bool) -> bool ii: int <=std/core/int/(<=): (x : int, y : int) -> bool maxprecisestd/num/ddouble/maxprecise: int)
pub fun int/ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble( ii: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
ddouble-int-expstd/num/ddouble/ddouble-int-exp: (i : int, e : int) -> ddouble(ii: int,0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000)
fun ddouble-int-expstd/num/ddouble/ddouble-int-exp: (i : int, e : int) -> ddouble( ii: int : intstd/core/types/int: V, ee: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if ii: int.is-precisestd/num/ddouble/is-precise: (i : int) -> bool then small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble( ii: int, ee: int ) else
val pp: int = ii: int.count-digitsstd/core/int/count-digits: (i : int) -> int
val xx: int = ii: int
val pxpx: int = pp: int -std/core/int/(-): (x : int, y : int) -> int 14literal: int
dec = 14
hex8 = 0x0E
bit8 = 0b00001110
val (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)hihi: int,yy: int)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) = xx: int.cdivmod-exp10std/core/int/cdivmod-exp10: (i : int, n : int) -> (int, int)(pxpx: int)
val pypy: int = pxpx: int -std/core/int/(-): (x : int, y : int) -> int 14literal: int
dec = 14
hex8 = 0x0E
bit8 = 0b00001110
if pypy: int <=std/core/int/(<=): (x : int, y : int) -> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then
small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble(hihi: int, pxpx: int +std/core/int/(+): (x : int, y : int) -> int ee: int) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble( yy: int, ee: int)
else
val (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)midmid: int,zz: int)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) = yy: int.cdivmod-exp10std/core/int/cdivmod-exp10: (i : int, n : int) -> (int, int)(pypy: int)
val pzpz: int = pypy: int -std/core/int/(-): (x : int, y : int) -> int 14literal: int
dec = 14
hex8 = 0x0E
bit8 = 0b00001110
val (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)lolo: int,ploplo: int)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) = if pzpz: int <=std/core/int/(<=): (x : int, y : int) -> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)zz: int,0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) else (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)zz: int.cdiv-exp10std/core/int/cdiv-exp10: (i : int, n : int) -> int(pzpz: int), pzpz: int)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble( hihi: int, pxpx: int +std/core/int/(+): (x : int, y : int) -> int ee: int) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble( midmid: int, pypy: int +std/core/int/(+): (x : int, y : int) -> int ee: int) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble( lolo: int, ploplo: int +std/core/int/(+): (x : int, y : int) -> int ee: int))
fun small-expstd/num/ddouble/small-exp: (i : int, e : int) -> ddouble( ii: int : intstd/core/types/int: V, ee: int : intstd/core/types/int: V )result: -> total ddouble
val dddd: ddouble = ii: int.float64std/num/float64/float64: (i : int) -> float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble
if ee: int.is-zerostd/core/int/is-zero: (x : int) -> bool then dddd: ddouble else dddd: ddouble.mul-exp10std/num/ddouble/mul-exp10: (x : ddouble, exp : int) -> ddouble(ee: int)
pub val dd-pistd/num/ddouble/dd-pi: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.921FB54442D18p+1literal: float64
hex64= 0x1.921fb54442d18p1, 0x1.1A62633145C07p-53literal: float64
hex64= 0x1.1a62633145c07p-53)
pub val dd-twopistd/num/ddouble/dd-twopi: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.921FB54442D18p+2literal: float64
hex64= 0x1.921fb54442d18p2, 0x1.1A62633145C07p-52literal: float64
hex64= 0x1.1a62633145c07p-52)
pub val dd-pi2std/num/ddouble/dd-pi2: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.921FB54442D18p+0literal: float64
hex64= 0x1.921fb54442d18p0, 0x1.1A62633145C07p-54literal: float64
hex64= 0x1.1a62633145c07p-54)
pub val dd-pi4std/num/ddouble/dd-pi4: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.921FB54442D18p-1literal: float64
hex64= 0x1.921fb54442d18p-1, 0x1.1A62633145C07p-55literal: float64
hex64= 0x1.1a62633145c07p-55)
val dd-pi16std/num/ddouble/dd-pi16: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0x1.921FB54442D18p+1literal: float64
hex64= 0x1.921fb54442d18p1, 0x1.1A62633145C07p-53literal: float64
hex64= 0x1.1a62633145c07p-53)
pub val dd-pi34std/num/ddouble/dd-pi34: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.2D97C7F3321D2p+1literal: float64
hex64= 0x1.2d97c7f3321d2p1, 0x1.A79394C9E8A0Bp-54literal: float64
hex64= 0x1.a79394c9e8a0bp-54)
pub val dd-estd/num/ddouble/dd-e: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.5BF0A8B145769p+1literal: float64
hex64= 0x1.5bf0a8b145769p1, 0x1.4D57EE2B1013Ap-53literal: float64
hex64= 0x1.4d57ee2b1013ap-53)
pub val dd-ln2std/num/ddouble/dd-ln2: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.62E42FEFA39EFp-1literal: float64
hex64= 0x1.62e42fefa39efp-1, 0x1.ABC9E3B39803Fp-56literal: float64
hex64= 0x1.abc9e3b39803fp-56)
pub val dd-ln10std/num/ddouble/dd-ln10: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.26BB1BBB55516p+1literal: float64
hex64= 0x1.26bb1bbb55516p1, -0x1.F48AD494EA3E9p-53literal: float64
hex64= -0x1.f48ad494ea3e9p-53)
pub val dd-log2estd/num/ddouble/dd-log2e: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.71547652B82FEp+0literal: float64
hex64= 0x1.71547652b82fep0, 0x1.777D0FFDA0D23p-56literal: float64
hex64= 0x1.777d0ffda0d23p-56)
pub val dd-log10estd/num/ddouble/dd-log10e: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.BCB7B1526E50Ep-2literal: float64
hex64= 0x1.bcb7b1526e50ep-2, 0x1.95355BAAAFAD3p-57literal: float64
hex64= 0x1.95355baaafad3p-57)
pub val dd-sqrt2std/num/ddouble/dd-sqrt2: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.6A09E667F3BCDp+0literal: float64
hex64= 0x1.6a09e667f3bcdp0, -0x1.BDD3413B26456p-54literal: float64
hex64= -0x1.bdd3413b26456p-54)
pub val dd-sqrt12std/num/ddouble/dd-sqrt12: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.6A09E667F3BCDp-1literal: float64
hex64= 0x1.6a09e667f3bcdp-1, -0x1.BDD3413B26456p-55literal: float64
hex64= -0x1.bdd3413b26456p-55)
pub val dd-eulerstd/num/ddouble/dd-euler: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.2788CFC6FB619p-1literal: float64
hex64= 0x1.2788cfc6fb619p-1, -0x1.6CB90701FBFABp-58literal: float64
hex64= -0x1.6cb90701fbfabp-58)
pub val dd-epsilonstd/num/ddouble/dd-epsilon: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1p-104literal: float64
hex64= 0x1p-104,0.0literal: float64
hex64= 0x0p+0)
val dd-epsilon8std/num/ddouble/dd-epsilon8: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(0x1.0p-101literal: float64
hex64= 0x1p-101, 0x0.0p+0literal: float64
hex64= 0x0p+0)
pub val dd-maxstd/num/ddouble/dd-max: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0x1.FFFFFFFFFFFFFp+1023literal: float64
hex64= 0x1.fffffffffffffp1023, 0x1.FFFFFFFFFFFFFp+969literal: float64
hex64= 0x1.fffffffffffffp969 )
pub val dd-minstd/num/ddouble/dd-min: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( flt-minstd/num/float64/flt-min: float64, 0.0literal: float64
hex64= 0x0p+0 )
pub val dd-true-minstd/num/ddouble/dd-true-min: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( flt-true-minstd/num/float64/flt-true-min: float64, 0.0literal: float64
hex64= 0x0p+0 )
pub val dd-nanstd/num/ddouble/dd-nan: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(nanstd/num/float64/nan: float64,0.0literal: float64
hex64= 0x0p+0)
pub val dd-posinfstd/num/ddouble/dd-posinf: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(posinfstd/num/float64/posinf: float64,0.0literal: float64
hex64= 0x0p+0)
pub val dd-neginfstd/num/ddouble/dd-neginf: ddouble = Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(neginfstd/num/float64/neginf: float64,0.0literal: float64
hex64= 0x0p+0)
pub val dd-max-precstd/num/ddouble/dd-max-prec: int = 31literal: int
dec = 31
hex8 = 0x1F
bit8 = 0b00011111
val dd-default-precstd/num/ddouble/dd-default-prec: int = -31literal: int
dec = -31
hex8 = 0xE1
bit8 = 0b11100001
pub val zerostd/num/ddouble/zero: ddouble : ddoublestd/num/ddouble/ddouble: V = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(0.0literal: float64
hex64= 0x0p+0)
pub val onestd/num/ddouble/one: ddouble : ddoublestd/num/ddouble/ddouble: V = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(1.0literal: float64
hex64= 0x1p0)
pub val tenstd/num/ddouble/ten: ddouble : ddoublestd/num/ddouble/ddouble: V = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(10.0literal: float64
hex64= 0x1.4p3)
val twostd/num/ddouble/two: ddouble = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(2.0literal: float64
hex64= 0x1p1)
pub fun is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-zerostd/num/float64/is-zero: (d : float64) -> bool
pub fun is-negstd/num/ddouble/is-neg: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-negstd/num/float64/is-neg: (d : float64) -> bool
pub fun is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-posstd/num/float64/is-pos: (d : float64) -> bool
pub fun is-signstd/num/ddouble/is-sign: (x : ddouble) -> order( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total order : orderstd/core/types/order: V
if xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64==std/num/float64/(==): (x : float64, y : float64) -> bool0.0literal: float64
hex64= 0x0p+0 then Eqstd/core/types/Eq: order
elif xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 <std/num/float64/(<): (x : float64, y : float64) -> bool 0.0literal: float64
hex64= 0x0p+0 then Ltstd/core/types/Lt: order
else Gtstd/core/types/Gt: order
pub fun is-nanstd/num/ddouble/is-nan: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-nanstd/num/float64/is-nan: (d : float64) -> bool ||std/core/types/(||): (x : bool, y : bool) -> bool xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.is-nanstd/num/float64/is-nan: (d : float64) -> bool
pub fun is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool &&std/core/types/(&&): (x : bool, y : bool) -> bool xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool
pub fun is-infstd/num/ddouble/is-inf: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-infstd/num/float64/is-inf: (d : float64) -> bool
pub fun is-posinfstd/num/ddouble/is-posinf: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-posinfstd/num/float64/is-posinf: (d : float64) -> bool
pub fun is-neginfstd/num/ddouble/is-neginf: (x : ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-neginfstd/num/float64/is-neginf: (d : float64) -> bool
pub fun cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total order : orderstd/core/types/order: V
match cmpstd/num/float64/cmp: (x : float64, y : float64) -> order(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64,yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
Eqstd/core/types/Eq: order -> cmpstd/num/float64/cmp: (x : float64, y : float64) -> order(xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64,yy: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64)
ordord: order -> ordord: order
pub fun (>)std/num/ddouble/(>): (x : ddouble, y : ddouble) -> bool (xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V)result: -> total bool : boolstd/core/types/bool: V { cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order(xx: ddouble,yy: ddouble) ==std/core/order/(==): (x : order, y : order) -> bool Gtstd/core/types/Gt: order }
pub fun (>=)std/num/ddouble/(>=): (x : ddouble, y : ddouble) -> bool(xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V)result: -> total bool : boolstd/core/types/bool: V { cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order(xx: ddouble,yy: ddouble) !=std/core/order/(!=): (x : order, y : order) -> bool Ltstd/core/types/Lt: order }
pub fun (==)std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool(xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V)result: -> total bool : boolstd/core/types/bool: V { cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order(xx: ddouble,yy: ddouble) ==std/core/order/(==): (x : order, y : order) -> bool Eqstd/core/types/Eq: order }
pub fun (!=)std/num/ddouble/(!=): (x : ddouble, y : ddouble) -> bool(xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V)result: -> total bool : boolstd/core/types/bool: V { cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order(xx: ddouble,yy: ddouble) !=std/core/order/(!=): (x : order, y : order) -> bool Eqstd/core/types/Eq: order }
pub fun (<)std/num/ddouble/(<): (x : ddouble, y : ddouble) -> bool (xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V)result: -> total bool : boolstd/core/types/bool: V { cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order(xx: ddouble,yy: ddouble) ==std/core/order/(==): (x : order, y : order) -> bool Ltstd/core/types/Lt: order }
pub fun (<=)std/num/ddouble/(<=): (x : ddouble, y : ddouble) -> bool(xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V)result: -> total bool : boolstd/core/types/bool: V { cmpstd/num/ddouble/cmp: (x : ddouble, y : ddouble) -> order(xx: ddouble,yy: ddouble) !=std/core/order/(!=): (x : order, y : order) -> bool Gtstd/core/types/Gt: order }
pub fun minstd/num/ddouble/min: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble <=std/num/ddouble/(<=): (x : ddouble, y : ddouble) -> bool yy: ddouble then xx: ddouble else yy: ddouble
pub fun maxstd/num/ddouble/max: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble >=std/num/ddouble/(>=): (x : ddouble, y : ddouble) -> bool yy: ddouble then xx: ddouble else yy: ddouble
value struct edoublestd/num/ddouble/edouble: V
numstd/num/ddouble/edouble/num: (edouble : edouble) -> float64 : float64std/core/types/float64: V
errstd/num/ddouble/edouble/err: (edouble : edouble) -> float64 : float64std/core/types/float64: V
fun sumstd/num/ddouble/sum: (x : float64, y : float64) -> edouble( xx: float64 : float64std/core/types/float64: V, yy: float64 : float64std/core/types/float64: V )result: -> total edouble : edoublestd/num/ddouble/edouble: V
val zz: float64 = xx: float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 yy: float64
val diffdiff: float64 = zz: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 xx: float64
val errerr: float64 = (xx: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 (zz: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 diffdiff: float64)) +std/num/float64/(+): (x : float64, y : float64) -> float64 (yy: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 diffdiff: float64)
Edoublestd/num/ddouble/Edouble: (num : float64, err : float64) -> edouble(zz: float64, if zz: float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool then errerr: float64 else zz: float64)
fun dsumstd/num/ddouble/dsum: (x : float64, y : float64) -> ddouble( xx: float64 : float64std/core/types/float64: V, yy: float64 : float64std/core/types/float64: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val zz: float64 = xx: float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 yy: float64
val diffdiff: float64 = zz: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 xx: float64
val errerr: float64 = (xx: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 (zz: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 diffdiff: float64)) +std/num/float64/(+): (x : float64, y : float64) -> float64 (yy: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 diffdiff: float64)
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(zz: float64, if zz: float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool then errerr: float64 else zz: float64)
fun quicksumstd/num/ddouble/quicksum: (x : float64, y : float64) -> edouble( xx: float64 : float64std/core/types/float64: V, yy: float64 : float64std/core/types/float64: V )result: -> total edouble : edoublestd/num/ddouble/edouble: V
val zz: float64 = xx: float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 yy: float64
val errerr: float64 = yy: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 (zz: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 xx: float64)
Edoublestd/num/ddouble/Edouble: (num : float64, err : float64) -> edouble(zz: float64, if zz: float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool then errerr: float64 else zz: float64)
fun dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble( xx: float64 : float64std/core/types/float64: V, yy: float64 : float64std/core/types/float64: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool returnreturn: ddouble ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(xx: float64)std/core/types/Unit: ()
val zz: float64 = xx: float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 yy: float64
val errerr: float64 = yy: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 (zz: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 xx: float64)
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(zz: float64, if zz: float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool then errerr: float64 else zz: float64)
pub fun (+)std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val z1z1: edouble = sumstd/num/ddouble/sum: (x : float64, y : float64) -> edouble(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64,yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
val lolo: edouble = sumstd/num/ddouble/sum: (x : float64, y : float64) -> edouble(xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64,yy: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64)
val e1e1: float64 = z1z1: edouble.errstd/num/ddouble/edouble/err: (edouble : edouble) -> float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 lolo: edouble.numstd/num/ddouble/edouble/num: (edouble : edouble) -> float64
val z2z2: edouble = quicksumstd/num/ddouble/quicksum: (x : float64, y : float64) -> edouble(z1z1: edouble.numstd/num/ddouble/edouble/num: (edouble : edouble) -> float64,e1e1: float64)
val e2e2: float64 = z2z2: edouble.errstd/num/ddouble/edouble/err: (edouble : edouble) -> float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 lolo: edouble.errstd/num/ddouble/edouble/err: (edouble : edouble) -> float64
dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(z2z2: edouble.numstd/num/ddouble/edouble/num: (edouble : edouble) -> float64,e2e2: float64)
pub fun ddoublestd/num/ddouble/ddouble: (x : float64, y : float64) -> ddouble( xx: float64 : float64std/core/types/float64: V, yy: float64 : float64std/core/types/float64: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if yy: float64.is-zerostd/num/float64/is-zero: (d : float64) -> bool then ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(xx: float64) else dsumstd/num/ddouble/dsum: (x : float64, y : float64) -> ddouble(xx: float64,yy: float64)
pub fun (~)std/num/ddouble/(~): (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(~std/num/float64/(~): (f : float64) -> float64xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64,~std/num/float64/(~): (f : float64) -> float64xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64)
pub fun (-)std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (~std/num/ddouble/(~): (x : ddouble) -> ddoubleyy: ddouble)
pub fun absstd/num/ddouble/abs: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-negstd/num/ddouble/is-neg: (x : ddouble) -> bool then ~std/num/ddouble/(~): (x : ddouble) -> ddoublexx: ddouble else xx: ddouble
pub fun incstd/num/ddouble/inc: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble :ddoublestd/num/ddouble/ddouble: V
xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble
pub fun decstd/num/ddouble/dec: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble :ddoublestd/num/ddouble/ddouble: V
xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble
fun prodstd/num/ddouble/prod: (x : float64, y : float64) -> edouble( xx: float64 : float64std/core/types/float64: V, yy: float64 : float64std/core/types/float64: V )result: -> total edouble : edoublestd/num/ddouble/edouble: V
val zz: float64 = xx: float64*std/num/float64/(*): (x : float64, y : float64) -> float64yy: float64
val errerr: float64 = fmaddstd/num/float64/fmadd: (x : float64, y : float64, z : float64) -> float64(xx: float64,yy: float64,~std/num/float64/(~): (f : float64) -> float64zz: float64)
Edoublestd/num/ddouble/Edouble: (num : float64, err : float64) -> edouble(zz: float64,errerr: float64)
fun prodsqrstd/num/ddouble/prodsqr: (x : float64) -> edouble( xx: float64 : float64std/core/types/float64: V )result: -> total edouble : edoublestd/num/ddouble/edouble: V
val zz: float64 = xx: float64*std/num/float64/(*): (x : float64, y : float64) -> float64xx: float64
val errerr: float64 = fmaddstd/num/float64/fmadd: (x : float64, y : float64, z : float64) -> float64(xx: float64,xx: float64,~std/num/float64/(~): (f : float64) -> float64zz: float64)
Edoublestd/num/ddouble/Edouble: (num : float64, err : float64) -> edouble(zz: float64,errerr: float64)
pub fun (*)std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val zz: edouble = prodstd/num/ddouble/prod: (x : float64, y : float64) -> edouble(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64, yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
val ee: float64 = zz: edouble.errstd/num/ddouble/edouble/err: (edouble : edouble) -> float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 (xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64*std/num/float64/(*): (x : float64, y : float64) -> float64yy: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64*std/num/float64/(*): (x : float64, y : float64) -> float64yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(zz: edouble.numstd/num/ddouble/edouble/num: (edouble : edouble) -> float64, ee: float64)
pub fun sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val zz: edouble = prodsqrstd/num/ddouble/prodsqr: (x : float64) -> edouble(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
val ee: float64 = (zz: edouble.errstd/num/ddouble/edouble/err: (edouble : edouble) -> float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 (2.0literal: float64
hex64= 0x1p1*std/num/float64/(*): (x : float64, y : float64) -> float64xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64*std/num/float64/(*): (x : float64, y : float64) -> float64xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64)) +std/num/float64/(+): (x : float64, y : float64) -> float64 (xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64*std/num/float64/(*): (x : float64, y : float64) -> float64xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64)
dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(zz: edouble.numstd/num/ddouble/edouble/num: (edouble : edouble) -> float64,ee: float64)
pub fun (/)std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val q1q1: ddouble = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 /std/num/float64/(/): (x : float64, y : float64) -> float64 yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
if !std/core/types/bool/(!): (b : bool) -> boolq1q1: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool ||std/core/types/(||): (x : bool, y : bool) -> bool !std/core/types/bool/(!): (b : bool) -> boolyy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-finitestd/num/float64/is-finite: (d : float64) -> bool returnreturn: ddouble q1q1: ddouble
val r1r1: ddouble = xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble (yy: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble q1q1: ddouble)
val q2q2: ddouble = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(r1r1: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 /std/num/float64/(/): (x : float64, y : float64) -> float64 yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
val r2r2: ddouble = r1r1: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble (yy: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble q2q2: ddouble)
val q3q3: ddouble = ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(r2r2: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 /std/num/float64/(/): (x : float64, y : float64) -> float64 yy: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
val qq: ddouble = dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(q1q1: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64,q2q2: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
qq: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble q3q3: ddouble
pub fun (%)std/num/ddouble/(%): (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val nn: ddouble = (xx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble yy: ddouble).roundstd/num/ddouble/round: (x : ddouble) -> ddouble
xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble (nn: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoubleyy: ddouble)
pub fun divremstd/num/ddouble/divrem: (x : ddouble, y : ddouble) -> (ddouble, ddouble)( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total (ddouble, ddouble) : (std/core/types/tuple2: (V, V) -> Vddoublestd/num/ddouble/ddouble: V,ddoublestd/num/ddouble/ddouble: V)
val nn: ddouble = (xx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble yy: ddouble).roundstd/num/ddouble/round: (x : ddouble) -> ddouble
(std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)nn: ddouble, xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble (nn: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoubleyy: ddouble))std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
pub fun float64std/num/ddouble/float64: (x : ddouble) -> float64( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total float64 : float64std/core/types/float64: V
xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64
pub fun intstd/num/ddouble/int: (x : ddouble, nonfin : ? int) -> int( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, nonfinnonfin: ? int : intstd/core/types/int: V = 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 )result: -> total int : intstd/core/types/int: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool then nonfinnonfin: int else xx: ddouble.roundstd/num/ddouble/round: (x : ddouble) -> ddouble.decimalstd/num/ddouble/decimal: (x : ddouble, prec : ? int) -> decimal.intstd/num/decimal/int: (x : decimal, rnd : ? round) -> int
pub fun roundstd/num/ddouble/round: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val rr: float64 = xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.roundstd/num/float64/round: (d : float64) -> float64
val diffdiff: float64 = rr: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64
if diffdiff: float64 ==std/num/float64/(==): (x : float64, y : float64) -> bool 0.0literal: float64
hex64= 0x0p+0 then dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(rr: float64,xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.roundstd/num/float64/round: (d : float64) -> float64)
elif diffdiff: float64 ==std/num/float64/(==): (x : float64, y : float64) -> bool 0.5literal: float64
hex64= 0x1p-1 &&std/core/types/(&&): (x : bool, y : bool) -> bool xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.is-negstd/num/float64/is-neg: (d : float64) -> bool then ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(rr: float64 -std/num/float64/(-): (x : float64, y : float64) -> float64 1.0literal: float64
hex64= 0x1p0)
elif diffdiff: float64 ==std/num/float64/(==): (x : float64, y : float64) -> bool -0.5literal: float64
hex64= -0x1p-1 &&std/core/types/(&&): (x : bool, y : bool) -> bool xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.is-posstd/num/float64/is-pos: (d : float64) -> bool then ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(rr: float64 +std/num/float64/(+): (x : float64, y : float64) -> float64 1.0literal: float64
hex64= 0x1p0)
else ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble(rr: float64)
pub fun floorstd/num/ddouble/floor: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val rr: float64 = xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.floorstd/num/float64/floor: (d : float64) -> float64
if rr: float64 ==std/num/float64/(==): (x : float64, y : float64) -> bool xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64
then dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(rr: float64,xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.floorstd/num/float64/floor: (d : float64) -> float64)
else Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(rr: float64,0.0literal: float64
hex64= 0x0p+0)
pub fun ceilingstd/num/ddouble/ceiling: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val rr: float64 = xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.ceilingstd/num/float64/ceiling: (d : float64) -> float64
if rr: float64 ==std/num/float64/(==): (x : float64, y : float64) -> bool xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64
then dquicksumstd/num/ddouble/dquicksum: (x : float64, y : float64) -> ddouble(rr: float64,xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.ceilingstd/num/float64/ceiling: (d : float64) -> float64)
else Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(rr: float64,0.0literal: float64
hex64= 0x0p+0)
pub fun truncatestd/num/ddouble/truncate: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-negstd/num/ddouble/is-neg: (x : ddouble) -> bool then xx: ddouble.ceilingstd/num/ddouble/ceiling: (x : ddouble) -> ddouble else xx: ddouble.floorstd/num/ddouble/floor: (x : ddouble) -> ddouble
pub fun fractionstd/num/ddouble/fraction: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble xx: ddouble.truncatestd/num/ddouble/truncate: (x : ddouble) -> ddouble
pub fun ffractionstd/num/ddouble/ffraction: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble xx: ddouble.floorstd/num/ddouble/floor: (x : ddouble) -> ddouble
pub fun round-to-precstd/num/ddouble/round-to-prec: (x : ddouble, prec : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, precprec: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if precprec: int <=std/core/int/(<=): (x : int, y : int) -> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then xx: ddouble.roundstd/num/ddouble/round: (x : ddouble) -> ddouble
elif precprec: int >std/core/int/(>): (x : int, y : int) -> bool dd-max-precstd/num/ddouble/dd-max-prec: int then xx: ddouble
else
val pp: ddouble : ddoublestd/num/ddouble/ddouble: V = powi10std/num/ddouble/powi10: (exp : int) -> ddouble(precprec: int)
(xx: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble pp: ddouble).roundstd/num/ddouble/round: (x : ddouble) -> ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble pp: ddouble
pub fun ldexpstd/num/ddouble/ldexp: (x : ddouble, exp : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, expexp: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(ldexpstd/num/float64/ldexp: (x : float64, e : int) -> float64(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64,expexp: int),ldexpstd/num/float64/ldexp: (x : float64, e : int) -> float64(xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64,expexp: int))
fun npwr-accstd/num/ddouble/npwr-acc: (x : ddouble, acc : ddouble, n : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, accacc: ddouble : ddoublestd/num/ddouble/ddouble: V, nn: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if nn: int <=std/core/int/(<=): (x : int, y : int) -> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then accacc: ddouble
elif nn: int.is-evenstd/core/int/is-even: (i : int) -> bool then npwr-accstd/num/ddouble/npwr-acc: (x : ddouble, acc : ddouble, n : int) -> ddouble( sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble(xx: ddouble), accacc: ddouble, pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> int(nn: int/std/core/int/(/): (x : int, y : int) -> int2literal: int
dec = 2
hex8 = 0x02
bit8 = 0b00000010) )
else npwr-accstd/num/ddouble/npwr-acc: (x : ddouble, acc : ddouble, n : int) -> ddouble( xx: ddouble, xx: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoubleaccacc: ddouble, pretend-decreasingstd/core/undiv/pretend-decreasing: (x : int) -> int(nn: int.decstd/core/int/dec: (i : int) -> int))
fun npwrstd/num/ddouble/npwr: (x : ddouble, n : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, nn: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if nn: int==std/core/int/(==): (x : int, y : int) -> bool0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then (if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then dd-nanstd/num/ddouble/dd-nan: ddouble else onestd/num/ddouble/one: ddouble)
elif nn: int==std/core/int/(==): (x : int, y : int) -> bool1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001 then xx: ddouble
else xx: ddouble.npwr-accstd/num/ddouble/npwr-acc: (x : ddouble, acc : ddouble, n : int) -> ddouble(onestd/num/ddouble/one: ddouble,nn: int)
fun powistd/num/ddouble/powi: (x : ddouble, n : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, nn: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val pp: ddouble = npwrstd/num/ddouble/npwr: (x : ddouble, n : int) -> ddouble(xx: ddouble,nn: int.absstd/core/int/abs: (i : int) -> int)
if nn: int.is-negstd/core/int/is-neg: (i : int) -> bool then (onestd/num/ddouble/one: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble pp: ddouble) else pp: ddouble
fun powi10std/num/ddouble/powi10: (exp : int) -> ddouble( expexp: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
powistd/num/ddouble/powi: (x : ddouble, n : int) -> ddouble(tenstd/num/ddouble/ten: ddouble,expexp: int)
pub fun exp10std/num/ddouble/exp10: (exp : ddouble) -> ddouble( expexp: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
powstd/num/ddouble/pow: (x : ddouble, y : ddouble) -> ddouble(tenstd/num/ddouble/ten: ddouble,expexp: ddouble)
pub fun exp2std/num/ddouble/exp2: (exp : ddouble) -> ddouble( expexp: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
powstd/num/ddouble/pow: (x : ddouble, y : ddouble) -> ddouble(twostd/num/ddouble/two: ddouble,expexp: ddouble)
pub fun float64/ddouble-expstd/num/ddouble/float64/ddouble-exp: (d : float64, e : int) -> ddouble( dd: float64 : float64std/core/types/float64: V, ee: int : intstd/core/types/int: V )result: -> total ddouble
dd: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble.mul-exp10std/num/ddouble/mul-exp10: (x : ddouble, exp : int) -> ddouble(ee: int)
pub fun int/ddouble-expstd/num/ddouble/int/ddouble-exp: (i : int, exp : int) -> ddouble( ii: int : intstd/core/types/int: V, expexp: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
ii: int.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble.mul-exp10std/num/ddouble/mul-exp10: (x : ddouble, exp : int) -> ddouble(expexp: int)
fun mul-exp10std/num/ddouble/mul-exp10: (x : ddouble, exp : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, expexp: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if expexp: int.is-zerostd/core/int/is-zero: (x : int) -> bool then xx: ddouble else xx: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble powi10std/num/ddouble/powi10: (exp : int) -> ddouble(expexp: int)
pub fun decodestd/num/ddouble/decode: (d : ddouble) -> (float64, float64)( dd: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total (float64, float64) : (std/core/types/tuple2: (V, V) -> Vfloat64std/core/types/float64: V,float64std/core/types/float64: V)
(std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)dd: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64,dd: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
pub fun encodestd/num/ddouble/encode: (hi : float64, lo : float64) -> ddouble( hihi: float64 : float64std/core/types/float64: V, lolo: float64 : float64std/core/types/float64: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
hihi: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble lolo: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble
pub fun decimalstd/num/ddouble/decimal: (x : ddouble, prec : ? int) -> decimal( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, precprec: ? int : intstd/core/types/int: V = -1literal: int
dec = -1
hex8 = 0xFF
bit8 = 0b11111111 )result: -> total decimal : decimalstd/num/decimal/decimal: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool
then 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000.decimalstd/num/decimal/int/decimal: (i : int, exp : ? int) -> decimal
else xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.decimalstd/num/decimal/float64/decimal: (d : float64, max-prec : ? int) -> decimal(precprec: int) +std/num/decimal/(+): (x : decimal, y : decimal) -> decimal xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.decimalstd/num/decimal/float64/decimal: (d : float64, max-prec : ? int) -> decimal(precprec: int)
pub fun show-hexstd/num/ddouble/show-hex: (x : ddouble, width : ? int, use-capitals : ? bool, pre : ? string) -> string( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, widthwidth: ? int : intstd/core/types/int: V = 1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001, use-capitalsuse-capitals: ? bool : boolstd/core/types/bool: V = Truestd/core/types/True: bool, prepre: ? string : stringstd/core/types/string: V = "0x"literal: string
count= 2 )result: -> total string : stringstd/core/types/string: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool
then xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string
else xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.show-hexstd/num/float64/show-hex: (d : float64, width : ? int, use-capitals : ? bool, pre : ? string) -> string(widthwidth: int,use-capitalsuse-capitals: bool,prepre: string) ++std/core/types/(++): (x : string, y : string) -> string " + "literal: string
count= 3 ++std/core/types/(++): (x : string, y : string) -> string xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.show-hexstd/num/float64/show-hex: (d : float64, width : ? int, use-capitals : ? bool, pre : ? string) -> string(widthwidth: int,use-capitalsuse-capitals: bool,prepre: string)
pub fun showstd/num/ddouble/show: (x : ddouble, prec : ? int) -> string( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, precprec: ? int : intstd/core/types/int: V = dd-default-precstd/num/ddouble/dd-default-prec: int )result: -> total string : stringstd/core/types/string: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool
then xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string
else xx: ddouble.decimalstd/num/ddouble/decimal: (x : ddouble, prec : ? int) -> decimal.showstd/num/decimal/show: (d : decimal, prec : ? int) -> string(precprec: int)
pub fun show-expstd/num/ddouble/show-exp: (x : ddouble, prec : ? int) -> string( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, precprec: ? int : intstd/core/types/int: V = dd-default-precstd/num/ddouble/dd-default-prec: int )result: -> total string : stringstd/core/types/string: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool
then xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string
else xx: ddouble.decimalstd/num/ddouble/decimal: (x : ddouble, prec : ? int) -> decimal.show-expstd/num/decimal/show-exp: (d : decimal, prec : ? int) -> string(precprec: int)
pub fun show-fixedstd/num/ddouble/show-fixed: (x : ddouble, prec : ? int) -> string( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, precprec: ? int : intstd/core/types/int: V = dd-default-precstd/num/ddouble/dd-default-prec: int )result: -> total string : stringstd/core/types/string: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool
then xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string
else xx: ddouble.decimalstd/num/ddouble/decimal: (x : ddouble, prec : ? int) -> decimal.show-fixedstd/num/decimal/show-fixed: (d : decimal, prec : ? int) -> string(precprec: int)
pub fun show-sumstd/num/ddouble/show-sum: (x : ddouble, prec : ? int) -> string( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, precprec: ? int : intstd/core/types/int: V = -17literal: int
dec = -17
hex8 = 0xEF
bit8 = 0b11101111 )result: -> total string : stringstd/core/types/string: V
if !std/core/types/bool/(!): (b : bool) -> boolxx: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool
then xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string
else xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string(precprec: int) ++std/core/types/(++): (x : string, y : string) -> string " + "literal: string
count= 3 ++std/core/types/(++): (x : string, y : string) -> string xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64.showstd/num/float64/show: (d : float64, precision : ? int) -> string(precprec: int)
pub fun string/ddoublestd/num/ddouble/string/ddouble: (s : string) -> ddouble( ss: string : stringstd/core/types/string: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
ss: string.parse-ddoublestd/num/ddouble/parse-ddouble: (s : string) -> maybe<ddouble>.defaultstd/core/maybe/default: (m : maybe<ddouble>, nothing : ddouble) -> ddouble(dd-nanstd/num/ddouble/dd-nan: ddouble)
pub fun parse-ddoublestd/num/ddouble/parse-ddouble: (s : string) -> maybe<ddouble>( ss: string : stringstd/core/types/string: V )result: -> total maybe<ddouble> : maybestd/core/types/maybe: V -> V<ddoublestd/num/ddouble/ddouble: V>
ss: string.trimstd/core/string/trim: (s : string) -> string.to-lowerstd/core/string/to-lower: (s : string) -> string.slicestd/core/sslice/slice: (s : string) -> sslice.parse-eofstd/text/parse/parse-eof: (input : sslice, p : () -> parse ddouble) -> parse-error<ddouble>(pddoublestd/num/ddouble/pddouble: () -> parse ddouble).maybestd/text/parse/maybe: (perr : parse-error<ddouble>) -> maybe<ddouble>
pub fun pddoublestd/num/ddouble/pddouble: () -> parse ddouble()result: -> parse ddouble : parsestd/text/parse/parse: (E, V) -> V ddoublestd/num/ddouble/ddouble: V
(pddouble-sumstd/num/ddouble/pddouble-sum: () -> parse ddouble ||std/text/parse/(||): (p1 : parser<total,ddouble>, p2 : parser<total,ddouble>) -> parse ddouble pddouble-normalstd/num/ddouble/pddouble-normal: () -> parse ddouble)
fun pddouble-sumstd/num/ddouble/pddouble-sum: () -> parse ddouble()result: -> parse ddouble : parsestd/text/parse/parse: (E, V) -> V ddoublestd/num/ddouble/ddouble: V
val hihi: float64 = pdoublestd/num/float64/pdouble: () -> parse float64()
if !std/core/types/bool/(!): (b : bool) -> parse boolhihi: float64.is-finitestd/num/float64/is-finite: (d : float64) -> parse bool returnreturn: ddouble hihi: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> parse ddouble pstringstd/text/parse/pstring: (s : string) -> parse string(" + "literal: string
count= 3)
val lolo: float64 = pdoublestd/num/float64/pdouble: () -> parse float64()
returnreturn: ddouble (hihi: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> parse ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> parse ddouble lolo: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> parse ddouble)
fun pddouble-normalstd/num/ddouble/pddouble-normal: () -> parse ddouble()result: -> parse ddouble : parsestd/text/parse/parse: (E, V) -> V ddoublestd/num/ddouble/ddouble: V
val negneg: bool = signstd/text/parse/sign: () -> parse bool()
val wholewhole: string = digitsstd/text/parse/digits: () -> parse string()
val fracfrac: string = optionalstd/text/parse/optional: (default : string, p : parser<total,string>) -> parse string(""literal: string
count= 0, { charstd/text/parse/char: (c : char) -> parse char('.'literal: char
unicode= u002E); digitsstd/text/parse/digits: () -> parse string() } ).trim-rightstd/core/sslice/trim-right: (s : string, sub : string) -> parse string("0"literal: string
count= 1)
val expexp: int = optionalstd/text/parse/optional: (default : int, p : parser<total,int>) -> parse int(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000, { charstd/text/parse/char: (c : char) -> parse char('e'literal: char
unicode= u0065); pintstd/text/parse/pint: () -> parse int() } )
val ww: int = ((if negneg: bool then "-"literal: string
count= 1 else ""literal: string
count= 0) ++std/core/types/(++): (x : string, y : string) -> parse string wholewhole: string ++std/core/types/(++): (x : string, y : string) -> parse string fracfrac: string).parse-intstd/core/int/parse-int: (s : string, hex : ? bool) -> parse maybe<int>.defaultstd/core/maybe/default: (m : maybe<int>, nothing : int) -> parse int(0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000)
val ee: int = expexp: int -std/core/int/(-): (x : int, y : int) -> parse int fracfrac: string.countstd/core/string/count: (s : string) -> parse int
val xx: ddouble = ddouble-int-expstd/num/ddouble/ddouble-int-exp: (i : int, e : int) -> parse ddouble(ww: int,ee: int)
xx: ddouble
pub fun sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble
elif xx: ddouble.is-negstd/num/ddouble/is-neg: (x : ddouble) -> bool then dd-nanstd/num/ddouble/dd-nan: ddouble
else
val aa: float64 = 1.0literal: float64
hex64= 0x1p0 /std/num/float64/(/): (x : float64, y : float64) -> float64 sqrtstd/num/float64/sqrt: (d : float64) -> float64(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64)
val t1t1: float64 = xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 *std/num/float64/(*): (x : float64, y : float64) -> float64 aa: float64
val t2t2: float64 = (xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble(t1t1: float64.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble)).histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 *std/num/float64/(*): (x : float64, y : float64) -> float64 aa: float64 *std/num/float64/(*): (x : float64, y : float64) -> float64 0.5literal: float64
hex64= 0x1p-1
dsumstd/num/ddouble/dsum: (x : float64, y : float64) -> ddouble(t1t1: float64,t2t2: float64)
pub fun nrootstd/num/ddouble/nroot: (x : ddouble, n : int) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, nn: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if nn: int==std/core/int/(==): (x : int, y : int) -> bool2literal: int
dec = 2
hex8 = 0x02
bit8 = 0b00000010 then xx: ddouble.sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble
elif nn: int==std/core/int/(==): (x : int, y : int) -> bool1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001 then xx: ddouble
elif (nn: int<=std/core/int/(<=): (x : int, y : int) -> bool0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 ||std/core/types/(||): (x : bool, y : bool) -> bool (nn: int.is-evenstd/core/int/is-even: (i : int) -> bool &&std/core/types/(&&): (x : bool, y : bool) -> bool xx: ddouble.is-negstd/num/ddouble/is-neg: (x : ddouble) -> bool)) then dd-nanstd/num/ddouble/dd-nan: ddouble
elif xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble
else
val rr: ddouble = xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble
val a0a0: ddouble = expstd/num/float64/exp: (p : float64) -> float64( ~std/num/float64/(~): (f : float64) -> float64lnstd/num/float64/ln: (f : float64) -> float64(rr: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64) /std/num/float64/(/): (x : float64, y : float64) -> float64 nn: int.float64std/num/float64/float64: (i : int) -> float64 ).ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble
val a1a1: ddouble = a0a0: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble ((a0a0: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble (onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble rr: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble powistd/num/ddouble/powi: (x : ddouble, n : int) -> ddouble(a0a0: ddouble,nn: int))) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble nn: int.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble)
(if xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.is-negstd/num/float64/is-neg: (d : float64) -> bool then ~std/num/ddouble/(~): (x : ddouble) -> ddoubleonestd/num/ddouble/one: ddouble else onestd/num/ddouble/one: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble a1a1: ddouble
fun mul-pwr2std/num/ddouble/mul-pwr2: (x : ddouble, p : float64) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, pp: float64 : float64std/core/types/float64: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 *std/num/float64/(*): (x : float64, y : float64) -> float64 pp: float64, xx: ddouble.lostd/num/ddouble/ddouble/lo: (ddouble : ddouble) -> float64 *std/num/float64/(*): (x : float64, y : float64) -> float64 pp: float64)
val one-halfstd/num/ddouble/one-half: ddouble : ddoublestd/num/ddouble/ddouble: V = 0.5literal: float64
hex64= 0x1p-1.ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble
fun halfstd/num/ddouble/half: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
mul-pwr2std/num/ddouble/mul-pwr2: (x : ddouble, p : float64) -> ddouble( xx: ddouble, 0.5literal: float64
hex64= 0x1p-1 )
fun twicestd/num/ddouble/twice: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
mul-pwr2std/num/ddouble/mul-pwr2: (x : ddouble, p : float64) -> ddouble( xx: ddouble, 2.0literal: float64
hex64= 0x1p1 )
pub fun expstd/num/ddouble/exp: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val kk: float64 : float64std/core/types/float64: V = 512.0literal: float64
hex64= 0x1p9
val inv-kinv-k: float64 = 1.0literal: float64
hex64= 0x1p0 /std/num/float64/(/): (x : float64, y : float64) -> float64 kk: float64
if xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 <=std/num/float64/(<=): (x : float64, y : float64) -> bool -709.0literal: float64
hex64= -0x1.628p9 then zerostd/num/ddouble/zero: ddouble
elif xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64 >=std/num/float64/(>=): (x : float64, y : float64) -> bool 709.0literal: float64
hex64= 0x1.628p9 then dd-posinfstd/num/ddouble/dd-posinf: ddouble
elif xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then onestd/num/ddouble/one: ddouble
elif xx: ddouble==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> boolonestd/num/ddouble/one: ddouble then dd-estd/num/ddouble/dd-e: ddouble
else
val mm: int : intstd/core/types/int: V = floorstd/num/float64/floor: (d : float64) -> (local<$3613>) float64( (xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> (local<$3613>) float64 /std/num/float64/(/): (x : float64, y : float64) -> (local<$3613>) float64 dd-ln2std/num/ddouble/dd-ln2: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> (local<$3613>) float64) +std/num/float64/(+): (x : float64, y : float64) -> (local<$3613>) float64 0.5literal: float64
hex64= 0x1p-1 ).intstd/num/float64/int: (f : float64) -> (local<$3613>) int
val rr: ddouble = mul-pwr2std/num/ddouble/mul-pwr2: (x : ddouble, p : float64) -> (local<$3613>) ddouble( xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> (local<$3613>) ddouble (mm: int.ddoublestd/num/ddouble/int/ddouble: (i : int) -> (local<$3613>) ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> (local<$3613>) ddouble dd-ln2std/num/ddouble/dd-ln2: ddouble), inv-kinv-k: float64 )
val pp: ddouble = rr: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> (local<$3613>) ddouble
val tt: ddouble = rr: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$3613>) ddouble pp: ddouble.halfstd/num/ddouble/half: (x : ddouble) -> (local<$3613>) ddouble
var accacc: local-var<$3613,ddouble> := exp-approxstd/num/ddouble/exp-approx: (p : ddouble, t : ddouble, r : ddouble, eps : float64, fs : list<ddouble>, s : ? ddouble) -> (local<$3613>) ddouble( pp: ddouble, tt: ddouble, rr: ddouble, inv-kinv-k: float64 *std/num/float64/(*): (x : float64, y : float64) -> (local<$3613>) float64 dd-epsilonstd/num/ddouble/dd-epsilon: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> (local<$3613>) float64, exp-factorsstd/num/ddouble/exp-factors: list<ddouble> )
repeatstd/core/repeat: (n : int, action : () -> (local<$3613>) ()) -> (local<$3613>) ()(9literal: int
dec = 9
hex8 = 0x09
bit8 = 0b00001001)
accacc: local-var<$3613,ddouble> :=std/core/types/local-set: (v : local-var<$3613,ddouble>, assigned : ddouble) -> (local<$3613>) () accacc: ddouble.twicestd/num/ddouble/twice: (x : ddouble) -> (local<$3613>) ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$3613>) ddouble accacc: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> (local<$3613>) ddouble
accacc: local-var<$3613,ddouble> :=std/core/types/local-set: (v : local-var<$3613,ddouble>, assigned : ddouble) -> (local<$3613>) () accacc: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$3613>) ddouble onestd/num/ddouble/one: ddouble
ldexpstd/num/ddouble/ldexp: (x : ddouble, exp : int) -> (local<$3613>) ddouble( accacc: ddouble, mm: int )
val exp-factorsstd/num/ddouble/exp-factors: list<ddouble> : liststd/core/types/list: V -> V<ddoublestd/num/ddouble/ddouble: V> = [std/core/types/Cons: forall<a> (head : a, tail : list<a>) -> list<a>
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(1.66666666666666657e-01literal: float64
hex64= 0x1.5555555555555p-3, 9.25185853854297066e-18literal: float64
hex64= 0x1.5555555555555p-57),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(4.16666666666666644e-02literal: float64
hex64= 0x1.5555555555555p-5, 2.31296463463574266e-18literal: float64
hex64= 0x1.5555555555555p-59),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(8.33333333333333322e-03literal: float64
hex64= 0x1.1111111111111p-7, 1.15648231731787138e-19literal: float64
hex64= 0x1.1111111111111p-63),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(1.38888888888888894e-03literal: float64
hex64= 0x1.6c16c16c16c17p-10, -5.30054395437357706e-20literal: float64
hex64= -0x1.f49f49f49f49fp-65),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(1.98412698412698413e-04literal: float64
hex64= 0x1.a01a01a01a01ap-13, 1.72095582934207053e-22literal: float64
hex64= 0x1.a01a01a01a01ap-73),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble(2.48015873015873016e-05literal: float64
hex64= 0x1.a01a01a01a01ap-16, 2.15119478667758816e-23literal: float64
hex64= 0x1.a01a01a01a01ap-76)
]std/core/types/Nil: forall<a> list<a>
fun exp-approxstd/num/ddouble/exp-approx: (p : ddouble, t : ddouble, r : ddouble, eps : float64, fs : list<ddouble>, s : ? ddouble) -> ddouble( pp: ddouble : ddoublestd/num/ddouble/ddouble: V, tt: ddouble : ddoublestd/num/ddouble/ddouble: V,
rr: ddouble : ddoublestd/num/ddouble/ddouble: V,
epseps: float64 : float64std/core/types/float64: V,
fsfs: list<ddouble> : liststd/core/types/list: V -> V<ddoublestd/num/ddouble/ddouble: V>,
ss: ? ddouble : ddoublestd/num/ddouble/ddouble: V = zerostd/num/ddouble/zero: ddouble )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
match fsfs: list<ddouble>
Nilstd/core/types/Nil: forall<a> list<a> -> ss: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble tt: ddouble
Consstd/core/types/Cons: forall<a> (head : a, tail : list<a>) -> list<a>(ff: ddouble,fs1fs1: list<ddouble>) ->
val s1s1: ddouble = ss: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble tt: ddouble
val p1p1: ddouble = pp: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble rr: ddouble
val t1t1: ddouble = p1p1: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble ff: ddouble
if t1t1: ddouble.float64std/num/ddouble/float64: (x : ddouble) -> float64.absstd/num/float64/abs: (f : float64) -> float64 <=std/num/float64/(<=): (x : float64, y : float64) -> bool epseps: float64
then ss: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble tt: ddouble
else exp-approxstd/num/ddouble/exp-approx: (p : ddouble, t : ddouble, r : ddouble, eps : float64, fs : list<ddouble>, s : ? ddouble) -> ddouble( p1p1: ddouble, t1t1: ddouble, rr: ddouble, epseps: float64, fs1fs1: list<ddouble>, s1s1: ddouble )
pub fun lnstd/num/ddouble/ln: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble <=std/num/ddouble/(<=): (x : ddouble, y : ddouble) -> bool zerostd/num/ddouble/zero: ddouble then (if xx: ddouble==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> boolzerostd/num/ddouble/zero: ddouble then dd-neginfstd/num/ddouble/dd-neginf: ddouble else dd-nanstd/num/ddouble/dd-nan: ddouble)
elif xx: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then zerostd/num/ddouble/zero: ddouble
elif xx: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool dd-estd/num/ddouble/dd-e: ddouble then onestd/num/ddouble/one: ddouble
elif xx: ddouble.is-posinfstd/num/ddouble/is-posinf: (x : ddouble) -> bool then xx: ddouble
else
val a0a0: ddouble = lnstd/num/float64/ln: (f : float64) -> float64(xx: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64).ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble val a1a1: ddouble = a0a0: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (xx: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble expstd/num/ddouble/exp: (x : ddouble) -> ddouble(~std/num/ddouble/(~): (x : ddouble) -> ddoublea0a0: ddouble) -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble)
a1a1: ddouble
pub fun logstd/num/ddouble/log: (x : ddouble, base : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, basebase: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(xx: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(basebase: ddouble)
pub fun log10std/num/ddouble/log10: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(xx: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble dd-ln10std/num/ddouble/dd-ln10: ddouble
pub fun log2std/num/ddouble/log2: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(xx: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble dd-ln2std/num/ddouble/dd-ln2: ddouble
pub fun powstd/num/ddouble/pow: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
expstd/num/ddouble/exp: (x : ddouble) -> ddouble(yy: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(xx: ddouble))
pub fun ln1pstd/num/ddouble/ln1p: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-posinfstd/num/ddouble/is-posinf: (x : ddouble) -> bool then xx: ddouble else
val yy: ddouble = onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble xx: ddouble
val zz: ddouble = yy: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble
if zz: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then xx: ddouble else
lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(yy: ddouble) *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble (xx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble zz: ddouble)
pub fun expm1std/num/ddouble/expm1: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-posinfstd/num/ddouble/is-posinf: (x : ddouble) -> bool then xx: ddouble else
val yy: ddouble = expstd/num/ddouble/exp: (x : ddouble) -> ddouble(xx: ddouble)
if yy: ddouble==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> boolonestd/num/ddouble/one: ddouble then xx: ddouble else
val ymym: ddouble = yy: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble
if ymym: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool ~std/num/ddouble/(~): (x : ddouble) -> ddoubleonestd/num/ddouble/one: ddouble then ~std/num/ddouble/(~): (x : ddouble) -> ddoubleonestd/num/ddouble/one: ddouble else ymym: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble (xx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(yy: ddouble))
fun log2p1std/num/ddouble/log2p1: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
dd-log2estd/num/ddouble/dd-log2e: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble ln1pstd/num/ddouble/ln1p: (x : ddouble) -> ddouble(xx: ddouble)
fun exp2m1std/num/ddouble/exp2m1: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
expm1std/num/ddouble/expm1: (x : ddouble) -> ddouble(dd-ln2std/num/ddouble/dd-ln2: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble xx: ddouble)
pub fun lnaddexpstd/num/ddouble/lnaddexp: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> boolyy: ddouble then xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble dd-ln2std/num/ddouble/dd-ln2: ddouble else
val zz: ddouble = xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble yy: ddouble
if zz: ddouble.is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool then xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble ln1pstd/num/ddouble/ln1p: (x : ddouble) -> ddouble(expstd/num/ddouble/exp: (x : ddouble) -> ddouble(~std/num/ddouble/(~): (x : ddouble) -> ddoublezz: ddouble))
else yy: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble ln1pstd/num/ddouble/ln1p: (x : ddouble) -> ddouble(expstd/num/ddouble/exp: (x : ddouble) -> ddouble(zz: ddouble))
pub fun logaddexp2std/num/ddouble/logaddexp2: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> boolyy: ddouble then xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble else
val zz: ddouble = xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble yy: ddouble
if zz: ddouble.is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool then xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble log2p1std/num/ddouble/log2p1: (x : ddouble) -> ddouble(exp2std/num/ddouble/exp2: (exp : ddouble) -> ddouble(~std/num/ddouble/(~): (x : ddouble) -> ddoublezz: ddouble))
else yy: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble log2p1std/num/ddouble/log2p1: (x : ddouble) -> ddouble(exp2std/num/ddouble/exp2: (exp : ddouble) -> ddouble(zz: ddouble))
pub fun nearly-eqstd/num/ddouble/nearly-eq: (x : ddouble, y : ddouble, epsilon : ? ddouble) -> bool( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V, epsilonepsilon: ? ddouble : ddoublestd/num/ddouble/ddouble: V = dd-epsilon8std/num/ddouble/dd-epsilon8: ddouble )result: -> total bool : boolstd/core/types/bool: V
if xx: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool yy: ddouble returnreturn: bool Truestd/core/types/True: bool
val diffdiff: ddouble = (xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble yy: ddouble).absstd/num/ddouble/abs: (x : ddouble) -> ddouble
if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool ||std/core/types/(||): (x : bool, y : bool) -> bool yy: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool ||std/core/types/(||): (x : bool, y : bool) -> bool diffdiff: ddouble <std/num/ddouble/(<): (x : ddouble, y : ddouble) -> bool dd-minstd/num/ddouble/dd-min: ddouble then
(twostd/num/ddouble/two: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublediffdiff: ddouble <std/num/ddouble/(<): (x : ddouble, y : ddouble) -> bool (epsilonepsilon: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble dd-minstd/num/ddouble/dd-min: ddouble))
else
val sumsum: ddouble = xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble yy: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble
((twostd/num/ddouble/two: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublediffdiff: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble (if sumsum: ddouble >std/num/ddouble/(>): (x : ddouble, y : ddouble) -> bool dd-maxstd/num/ddouble/dd-max: ddouble then dd-maxstd/num/ddouble/dd-max: ddouble else sumsum: ddouble)) <std/num/ddouble/(<): (x : ddouble, y : ddouble) -> bool epsilonepsilon: ddouble)
pub fun (~=)std/num/ddouble/(~=): (x : ddouble, y : ddouble) -> bool(xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total bool : boolstd/core/types/bool: V
nearly-eqstd/num/ddouble/nearly-eq: (x : ddouble, y : ddouble, epsilon : ? ddouble) -> bool(xx: ddouble,yy: ddouble)
pub fun list/sumstd/num/ddouble/list/sum: (xs : list<ddouble>) -> ddouble( xsxs: list<ddouble> : liststd/core/types/list: V -> V<ddoublestd/num/ddouble/ddouble: V> )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
var totaltotal: local-var<$1668,ddouble> : ddoublestd/num/ddouble/ddouble: V := zerostd/num/ddouble/zero: ddouble
var compcomp: local-var<$1668,ddouble> : ddoublestd/num/ddouble/ddouble: V := zerostd/num/ddouble/zero: ddouble
xsxs: list<ddouble>.foreachstd/core/list/foreach: (xs : list<ddouble>, action : (ddouble) -> (local<$1668>) ()) -> (local<$1668>) () fnfn: (x : ddouble) -> (local<$1668>) ()(xx: ddouble)
val tt: ddouble = totaltotal: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble xx: ddouble
val cc: ddouble = if totaltotal: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> (local<$1668>) ddouble >=std/num/ddouble/(>=): (x : ddouble, y : ddouble) -> (local<$1668>) bool xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> (local<$1668>) ddouble then (totaltotal: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble tt: ddouble) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble xx: ddouble else (xx: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble tt: ddouble) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble totaltotal: ddouble
compcomp: local-var<$1668,ddouble> :=std/core/types/local-set: (v : local-var<$1668,ddouble>, assigned : ddouble) -> (local<$1668>) () compcomp: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble cc: ddouble
totaltotal: local-var<$1668,ddouble> :=std/core/types/local-set: (v : local-var<$1668,ddouble>, assigned : ddouble) -> (local<$1668>) () tt: ddouble
totaltotal: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> (local<$1668>) ddouble compcomp: ddouble;
pub fun hypotstd/num/ddouble/hypot: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val xxxx: ddouble = absstd/num/ddouble/abs: (x : ddouble) -> ddouble(xx: ddouble)
val yyyy: ddouble = absstd/num/ddouble/abs: (x : ddouble) -> ddouble(yy: ddouble)
val lolo: ddouble = minstd/num/ddouble/min: (x : ddouble, y : ddouble) -> ddouble(xxxx: ddouble,yyyy: ddouble)
val hihi: ddouble = maxstd/num/ddouble/max: (x : ddouble, y : ddouble) -> ddouble(xxxx: ddouble,yyyy: ddouble)
if hihi: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble else
val zz: ddouble = lolo: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble hihi: ddouble
hihi: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble( onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble zz: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublezz: ddouble )
pub fun xyz/hypotstd/num/ddouble/xyz/hypot: (x : ddouble, y : ddouble, z : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V, zz: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val xxxx: ddouble = absstd/num/ddouble/abs: (x : ddouble) -> ddouble(xx: ddouble)
val yyyy: ddouble = absstd/num/ddouble/abs: (x : ddouble) -> ddouble(yy: ddouble)
val zzzz: ddouble = absstd/num/ddouble/abs: (x : ddouble) -> ddouble(zz: ddouble)
val hihi: ddouble = maxstd/num/ddouble/max: (x : ddouble, y : ddouble) -> ddouble(maxstd/num/ddouble/max: (x : ddouble, y : ddouble) -> ddouble(xxxx: ddouble,yyyy: ddouble),zzzz: ddouble)
if hihi: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble else
hihi: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble( sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble(xxxx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble hihi: ddouble) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble(yyyy: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble hihi: ddouble) +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble(zzzz: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble hihi: ddouble) )
pub fun list/hypotstd/num/ddouble/list/hypot: (xs : list<ddouble>) -> ddouble( xsxs: list<ddouble> : liststd/core/types/list: V -> V<ddoublestd/num/ddouble/ddouble: V> )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val hihi: ddouble = xsxs: list<ddouble>.abs-maxstd/num/ddouble/list/abs-max: (xs : list<ddouble>) -> ddouble
if hihi: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble else
hihi: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble xsxs: list<ddouble>.mapstd/core/list/map: (xs : list<ddouble>, f : (ddouble) -> ddouble) -> list<ddouble>(fnfn: (x : ddouble) -> ddouble(xx: ddouble){ sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble(xx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble hihi: ddouble) }).sumstd/num/ddouble/list/sum: (xs : list<ddouble>) -> ddouble.sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble
fun abs-maxstd/num/ddouble/abs-max: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
maxstd/num/ddouble/max: (x : ddouble, y : ddouble) -> ddouble(absstd/num/ddouble/abs: (x : ddouble) -> ddouble(xx: ddouble),absstd/num/ddouble/abs: (x : ddouble) -> ddouble(yy: ddouble))
fun list/abs-maxstd/num/ddouble/list/abs-max: (xs : list<ddouble>) -> ddouble( xsxs: list<ddouble> : liststd/core/types/list: V -> V<ddoublestd/num/ddouble/ddouble: V> )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
xsxs: list<ddouble>.foldrstd/core/list/foldr: (xs : list<ddouble>, z : ddouble, f : (ddouble, ddouble) -> ddouble) -> ddouble(ddouble/zerostd/num/ddouble/zero: ddouble,fnfn: (x : ddouble, m : ddouble) -> ddouble(xx: ddouble,mm: ddouble){ maxstd/num/ddouble/max: (x : ddouble, y : ddouble) -> ddouble(absstd/num/ddouble/abs: (x : ddouble) -> ddouble(xx: ddouble),mm: ddouble) })
pub fun sinstd/num/ddouble/sin: (rad : ddouble) -> ddouble( radrad: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
radrad: ddouble.sincosstd/num/ddouble/sincos: (rad : ddouble) -> (ddouble, ddouble).fststd/core/types/tuple2/fst: (tuple2 : (ddouble, ddouble)) -> ddouble
pub fun cosstd/num/ddouble/cos: (rad : ddouble) -> ddouble( radrad: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
radrad: ddouble.sincosstd/num/ddouble/sincos: (rad : ddouble) -> (ddouble, ddouble).sndstd/core/types/tuple2/snd: (tuple2 : (ddouble, ddouble)) -> ddouble
pub fun tanstd/num/ddouble/tan: (rad : ddouble) -> ddouble( radrad: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)ss: ddouble,cc: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) = radrad: ddouble.sincosstd/num/ddouble/sincos: (rad : ddouble) -> (ddouble, ddouble)
ss: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble cc: ddouble
pub fun sincosstd/num/ddouble/sincos: (rad : ddouble) -> (ddouble, ddouble)( radrad: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total (ddouble, ddouble) : (std/core/types/tuple2: (V, V) -> Vddoublestd/num/ddouble/ddouble: V,ddoublestd/num/ddouble/ddouble: V)
if radrad: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.absstd/num/float64/abs: (f : float64) -> float64 <std/num/float64/(<): (x : float64, y : float64) -> bool 1.0e-11literal: float64
hex64= 0x1.5fd7fe1796495p-37 then
val ss: ddouble = radrad: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble (onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble (radrad: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble 3literal: int
dec = 3
hex8 = 0x03
bit8 = 0b00000011.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble))
val cc: ddouble = (onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble ss: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble).sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble
returnreturn: (ddouble, ddouble) (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)ss: ddouble,cc: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
val x1x1: ddouble = radrad: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble dd-twopistd/num/ddouble/dd-twopi: ddouble
val x3x3: ddouble = x1x1: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble x1x1: ddouble.roundstd/num/ddouble/round: (x : ddouble) -> ddouble
val x32x32: ddouble = x3x3: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble x3x3: ddouble
val x34x34: ddouble = x32x32: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble x32x32: ddouble val aa: int = x34x34: ddouble.intstd/num/ddouble/int: (x : ddouble, nonfin : ? int) -> int
val bb: int = (8literal: int
dec = 8
hex8 = 0x08
bit8 = 0b00001000.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble (x34x34: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble aa: int.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble)).intstd/num/ddouble/int: (x : ddouble, nonfin : ? int) -> int
val ss: ddouble = dd-pistd/num/ddouble/dd-pi: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble (x32x32: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble ((8literal: int
dec = 8
hex8 = 0x08
bit8 = 0b00001000*std/core/int/(*): (int, int) -> intaa: int +std/core/int/(+): (x : int, y : int) -> int bb: int).ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble 16literal: int
dec = 16
hex8 = 0x10
bit8 = 0b00010000.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble))
val s2s2: ddouble = ss: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble
val sinssins: ddouble = ss: ddouble *std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble ch-factorsstd/num/ddouble/ch-factors: list<ddouble>.foldlstd/core/list/foldl: (xs : list<ddouble>, z : ddouble, f : (ddouble, ddouble) -> ddouble) -> ddouble(ddouble/zerostd/num/ddouble/zero: ddouble) fnfn: (acc : ddouble, f : ddouble) -> ddouble(accacc: ddouble,ff: ddouble) { ff: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble accacc: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoubles2s2: ddouble }
val cosscoss: ddouble = (onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble sinssins: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble).sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble
val sinbsinb: ddouble = if bb: int >=std/core/int/(>=): (x : int, y : int) -> bool 0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then sin16std/num/ddouble/sin16: (i : int) -> ddouble(bb: int) else ~std/num/ddouble/(~): (x : ddouble) -> ddoublesin16std/num/ddouble/sin16: (i : int) -> ddouble(~std/core/int/(~): (i : int) -> intbb: int)
val cosbcosb: ddouble = sin16std/num/ddouble/sin16: (i : int) -> ddouble(8literal: int
dec = 8
hex8 = 0x08
bit8 = 0b00001000 -std/core/int/(-): (x : int, y : int) -> int bb: int.absstd/core/int/abs: (i : int) -> int)
if aa: int==std/core/int/(==): (x : int, y : int) -> bool0literal: int
dec = 0
hex8 = 0x00
bit8 = 0b00000000 then (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble, cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
elif aa: int==std/core/int/(==): (x : int, y : int) -> bool1literal: int
dec = 1
hex8 = 0x01
bit8 = 0b00000001 then (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble, ~std/num/ddouble/(~): (x : ddouble) -> ddoublecosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
elif aa: int==std/core/int/(==): (x : int, y : int) -> bool -1literal: int
dec = -1
hex8 = 0xFF
bit8 = 0b11111111 then (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble, cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
else (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)~std/num/ddouble/(~): (x : ddouble) -> ddoublesinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble, sinssins: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublesinbsinb: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble cosscoss: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddoublecosbcosb: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)
val ch-factorsstd/num/ddouble/ch-factors: list<ddouble> : liststd/core/types/list: V -> V<ddoublestd/num/ddouble/ddouble: V> = [std/core/types/Cons: forall<a> (head : a, tail : list<a>) -> list<a>
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 1.6056491947130061858e-10literal: float64
hex64= 0x1.6116039167de1p-33, 6.1925234565562595936e-27literal: float64
hex64= 0x1.ea9f4c1702653p-88 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( -2.5052108052208301379e-8literal: float64
hex64= -0x1.ae64561f4804fp-26, -3.6598195022865791876e-25literal: float64
hex64= -0x1.c5104f49cf934p-82 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.0000027557319223964441402literal: float64
hex64= 0x1.71de3a556b36bp-19, -2.0315661398415506513e-22literal: float64
hex64= -0x1.eb33da7509008p-73 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( -0.00019841269841269841253literal: float64
hex64= -0x1.a01a01a01a01ap-13, 6.8577289081075077176e-21literal: float64
hex64= 0x1.0313e2634850bp-67 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.0083333333333333332177literal: float64
hex64= 0x1.1111111111111p-7, 1.1563735775184918100e-19literal: float64
hex64= 0x1.110a7e6657814p-63 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( -0.16666666666666665741literal: float64
hex64= -0x1.5555555555555p-3, -9.2518585321663028924e-18literal: float64
hex64= -0x1.5555555162e8fp-57 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 1.0000000000000000000literal: float64
hex64= 0x1p0, -6.0239567712403467977e-31literal: float64
hex64= -0x1.86fa265ab5ed7p-101 )
]std/core/types/Nil: forall<a> list<a>
fun sin16std/num/ddouble/sin16: (i : int) -> ddouble( ii: int : intstd/core/types/int: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
sin16-tablestd/num/ddouble/sin16-table: vector<ddouble>.atstd/core/vector/at: (v : vector<ddouble>, index : int) -> maybe<ddouble>(ii: int).defaultstd/core/maybe/default: (m : maybe<ddouble>, nothing : ddouble) -> ddouble(dd-nanstd/num/ddouble/dd-nan: ddouble)
val sin16-tablestd/num/ddouble/sin16-table: vector<ddouble> : vectorstd/core/types/vector: V -> V<ddoublestd/num/ddouble/ddouble: V> = [std/core/types/Cons: forall<a> (head : a, tail : list<a>) -> list<a>
ddouble/zerostd/num/ddouble/zero: ddouble,
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.19509032201612827584literal: float64
hex64= 0x1.8f8b83c69a60bp-3, -7.9910790684617312634e-18literal: float64
hex64= -0x1.26d19b9ff8d82p-57 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.38268343236508978178literal: float64
hex64= 0x1.87de2a6aea963p-2, -1.0050772696461587612e-17literal: float64
hex64= -0x1.72cedd3d5a61p-57 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.55557023301960217765literal: float64
hex64= 0x1.1c73b39ae68c8p-1, 4.7094109405616768214e-17literal: float64
hex64= 0x1.b25dd267f66p-55 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.70710678118654757274literal: float64
hex64= 0x1.6a09e667f3bcdp-1, -4.8336466567264561092e-17literal: float64
hex64= -0x1.bdd3413b26455p-55 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.83146961230254523567literal: float64
hex64= 0x1.a9b66290ea1a3p-1, 1.4073856984728100930e-18literal: float64
hex64= 0x1.9f630e8b6dafp-60 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.92387953251128673848literal: float64
hex64= 0x1.d906bcf328d46p-1, 1.7645047084336683223e-17literal: float64
hex64= 0x1.457e610231ac4p-56 ),
Ddoublestd/num/ddouble/Ddouble: (hi : float64, lo : float64) -> ddouble( 0.98078528040323043058literal: float64
hex64= 0x1.f6297cff75cbp-1, 1.8546939997825014970e-17literal: float64
hex64= 0x1.562172a361fd6p-56 ),
onestd/num/ddouble/one: ddouble
]std/core/types/Nil: forall<a> list<a>.vectorstd/core/vector/list/vector: (xs : list<ddouble>) -> vector<ddouble>
pub fun with-sign-ofstd/num/ddouble/with-sign-of: (x : ddouble, y : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V, yy: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if yy: ddouble.is-negstd/num/ddouble/is-neg: (x : ddouble) -> bool then ~std/num/ddouble/(~): (x : ddouble) -> ddouble(xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble) else xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble
pub fun asinstd/num/ddouble/asin: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val aa: ddouble = xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble
if aa: ddouble >std/num/ddouble/(>): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then dd-nanstd/num/ddouble/dd-nan: ddouble
elif aa: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then dd-pi2std/num/ddouble/dd-pi2: ddouble.with-sign-ofstd/num/ddouble/with-sign-of: (x : ddouble, y : ddouble) -> ddouble(xx: ddouble)
else atan2std/num/ddouble/atan2: (y : ddouble, x : ddouble) -> ddouble( xx: ddouble, sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble(onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble xx: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble) )
pub fun acosstd/num/ddouble/acos: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
val aa: ddouble = xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble
if aa: ddouble >std/num/ddouble/(>): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then dd-nanstd/num/ddouble/dd-nan: ddouble
elif aa: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then (if xx: ddouble.is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble else dd-pistd/num/ddouble/dd-pi: ddouble)
else atan2std/num/ddouble/atan2: (y : ddouble, x : ddouble) -> ddouble( sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble(onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble xx: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble), xx: ddouble )
pub fun atanstd/num/ddouble/atan: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
atan2std/num/ddouble/atan2: (y : ddouble, x : ddouble) -> ddouble(xx: ddouble,onestd/num/ddouble/one: ddouble)
pub fun atan2std/num/ddouble/atan2: (y : ddouble, x : ddouble) -> ddouble( yy: ddouble : ddoublestd/num/ddouble/ddouble: V, xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then
if yy: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble else dd-pi2std/num/ddouble/dd-pi2: ddouble.with-sign-ofstd/num/ddouble/with-sign-of: (x : ddouble, y : ddouble) -> ddouble(yy: ddouble)
elif yy: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then
if xx: ddouble.is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble else dd-pistd/num/ddouble/dd-pi: ddouble
elif xx: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool yy: ddouble then
if yy: ddouble.is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool then dd-pi4std/num/ddouble/dd-pi4: ddouble else ~std/num/ddouble/(~): (x : ddouble) -> ddoubledd-pi34std/num/ddouble/dd-pi34: ddouble
elif xx: ddouble ==std/num/ddouble/(==): (x : ddouble, y : ddouble) -> bool ~std/num/ddouble/(~): (x : ddouble) -> ddoubleyy: ddouble then
if yy: ddouble.is-posstd/num/ddouble/is-pos: (x : ddouble) -> bool then dd-pi34std/num/ddouble/dd-pi34: ddouble else ~std/num/ddouble/(~): (x : ddouble) -> ddoubledd-pi4std/num/ddouble/dd-pi4: ddouble
else
val rr: ddouble = sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble( xx: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble yy: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble )
val xrxr: ddouble = xx: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble rr: ddouble
val yryr: ddouble = yy: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble rr: ddouble
val zz: ddouble = atan2std/num/float64/atan2: (x : float64, y : float64) -> float64( yy: ddouble.float64std/num/ddouble/float64: (x : ddouble) -> float64, xx: ddouble.float64std/num/ddouble/float64: (x : ddouble) -> float64 ).ddoublestd/num/ddouble/float64/ddouble: (d : float64) -> ddouble val (std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b)sinzsinz: ddouble,coszcosz: ddouble)std/core/types/Tuple2: forall<a,b> (fst : a, snd : b) -> (a, b) = sincosstd/num/ddouble/sincos: (rad : ddouble) -> (ddouble, ddouble)(zz: ddouble)
if xrxr: ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64.absstd/num/float64/abs: (f : float64) -> float64 >std/num/float64/(>): (x : float64, y : float64) -> bool yryr: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble.histd/num/ddouble/ddouble/hi: (ddouble : ddouble) -> float64
then zz: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble ((yryr: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble sinzsinz: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble coszcosz: ddouble)
else zz: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble ((xrxr: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble coszcosz: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble sinzsinz: ddouble)
pub fun sinhstd/num/ddouble/sinh: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble
elif xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble.float64std/num/ddouble/float64: (x : ddouble) -> float64 >std/num/float64/(>): (x : float64, y : float64) -> bool 0.05literal: float64
hex64= 0x1.999999999999ap-5 then
val exex: ddouble = xx: ddouble.expstd/num/ddouble/exp: (x : ddouble) -> ddouble
if !std/core/types/bool/(!): (b : bool) -> boolexex: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool then exex: ddouble else ( exex: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble (onestd/num/ddouble/one: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble exex: ddouble)).halfstd/num/ddouble/half: (x : ddouble) -> ddouble
else
val x2x2: ddouble = xx: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble
xx: ddouble*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble(onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (x2x2: ddouble/std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble6literal: int
dec = 6
hex8 = 0x06
bit8 = 0b00000110.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble)*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble(onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (x2x2: ddouble/std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble20literal: int
dec = 20
hex8 = 0x14
bit8 = 0b00010100.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble)*std/num/ddouble/(*): (x : ddouble, y : ddouble) -> ddouble(onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (x2x2: ddouble/std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble42literal: int
dec = 42
hex8 = 0x2A
bit8 = 0b00101010.ddoublestd/num/ddouble/int/ddouble: (i : int) -> ddouble))))
pub fun coshstd/num/ddouble/cosh: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then onestd/num/ddouble/one: ddouble
elif xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble.float64std/num/ddouble/float64: (x : ddouble) -> float64 >std/num/float64/(>): (x : float64, y : float64) -> bool 0.05literal: float64
hex64= 0x1.999999999999ap-5 then
val exex: ddouble = xx: ddouble.expstd/num/ddouble/exp: (x : ddouble) -> ddouble
if !std/core/types/bool/(!): (b : bool) -> boolexex: ddouble.is-finitestd/num/ddouble/is-finite: (x : ddouble) -> bool then exex: ddouble else (exex: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble (onestd/num/ddouble/one: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble exex: ddouble)).halfstd/num/ddouble/half: (x : ddouble) -> ddouble
else
val ss: ddouble = xx: ddouble.sinhstd/num/ddouble/sinh: (x : ddouble) -> ddouble
sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble( onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble ss: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble )
pub fun tanhstd/num/ddouble/tanh: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then zerostd/num/ddouble/zero: ddouble
elif xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble.float64std/num/ddouble/float64: (x : ddouble) -> float64 >std/num/float64/(>): (x : float64, y : float64) -> bool 0.05literal: float64
hex64= 0x1.999999999999ap-5 then
val exex: ddouble = xx: ddouble.expstd/num/ddouble/exp: (x : ddouble) -> ddouble
val iexiex: ddouble = onestd/num/ddouble/one: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble exex: ddouble
if exex: ddouble.is-zerostd/num/ddouble/is-zero: (x : ddouble) -> bool then ~std/num/ddouble/(~): (x : ddouble) -> ddoubleonestd/num/ddouble/one: ddouble
elif exex: ddouble.is-posinfstd/num/ddouble/is-posinf: (x : ddouble) -> bool then onestd/num/ddouble/one: ddouble
else ((exex: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble iexiex: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble (exex: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble iexiex: ddouble))
else
val ss: ddouble = xx: ddouble.sinhstd/num/ddouble/sinh: (x : ddouble) -> ddouble
val cc: ddouble = sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble( onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble ss: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble )
returnreturn: ddouble (ss: ddouble /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble cc: ddouble)
pub fun asinhstd/num/ddouble/asinh: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
lnstd/num/ddouble/ln: (x : ddouble) -> ddouble( xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble(xx: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble))
pub fun acoshstd/num/ddouble/acosh: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble <std/num/ddouble/(<): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then dd-nanstd/num/ddouble/dd-nan: ddouble else lnstd/num/ddouble/ln: (x : ddouble) -> ddouble(xx: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble sqrtstd/num/ddouble/sqrt: (x : ddouble) -> ddouble(xx: ddouble.sqrstd/num/ddouble/sqr: (x : ddouble) -> ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble onestd/num/ddouble/one: ddouble))
pub fun atanhstd/num/ddouble/atanh: (x : ddouble) -> ddouble( xx: ddouble : ddoublestd/num/ddouble/ddouble: V )result: -> total ddouble : ddoublestd/num/ddouble/ddouble: V
if xx: ddouble.absstd/num/ddouble/abs: (x : ddouble) -> ddouble >std/num/ddouble/(>): (x : ddouble, y : ddouble) -> bool onestd/num/ddouble/one: ddouble then dd-nanstd/num/ddouble/dd-nan: ddouble
else lnstd/num/ddouble/ln: (x : ddouble) -> ddouble((onestd/num/ddouble/one: ddouble +std/num/ddouble/(+): (x : ddouble, y : ddouble) -> ddouble xx: ddouble) /std/num/ddouble/(/): (x : ddouble, y : ddouble) -> ddouble (onestd/num/ddouble/one: ddouble -std/num/ddouble/(-): (x : ddouble, y : ddouble) -> ddouble xx: ddouble)).halfstd/num/ddouble/half: (x : ddouble) -> ddouble