#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).
maximum root/numeric/N64.vi:18
const maximum: N64;
fork root/numeric/N64.vi:20
impl fork: Fork[N64];
drop root/numeric/N64.vi:21
impl drop: Drop[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 root/numeric/N64.vi:43
impl add: Add[N64, N64, N64];
add_n32 root/numeric/N64.vi:52
impl add_n32: Add[N64, N32, N64];
sub root/numeric/N64.vi:61
impl sub: Sub[N64, N64, N64];
sub_n32 root/numeric/N64.vi:70
impl sub_n32: Sub[N64, N32, N64];
mul root/numeric/N64.vi:79
impl mul: Mul[N64, N64, 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 root/numeric/N64.vi:126
impl div: Div[N64, N64, N64];
rem root/numeric/N64.vi:132
impl rem: Rem[N64, N64, N64];
div_rem root/numeric/N64.vi:139
fn div_rem(a: N64, d: N64) -> (N64, N64);
bit_and root/numeric/N64.vi:176
impl bit_and: BitAnd[N64, N64, N64];
bit_or root/numeric/N64.vi:182
impl bit_or: BitOr[N64, N64, N64];
bit_xor root/numeric/N64.vi:188
impl bit_xor: BitXor[N64, N64, N64];
shl root/numeric/N64.vi:194
impl shl: Shl[N64, N32, N64];
shr root/numeric/N64.vi:204
impl shr: Shr[N64, N32, N64];
eq root/numeric/N64.vi:214
impl eq: Eq[N64];
ord root/numeric/N64.vi:224
impl ord: Ord[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];
show root/numeric/N64.vi:288
impl show: Show[N64];
pow root/numeric/N64.vi:294
impl pow: Pow[N64, N32, N64];
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;