import {configDependency} from '../core/Config.js' import {Dependency} from '../core/Dispatcher.js' export const add = (a: number, b: number) => a + b export const unaryMinus = (a: number) => -a export const subtract = (a: number, b: number) => a - b export const multiply = (a: number, b: number) => a * b export const divide = (a: number, b: number) => a / b export const sqrt = (dep: configDependency & Dependency<'complex', [number, number]>) => { if (dep.config.predictable || !dep.complex) { return (a: number) => isNaN(a) ? NaN : Math.sqrt(a) } return (a: number) => { if (isNaN(a)) return NaN if (a >= 0) return Math.sqrt(a) return dep.complex(0, Math.sqrt(unaryMinus(a))) } }