export const math = { abs: (n: number) => Math.abs(n), floor: (n: number) => Math.floor(n), ceil: (n: number) => Math.ceil(n), round: (n: number) => Math.round(n), min: (...nums: number[]) => Math.min(...nums), max: (...nums: number[]) => Math.max(...nums), pow: (base: number, exp: number) => Math.pow(base, exp), sqrt: (n: number) => Math.sqrt(n), random: () => Math.random(), clamp: (n: number, min: number, max: number) => Math.min(Math.max(n, min), max), sign: (n: number) => Math.sign(n), trunc: (n: number) => Math.trunc(n), // predicates 'even?': (n: number) => n % 2 === 0, 'odd?': (n: number) => n % 2 !== 0, 'positive?': (n: number) => n > 0, 'negative?': (n: number) => n < 0, 'zero?': (n: number) => n === 0, }