Skip to content
Open
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ node_modules
/coverage
.eslintcache

lib
test-results
*.generated.js
.note.txt
Expand Down
Binary file added lib/browser/dispatch.wasm
Binary file not shown.
3 changes: 3 additions & 0 deletions lib/browser/math.js

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions lib/browser/math.js.LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
/*!
* decimal.js v10.5.0
* An arbitrary-precision Decimal type for JavaScript.
* https://github.com/MikeMcl/decimal.js
* Copyright (c) 2025 Michael Mclaughlin <M8ch88l@gmail.com>
* MIT Licence
*/

/**
* math.js
* https://github.com/josdejong/mathjs
*
* Math.js is an extensive math library for JavaScript and Node.js,
* It features real and complex numbers, units, matrices, a large set of
* mathematical functions, and a flexible expression parser.
*
* @version 15.2.0
* @date 2026-01-23
*
* @license
* Copyright (C) 2013-2025 Jos de Jong <wjosdejong@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/

/**
* typed-function v5.0.0
* https://github.com/josdejong/typed-function
*
* Type checking for JavaScript functions
*
* @license MIT
*/
1 change: 1 addition & 0 deletions lib/browser/math.js.map

Large diffs are not rendered by default.

3 changes: 3 additions & 0 deletions lib/browser/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"type": "commonjs"
}
130 changes: 130 additions & 0 deletions lib/cjs/constants.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.createVersion = exports.createUppercasePi = exports.createUppercaseE = exports.createTrue = exports.createTau = exports.createSQRT2 = exports.createSQRT1_2 = exports.createPi = exports.createPhi = exports.createNull = exports.createNaN = exports.createLOG2E = exports.createLOG10E = exports.createLN2 = exports.createLN10 = exports.createInfinity = exports.createI = exports.createFalse = exports.createE = void 0;
var _factory = require("./utils/factory.js");
var _version = require("./version.js");
var _constants = require("./utils/bignumber/constants.js");
var _index = require("./plain/number/index.js");
const createTrue = exports.createTrue = /* #__PURE__ */(0, _factory.factory)('true', [], () => true);
const createFalse = exports.createFalse = /* #__PURE__ */(0, _factory.factory)('false', [], () => false);
const createNull = exports.createNull = /* #__PURE__ */(0, _factory.factory)('null', [], () => null);
const createInfinity = exports.createInfinity = /* #__PURE__ */recreateFactory('Infinity', ['config', '?BigNumber'], _ref => {
let {
config,
BigNumber
} = _ref;
return config.number === 'BigNumber' ? new BigNumber(Infinity) : Infinity;
});
const createNaN = exports.createNaN = /* #__PURE__ */recreateFactory('NaN', ['config', '?BigNumber'], _ref2 => {
let {
config,
BigNumber
} = _ref2;
return config.number === 'BigNumber' ? new BigNumber(NaN) : NaN;
});
const createPi = exports.createPi = /* #__PURE__ */recreateFactory('pi', ['config', '?BigNumber'], _ref3 => {
let {
config,
BigNumber
} = _ref3;
return config.number === 'BigNumber' ? (0, _constants.createBigNumberPi)(BigNumber) : _index.pi;
});
const createTau = exports.createTau = /* #__PURE__ */recreateFactory('tau', ['config', '?BigNumber'], _ref4 => {
let {
config,
BigNumber
} = _ref4;
return config.number === 'BigNumber' ? (0, _constants.createBigNumberTau)(BigNumber) : _index.tau;
});
const createE = exports.createE = /* #__PURE__ */recreateFactory('e', ['config', '?BigNumber'], _ref5 => {
let {
config,
BigNumber
} = _ref5;
return config.number === 'BigNumber' ? (0, _constants.createBigNumberE)(BigNumber) : _index.e;
});

// golden ratio, (1+sqrt(5))/2
const createPhi = exports.createPhi = /* #__PURE__ */recreateFactory('phi', ['config', '?BigNumber'], _ref6 => {
let {
config,
BigNumber
} = _ref6;
return config.number === 'BigNumber' ? (0, _constants.createBigNumberPhi)(BigNumber) : _index.phi;
});
const createLN2 = exports.createLN2 = /* #__PURE__ */recreateFactory('LN2', ['config', '?BigNumber'], _ref7 => {
let {
config,
BigNumber
} = _ref7;
return config.number === 'BigNumber' ? new BigNumber(2).ln() : Math.LN2;
});
const createLN10 = exports.createLN10 = /* #__PURE__ */recreateFactory('LN10', ['config', '?BigNumber'], _ref8 => {
let {
config,
BigNumber
} = _ref8;
return config.number === 'BigNumber' ? new BigNumber(10).ln() : Math.LN10;
});
const createLOG2E = exports.createLOG2E = /* #__PURE__ */recreateFactory('LOG2E', ['config', '?BigNumber'], _ref9 => {
let {
config,
BigNumber
} = _ref9;
return config.number === 'BigNumber' ? new BigNumber(1).div(new BigNumber(2).ln()) : Math.LOG2E;
});
const createLOG10E = exports.createLOG10E = /* #__PURE__ */recreateFactory('LOG10E', ['config', '?BigNumber'], _ref0 => {
let {
config,
BigNumber
} = _ref0;
return config.number === 'BigNumber' ? new BigNumber(1).div(new BigNumber(10).ln()) : Math.LOG10E;
});
const createSQRT1_2 = exports.createSQRT1_2 = /* #__PURE__ */recreateFactory(
// eslint-disable-line camelcase
'SQRT1_2', ['config', '?BigNumber'], _ref1 => {
let {
config,
BigNumber
} = _ref1;
return config.number === 'BigNumber' ? new BigNumber('0.5').sqrt() : Math.SQRT1_2;
});
const createSQRT2 = exports.createSQRT2 = /* #__PURE__ */recreateFactory('SQRT2', ['config', '?BigNumber'], _ref10 => {
let {
config,
BigNumber
} = _ref10;
return config.number === 'BigNumber' ? new BigNumber(2).sqrt() : Math.SQRT2;
});
const createI = exports.createI = /* #__PURE__ */recreateFactory('i', ['Complex'], _ref11 => {
let {
Complex
} = _ref11;
return Complex.I;
});

// for backward compatibility with v5
const createUppercasePi = exports.createUppercasePi = /* #__PURE__ */(0, _factory.factory)('PI', ['pi'], _ref12 => {
let {
pi
} = _ref12;
return pi;
});
const createUppercaseE = exports.createUppercaseE = /* #__PURE__ */(0, _factory.factory)('E', ['e'], _ref13 => {
let {
e
} = _ref13;
return e;
});
const createVersion = exports.createVersion = /* #__PURE__ */(0, _factory.factory)('version', [], () => _version.version);

// helper function to create a factory with a flag recreateOnConfigChange
// idea: allow passing optional properties to be attached to the factory function as 4th argument?
function recreateFactory(name, dependencies, create) {
return (0, _factory.factory)(name, dependencies, create, {
recreateOnConfigChange: true
});
}
35 changes: 35 additions & 0 deletions lib/cjs/core/config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
"use strict";

Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DEFAULT_CONFIG = void 0;
const DEFAULT_CONFIG = exports.DEFAULT_CONFIG = {
// minimum relative difference between two compared values,
// used by all comparison functions
relTol: 1e-12,
// minimum absolute difference between two compared values,
// used by all comparison functions
absTol: 1e-15,
// type of default matrix output. Choose 'matrix' (default) or 'array'
matrix: 'Matrix',
// type of default number output. Choose 'number' (default) 'BigNumber', 'bigint', or 'Fraction'
number: 'number',
// type of fallback used for config { number: 'bigint' } when a value cannot be represented
// in the configured numeric type. Choose 'number' (default) or 'BigNumber'.
numberFallback: 'number',
// number of significant digits in BigNumbers
precision: 64,
// predictable output type of functions. When true, output type depends only
// on the input types. When false (default), output type can vary depending
// on input values. For example `math.sqrt(-4)` returns `complex('2i')` when
// predictable is false, and returns `NaN` when true.
predictable: false,
// random seed for seeded pseudo random number generation
// null = randomly seed
randomSeed: null,
// legacy behavior for matrix subset. When true, the subset function
// returns a matrix or array with the same size as the index (except for scalars).
// When false, it returns a matrix or array with a size depending on the type of index.
legacySubset: false
};
Loading