zena:math

zena
import {…} from 'zena:math';

Functions

mulWide

zena
declare function mulWide(x: u64, y: u64): inline (u64, u64)

The full 128-bit unsigned product of two u64s, as (low, high).

mulWideSigned

zena
declare function mulWideSigned(x: i64, y: i64): inline (i64, i64)

The full 128-bit signed product of two i64s, as (low, high).

add128

zena
declare function add128(aLow: u64, aHigh: u64, bLow: u64, bHigh: u64): inline (u64, u64)

128-bit addition of (aLow, aHigh) + (bLow, bHigh), wrapping.

sub128

zena
declare function sub128(aLow: u64, aHigh: u64, bLow: u64, bHigh: u64): inline (u64, u64)

128-bit subtraction of (aLow, aHigh) - (bLow, bHigh), wrapping.

clz

zena
declare function clz(x: i32): i32

clz

zena
declare function clz(x: i64): i64

clz

zena
declare function clz(x: u64): u64

ctz

zena
declare function ctz(x: i32): i32

ctz

zena
declare function ctz(x: i64): i64

ctz

zena
declare function ctz(x: u64): u64

popcnt

zena
declare function popcnt(x: i32): i32

popcnt

zena
declare function popcnt(x: i64): i64

popcnt

zena
declare function popcnt(x: u64): u64

abs

zena
declare function abs(x: f32): f32

abs

zena
declare function abs(x: f64): f64

neg

zena
declare function neg(x: f32): f32

neg

zena
declare function neg(x: f64): f64

ceil

zena
declare function ceil(x: f32): f32

ceil

zena
declare function ceil(x: f64): f64

floor

zena
declare function floor(x: f32): f32

floor

zena
declare function floor(x: f64): f64

trunc

zena
declare function trunc(x: f32): f32

trunc

zena
declare function trunc(x: f64): f64

nearest

zena
declare function nearest(x: f32): f32

nearest

zena
declare function nearest(x: f64): f64

sqrt

zena
declare function sqrt(x: f32): f32

sqrt

zena
declare function sqrt(x: f64): f64

min

zena
declare function min(a: f32, b: f32): f32

min

zena
declare function min(a: f64, b: f64): f64

max

zena
declare function max(a: f32, b: f32): f32

max

zena
declare function max(a: f64, b: f64): f64

copysign

zena
declare function copysign(x: f32, y: f32): f32

copysign

zena
declare function copysign(x: f64, y: f64): f64

div

zena
declare function div(a: i32, b: i32): i32

div

zena
declare function div(a: i64, b: i64): i64

div

zena
declare function div(a: u32, b: u32): u32

div

zena
declare function div(a: u64, b: u64): u64

i32_trunc_s

zena
declare function i32_trunc_s(x: f32): i32

i32_trunc_s

zena
declare function i32_trunc_s(x: f64): i32

i32_trunc_u

zena
declare function i32_trunc_u(x: f32): i32

i32_trunc_u

zena
declare function i32_trunc_u(x: f64): i32

i64_trunc_s

zena
declare function i64_trunc_s(x: f32): i64

i64_trunc_s

zena
declare function i64_trunc_s(x: f64): i64

i64_trunc_u

zena
declare function i64_trunc_u(x: f32): i64

i64_trunc_u

zena
declare function i64_trunc_u(x: f64): i64

i32_reinterpret_f32

zena
declare function i32_reinterpret_f32(x: f32): i32

Reinterpret the bits of an f32 as an i32.

i64_reinterpret_f64

zena
declare function i64_reinterpret_f64(x: f64): i64

Reinterpret the bits of an f64 as an i64.

f32_reinterpret_i32

zena
declare function f32_reinterpret_i32(x: i32): f32

Reinterpret the bits of an i32 as an f32.

f64_reinterpret_i64

zena
declare function f64_reinterpret_i64(x: i64): f64

Reinterpret the bits of an i64 as an f64.

Variables

I32_MIN

zena
let I32_MIN: i32

I32_MAX

zena
let I32_MAX: i32

U32_MIN

zena
let U32_MIN: u32

U32_MAX

zena
let U32_MAX: u32

I64_MIN

zena
let I64_MIN: i64

I64_MAX

zena
let I64_MAX: i64

U64_MIN

zena
let U64_MIN: u64

U64_MAX

zena
let U64_MAX: u64