The 969 primitive operations the builtin number types and Boolean are built on. The operators on those types, and their Numeric, Comparable and Equatable implementations (see Builtin Types), are defined in terms of them - use an intrinsic directly when you need exactly one operation on exactly one type, with no dispatch in between.
They're reached only through #builtin.intrinsic (see Macro Namespaces), never by a bare name, so they can't clash with your own functions.
OPERATION_<Type>_<Type> for two operands - ADD_U64_U64OPERATION_<Type> for one - NEG_S32, SQRT_F64CAST_<From>_<To> for a conversion - CAST_F64_S32 Both operands always have the same type - mixing types goes through a CAST first. Boolean and Codepoint are spelled BOOLEAN and CODEPOINT in a name. An integer result that doesn't fit is an OverflowError unless the name says otherwise (WRAPPING wraps around, SATURATING clamps; CHECKED is the same as none), and shifts past the width shift every bit out. Floats follow IEEE-754: results round to nearest, ties to even, NaN and infinities are values rather than errors, and comparisons are exact. A float cast to an integer rounds toward zero.
#adda + b
ADD_U8_U8(a: U8, b: U8): U8ADD_U16_U16(a: U16, b: U16): U16ADD_U32_U32(a: U32, b: U32): U32ADD_U64_U64(a: U64, b: U64): U64ADD_U128_U128(a: U128, b: U128): U128ADD_U256_U256(a: U256, b: U256): U256ADD_S8_S8(a: S8, b: S8): S8ADD_S16_S16(a: S16, b: S16): S16ADD_S32_S32(a: S32, b: S32): S32ADD_S64_S64(a: S64, b: S64): S64ADD_S128_S128(a: S128, b: S128): S128ADD_S256_S256(a: S256, b: S256): S256ADD_F16_F16(a: F16, b: F16): F16ADD_F32_F32(a: F32, b: F32): F32ADD_F64_F64(a: F64, b: F64): F64ADD_C32_C32(a: C32, b: C32): C32ADD_C64_C64(a: C64, b: C64): C64ADD_Q32_Q32(a: Q32, b: Q32): Q32ADD_Q64_Q64(a: Q64, b: Q64): Q64#suba - b
SUB_U8_U8(a: U8, b: U8): U8SUB_U16_U16(a: U16, b: U16): U16SUB_U32_U32(a: U32, b: U32): U32SUB_U64_U64(a: U64, b: U64): U64SUB_U128_U128(a: U128, b: U128): U128SUB_U256_U256(a: U256, b: U256): U256SUB_S8_S8(a: S8, b: S8): S8SUB_S16_S16(a: S16, b: S16): S16SUB_S32_S32(a: S32, b: S32): S32SUB_S64_S64(a: S64, b: S64): S64SUB_S128_S128(a: S128, b: S128): S128SUB_S256_S256(a: S256, b: S256): S256SUB_F16_F16(a: F16, b: F16): F16SUB_F32_F32(a: F32, b: F32): F32SUB_F64_F64(a: F64, b: F64): F64SUB_C32_C32(a: C32, b: C32): C32SUB_C64_C64(a: C64, b: C64): C64SUB_Q32_Q32(a: Q32, b: Q32): Q32SUB_Q64_Q64(a: Q64, b: Q64): Q64#mula * b (quaternions: not commutative)
MUL_U8_U8(a: U8, b: U8): U8MUL_U16_U16(a: U16, b: U16): U16MUL_U32_U32(a: U32, b: U32): U32MUL_U64_U64(a: U64, b: U64): U64MUL_U128_U128(a: U128, b: U128): U128MUL_U256_U256(a: U256, b: U256): U256MUL_S8_S8(a: S8, b: S8): S8MUL_S16_S16(a: S16, b: S16): S16MUL_S32_S32(a: S32, b: S32): S32MUL_S64_S64(a: S64, b: S64): S64MUL_S128_S128(a: S128, b: S128): S128MUL_S256_S256(a: S256, b: S256): S256MUL_F16_F16(a: F16, b: F16): F16MUL_F32_F32(a: F32, b: F32): F32MUL_F64_F64(a: F64, b: F64): F64MUL_C32_C32(a: C32, b: C32): C32MUL_C64_C64(a: C64, b: C64): C64MUL_Q32_Q32(a: Q32, b: Q32): Q32MUL_Q64_Q64(a: Q64, b: Q64): Q64#diva / b (integers: truncates toward zero)
DIV_U8_U8(a: U8, b: U8): DivisionByZeroError ! U8DIV_U16_U16(a: U16, b: U16): DivisionByZeroError ! U16DIV_U32_U32(a: U32, b: U32): DivisionByZeroError ! U32DIV_U64_U64(a: U64, b: U64): DivisionByZeroError ! U64DIV_U128_U128(a: U128, b: U128): DivisionByZeroError ! U128DIV_U256_U256(a: U256, b: U256): DivisionByZeroError ! U256DIV_S8_S8(a: S8, b: S8): DivisionByZeroError ! S8DIV_S16_S16(a: S16, b: S16): DivisionByZeroError ! S16DIV_S32_S32(a: S32, b: S32): DivisionByZeroError ! S32DIV_S64_S64(a: S64, b: S64): DivisionByZeroError ! S64DIV_S128_S128(a: S128, b: S128): DivisionByZeroError ! S128DIV_S256_S256(a: S256, b: S256): DivisionByZeroError ! S256DIV_F16_F16(a: F16, b: F16): F16DIV_F32_F32(a: F32, b: F32): F32DIV_F64_F64(a: F64, b: F64): F64DIV_C32_C32(a: C32, b: C32): C32DIV_C64_C64(a: C64, b: C64): C64DIV_Q32_Q32(a: Q32, b: Q32): Q32DIV_Q64_Q64(a: Q64, b: Q64): Q64#floordiva // b - rounds toward negative infinity
FLOORDIV_U8_U8(a: U8, b: U8): DivisionByZeroError ! U8FLOORDIV_U16_U16(a: U16, b: U16): DivisionByZeroError ! U16FLOORDIV_U32_U32(a: U32, b: U32): DivisionByZeroError ! U32FLOORDIV_U64_U64(a: U64, b: U64): DivisionByZeroError ! U64FLOORDIV_U128_U128(a: U128, b: U128): DivisionByZeroError ! U128FLOORDIV_U256_U256(a: U256, b: U256): DivisionByZeroError ! U256FLOORDIV_S8_S8(a: S8, b: S8): DivisionByZeroError ! S8FLOORDIV_S16_S16(a: S16, b: S16): DivisionByZeroError ! S16FLOORDIV_S32_S32(a: S32, b: S32): DivisionByZeroError ! S32FLOORDIV_S64_S64(a: S64, b: S64): DivisionByZeroError ! S64FLOORDIV_S128_S128(a: S128, b: S128): DivisionByZeroError ! S128FLOORDIV_S256_S256(a: S256, b: S256): DivisionByZeroError ! S256FLOORDIV_F16_F16(a: F16, b: F16): F16FLOORDIV_F32_F32(a: F32, b: F32): F32FLOORDIV_F64_F64(a: F64, b: F64): F64#rema % b - takes the sign of a
REM_U8_U8(a: U8, b: U8): DivisionByZeroError ! U8REM_U16_U16(a: U16, b: U16): DivisionByZeroError ! U16REM_U32_U32(a: U32, b: U32): DivisionByZeroError ! U32REM_U64_U64(a: U64, b: U64): DivisionByZeroError ! U64REM_U128_U128(a: U128, b: U128): DivisionByZeroError ! U128REM_U256_U256(a: U256, b: U256): DivisionByZeroError ! U256REM_S8_S8(a: S8, b: S8): DivisionByZeroError ! S8REM_S16_S16(a: S16, b: S16): DivisionByZeroError ! S16REM_S32_S32(a: S32, b: S32): DivisionByZeroError ! S32REM_S64_S64(a: S64, b: S64): DivisionByZeroError ! S64REM_S128_S128(a: S128, b: S128): DivisionByZeroError ! S128REM_S256_S256(a: S256, b: S256): DivisionByZeroError ! S256REM_F16_F16(a: F16, b: F16): F16REM_F32_F32(a: F32, b: F32): F32REM_F64_F64(a: F64, b: F64): F64#modremainder that takes the sign of b (Integer.modulo)
MOD_U8_U8(a: U8, b: U8): DivisionByZeroError ! U8MOD_U16_U16(a: U16, b: U16): DivisionByZeroError ! U16MOD_U32_U32(a: U32, b: U32): DivisionByZeroError ! U32MOD_U64_U64(a: U64, b: U64): DivisionByZeroError ! U64MOD_U128_U128(a: U128, b: U128): DivisionByZeroError ! U128MOD_U256_U256(a: U256, b: U256): DivisionByZeroError ! U256MOD_S8_S8(a: S8, b: S8): DivisionByZeroError ! S8MOD_S16_S16(a: S16, b: S16): DivisionByZeroError ! S16MOD_S32_S32(a: S32, b: S32): DivisionByZeroError ! S32MOD_S64_S64(a: S64, b: S64): DivisionByZeroError ! S64MOD_S128_S128(a: S128, b: S128): DivisionByZeroError ! S128MOD_S256_S256(a: S256, b: S256): DivisionByZeroError ! S256MOD_F16_F16(a: F16, b: F16): F16MOD_F32_F32(a: F32, b: F32): F32MOD_F64_F64(a: F64, b: F64): F64#powa ^ b (S*: a negative b is an OverflowError, the result isn't a whole number)
POW_U8_U8(a: U8, b: U8): U8POW_U16_U16(a: U16, b: U16): U16POW_U32_U32(a: U32, b: U32): U32POW_U64_U64(a: U64, b: U64): U64POW_U128_U128(a: U128, b: U128): U128POW_U256_U256(a: U256, b: U256): U256POW_S8_S8(a: S8, b: S8): OverflowError ! S8POW_S16_S16(a: S16, b: S16): OverflowError ! S16POW_S32_S32(a: S32, b: S32): OverflowError ! S32POW_S64_S64(a: S64, b: S64): OverflowError ! S64POW_S128_S128(a: S128, b: S128): OverflowError ! S128POW_S256_S256(a: S256, b: S256): OverflowError ! S256POW_F16_F16(a: F16, b: F16): F16POW_F32_F32(a: F32, b: F32): F32POW_F64_F64(a: F64, b: F64): F64POW_C32_C32(a: C32, b: C32): C32POW_C64_C64(a: C64, b: C64): C64POW_Q32_Q32(a: Q32, b: Q32): Q32POW_Q64_Q64(a: Q64, b: Q64): Q64#negprefix -a (unsigned: an OverflowError for anything but 0)
NEG_U8(value: U8): U8NEG_U16(value: U16): U16NEG_U32(value: U32): U32NEG_U64(value: U64): U64NEG_U128(value: U128): U128NEG_U256(value: U256): U256NEG_S8(value: S8): S8NEG_S16(value: S16): S16NEG_S32(value: S32): S32NEG_S64(value: S64): S64NEG_S128(value: S128): S128NEG_S256(value: S256): S256NEG_F16(value: F16): F16NEG_F32(value: F32): F32NEG_F64(value: F64): F64NEG_C32(value: C32): C32NEG_C64(value: C64): C64NEG_Q32(value: Q32): Q32NEG_Q64(value: Q64): Q64#absabsolute value (S*.min() is an OverflowError)
ABS_U8(value: U8): U8ABS_U16(value: U16): U16ABS_U32(value: U32): U32ABS_U64(value: U64): U64ABS_U128(value: U128): U128ABS_U256(value: U256): U256ABS_S8(value: S8): S8ABS_S16(value: S16): S16ABS_S32(value: S32): S32ABS_S64(value: S64): S64ABS_S128(value: S128): S128ABS_S256(value: S256): S256ABS_F16(value: F16): F16ABS_F32(value: F32): F32ABS_F64(value: F64): F64#minthe smaller of a and b (floats: NaN if either is NaN)
MIN_U8_U8(a: U8, b: U8): U8MIN_U16_U16(a: U16, b: U16): U16MIN_U32_U32(a: U32, b: U32): U32MIN_U64_U64(a: U64, b: U64): U64MIN_U128_U128(a: U128, b: U128): U128MIN_U256_U256(a: U256, b: U256): U256MIN_S8_S8(a: S8, b: S8): S8MIN_S16_S16(a: S16, b: S16): S16MIN_S32_S32(a: S32, b: S32): S32MIN_S64_S64(a: S64, b: S64): S64MIN_S128_S128(a: S128, b: S128): S128MIN_S256_S256(a: S256, b: S256): S256MIN_F16_F16(a: F16, b: F16): F16MIN_F32_F32(a: F32, b: F32): F32MIN_F64_F64(a: F64, b: F64): F64#maxthe larger of a and b (floats: NaN if either is NaN)
MAX_U8_U8(a: U8, b: U8): U8MAX_U16_U16(a: U16, b: U16): U16MAX_U32_U32(a: U32, b: U32): U32MAX_U64_U64(a: U64, b: U64): U64MAX_U128_U128(a: U128, b: U128): U128MAX_U256_U256(a: U256, b: U256): U256MAX_S8_S8(a: S8, b: S8): S8MAX_S16_S16(a: S16, b: S16): S16MAX_S32_S32(a: S32, b: S32): S32MAX_S64_S64(a: S64, b: S64): S64MAX_S128_S128(a: S128, b: S128): S128MAX_S256_S256(a: S256, b: S256): S256MAX_F16_F16(a: F16, b: F16): F16MAX_F32_F32(a: F32, b: F32): F32MAX_F64_F64(a: F64, b: F64): F64#add-checkeda + b, an OverflowError when it doesn't fit - the same as ADD
ADD_CHECKED_U8_U8(a: U8, b: U8): OverflowError ! U8ADD_CHECKED_U16_U16(a: U16, b: U16): OverflowError ! U16ADD_CHECKED_U32_U32(a: U32, b: U32): OverflowError ! U32ADD_CHECKED_U64_U64(a: U64, b: U64): OverflowError ! U64ADD_CHECKED_U128_U128(a: U128, b: U128): OverflowError ! U128ADD_CHECKED_U256_U256(a: U256, b: U256): OverflowError ! U256ADD_CHECKED_S8_S8(a: S8, b: S8): OverflowError ! S8ADD_CHECKED_S16_S16(a: S16, b: S16): OverflowError ! S16ADD_CHECKED_S32_S32(a: S32, b: S32): OverflowError ! S32ADD_CHECKED_S64_S64(a: S64, b: S64): OverflowError ! S64ADD_CHECKED_S128_S128(a: S128, b: S128): OverflowError ! S128ADD_CHECKED_S256_S256(a: S256, b: S256): OverflowError ! S256#sub-checkeda - b, an OverflowError when it doesn't fit - the same as SUB
SUB_CHECKED_U8_U8(a: U8, b: U8): OverflowError ! U8SUB_CHECKED_U16_U16(a: U16, b: U16): OverflowError ! U16SUB_CHECKED_U32_U32(a: U32, b: U32): OverflowError ! U32SUB_CHECKED_U64_U64(a: U64, b: U64): OverflowError ! U64SUB_CHECKED_U128_U128(a: U128, b: U128): OverflowError ! U128SUB_CHECKED_U256_U256(a: U256, b: U256): OverflowError ! U256SUB_CHECKED_S8_S8(a: S8, b: S8): OverflowError ! S8SUB_CHECKED_S16_S16(a: S16, b: S16): OverflowError ! S16SUB_CHECKED_S32_S32(a: S32, b: S32): OverflowError ! S32SUB_CHECKED_S64_S64(a: S64, b: S64): OverflowError ! S64SUB_CHECKED_S128_S128(a: S128, b: S128): OverflowError ! S128SUB_CHECKED_S256_S256(a: S256, b: S256): OverflowError ! S256#mul-checkeda * b, an OverflowError when it doesn't fit - the same as MUL
MUL_CHECKED_U8_U8(a: U8, b: U8): OverflowError ! U8MUL_CHECKED_U16_U16(a: U16, b: U16): OverflowError ! U16MUL_CHECKED_U32_U32(a: U32, b: U32): OverflowError ! U32MUL_CHECKED_U64_U64(a: U64, b: U64): OverflowError ! U64MUL_CHECKED_U128_U128(a: U128, b: U128): OverflowError ! U128MUL_CHECKED_U256_U256(a: U256, b: U256): OverflowError ! U256MUL_CHECKED_S8_S8(a: S8, b: S8): OverflowError ! S8MUL_CHECKED_S16_S16(a: S16, b: S16): OverflowError ! S16MUL_CHECKED_S32_S32(a: S32, b: S32): OverflowError ! S32MUL_CHECKED_S64_S64(a: S64, b: S64): OverflowError ! S64MUL_CHECKED_S128_S128(a: S128, b: S128): OverflowError ! S128MUL_CHECKED_S256_S256(a: S256, b: S256): OverflowError ! S256#neg-checked-a, an OverflowError when it doesn't fit - the same as NEG
NEG_CHECKED_S8(value: S8): OverflowError ! S8NEG_CHECKED_S16(value: S16): OverflowError ! S16NEG_CHECKED_S32(value: S32): OverflowError ! S32NEG_CHECKED_S64(value: S64): OverflowError ! S64NEG_CHECKED_S128(value: S128): OverflowError ! S128NEG_CHECKED_S256(value: S256): OverflowError ! S256#add-wrappinga + b, wraps around modulo 2^bits - a +% b
ADD_WRAPPING_U8_U8(a: U8, b: U8): U8ADD_WRAPPING_U16_U16(a: U16, b: U16): U16ADD_WRAPPING_U32_U32(a: U32, b: U32): U32ADD_WRAPPING_U64_U64(a: U64, b: U64): U64ADD_WRAPPING_U128_U128(a: U128, b: U128): U128ADD_WRAPPING_U256_U256(a: U256, b: U256): U256ADD_WRAPPING_S8_S8(a: S8, b: S8): S8ADD_WRAPPING_S16_S16(a: S16, b: S16): S16ADD_WRAPPING_S32_S32(a: S32, b: S32): S32ADD_WRAPPING_S64_S64(a: S64, b: S64): S64ADD_WRAPPING_S128_S128(a: S128, b: S128): S128ADD_WRAPPING_S256_S256(a: S256, b: S256): S256#sub-wrappinga - b, wraps around modulo 2^bits - a -% b
SUB_WRAPPING_U8_U8(a: U8, b: U8): U8SUB_WRAPPING_U16_U16(a: U16, b: U16): U16SUB_WRAPPING_U32_U32(a: U32, b: U32): U32SUB_WRAPPING_U64_U64(a: U64, b: U64): U64SUB_WRAPPING_U128_U128(a: U128, b: U128): U128SUB_WRAPPING_U256_U256(a: U256, b: U256): U256SUB_WRAPPING_S8_S8(a: S8, b: S8): S8SUB_WRAPPING_S16_S16(a: S16, b: S16): S16SUB_WRAPPING_S32_S32(a: S32, b: S32): S32SUB_WRAPPING_S64_S64(a: S64, b: S64): S64SUB_WRAPPING_S128_S128(a: S128, b: S128): S128SUB_WRAPPING_S256_S256(a: S256, b: S256): S256#mul-wrappinga * b, wraps around modulo 2^bits - a *% b
MUL_WRAPPING_U8_U8(a: U8, b: U8): U8MUL_WRAPPING_U16_U16(a: U16, b: U16): U16MUL_WRAPPING_U32_U32(a: U32, b: U32): U32MUL_WRAPPING_U64_U64(a: U64, b: U64): U64MUL_WRAPPING_U128_U128(a: U128, b: U128): U128MUL_WRAPPING_U256_U256(a: U256, b: U256): U256MUL_WRAPPING_S8_S8(a: S8, b: S8): S8MUL_WRAPPING_S16_S16(a: S16, b: S16): S16MUL_WRAPPING_S32_S32(a: S32, b: S32): S32MUL_WRAPPING_S64_S64(a: S64, b: S64): S64MUL_WRAPPING_S128_S128(a: S128, b: S128): S128MUL_WRAPPING_S256_S256(a: S256, b: S256): S256#neg-wrapping-a, wraps around modulo 2^bits
NEG_WRAPPING_S8(value: S8): S8NEG_WRAPPING_S16(value: S16): S16NEG_WRAPPING_S32(value: S32): S32NEG_WRAPPING_S64(value: S64): S64NEG_WRAPPING_S128(value: S128): S128NEG_WRAPPING_S256(value: S256): S256#add-saturatinga + b, clamps to min() / max() - a +| b
ADD_SATURATING_U8_U8(a: U8, b: U8): U8ADD_SATURATING_U16_U16(a: U16, b: U16): U16ADD_SATURATING_U32_U32(a: U32, b: U32): U32ADD_SATURATING_U64_U64(a: U64, b: U64): U64ADD_SATURATING_U128_U128(a: U128, b: U128): U128ADD_SATURATING_U256_U256(a: U256, b: U256): U256ADD_SATURATING_S8_S8(a: S8, b: S8): S8ADD_SATURATING_S16_S16(a: S16, b: S16): S16ADD_SATURATING_S32_S32(a: S32, b: S32): S32ADD_SATURATING_S64_S64(a: S64, b: S64): S64ADD_SATURATING_S128_S128(a: S128, b: S128): S128ADD_SATURATING_S256_S256(a: S256, b: S256): S256#sub-saturatinga - b, clamps to min() / max() - a -| b
SUB_SATURATING_U8_U8(a: U8, b: U8): U8SUB_SATURATING_U16_U16(a: U16, b: U16): U16SUB_SATURATING_U32_U32(a: U32, b: U32): U32SUB_SATURATING_U64_U64(a: U64, b: U64): U64SUB_SATURATING_U128_U128(a: U128, b: U128): U128SUB_SATURATING_U256_U256(a: U256, b: U256): U256SUB_SATURATING_S8_S8(a: S8, b: S8): S8SUB_SATURATING_S16_S16(a: S16, b: S16): S16SUB_SATURATING_S32_S32(a: S32, b: S32): S32SUB_SATURATING_S64_S64(a: S64, b: S64): S64SUB_SATURATING_S128_S128(a: S128, b: S128): S128SUB_SATURATING_S256_S256(a: S256, b: S256): S256#mul-saturatinga * b, clamps to min() / max() - a *| b
MUL_SATURATING_U8_U8(a: U8, b: U8): U8MUL_SATURATING_U16_U16(a: U16, b: U16): U16MUL_SATURATING_U32_U32(a: U32, b: U32): U32MUL_SATURATING_U64_U64(a: U64, b: U64): U64MUL_SATURATING_U128_U128(a: U128, b: U128): U128MUL_SATURATING_U256_U256(a: U256, b: U256): U256MUL_SATURATING_S8_S8(a: S8, b: S8): S8MUL_SATURATING_S16_S16(a: S16, b: S16): S16MUL_SATURATING_S32_S32(a: S32, b: S32): S32MUL_SATURATING_S64_S64(a: S64, b: S64): S64MUL_SATURATING_S128_S128(a: S128, b: S128): S128MUL_SATURATING_S256_S256(a: S256, b: S256): S256#eqa == b (floats: IEEE-equal - NaN is never equal, not even to itself, an infinity only to itself,
EQ_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): BooleanEQ_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): BooleanEQ_U8_U8(a: U8, b: U8): BooleanEQ_U16_U16(a: U16, b: U16): BooleanEQ_U32_U32(a: U32, b: U32): BooleanEQ_U64_U64(a: U64, b: U64): BooleanEQ_U128_U128(a: U128, b: U128): BooleanEQ_U256_U256(a: U256, b: U256): BooleanEQ_S8_S8(a: S8, b: S8): BooleanEQ_S16_S16(a: S16, b: S16): BooleanEQ_S32_S32(a: S32, b: S32): BooleanEQ_S64_S64(a: S64, b: S64): BooleanEQ_S128_S128(a: S128, b: S128): BooleanEQ_S256_S256(a: S256, b: S256): BooleanEQ_F16_F16(a: F16, b: F16): BooleanEQ_F32_F32(a: F32, b: F32): BooleanEQ_F64_F64(a: F64, b: F64): BooleanEQ_C32_C32(a: C32, b: C32): BooleanEQ_C64_C64(a: C64, b: C64): BooleanEQ_Q32_Q32(a: Q32, b: Q32): BooleanEQ_Q64_Q64(a: Q64, b: Q64): Boolean#nea != b (not EQ)
NE_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): BooleanNE_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): BooleanNE_U8_U8(a: U8, b: U8): BooleanNE_U16_U16(a: U16, b: U16): BooleanNE_U32_U32(a: U32, b: U32): BooleanNE_U64_U64(a: U64, b: U64): BooleanNE_U128_U128(a: U128, b: U128): BooleanNE_U256_U256(a: U256, b: U256): BooleanNE_S8_S8(a: S8, b: S8): BooleanNE_S16_S16(a: S16, b: S16): BooleanNE_S32_S32(a: S32, b: S32): BooleanNE_S64_S64(a: S64, b: S64): BooleanNE_S128_S128(a: S128, b: S128): BooleanNE_S256_S256(a: S256, b: S256): BooleanNE_F16_F16(a: F16, b: F16): BooleanNE_F32_F32(a: F32, b: F32): BooleanNE_F64_F64(a: F64, b: F64): BooleanNE_C32_C32(a: C32, b: C32): BooleanNE_C64_C64(a: C64, b: C64): BooleanNE_Q32_Q32(a: Q32, b: Q32): BooleanNE_Q64_Q64(a: Q64, b: Q64): Boolean#lta < b (floats: false when either is NaN, or when they're EQ)
LT_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): BooleanLT_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): BooleanLT_U8_U8(a: U8, b: U8): BooleanLT_U16_U16(a: U16, b: U16): BooleanLT_U32_U32(a: U32, b: U32): BooleanLT_U64_U64(a: U64, b: U64): BooleanLT_U128_U128(a: U128, b: U128): BooleanLT_U256_U256(a: U256, b: U256): BooleanLT_S8_S8(a: S8, b: S8): BooleanLT_S16_S16(a: S16, b: S16): BooleanLT_S32_S32(a: S32, b: S32): BooleanLT_S64_S64(a: S64, b: S64): BooleanLT_S128_S128(a: S128, b: S128): BooleanLT_S256_S256(a: S256, b: S256): BooleanLT_F16_F16(a: F16, b: F16): BooleanLT_F32_F32(a: F32, b: F32): BooleanLT_F64_F64(a: F64, b: F64): Boolean#lea <= b (floats: LT or EQ)
LE_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): BooleanLE_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): BooleanLE_U8_U8(a: U8, b: U8): BooleanLE_U16_U16(a: U16, b: U16): BooleanLE_U32_U32(a: U32, b: U32): BooleanLE_U64_U64(a: U64, b: U64): BooleanLE_U128_U128(a: U128, b: U128): BooleanLE_U256_U256(a: U256, b: U256): BooleanLE_S8_S8(a: S8, b: S8): BooleanLE_S16_S16(a: S16, b: S16): BooleanLE_S32_S32(a: S32, b: S32): BooleanLE_S64_S64(a: S64, b: S64): BooleanLE_S128_S128(a: S128, b: S128): BooleanLE_S256_S256(a: S256, b: S256): BooleanLE_F16_F16(a: F16, b: F16): BooleanLE_F32_F32(a: F32, b: F32): BooleanLE_F64_F64(a: F64, b: F64): Boolean#gta > b (floats: false when either is NaN, or when they're EQ)
GT_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): BooleanGT_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): BooleanGT_U8_U8(a: U8, b: U8): BooleanGT_U16_U16(a: U16, b: U16): BooleanGT_U32_U32(a: U32, b: U32): BooleanGT_U64_U64(a: U64, b: U64): BooleanGT_U128_U128(a: U128, b: U128): BooleanGT_U256_U256(a: U256, b: U256): BooleanGT_S8_S8(a: S8, b: S8): BooleanGT_S16_S16(a: S16, b: S16): BooleanGT_S32_S32(a: S32, b: S32): BooleanGT_S64_S64(a: S64, b: S64): BooleanGT_S128_S128(a: S128, b: S128): BooleanGT_S256_S256(a: S256, b: S256): BooleanGT_F16_F16(a: F16, b: F16): BooleanGT_F32_F32(a: F32, b: F32): BooleanGT_F64_F64(a: F64, b: F64): Boolean#gea >= b (floats: GT or EQ)
GE_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): BooleanGE_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): BooleanGE_U8_U8(a: U8, b: U8): BooleanGE_U16_U16(a: U16, b: U16): BooleanGE_U32_U32(a: U32, b: U32): BooleanGE_U64_U64(a: U64, b: U64): BooleanGE_U128_U128(a: U128, b: U128): BooleanGE_U256_U256(a: U256, b: U256): BooleanGE_S8_S8(a: S8, b: S8): BooleanGE_S16_S16(a: S16, b: S16): BooleanGE_S32_S32(a: S32, b: S32): BooleanGE_S64_S64(a: S64, b: S64): BooleanGE_S128_S128(a: S128, b: S128): BooleanGE_S256_S256(a: S256, b: S256): BooleanGE_F16_F16(a: F16, b: F16): BooleanGE_F32_F32(a: F32, b: F32): BooleanGE_F64_F64(a: F64, b: F64): Boolean#cmpComparable.compare - floats order NaN after everything, like Comparable does, and are Equal when EQ
CMP_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): OrderingCMP_CODEPOINT_CODEPOINT(a: Codepoint, b: Codepoint): OrderingCMP_U8_U8(a: U8, b: U8): OrderingCMP_U16_U16(a: U16, b: U16): OrderingCMP_U32_U32(a: U32, b: U32): OrderingCMP_U64_U64(a: U64, b: U64): OrderingCMP_U128_U128(a: U128, b: U128): OrderingCMP_U256_U256(a: U256, b: U256): OrderingCMP_S8_S8(a: S8, b: S8): OrderingCMP_S16_S16(a: S16, b: S16): OrderingCMP_S32_S32(a: S32, b: S32): OrderingCMP_S64_S64(a: S64, b: S64): OrderingCMP_S128_S128(a: S128, b: S128): OrderingCMP_S256_S256(a: S256, b: S256): OrderingCMP_F16_F16(a: F16, b: F16): OrderingCMP_F32_F32(a: F32, b: F32): OrderingCMP_F64_F64(a: F64, b: F64): Ordering#bora bor b
BOR_U8_U8(a: U8, b: U8): U8BOR_U16_U16(a: U16, b: U16): U16BOR_U32_U32(a: U32, b: U32): U32BOR_U64_U64(a: U64, b: U64): U64BOR_U128_U128(a: U128, b: U128): U128BOR_U256_U256(a: U256, b: U256): U256BOR_S8_S8(a: S8, b: S8): S8BOR_S16_S16(a: S16, b: S16): S16BOR_S32_S32(a: S32, b: S32): S32BOR_S64_S64(a: S64, b: S64): S64BOR_S128_S128(a: S128, b: S128): S128BOR_S256_S256(a: S256, b: S256): S256#bxora bxor b
BXOR_U8_U8(a: U8, b: U8): U8BXOR_U16_U16(a: U16, b: U16): U16BXOR_U32_U32(a: U32, b: U32): U32BXOR_U64_U64(a: U64, b: U64): U64BXOR_U128_U128(a: U128, b: U128): U128BXOR_U256_U256(a: U256, b: U256): U256BXOR_S8_S8(a: S8, b: S8): S8BXOR_S16_S16(a: S16, b: S16): S16BXOR_S32_S32(a: S32, b: S32): S32BXOR_S64_S64(a: S64, b: S64): S64BXOR_S128_S128(a: S128, b: S128): S128BXOR_S256_S256(a: S256, b: S256): S256#banda band b
BAND_U8_U8(a: U8, b: U8): U8BAND_U16_U16(a: U16, b: U16): U16BAND_U32_U32(a: U32, b: U32): U32BAND_U64_U64(a: U64, b: U64): U64BAND_U128_U128(a: U128, b: U128): U128BAND_U256_U256(a: U256, b: U256): U256BAND_S8_S8(a: S8, b: S8): S8BAND_S16_S16(a: S16, b: S16): S16BAND_S32_S32(a: S32, b: S32): S32BAND_S64_S64(a: S64, b: S64): S64BAND_S128_S128(a: S128, b: S128): S128BAND_S256_S256(a: S256, b: S256): S256#bnot~a
BNOT_U8(value: U8): U8BNOT_U16(value: U16): U16BNOT_U32(value: U32): U32BNOT_U64(value: U64): U64BNOT_U128(value: U128): U128BNOT_U256(value: U256): U256BNOT_S8(value: S8): S8BNOT_S16(value: S16): S16BNOT_S32(value: S32): S32BNOT_S64(value: S64): S64BNOT_S128(value: S128): S128BNOT_S256(value: S256): S256#shla shl b - b at or above the bit count shifts every bit out: 0
SHL_U8_U8(a: U8, b: U8): U8SHL_U16_U16(a: U16, b: U16): U16SHL_U32_U32(a: U32, b: U32): U32SHL_U64_U64(a: U64, b: U64): U64SHL_U128_U128(a: U128, b: U128): U128SHL_U256_U256(a: U256, b: U256): U256SHL_S8_S8(a: S8, b: S8): S8SHL_S16_S16(a: S16, b: S16): S16SHL_S32_S32(a: S32, b: S32): S32SHL_S64_S64(a: S64, b: S64): S64SHL_S128_S128(a: S128, b: S128): S128SHL_S256_S256(a: S256, b: S256): S256#shra shr b - arithmetic for S*, logical for U*; b at or above the bit count shifts every bit out (-1
SHR_U8_U8(a: U8, b: U8): U8SHR_U16_U16(a: U16, b: U16): U16SHR_U32_U32(a: U32, b: U32): U32SHR_U64_U64(a: U64, b: U64): U64SHR_U128_U128(a: U128, b: U128): U128SHR_U256_U256(a: U256, b: U256): U256SHR_S8_S8(a: S8, b: S8): S8SHR_S16_S16(a: S16, b: S16): S16SHR_S32_S32(a: S32, b: S32): S32SHR_S64_S64(a: S64, b: S64): S64SHR_S128_S128(a: S128, b: S128): S128SHR_S256_S256(a: S256, b: S256): S256#rotlrotate left by b bits (modulo the bit count)
ROTL_U8_U8(a: U8, b: U8): U8ROTL_U16_U16(a: U16, b: U16): U16ROTL_U32_U32(a: U32, b: U32): U32ROTL_U64_U64(a: U64, b: U64): U64ROTL_U128_U128(a: U128, b: U128): U128ROTL_U256_U256(a: U256, b: U256): U256ROTL_S8_S8(a: S8, b: S8): S8ROTL_S16_S16(a: S16, b: S16): S16ROTL_S32_S32(a: S32, b: S32): S32ROTL_S64_S64(a: S64, b: S64): S64ROTL_S128_S128(a: S128, b: S128): S128ROTL_S256_S256(a: S256, b: S256): S256#rotrrotate right by b bits (modulo the bit count)
ROTR_U8_U8(a: U8, b: U8): U8ROTR_U16_U16(a: U16, b: U16): U16ROTR_U32_U32(a: U32, b: U32): U32ROTR_U64_U64(a: U64, b: U64): U64ROTR_U128_U128(a: U128, b: U128): U128ROTR_U256_U256(a: U256, b: U256): U256ROTR_S8_S8(a: S8, b: S8): S8ROTR_S16_S16(a: S16, b: S16): S16ROTR_S32_S32(a: S32, b: S32): S32ROTR_S64_S64(a: S64, b: S64): S64ROTR_S128_S128(a: S128, b: S128): S128ROTR_S256_S256(a: S256, b: S256): S256#popcntnumber of set bits
POPCNT_U8(value: U8): U8POPCNT_U16(value: U16): U8POPCNT_U32(value: U32): U8POPCNT_U64(value: U64): U8POPCNT_U128(value: U128): U8POPCNT_U256(value: U256): U8POPCNT_S8(value: S8): U8POPCNT_S16(value: S16): U8POPCNT_S32(value: S32): U8POPCNT_S64(value: S64): U8POPCNT_S128(value: S128): U8POPCNT_S256(value: S256): U8#clznumber of leading zero bits
CLZ_U8(value: U8): U8CLZ_U16(value: U16): U8CLZ_U32(value: U32): U8CLZ_U64(value: U64): U8CLZ_U128(value: U128): U8CLZ_U256(value: U256): U8CLZ_S8(value: S8): U8CLZ_S16(value: S16): U8CLZ_S32(value: S32): U8CLZ_S64(value: S64): U8CLZ_S128(value: S128): U8CLZ_S256(value: S256): U8#ctznumber of trailing zero bits
CTZ_U8(value: U8): U8CTZ_U16(value: U16): U8CTZ_U32(value: U32): U8CTZ_U64(value: U64): U8CTZ_U128(value: U128): U8CTZ_U256(value: U256): U8CTZ_S8(value: S8): U8CTZ_S16(value: S16): U8CTZ_S32(value: S32): U8CTZ_S64(value: S64): U8CTZ_S128(value: S128): U8CTZ_S256(value: S256): U8#bswapreverse the byte order
BSWAP_U8(value: U8): U8BSWAP_U16(value: U16): U16BSWAP_U32(value: U32): U32BSWAP_U64(value: U64): U64BSWAP_U128(value: U128): U128BSWAP_U256(value: U256): U256BSWAP_S8(value: S8): S8BSWAP_S16(value: S16): S16BSWAP_S32(value: S32): S32BSWAP_S64(value: S64): S64BSWAP_S128(value: S128): S128BSWAP_S256(value: S256): S256#cast-integer-to-integera value the target can't hold (narrowing, or S* to U* below zero) is an
CAST_U8_U16(value: U8): U16CAST_U8_U32(value: U8): U32CAST_U8_U64(value: U8): U64CAST_U8_U128(value: U8): U128CAST_U8_U256(value: U8): U256CAST_U8_S8(value: U8): S8CAST_U8_S16(value: U8): S16CAST_U8_S32(value: U8): S32CAST_U8_S64(value: U8): S64CAST_U8_S128(value: U8): S128CAST_U8_S256(value: U8): S256CAST_U16_U8(value: U16): U8CAST_U16_U32(value: U16): U32CAST_U16_U64(value: U16): U64CAST_U16_U128(value: U16): U128CAST_U16_U256(value: U16): U256CAST_U16_S8(value: U16): S8CAST_U16_S16(value: U16): S16CAST_U16_S32(value: U16): S32CAST_U16_S64(value: U16): S64CAST_U16_S128(value: U16): S128CAST_U16_S256(value: U16): S256CAST_U32_U8(value: U32): U8CAST_U32_U16(value: U32): U16CAST_U32_U64(value: U32): U64CAST_U32_U128(value: U32): U128CAST_U32_U256(value: U32): U256CAST_U32_S8(value: U32): S8CAST_U32_S16(value: U32): S16CAST_U32_S32(value: U32): S32CAST_U32_S64(value: U32): S64CAST_U32_S128(value: U32): S128CAST_U32_S256(value: U32): S256CAST_U64_U8(value: U64): U8CAST_U64_U16(value: U64): U16CAST_U64_U32(value: U64): U32CAST_U64_U128(value: U64): U128CAST_U64_U256(value: U64): U256CAST_U64_S8(value: U64): S8CAST_U64_S16(value: U64): S16CAST_U64_S32(value: U64): S32CAST_U64_S64(value: U64): S64CAST_U64_S128(value: U64): S128CAST_U64_S256(value: U64): S256CAST_U128_U8(value: U128): U8CAST_U128_U16(value: U128): U16CAST_U128_U32(value: U128): U32CAST_U128_U64(value: U128): U64CAST_U128_U256(value: U128): U256CAST_U128_S8(value: U128): S8CAST_U128_S16(value: U128): S16CAST_U128_S32(value: U128): S32CAST_U128_S64(value: U128): S64CAST_U128_S128(value: U128): S128CAST_U128_S256(value: U128): S256CAST_U256_U8(value: U256): U8CAST_U256_U16(value: U256): U16CAST_U256_U32(value: U256): U32CAST_U256_U64(value: U256): U64CAST_U256_U128(value: U256): U128CAST_U256_S8(value: U256): S8CAST_U256_S16(value: U256): S16CAST_U256_S32(value: U256): S32CAST_U256_S64(value: U256): S64CAST_U256_S128(value: U256): S128CAST_U256_S256(value: U256): S256CAST_S8_U8(value: S8): U8CAST_S8_U16(value: S8): U16CAST_S8_U32(value: S8): U32CAST_S8_U64(value: S8): U64CAST_S8_U128(value: S8): U128CAST_S8_U256(value: S8): U256CAST_S8_S16(value: S8): S16CAST_S8_S32(value: S8): S32CAST_S8_S64(value: S8): S64CAST_S8_S128(value: S8): S128CAST_S8_S256(value: S8): S256CAST_S16_U8(value: S16): U8CAST_S16_U16(value: S16): U16CAST_S16_U32(value: S16): U32CAST_S16_U64(value: S16): U64CAST_S16_U128(value: S16): U128CAST_S16_U256(value: S16): U256CAST_S16_S8(value: S16): S8CAST_S16_S32(value: S16): S32CAST_S16_S64(value: S16): S64CAST_S16_S128(value: S16): S128CAST_S16_S256(value: S16): S256CAST_S32_U8(value: S32): U8CAST_S32_U16(value: S32): U16CAST_S32_U32(value: S32): U32CAST_S32_U64(value: S32): U64CAST_S32_U128(value: S32): U128CAST_S32_U256(value: S32): U256CAST_S32_S8(value: S32): S8CAST_S32_S16(value: S32): S16CAST_S32_S64(value: S32): S64CAST_S32_S128(value: S32): S128CAST_S32_S256(value: S32): S256CAST_S64_U8(value: S64): U8CAST_S64_U16(value: S64): U16CAST_S64_U32(value: S64): U32CAST_S64_U64(value: S64): U64CAST_S64_U128(value: S64): U128CAST_S64_U256(value: S64): U256CAST_S64_S8(value: S64): S8CAST_S64_S16(value: S64): S16CAST_S64_S32(value: S64): S32CAST_S64_S128(value: S64): S128CAST_S64_S256(value: S64): S256CAST_S128_U8(value: S128): U8CAST_S128_U16(value: S128): U16CAST_S128_U32(value: S128): U32CAST_S128_U64(value: S128): U64CAST_S128_U128(value: S128): U128CAST_S128_U256(value: S128): U256CAST_S128_S8(value: S128): S8CAST_S128_S16(value: S128): S16CAST_S128_S32(value: S128): S32CAST_S128_S64(value: S128): S64CAST_S128_S256(value: S128): S256CAST_S256_U8(value: S256): U8CAST_S256_U16(value: S256): U16CAST_S256_U32(value: S256): U32CAST_S256_U64(value: S256): U64CAST_S256_U128(value: S256): U128CAST_S256_U256(value: S256): U256CAST_S256_S8(value: S256): S8CAST_S256_S16(value: S256): S16CAST_S256_S32(value: S256): S32CAST_S256_S64(value: S256): S64CAST_S256_S128(value: S256): S128#cast-integer-to-floatrounds to nearest, ties to even, when the float can't hold it exactly
CAST_U8_F16(value: U8): F16CAST_U8_F32(value: U8): F32CAST_U8_F64(value: U8): F64CAST_U16_F16(value: U16): F16CAST_U16_F32(value: U16): F32CAST_U16_F64(value: U16): F64CAST_U32_F16(value: U32): F16CAST_U32_F32(value: U32): F32CAST_U32_F64(value: U32): F64CAST_U64_F16(value: U64): F16CAST_U64_F32(value: U64): F32CAST_U64_F64(value: U64): F64CAST_U128_F16(value: U128): F16CAST_U128_F32(value: U128): F32CAST_U128_F64(value: U128): F64CAST_U256_F16(value: U256): F16CAST_U256_F32(value: U256): F32CAST_U256_F64(value: U256): F64CAST_S8_F16(value: S8): F16CAST_S8_F32(value: S8): F32CAST_S8_F64(value: S8): F64CAST_S16_F16(value: S16): F16CAST_S16_F32(value: S16): F32CAST_S16_F64(value: S16): F64CAST_S32_F16(value: S32): F16CAST_S32_F32(value: S32): F32CAST_S32_F64(value: S32): F64CAST_S64_F16(value: S64): F16CAST_S64_F32(value: S64): F32CAST_S64_F64(value: S64): F64CAST_S128_F16(value: S128): F16CAST_S128_F32(value: S128): F32CAST_S128_F64(value: S128): F64CAST_S256_F16(value: S256): F16CAST_S256_F32(value: S256): F32CAST_S256_F64(value: S256): F64#cast-float-to-integerrounds toward zero; out of range, NaN and an infinity are a CastError
CAST_F16_U8(value: F16): CastError ! U8CAST_F32_U8(value: F32): CastError ! U8CAST_F16_U16(value: F16): CastError ! U16CAST_F32_U16(value: F32): CastError ! U16CAST_F16_U32(value: F16): CastError ! U32CAST_F32_U32(value: F32): CastError ! U32CAST_F16_U64(value: F16): CastError ! U64CAST_F32_U64(value: F32): CastError ! U64CAST_F16_U128(value: F16): CastError ! U128CAST_F32_U128(value: F32): CastError ! U128CAST_F16_U256(value: F16): CastError ! U256CAST_F32_U256(value: F32): CastError ! U256CAST_F16_S8(value: F16): CastError ! S8CAST_F32_S8(value: F32): CastError ! S8CAST_F16_S16(value: F16): CastError ! S16CAST_F32_S16(value: F32): CastError ! S16CAST_F16_S32(value: F16): CastError ! S32CAST_F32_S32(value: F32): CastError ! S32CAST_F16_S64(value: F16): CastError ! S64CAST_F32_S64(value: F32): CastError ! S64CAST_F16_S128(value: F16): CastError ! S128CAST_F32_S128(value: F32): CastError ! S128CAST_F16_S256(value: F16): CastError ! S256CAST_F32_S256(value: F32): CastError ! S256CAST_F64_U8(value: F64): CastError ! U8CAST_F64_U16(value: F64): CastError ! U16CAST_F64_U32(value: F64): CastError ! U32CAST_F64_U64(value: F64): CastError ! U64CAST_F64_U128(value: F64): CastError ! U128CAST_F64_U256(value: F64): CastError ! U256CAST_F64_S8(value: F64): CastError ! S8CAST_F64_S16(value: F64): CastError ! S16CAST_F64_S32(value: F64): CastError ! S32CAST_F64_S64(value: F64): CastError ! S64CAST_F64_S128(value: F64): CastError ! S128CAST_F64_S256(value: F64): CastError ! S256#cast-float-to-floatrounds to nearest, ties to even, when narrowing
CAST_F16_F64(value: F16): F64CAST_F32_F16(value: F32): F16CAST_F32_F64(value: F32): F64CAST_F16_F32(value: F16): F32CAST_F64_F16(value: F64): F16CAST_F64_F32(value: F64): F32#cast-real-to-compleximaginary part 0
CAST_U8_C32(value: U8): C32CAST_U8_C64(value: U8): C64CAST_U16_C32(value: U16): C32CAST_U16_C64(value: U16): C64CAST_U32_C32(value: U32): C32CAST_U32_C64(value: U32): C64CAST_U64_C32(value: U64): C32CAST_U64_C64(value: U64): C64CAST_U128_C32(value: U128): C32CAST_U128_C64(value: U128): C64CAST_U256_C32(value: U256): C32CAST_U256_C64(value: U256): C64CAST_S8_C32(value: S8): C32CAST_S8_C64(value: S8): C64CAST_S16_C32(value: S16): C32CAST_S16_C64(value: S16): C64CAST_S32_C32(value: S32): C32CAST_S32_C64(value: S32): C64CAST_S64_C32(value: S64): C32CAST_S64_C64(value: S64): C64CAST_S128_C32(value: S128): C32CAST_S128_C64(value: S128): C64CAST_S256_C32(value: S256): C32CAST_S256_C64(value: S256): C64CAST_F16_C32(value: F16): C32CAST_F32_C32(value: F32): C32CAST_F16_C64(value: F16): C64CAST_F32_C64(value: F32): C64CAST_F64_C32(value: F64): C32CAST_F64_C64(value: F64): C64#cast-complex-to-complexeach part cast like float to float
CAST_C32_C64(value: C32): C64CAST_C64_C32(value: C64): C32#cast-real-to-quaternionx, y, z parts 0
CAST_U8_Q32(value: U8): Q32CAST_U8_Q64(value: U8): Q64CAST_U16_Q32(value: U16): Q32CAST_U16_Q64(value: U16): Q64CAST_U32_Q32(value: U32): Q32CAST_U32_Q64(value: U32): Q64CAST_U64_Q32(value: U64): Q32CAST_U64_Q64(value: U64): Q64CAST_U128_Q32(value: U128): Q32CAST_U128_Q64(value: U128): Q64CAST_U256_Q32(value: U256): Q32CAST_U256_Q64(value: U256): Q64CAST_S8_Q32(value: S8): Q32CAST_S8_Q64(value: S8): Q64CAST_S16_Q32(value: S16): Q32CAST_S16_Q64(value: S16): Q64CAST_S32_Q32(value: S32): Q32CAST_S32_Q64(value: S32): Q64CAST_S64_Q32(value: S64): Q32CAST_S64_Q64(value: S64): Q64CAST_S128_Q32(value: S128): Q32CAST_S128_Q64(value: S128): Q64CAST_S256_Q32(value: S256): Q32CAST_S256_Q64(value: S256): Q64CAST_F16_Q32(value: F16): Q32CAST_F32_Q32(value: F32): Q32CAST_F16_Q64(value: F16): Q64CAST_F32_Q64(value: F32): Q64CAST_F64_Q32(value: F64): Q32CAST_F64_Q64(value: F64): Q64#cast-complex-to-quaternionreal to w, imaginary to x, y and z 0
CAST_C32_Q32(value: C32): Q32CAST_C32_Q64(value: C32): Q64CAST_C64_Q32(value: C64): Q32CAST_C64_Q64(value: C64): Q64#cast-quaternion-to-quaternioneach part cast like float to float
CAST_Q32_Q64(value: Q32): Q64CAST_Q64_Q32(value: Q64): Q32#cast-boolean-and-codepointCAST_BOOLEAN_U8(value: Boolean): U8false 0, true 1CAST_U8_BOOLEAN(value: U8): Boolean0 false, anything else trueCAST_CODEPOINT_U32(value: Codepoint): U32CAST_U32_CODEPOINT(value: U32): CastError ! Codepointsurrogates and above 0x10FFFF are a CastError#sqrtsquare root (NaN below zero)
SQRT_F16(value: F16): F16SQRT_F32(value: F32): F32SQRT_F64(value: F64): F64#cbrtcube root
CBRT_F16(value: F16): F16CBRT_F32(value: F32): F32CBRT_F64(value: F64): F64#expe ^ value
EXP_F16(value: F16): F16EXP_F32(value: F32): F32EXP_F64(value: F64): F64#exp22 ^ value
EXP2_F16(value: F16): F16EXP2_F32(value: F32): F32EXP2_F64(value: F64): F64#lnnatural logarithm
LN_F16(value: F16): F16LN_F32(value: F32): F32LN_F64(value: F64): F64#log2base-2 logarithm
LOG2_F16(value: F16): F16LOG2_F32(value: F32): F32LOG2_F64(value: F64): F64#log10base-10 logarithm
LOG10_F16(value: F16): F16LOG10_F32(value: F32): F32LOG10_F64(value: F64): F64#sinsine (radians)
SIN_F16(value: F16): F16SIN_F32(value: F32): F32SIN_F64(value: F64): F64#coscosine (radians)
COS_F16(value: F16): F16COS_F32(value: F32): F32COS_F64(value: F64): F64#tantangent (radians)
TAN_F16(value: F16): F16TAN_F32(value: F32): F32TAN_F64(value: F64): F64#asinarcsine
ASIN_F16(value: F16): F16ASIN_F32(value: F32): F32ASIN_F64(value: F64): F64#acosarccosine
ACOS_F16(value: F16): F16ACOS_F32(value: F32): F32ACOS_F64(value: F64): F64#atanarctangent
ATAN_F16(value: F16): F16ATAN_F32(value: F32): F32ATAN_F64(value: F64): F64#sinhhyperbolic sine
SINH_F16(value: F16): F16SINH_F32(value: F32): F32SINH_F64(value: F64): F64#coshhyperbolic cosine
COSH_F16(value: F16): F16COSH_F32(value: F32): F32COSH_F64(value: F64): F64#tanhhyperbolic tangent
TANH_F16(value: F16): F16TANH_F32(value: F32): F32TANH_F64(value: F64): F64#floorround toward negative infinity
FLOOR_F16(value: F16): F16FLOOR_F32(value: F32): F32FLOOR_F64(value: F64): F64#ceilround toward positive infinity
CEIL_F16(value: F16): F16CEIL_F32(value: F32): F32CEIL_F64(value: F64): F64#roundround to nearest, half away from zero
ROUND_F16(value: F16): F16ROUND_F32(value: F32): F32ROUND_F64(value: F64): F64#roundevenround to nearest, half to even
ROUNDEVEN_F16(value: F16): F16ROUNDEVEN_F32(value: F32): F32ROUNDEVEN_F64(value: F64): F64#truncround toward zero
TRUNC_F16(value: F16): F16TRUNC_F32(value: F32): F32TRUNC_F64(value: F64): F64#atan2angle of the point (b, a) - a is y, b is x
ATAN2_F16_F16(a: F16, b: F16): F16ATAN2_F32_F32(a: F32, b: F32): F32ATAN2_F64_F64(a: F64, b: F64): F64#hypotsqrt(a^2 + b^2) without intermediate overflow
HYPOT_F16_F16(a: F16, b: F16): F16HYPOT_F32_F32(a: F32, b: F32): F32HYPOT_F64_F64(a: F64, b: F64): F64#copysigna's magnitude with b's sign
COPYSIGN_F16_F16(a: F16, b: F16): F16COPYSIGN_F32_F32(a: F32, b: F32): F32COPYSIGN_F64_F64(a: F64, b: F64): F64#fmaa * b + c, rounded once
FMA_F16_F16_F16(a: F16, b: F16, c: F16): F16FMA_F32_F32_F32(a: F32, b: F32, c: F32): F32FMA_F64_F64_F64(a: F64, b: F64, c: F64): F64#isnanvalue is NaN
ISNAN_F16(value: F16): BooleanISNAN_F32(value: F32): BooleanISNAN_F64(value: F64): Boolean#isinfvalue is positive or negative infinity
ISINF_F16(value: F16): BooleanISINF_F32(value: F32): BooleanISINF_F64(value: F64): Boolean#bitcastreinterpret the raw IEEE-754 bits, same width, no conversion
BITCAST_F16_U16(value: F16): U16BITCAST_F32_U32(value: F32): U32BITCAST_U16_F16(value: U16): F16BITCAST_U32_F32(value: U32): F32BITCAST_F64_U64(value: F64): U64BITCAST_U64_F64(value: U64): F64#anda and b
AND_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): Boolean#ora or b
OR_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): Boolean#xora xor b
XOR_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): Boolean#iffa iff b
IFF_BOOLEAN_BOOLEAN(a: Boolean, b: Boolean): Boolean#notnot a
NOT_BOOLEAN(value: Boolean): Boolean