#root::numeric
N64 root/numeric/N64.vi
struct N64((N32, N32));
Natural numbers represented with 64 bits of precision.
let x = 123456789[N64] + 9876543210[N64]; x // 9999999999
N64 values are always in the range [0, 2^64) = [0, 18_446_744_073_709_551_616).
impl
impl : Fork[N64]; impl : Drop[N64]; impl : Add[N64, N64, N64]; impl : Sub[N64, N64, N64]; impl : Mul[N64, N64, N64]; impl : Div[N64, N64, N64]; impl : Rem[N64, N64, N64]; impl : BitAnd[N64, N64, N64]; impl : BitOr[N64, N64, N64]; impl : BitXor[N64, N64, N64]; impl : Shl[N64, N32, N64]; impl : Shr[N64, N32, N64]; impl : Eq[N64]; impl : Ord[N64]; impl : Show[N64]; impl : Pow[N64, N32, N64];
maximum root/numeric/N64.vi:18
const maximum: N64;
from_n32 root/numeric/N64.vi:23
impl from_n32: Cast[N32, N64];
to_n32 root/numeric/N64.vi:29
impl to_n32: Cast[N64, N32];
is_zero root/numeric/N64.vi:39
fn is_zero(...: &N64) -> Bool;
add_n32 root/numeric/N64.vi:52
impl add_n32: Add[N64, N32, N64];
sub_n32 root/numeric/N64.vi:70
impl sub_n32: Sub[N64, N32, N64];
mul_n32 root/numeric/N64.vi:90
impl mul_n32: Mul[N64, N32, N64];
mul_n32_n32 root/numeric/N64.vi:96
fn mul_n32_n32(a: N32, b: N32) -> N64;
div_n32 root/numeric/N64.vi:100
impl div_n32: Div[N64, N32, N64];
rem_n32 root/numeric/N64.vi:106
impl rem_n32: Rem[N64, N32, N32];
div_rem_n32 root/numeric/N64.vi:112
fn div_rem_n32(...: N64, d: N32) -> (N64, N32);
div_rem root/numeric/N64.vi:139
fn div_rem(a: N64, d: N64) -> (N64, N64);
min root/numeric/N64.vi:238
fn min(a: N64, b: N64) -> N64;
max root/numeric/N64.vi:246
fn max(a: N64, b: N64) -> N64;
parse root/numeric/N64.vi:254
fn parse(str: String) -> Option[N64];
to_string root/numeric/N64.vi:272
impl to_string: Cast[N64, String];
log_n32 root/numeric/N64.vi:300
fn log_n32(n: N64, b: N32) -> N32;
diff root/numeric/N64.vi:310
fn diff(a: N64, b: N64) -> N64;
to_n64 root/numeric/N64.vi:318
impl to_n64: Cast[Bool, N64];