@jrc03c/js-math-tools
Version:
some math tools for JS
37 lines (28 loc) • 656 B
JavaScript
import { isNumber } from "./is-number.mjs"
import { vectorize } from "./vectorize.mjs"
function multiply() {
try {
const x = Object.values(arguments)
if (x.length === 0) return NaN
let resultShouldBeABigInt = false
let out = 1
for (let v of x) {
if (!isNumber(v)) return NaN
if (typeof v === "bigint") {
resultShouldBeABigInt = true
v = Number(v)
}
out *= v
}
if (resultShouldBeABigInt) {
try {
return BigInt(out)
} catch (e) {}
}
return out
} catch (e) {
return NaN
}
}
const vmultiply = vectorize(multiply)
export { vmultiply as multiply }