← Back

Module basic

fn abs<T: Signed>(x: T) -> T

Source: basic.joule:8

fn min<T: Ord>(a: T, b: T) -> T

Source: basic.joule:14

fn max<T: Ord>(a: T, b: T) -> T

Source: basic.joule:20

fn clamp<T: Ord>(x: T, lo: T, hi: T) -> T

Source: basic.joule:26

fn floor_div(a: i64, b: i64) -> i64

Source: basic.joule:32

fn modulo(a: i64, b: i64) -> i64

Source: basic.joule:44

fn gcd(mut a: u64, mut b: u64) -> u64

Greatest common divisor

Source: basic.joule:49

fn lcm(a: u64, b: u64) -> u64

Least common multiple

Source: basic.joule:59

fn is_prime(n: u64) -> bool

Check if number is prime

Source: basic.joule:64

fn isqrt(n: u64) -> u64

Integer square root

Source: basic.joule:79

fn powi<T: Num + Copy>(base: T, exp: u32) -> T

Power with integer exponent

Source: basic.joule:93

fn mod_pow(mut base: u64, mut exp: u64, modulus: u64) -> u64

Modular exponentiation: (base^exp) mod modulus

Source: basic.joule:111

fn signum<T: Signed + Ord>(x: T) -> T

Source: basic.joule:129

fn copysign(x: f64, y: f64) -> f64

Source: basic.joule:141

fn fma(a: f64, b: f64, c: f64) -> f64

Source: basic.joule:153

fn lerp(a: f64, b: f64, t: f64) -> f64

Source: basic.joule:161

fn inverse_lerp(a: f64, b: f64, x: f64) -> f64

Source: basic.joule:167

fn remap(x: f64, in_min: f64, in_max: f64, out_min: f64, out_max: f64) -> f64

Source: basic.joule:173

fn smoothstep(edge0: f64, edge1: f64, x: f64) -> f64

Smooth step (cubic Hermite interpolation)

Source: basic.joule:178

fn smootherstep(edge0: f64, edge1: f64, x: f64) -> f64

Smoother step (quintic interpolation)

Source: basic.joule:184

fn wrap(x: f64, max: f64) -> f64

Source: basic.joule:191

fn wrap_range(x: f64, min: f64, max: f64) -> f64

Source: basic.joule:197

fn approx_eq(a: f64, b: f64, epsilon: f64) -> bool

Source: basic.joule:203

fn approx_eq_relative(a: f64, b: f64, rel_epsilon: f64) -> bool

Check if two floats are approximately equal (relative)

Source: basic.joule:208

trait Num: Copy + PartialEq + PartialOrd

Trait for numeric types

Source: basic.joule:219

fn zero() -> Self;

Source: basic.joule:220

fn one() -> Self;

Source: basic.joule:221

trait Signed: Num

Trait for signed numeric types

Source: basic.joule:225

fn neg(self) -> Self;

Source: basic.joule:226

fn zero() -> Self

Source: basic.joule:230

fn one() -> Self

Source: basic.joule:231

fn zero() -> Self

Source: basic.joule:235

fn one() -> Self

Source: basic.joule:236

fn zero() -> Self

Source: basic.joule:240

fn one() -> Self

Source: basic.joule:241

fn zero() -> Self

Source: basic.joule:245

fn one() -> Self

Source: basic.joule:246

fn zero() -> Self

Source: basic.joule:250

fn one() -> Self

Source: basic.joule:251

fn zero() -> Self

Source: basic.joule:255

fn one() -> Self

Source: basic.joule:256

const fn factorial_const(n: u64) -> u64 {

Compile-time factorial

Source: basic.joule:271

const fn binomial_const(n: u64, k: u64) -> u64 {

Compile-time binomial coefficient

Source: basic.joule:279