{"version":3,"file":"calc.mjs","sources":["../../src/calc.ts"],"sourcesContent":["/**\n * @ Author: Hanrea\n * @ version: 2023-03-06 13:14:21\n * @ copyright: Vecmat (c) - <hi(at)vecmat.com>\n */\nimport * as mathjs from \"mathjs\";\n\n/**\n * Check whether the number is out of range, and give a prompt if it is out of range\n * @param {*number} num\n */\nexport function checkBoundary(num: number) {\n    if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER)\n        throw new Error(`${num} is beyond boundary when transfer to integer, the results may not be accurate`);\n}\n\n/**\n * Exact multiplication\n *\n * @param {number} x\n * @param {number} y\n * @returns {*}  {number}\n */\nexport function multi(x: number, y: number): number {\n    return mathjs.multiply(x, y);\n}\n\n/**\n * Exact addition\n *\n * @param {number} x\n * @param {number} y\n * @returns {*}\n */\nexport function plus(x: number, y: number) {\n    return mathjs.add(x, y);\n}\n\n/**\n * Exact subtraction\n *\n * @param {number} x\n * @param {number} y\n * @returns {*}\n */\nexport function minus(x: number, y: number) {\n    return mathjs.subtract(x, y);\n}\n\n/**\n * Exact division\n *\n * @param {number} num1\n * @param {number} num2\n * @returns {*}  {number}\n */\nexport function divide(x: number, y: number): number {\n    return mathjs.divide(x, y);\n}\n\n/**\n * rounding\n *\n * @param {number} num\n * @param {number} ratio\n * @returns {*}\n */\nexport function round(num: number, ratio: number) {\n    const base = Math.pow(10, ratio);\n    return divide(Math.round(multi(num, base)), base);\n}\n"],"names":[],"mappings":";;AAAA;;;;AAIG;AAGH;;;AAGG;AACG,SAAU,aAAa,CAAC,GAAW,EAAA;IACrC,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB,IAAI,GAAG,GAAG,MAAM,CAAC,gBAAgB;AAC9D,QAAA,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAA,6EAAA,CAA+E,CAAC,CAAC;AAC/G,CAAC;AAED;;;;;;AAMG;AACa,SAAA,KAAK,CAAC,CAAS,EAAE,CAAS,EAAA;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;AAMG;AACa,SAAA,IAAI,CAAC,CAAS,EAAE,CAAS,EAAA;IACrC,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED;;;;;;AAMG;AACa,SAAA,KAAK,CAAC,CAAS,EAAE,CAAS,EAAA;IACtC,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACjC,CAAC;AAED;;;;;;AAMG;AACa,SAAA,MAAM,CAAC,CAAS,EAAE,CAAS,EAAA;IACvC,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED;;;;;;AAMG;AACa,SAAA,KAAK,CAAC,GAAW,EAAE,KAAa,EAAA;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;AACjC,IAAA,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;AACtD;;;;"}