UNPKG

expression-evaluation

Version:
21 lines (20 loc) 3.03 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.funcRound = exports.funcFloor = exports.funcCeil = exports.funcAbs = exports.funcRoot = exports.funcPower = exports.funcLogarithm = exports.funcExponent = exports.funcModulo = exports.funcRemainder = exports.funcDivide = exports.funcMultiply = exports.funcNegate = exports.funcSubtract = exports.funcAdd = void 0; const FunctionDefinition_js_1 = require("../FunctionDefinition.js"); const Type_js_1 = require("../Type.js"); exports.funcAdd = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.reduce((acc, val) => acc + val), Type_js_1.typeNumber, [Type_js_1.typeNumber], 2, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcSubtract = new FunctionDefinition_js_1.FunctionDefinition((value, subtrahend) => value - subtrahend, Type_js_1.typeNumber, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcNegate = new FunctionDefinition_js_1.FunctionDefinition((value) => -value, Type_js_1.typeNumber, [Type_js_1.typeNumber]); exports.funcMultiply = new FunctionDefinition_js_1.FunctionDefinition((...values) => values.reduce((acc, val) => acc *= val), Type_js_1.typeNumber, [Type_js_1.typeNumber], 2, FunctionDefinition_js_1.FUNCTION_ARG_MAX); exports.funcDivide = new FunctionDefinition_js_1.FunctionDefinition((value, divisor) => value / divisor, Type_js_1.typeNumber, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcRemainder = new FunctionDefinition_js_1.FunctionDefinition((value, divisor) => value % divisor, Type_js_1.typeNumber, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcModulo = new FunctionDefinition_js_1.FunctionDefinition((value, divisor) => (value % divisor + divisor) % divisor, Type_js_1.typeNumber, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcExponent = new FunctionDefinition_js_1.FunctionDefinition((value) => Math.exp(value), Type_js_1.typeNumber, [Type_js_1.typeNumber]); exports.funcLogarithm = new FunctionDefinition_js_1.FunctionDefinition((value) => Math.log(value), Type_js_1.typeNumber, [Type_js_1.typeNumber]); exports.funcPower = new FunctionDefinition_js_1.FunctionDefinition((value, exponent) => Math.pow(value, exponent), Type_js_1.typeNumber, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcRoot = new FunctionDefinition_js_1.FunctionDefinition((value, exponent) => Math.pow(value, 1 / exponent), Type_js_1.typeNumber, [Type_js_1.typeNumber, Type_js_1.typeNumber]); exports.funcAbs = new FunctionDefinition_js_1.FunctionDefinition((value) => Math.abs(value), Type_js_1.typeNumber, [Type_js_1.typeNumber]); exports.funcCeil = new FunctionDefinition_js_1.FunctionDefinition((value) => Math.ceil(value), Type_js_1.typeNumber, [Type_js_1.typeNumber]); exports.funcFloor = new FunctionDefinition_js_1.FunctionDefinition((value) => Math.floor(value), Type_js_1.typeNumber, [Type_js_1.typeNumber]); exports.funcRound = new FunctionDefinition_js_1.FunctionDefinition((value) => Math.round(value), Type_js_1.typeNumber, [Type_js_1.typeNumber]);