mathjs 10.6.1 → 10.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/HISTORY.md +20 -0
- package/lib/browser/math.js +6 -6
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/function/arithmetic/ceil.js +8 -8
- package/lib/cjs/function/arithmetic/floor.js +8 -8
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/version.js +1 -1
- package/package.json +17 -17
- package/types/index.d.ts +20 -25
- package/types/index.ts +52 -0
@@ -43,19 +43,19 @@ var createCeilNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'con
|
|
43
43
|
if ((0, _number.nearlyEqual)(x, round(x, n), config.epsilon)) {
|
44
44
|
return round(x, n);
|
45
45
|
} else {
|
46
|
-
var
|
47
|
-
|
48
|
-
number =
|
49
|
-
exponent =
|
46
|
+
var _split = "".concat(x, "e").split('e'),
|
47
|
+
_split2 = (0, _slicedToArray2.default)(_split, 2),
|
48
|
+
number = _split2[0],
|
49
|
+
exponent = _split2[1];
|
50
50
|
|
51
51
|
var result = Math.ceil(Number("".concat(number, "e").concat(Number(exponent) + n)));
|
52
52
|
|
53
|
-
var
|
53
|
+
var _split3 = "".concat(result, "e").split('e');
|
54
54
|
|
55
|
-
var
|
55
|
+
var _split4 = (0, _slicedToArray2.default)(_split3, 2);
|
56
56
|
|
57
|
-
number =
|
58
|
-
exponent =
|
57
|
+
number = _split4[0];
|
58
|
+
exponent = _split4[1];
|
59
59
|
return Number("".concat(number, "e").concat(Number(exponent) - n));
|
60
60
|
}
|
61
61
|
}
|
@@ -43,19 +43,19 @@ var createFloorNumber = /* #__PURE__ */(0, _factory.factory)(name, ['typed', 'co
|
|
43
43
|
if ((0, _number.nearlyEqual)(x, round(x, n), config.epsilon)) {
|
44
44
|
return round(x, n);
|
45
45
|
} else {
|
46
|
-
var
|
47
|
-
|
48
|
-
number =
|
49
|
-
exponent =
|
46
|
+
var _split = "".concat(x, "e").split('e'),
|
47
|
+
_split2 = (0, _slicedToArray2.default)(_split, 2),
|
48
|
+
number = _split2[0],
|
49
|
+
exponent = _split2[1];
|
50
50
|
|
51
51
|
var result = Math.floor(Number("".concat(number, "e").concat(Number(exponent) + n)));
|
52
52
|
|
53
|
-
var
|
53
|
+
var _split3 = "".concat(result, "e").split('e');
|
54
54
|
|
55
|
-
var
|
55
|
+
var _split4 = (0, _slicedToArray2.default)(_split3, 2);
|
56
56
|
|
57
|
-
number =
|
58
|
-
exponent =
|
57
|
+
number = _split4[0];
|
58
|
+
exponent = _split4[1];
|
59
59
|
return Number("".concat(number, "e").concat(Number(exponent) - n));
|
60
60
|
}
|
61
61
|
}
|
package/lib/cjs/header.js
CHANGED
@@ -6,8 +6,8 @@
|
|
6
6
|
* It features real and complex numbers, units, matrices, a large set of
|
7
7
|
* mathematical functions, and a flexible expression parser.
|
8
8
|
*
|
9
|
-
* @version 10.6.
|
10
|
-
* @date 2022-
|
9
|
+
* @version 10.6.4
|
10
|
+
* @date 2022-06-28
|
11
11
|
*
|
12
12
|
* @license
|
13
13
|
* Copyright (C) 2013-2022 Jos de Jong <wjosdejong@gmail.com>
|
package/lib/cjs/version.js
CHANGED
@@ -4,7 +4,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
5
5
|
});
|
6
6
|
exports.version = void 0;
|
7
|
-
var version = '10.6.
|
7
|
+
var version = '10.6.4'; // Note: This file is automatically generated when building math.js.
|
8
8
|
// Changes made in this file will be overwritten.
|
9
9
|
|
10
10
|
exports.version = version;
|
package/lib/esm/version.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export var version = '10.6.
|
1
|
+
export var version = '10.6.4'; // Note: This file is automatically generated when building math.js.
|
2
2
|
// Changes made in this file will be overwritten.
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "mathjs",
|
3
|
-
"version": "10.6.
|
3
|
+
"version": "10.6.4",
|
4
4
|
"description": "Math.js is an extensive math library for JavaScript and Node.js. It features a flexible expression parser with support for symbolic computation, comes with a large set of built-in functions and constants, and offers an integrated solution to work with different data types like numbers, big numbers, complex numbers, fractions, units, and matrices.",
|
5
5
|
"author": "Jos de Jong <wjosdejong@gmail.com> (https://github.com/josdejong)",
|
6
6
|
"homepage": "https://mathjs.org",
|
@@ -25,7 +25,7 @@
|
|
25
25
|
"unit"
|
26
26
|
],
|
27
27
|
"dependencies": {
|
28
|
-
"@babel/runtime": "^7.18.
|
28
|
+
"@babel/runtime": "^7.18.6",
|
29
29
|
"complex.js": "^2.1.1",
|
30
30
|
"decimal.js": "^10.3.1",
|
31
31
|
"escape-latex": "^1.2.0",
|
@@ -36,29 +36,29 @@
|
|
36
36
|
"typed-function": "^2.1.0"
|
37
37
|
},
|
38
38
|
"devDependencies": {
|
39
|
-
"@babel/core": "7.18.
|
40
|
-
"@babel/plugin-transform-object-assign": "7.
|
41
|
-
"@babel/plugin-transform-runtime": "7.18.
|
42
|
-
"@babel/preset-env": "7.18.
|
43
|
-
"@babel/register": "7.
|
39
|
+
"@babel/core": "7.18.6",
|
40
|
+
"@babel/plugin-transform-object-assign": "7.18.6",
|
41
|
+
"@babel/plugin-transform-runtime": "7.18.6",
|
42
|
+
"@babel/preset-env": "7.18.6",
|
43
|
+
"@babel/register": "7.18.6",
|
44
44
|
"@types/assert": "1.5.6",
|
45
45
|
"@types/mocha": "9.1.1",
|
46
|
-
"@typescript-eslint/eslint-plugin": "5.
|
47
|
-
"@typescript-eslint/parser": "5.
|
46
|
+
"@typescript-eslint/eslint-plugin": "5.30.0",
|
47
|
+
"@typescript-eslint/parser": "5.30.0",
|
48
48
|
"assert": "2.0.0",
|
49
49
|
"babel-loader": "8.2.5",
|
50
50
|
"benchmark": "2.1.4",
|
51
51
|
"codecov": "3.8.3",
|
52
|
-
"core-js": "3.
|
52
|
+
"core-js": "3.23.3",
|
53
53
|
"del": "6.1.1",
|
54
54
|
"dtslint": "4.2.1",
|
55
|
-
"eslint": "8.
|
55
|
+
"eslint": "8.18.0",
|
56
56
|
"eslint-config-prettier": "8.5.0",
|
57
57
|
"eslint-config-standard": "17.0.0",
|
58
58
|
"eslint-plugin-import": "2.26.0",
|
59
59
|
"eslint-plugin-mocha": "10.0.5",
|
60
|
-
"eslint-plugin-n": "15.2.
|
61
|
-
"eslint-plugin-prettier": "4.
|
60
|
+
"eslint-plugin-n": "15.2.3",
|
61
|
+
"eslint-plugin-prettier": "4.1.0",
|
62
62
|
"eslint-plugin-promise": "6.0.0",
|
63
63
|
"expect-type": "0.13.0",
|
64
64
|
"expr-eval": "2.0.2",
|
@@ -69,7 +69,7 @@
|
|
69
69
|
"handlebars": "4.7.7",
|
70
70
|
"istanbul": "0.4.5",
|
71
71
|
"jsep": "1.3.6",
|
72
|
-
"karma": "6.
|
72
|
+
"karma": "6.4.0",
|
73
73
|
"karma-browserstack-launcher": "1.6.0",
|
74
74
|
"karma-firefox-launcher": "2.1.2",
|
75
75
|
"karma-mocha": "2.0.1",
|
@@ -86,11 +86,11 @@
|
|
86
86
|
"numericjs": "1.2.6",
|
87
87
|
"nyc": "15.1.0",
|
88
88
|
"pad-right": "0.2.2",
|
89
|
-
"prettier": "2.
|
89
|
+
"prettier": "2.7.1",
|
90
90
|
"process": "0.11.10",
|
91
91
|
"sylvester": "0.0.21",
|
92
|
-
"ts-node": "10.8.
|
93
|
-
"typescript": "4.7.
|
92
|
+
"ts-node": "10.8.1",
|
93
|
+
"typescript": "4.7.4",
|
94
94
|
"webpack": "4.46.0",
|
95
95
|
"zeros": "1.0.0"
|
96
96
|
},
|
package/types/index.d.ts
CHANGED
@@ -161,6 +161,10 @@ declare namespace math {
|
|
161
161
|
isHexDigit(c: string): boolean
|
162
162
|
}
|
163
163
|
|
164
|
+
interface NodeCtor {
|
165
|
+
new (): MathNodeCommon
|
166
|
+
}
|
167
|
+
|
164
168
|
interface AccessorNode extends MathNodeCommon {
|
165
169
|
type: 'AccessorNode'
|
166
170
|
isAccessorNode: true
|
@@ -337,13 +341,16 @@ declare namespace math {
|
|
337
341
|
implicit?: boolean
|
338
342
|
): OperatorNode<TOp, TFn, TArgs>
|
339
343
|
}
|
340
|
-
interface ParenthesisNode extends
|
344
|
+
interface ParenthesisNode<TContent extends MathNode = MathNode>
|
345
|
+
extends MathNodeCommon {
|
341
346
|
type: 'ParenthesisNode'
|
342
347
|
isParenthesisNode: true
|
343
|
-
content:
|
348
|
+
content: TContent
|
344
349
|
}
|
345
350
|
interface ParenthesisNodeCtor {
|
346
|
-
new
|
351
|
+
new <TContent extends MathNode>(
|
352
|
+
content: TContent
|
353
|
+
): ParenthesisNode<TContent>
|
347
354
|
}
|
348
355
|
|
349
356
|
interface RangeNode extends MathNodeCommon {
|
@@ -431,6 +438,7 @@ declare namespace math {
|
|
431
438
|
tau: number
|
432
439
|
|
433
440
|
// Class-like constructors
|
441
|
+
Node: NodeCtor
|
434
442
|
AccessorNode: AccessorNodeCtor
|
435
443
|
ArrayNode: ArrayNodeCtor
|
436
444
|
AssignmentNode: AssignmentNodeCtor
|
@@ -3285,10 +3293,12 @@ declare namespace math {
|
|
3285
3293
|
factories: FactoryFunctionMap,
|
3286
3294
|
config?: ConfigOptions
|
3287
3295
|
) => MathJsStatic
|
3288
|
-
factory: <T>(
|
3296
|
+
factory: <T, TDeps extends readonly MathJsFunctionName[]>(
|
3289
3297
|
name: string,
|
3290
|
-
dependencies:
|
3291
|
-
create: (
|
3298
|
+
dependencies: TDeps,
|
3299
|
+
create: (
|
3300
|
+
injected: Pick<MathJsStatic, Extract<MathJsFunctionName, TDeps[number]>>
|
3301
|
+
) => T,
|
3292
3302
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
3293
3303
|
meta?: any
|
3294
3304
|
) => FactoryFunction<T>
|
@@ -3806,22 +3816,7 @@ declare namespace math {
|
|
3806
3816
|
interface MathNodeCommon {
|
3807
3817
|
isNode: true
|
3808
3818
|
comment: string
|
3809
|
-
type:
|
3810
|
-
| 'AccessorNode'
|
3811
|
-
| 'ArrayNode'
|
3812
|
-
| 'AssignmentNode'
|
3813
|
-
| 'BlockNode'
|
3814
|
-
| 'ConditionalNode'
|
3815
|
-
| 'ConstantNode'
|
3816
|
-
| 'FunctionAssignmentNode'
|
3817
|
-
| 'FunctionNode'
|
3818
|
-
| 'IndexNode'
|
3819
|
-
| 'ObjectNode'
|
3820
|
-
| 'OperatorNode'
|
3821
|
-
| 'ParenthesisNode'
|
3822
|
-
| 'RangeNode'
|
3823
|
-
| 'RelationalNode'
|
3824
|
-
| 'SymbolNode'
|
3819
|
+
type: string
|
3825
3820
|
|
3826
3821
|
isUpdateNode?: boolean
|
3827
3822
|
|
@@ -3945,9 +3940,9 @@ declare namespace math {
|
|
3945
3940
|
* transformed.toString(); // returns '(3 ^ 2) + (5 * 3)'
|
3946
3941
|
* ```
|
3947
3942
|
*/
|
3948
|
-
transform(
|
3949
|
-
callback: (node:
|
3950
|
-
):
|
3943
|
+
transform<TResult>(
|
3944
|
+
callback: (node: this, path: string, parent: MathNode) => TResult
|
3945
|
+
): TResult
|
3951
3946
|
|
3952
3947
|
/**
|
3953
3948
|
* `traverse(callback)`
|
package/types/index.ts
CHANGED
@@ -28,6 +28,7 @@ import {
|
|
28
28
|
OperatorNodeFn,
|
29
29
|
OperatorNodeOp,
|
30
30
|
SymbolNode,
|
31
|
+
ParenthesisNode,
|
31
32
|
} from 'mathjs'
|
32
33
|
import * as assert from 'assert'
|
33
34
|
import { expectTypeOf } from 'expect-type'
|
@@ -825,6 +826,17 @@ Complex numbers examples
|
|
825
826
|
}
|
826
827
|
}
|
827
828
|
|
829
|
+
/*
|
830
|
+
Parenthesis examples
|
831
|
+
*/
|
832
|
+
{
|
833
|
+
const math = create(all, {})
|
834
|
+
|
835
|
+
expectTypeOf(
|
836
|
+
new math.ParenthesisNode(new math.ConstantNode(3))
|
837
|
+
).toMatchTypeOf<ParenthesisNode<ConstantNode>>()
|
838
|
+
}
|
839
|
+
|
828
840
|
/*
|
829
841
|
Expressions examples
|
830
842
|
*/
|
@@ -924,6 +936,46 @@ Fractions examples
|
|
924
936
|
const _a = math.fraction('2/3')
|
925
937
|
}
|
926
938
|
|
939
|
+
/*
|
940
|
+
Transform examples
|
941
|
+
*/
|
942
|
+
{
|
943
|
+
const math = create(all, {})
|
944
|
+
{
|
945
|
+
const myTransform1 = (node: MathNode): OperatorNode<'+', 'add'> =>
|
946
|
+
new OperatorNode('+', 'add', [node, new ConstantNode(1)])
|
947
|
+
const myTransform2 = (
|
948
|
+
node: OperatorNode<'+', 'add'>
|
949
|
+
): OperatorNode<'-', 'subtract'> =>
|
950
|
+
new OperatorNode('-', 'subtract', [node, new ConstantNode(5)])
|
951
|
+
|
952
|
+
expectTypeOf(
|
953
|
+
math.parse('sqrt(3^2 + 4^2)').transform(myTransform1)
|
954
|
+
).toMatchTypeOf<OperatorNode<'+', 'add', MathNode[]>>()
|
955
|
+
|
956
|
+
assert.deepStrictEqual(
|
957
|
+
math.parse('sqrt(3^2 + 4^2)').transform(myTransform1).toString(),
|
958
|
+
'sqrt(3 ^ 2 + 4 ^ 2) + 1'
|
959
|
+
)
|
960
|
+
|
961
|
+
expectTypeOf(
|
962
|
+
math
|
963
|
+
.parse('sqrt(3^2 + 4^2)')
|
964
|
+
.transform(myTransform1)
|
965
|
+
.transform(myTransform2)
|
966
|
+
).toMatchTypeOf<OperatorNode<'-', 'subtract', MathNode[]>>()
|
967
|
+
|
968
|
+
assert.deepStrictEqual(
|
969
|
+
math
|
970
|
+
.parse('sqrt(3^2 + 4^2)')
|
971
|
+
.transform(myTransform1)
|
972
|
+
.transform(myTransform2)
|
973
|
+
.toString(),
|
974
|
+
'sqrt(3 ^ 2 + 4 ^ 2) + 1 - 5'
|
975
|
+
)
|
976
|
+
}
|
977
|
+
}
|
978
|
+
|
927
979
|
/*
|
928
980
|
Matrices examples
|
929
981
|
*/
|