mathjs 14.0.1 → 14.2.0
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/NOTICE +1 -1
- package/README.md +7 -7
- package/bin/cli.js +1 -1
- package/lib/browser/math.js +1 -1
- package/lib/browser/math.js.LICENSE.txt +5 -5
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/function/import.js +14 -4
- package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/{dependenciesApply.generated.js → dependenciesMapSlices.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesAny/{dependenciesApplyTransform.generated.js → dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesRandomInt.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesVariance.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/cjs/entry/dependenciesAny.generated.js +14 -14
- package/lib/cjs/entry/dependenciesNumber/{dependenciesApply.generated.js → dependenciesMapSlices.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesNumber/{dependenciesApplyTransform.generated.js → dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/cjs/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesRandomInt.generated.js +2 -0
- package/lib/cjs/entry/dependenciesNumber/dependenciesVariance.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/cjs/entry/dependenciesNumber.generated.js +14 -14
- package/lib/cjs/entry/impureFunctionsAny.generated.js +86 -85
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +14 -14
- package/lib/cjs/entry/pureFunctionsAny.generated.js +330 -325
- package/lib/cjs/entry/pureFunctionsNumber.generated.js +18 -15
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/cjs/expression/embeddedDocs/function/arithmetic/sign.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/mapSlices.js +17 -0
- package/lib/cjs/expression/transform/index.transform.js +2 -2
- package/lib/cjs/expression/transform/{apply.transform.js → mapSlices.transform.js} +11 -10
- package/lib/cjs/expression/transform/quantileSeq.transform.js +5 -3
- package/lib/cjs/expression/transform/variance.transform.js +3 -3
- package/lib/cjs/factoriesAny.js +14 -14
- package/lib/cjs/factoriesNumber.js +16 -15
- package/lib/cjs/function/arithmetic/ceil.js +34 -26
- package/lib/cjs/function/arithmetic/fix.js +3 -0
- package/lib/cjs/function/arithmetic/floor.js +41 -26
- package/lib/cjs/function/arithmetic/log.js +12 -5
- package/lib/cjs/function/arithmetic/log10.js +15 -7
- package/lib/cjs/function/arithmetic/log2.js +9 -4
- package/lib/cjs/function/arithmetic/round.js +4 -0
- package/lib/cjs/function/matrix/ctranspose.js +1 -1
- package/lib/cjs/function/matrix/{apply.js → mapSlices.js} +19 -12
- package/lib/cjs/function/matrix/matrixFromFunction.js +36 -3
- package/lib/cjs/function/matrix/range.js +54 -5
- package/lib/cjs/function/probability/randomInt.js +26 -3
- package/lib/cjs/function/relational/larger.js +12 -4
- package/lib/cjs/function/relational/smaller.js +12 -4
- package/lib/cjs/function/statistics/max.js +1 -1
- package/lib/cjs/function/statistics/min.js +1 -1
- package/lib/cjs/function/statistics/quantileSeq.js +4 -9
- package/lib/cjs/function/statistics/variance.js +3 -3
- package/lib/cjs/function/string/hex.js +1 -1
- package/lib/cjs/function/string/print.js +2 -2
- package/lib/cjs/function/trigonometry/acoth.js +1 -1
- package/lib/cjs/function/trigonometry/acsc.js +1 -1
- package/lib/cjs/function/trigonometry/asin.js +1 -1
- package/lib/cjs/function/trigonometry/atan2.js +2 -1
- package/lib/cjs/function/trigonometry/cos.js +1 -1
- package/lib/cjs/function/trigonometry/sin.js +1 -1
- package/lib/cjs/function/utils/isInteger.js +1 -1
- package/lib/cjs/header.js +3 -3
- package/lib/cjs/type/matrix/MatrixIndex.js +6 -3
- package/lib/cjs/type/matrix/Range.js +15 -8
- package/lib/cjs/utils/bigint.js +33 -0
- package/lib/cjs/utils/factory.js +5 -2
- package/lib/cjs/utils/number.js +7 -19
- package/lib/cjs/utils/snapshot.js +8 -1
- package/lib/cjs/version.js +1 -1
- package/lib/esm/core/function/import.js +14 -4
- package/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
- package/lib/esm/entry/{dependenciesNumber/dependenciesApply.generated.js → dependenciesAny/dependenciesMapSlices.generated.js} +3 -3
- package/lib/esm/entry/{dependenciesNumber/dependenciesApplyTransform.generated.js → dependenciesAny/dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesRandomInt.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
- package/lib/esm/entry/dependenciesAny/dependenciesVariance.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/esm/entry/dependenciesAny.generated.js +2 -2
- package/lib/esm/entry/{dependenciesAny/dependenciesApply.generated.js → dependenciesNumber/dependenciesMapSlices.generated.js} +3 -3
- package/lib/esm/entry/{dependenciesAny/dependenciesApplyTransform.generated.js → dependenciesNumber/dependenciesMapSlicesTransform.generated.js} +3 -3
- package/lib/esm/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesRandomInt.generated.js +2 -0
- package/lib/esm/entry/dependenciesNumber/dependenciesVariance.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +2 -2
- package/lib/esm/entry/dependenciesNumber.generated.js +2 -2
- package/lib/esm/entry/impureFunctionsAny.generated.js +88 -87
- package/lib/esm/entry/impureFunctionsNumber.generated.js +16 -16
- package/lib/esm/entry/pureFunctionsAny.generated.js +328 -323
- package/lib/esm/entry/pureFunctionsNumber.generated.js +17 -14
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -0
- package/lib/esm/expression/embeddedDocs/function/arithmetic/sign.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/mapSlices.js +11 -0
- package/lib/esm/expression/transform/index.transform.js +3 -3
- package/lib/esm/expression/transform/mapSlices.transform.js +47 -0
- package/lib/esm/expression/transform/quantileSeq.transform.js +5 -3
- package/lib/esm/expression/transform/variance.transform.js +3 -3
- package/lib/esm/factoriesAny.js +2 -2
- package/lib/esm/factoriesNumber.js +2 -2
- package/lib/esm/function/arithmetic/ceil.js +35 -27
- package/lib/esm/function/arithmetic/fix.js +3 -0
- package/lib/esm/function/arithmetic/floor.js +42 -27
- package/lib/esm/function/arithmetic/log.js +12 -5
- package/lib/esm/function/arithmetic/log10.js +16 -8
- package/lib/esm/function/arithmetic/log2.js +9 -4
- package/lib/esm/function/arithmetic/round.js +4 -0
- package/lib/esm/function/matrix/ctranspose.js +1 -1
- package/lib/esm/function/matrix/{apply.js → mapSlices.js} +18 -11
- package/lib/esm/function/matrix/matrixFromFunction.js +36 -3
- package/lib/esm/function/matrix/range.js +54 -5
- package/lib/esm/function/probability/randomInt.js +26 -3
- package/lib/esm/function/relational/larger.js +12 -4
- package/lib/esm/function/relational/smaller.js +12 -4
- package/lib/esm/function/statistics/max.js +1 -1
- package/lib/esm/function/statistics/min.js +1 -1
- package/lib/esm/function/statistics/quantileSeq.js +4 -9
- package/lib/esm/function/statistics/variance.js +3 -3
- package/lib/esm/function/string/hex.js +1 -1
- package/lib/esm/function/string/print.js +2 -2
- package/lib/esm/function/trigonometry/acoth.js +1 -1
- package/lib/esm/function/trigonometry/acsc.js +1 -1
- package/lib/esm/function/trigonometry/asin.js +1 -1
- package/lib/esm/function/trigonometry/atan2.js +2 -1
- package/lib/esm/function/trigonometry/cos.js +1 -1
- package/lib/esm/function/trigonometry/sin.js +1 -1
- package/lib/esm/function/utils/isInteger.js +1 -1
- package/lib/esm/header.js +1 -1
- package/lib/esm/type/matrix/MatrixIndex.js +6 -3
- package/lib/esm/type/matrix/Range.js +16 -9
- package/lib/esm/utils/bigint.js +27 -0
- package/lib/esm/utils/factory.js +5 -2
- package/lib/esm/utils/number.js +6 -17
- package/lib/esm/utils/snapshot.js +8 -1
- package/lib/esm/version.js +1 -1
- package/package.json +13 -11
- package/types/index.d.ts +75 -12
- package/lib/esm/expression/transform/apply.transform.js +0 -44
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { factory } from '../../utils/factory.js';
|
|
2
|
-
import { deepMap } from '../../utils/collection.js';
|
|
3
1
|
import { log2Number } from '../../plain/number/index.js';
|
|
2
|
+
import { promoteLogarithm } from '../../utils/bigint.js';
|
|
3
|
+
import { deepMap } from '../../utils/collection.js';
|
|
4
|
+
import { factory } from '../../utils/factory.js';
|
|
4
5
|
var name = 'log2';
|
|
5
6
|
var dependencies = ['typed', 'config', 'Complex'];
|
|
6
7
|
export var createLog2 = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
@@ -34,22 +35,26 @@ export var createLog2 = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
34
35
|
* @return {number | BigNumber | Complex | Array | Matrix}
|
|
35
36
|
* Returns the 2-base logarithm of `x`
|
|
36
37
|
*/
|
|
38
|
+
function complexLog2Number(x) {
|
|
39
|
+
return _log2Complex(new Complex(x, 0));
|
|
40
|
+
}
|
|
37
41
|
return typed(name, {
|
|
38
42
|
number: function number(x) {
|
|
39
43
|
if (x >= 0 || config.predictable) {
|
|
40
44
|
return log2Number(x);
|
|
41
45
|
} else {
|
|
42
46
|
// negative value -> complex value computation
|
|
43
|
-
return
|
|
47
|
+
return complexLog2Number(x);
|
|
44
48
|
}
|
|
45
49
|
},
|
|
50
|
+
bigint: promoteLogarithm(4, log2Number, config, complexLog2Number),
|
|
46
51
|
Complex: _log2Complex,
|
|
47
52
|
BigNumber: function BigNumber(x) {
|
|
48
53
|
if (!x.isNegative() || config.predictable) {
|
|
49
54
|
return x.log(2);
|
|
50
55
|
} else {
|
|
51
56
|
// downgrade to number, return Complex valued result
|
|
52
|
-
return
|
|
57
|
+
return complexLog2Number(x.toNumber());
|
|
53
58
|
}
|
|
54
59
|
},
|
|
55
60
|
'Array | Matrix': typed.referToSelf(self => x => deepMap(x, self))
|
|
@@ -137,6 +137,10 @@ export var createRound = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
137
137
|
var xSelected = bigNearlyEqual(x, xEpsilon, config.relTol, config.absTol) ? xEpsilon : x;
|
|
138
138
|
return xSelected.toDecimalPlaces(n.toNumber());
|
|
139
139
|
},
|
|
140
|
+
// bigints can't be rounded
|
|
141
|
+
bigint: b => b,
|
|
142
|
+
'bigint, number': (b, _dummy) => b,
|
|
143
|
+
'bigint, BigNumber': (b, _dummy) => b,
|
|
140
144
|
Fraction: function Fraction(x) {
|
|
141
145
|
return x.round();
|
|
142
146
|
},
|
|
@@ -20,7 +20,7 @@ export var createCtranspose = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
20
20
|
* Examples:
|
|
21
21
|
*
|
|
22
22
|
* const A = [[1, 2, 3], [4, 5, math.complex(6,7)]]
|
|
23
|
-
* math.ctranspose(A)
|
|
23
|
+
* math.ctranspose(A) // returns [[1, 4], [2, 5], [3, {re:6,im:-7}]]
|
|
24
24
|
*
|
|
25
25
|
* See also:
|
|
26
26
|
*
|
|
@@ -2,9 +2,9 @@ import { factory } from '../../utils/factory.js';
|
|
|
2
2
|
import { arraySize } from '../../utils/array.js';
|
|
3
3
|
import { isMatrix } from '../../utils/is.js';
|
|
4
4
|
import { IndexError } from '../../error/IndexError.js';
|
|
5
|
-
var name = '
|
|
5
|
+
var name = 'mapSlices';
|
|
6
6
|
var dependencies = ['typed', 'isInteger'];
|
|
7
|
-
export var
|
|
7
|
+
export var createMapSlices = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
8
8
|
var {
|
|
9
9
|
typed,
|
|
10
10
|
isInteger
|
|
@@ -16,7 +16,7 @@ export var createApply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
16
16
|
*
|
|
17
17
|
* Syntax:
|
|
18
18
|
*
|
|
19
|
-
* math.
|
|
19
|
+
* math.mapSlices(A, dim, callback)
|
|
20
20
|
*
|
|
21
21
|
* Where:
|
|
22
22
|
*
|
|
@@ -27,19 +27,24 @@ export var createApply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
27
27
|
* const A = [[1, 2], [3, 4]]
|
|
28
28
|
* const sum = math.sum
|
|
29
29
|
*
|
|
30
|
-
* math.
|
|
31
|
-
* math.
|
|
30
|
+
* math.mapSlices(A, 0, sum) // returns [4, 6]
|
|
31
|
+
* math.mapSlices(A, 1, sum) // returns [3, 7]
|
|
32
32
|
*
|
|
33
33
|
* See also:
|
|
34
34
|
*
|
|
35
35
|
* map, filter, forEach
|
|
36
36
|
*
|
|
37
|
+
* Note:
|
|
38
|
+
*
|
|
39
|
+
* `mapSlices()` is also currently available via its deprecated
|
|
40
|
+
* synonym `apply()`.
|
|
41
|
+
*
|
|
37
42
|
* @param {Array | Matrix} array The input Matrix
|
|
38
43
|
* @param {number} dim The dimension along which the callback is applied
|
|
39
44
|
* @param {Function} callback The callback function that is applied. This Function
|
|
40
45
|
* should take an array or 1-d matrix as an input and
|
|
41
46
|
* return a number.
|
|
42
|
-
* @return {Array | Matrix} res The residual matrix with the function
|
|
47
|
+
* @return {Array | Matrix} res The residual matrix with the function mapped on the slices over some dimension.
|
|
43
48
|
*/
|
|
44
49
|
return typed(name, {
|
|
45
50
|
'Array | Matrix, number | BigNumber, function': function Array__Matrix_number__BigNumber_function(mat, dim, callback) {
|
|
@@ -51,12 +56,14 @@ export var createApply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
51
56
|
throw new IndexError(dim, size.length);
|
|
52
57
|
}
|
|
53
58
|
if (isMatrix(mat)) {
|
|
54
|
-
return mat.create(
|
|
59
|
+
return mat.create(_mapSlices(mat.valueOf(), dim, callback), mat.datatype());
|
|
55
60
|
} else {
|
|
56
|
-
return
|
|
61
|
+
return _mapSlices(mat, dim, callback);
|
|
57
62
|
}
|
|
58
63
|
}
|
|
59
64
|
});
|
|
65
|
+
}, {
|
|
66
|
+
formerly: 'apply'
|
|
60
67
|
});
|
|
61
68
|
|
|
62
69
|
/**
|
|
@@ -67,7 +74,7 @@ export var createApply = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
67
74
|
* @returns {Array} ret
|
|
68
75
|
* @private
|
|
69
76
|
*/
|
|
70
|
-
function
|
|
77
|
+
function _mapSlices(mat, dim, callback) {
|
|
71
78
|
var i, ret, tran;
|
|
72
79
|
if (dim <= 0) {
|
|
73
80
|
if (!Array.isArray(mat[0])) {
|
|
@@ -76,14 +83,14 @@ function _apply(mat, dim, callback) {
|
|
|
76
83
|
tran = _switch(mat);
|
|
77
84
|
ret = [];
|
|
78
85
|
for (i = 0; i < tran.length; i++) {
|
|
79
|
-
ret[i] =
|
|
86
|
+
ret[i] = _mapSlices(tran[i], dim - 1, callback);
|
|
80
87
|
}
|
|
81
88
|
return ret;
|
|
82
89
|
}
|
|
83
90
|
} else {
|
|
84
91
|
ret = [];
|
|
85
92
|
for (i = 0; i < mat.length; i++) {
|
|
86
|
-
ret[i] =
|
|
93
|
+
ret[i] = _mapSlices(mat[i], dim - 1, callback);
|
|
87
94
|
}
|
|
88
95
|
return ret;
|
|
89
96
|
}
|
|
@@ -9,8 +9,10 @@ export var createMatrixFromFunction = /* #__PURE__ */factory(name, dependencies,
|
|
|
9
9
|
} = _ref;
|
|
10
10
|
/**
|
|
11
11
|
* Create a matrix by evaluating a generating function at each index.
|
|
12
|
-
* The simplest overload returns a multi-dimensional array as long as `size`
|
|
13
|
-
*
|
|
12
|
+
* The simplest overload returns a multi-dimensional array as long as `size`
|
|
13
|
+
* is an array.
|
|
14
|
+
* Passing `size` as a Matrix or specifying a `format` will result in
|
|
15
|
+
* returning a Matrix.
|
|
14
16
|
*
|
|
15
17
|
* Syntax:
|
|
16
18
|
*
|
|
@@ -20,6 +22,37 @@ export var createMatrixFromFunction = /* #__PURE__ */factory(name, dependencies,
|
|
|
20
22
|
* math.matrixFromFunction(size, format, fn)
|
|
21
23
|
* math.matrixFromFunction(size, format, datatype, fn)
|
|
22
24
|
*
|
|
25
|
+
* Where:
|
|
26
|
+
*
|
|
27
|
+
* - `size: (number[] | Matrix)`
|
|
28
|
+
* A vector giving the extent of the array to be created in each
|
|
29
|
+
* dimension. If size has one entry, a vector is created; if it
|
|
30
|
+
* has two, a rectangular array/Matrix is created; if three, a
|
|
31
|
+
* three-dimensional array/Matrix is created; and so on.
|
|
32
|
+
* - `fn: (index: number[]) => MathType`
|
|
33
|
+
* The callback function that will generate the entries of the
|
|
34
|
+
* matrix. It is called in turn with the index of each entry of
|
|
35
|
+
* the matrix. The index is always an ordinary array of numbers
|
|
36
|
+
* with the same length as _size_. So for vectors, you will get
|
|
37
|
+
* indices like `[0]` or `[1]`, whereas for matrices, you will
|
|
38
|
+
* get indices like `[2, 0]` or `[1,3]`. The return value may
|
|
39
|
+
* be any type that can go in an array or Matrix entry, although
|
|
40
|
+
* if you supply the _datatype_ argument, you must yourself ensure
|
|
41
|
+
* the type of the return value matches. Note that currently,
|
|
42
|
+
* your callback _fn_ will receive 0-based indices for the matrix
|
|
43
|
+
* entries, regardless of whether matrixFromFunction is invoked
|
|
44
|
+
* directly from JavaScript or via the mathjs expression language.
|
|
45
|
+
* - `format: 'dense'|'sparse'`
|
|
46
|
+
* Specifies the storage format for the resulting Matrix. Note that
|
|
47
|
+
* if this argument is given, the return value will always be a
|
|
48
|
+
* Matrix (rather than possibly an Array).
|
|
49
|
+
* - `datatype: string`
|
|
50
|
+
* Specifies the data type of entries of the new matrix. If given,
|
|
51
|
+
* it should be the name of a data type that mathjs supports, as
|
|
52
|
+
* returned by the math.typeOf function. It is up to the caller
|
|
53
|
+
* to make certain that all values returned by _fn_ are consistent
|
|
54
|
+
* with this datatype if specified.
|
|
55
|
+
*
|
|
23
56
|
* Examples:
|
|
24
57
|
*
|
|
25
58
|
* math.matrixFromFunction([3,3], i => i[0] - i[1]) // an antisymmetric matrix
|
|
@@ -28,7 +61,7 @@ export var createMatrixFromFunction = /* #__PURE__ */factory(name, dependencies,
|
|
|
28
61
|
*
|
|
29
62
|
* See also:
|
|
30
63
|
*
|
|
31
|
-
* matrix, zeros
|
|
64
|
+
* matrix, typeOf, zeros
|
|
32
65
|
*
|
|
33
66
|
* @param {Array | Matrix} size The size of the matrix to be created
|
|
34
67
|
* @param {function} fn Callback function invoked for every entry in the matrix
|
|
@@ -35,36 +35,48 @@ export var createRange = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
35
35
|
*
|
|
36
36
|
* - `str: string`
|
|
37
37
|
* A string 'start:end' or 'start:step:end'
|
|
38
|
-
* - `start: {number | BigNumber | Unit}`
|
|
38
|
+
* - `start: {number | bigint | BigNumber | Fraction | Unit}`
|
|
39
39
|
* Start of the range
|
|
40
|
-
* - `end: number | BigNumber | Unit`
|
|
40
|
+
* - `end: number | bigint | BigNumber | Fraction | Unit`
|
|
41
41
|
* End of the range, excluded by default, included when parameter includeEnd=true
|
|
42
|
-
* - `step: number | BigNumber | Unit`
|
|
42
|
+
* - `step: number | bigint | BigNumber | Fraction | Unit`
|
|
43
43
|
* Step size. Default value is 1.
|
|
44
44
|
* - `includeEnd: boolean`
|
|
45
45
|
* Option to specify whether to include the end or not. False by default.
|
|
46
46
|
*
|
|
47
|
+
* Note that the return type of the range is taken from the type of
|
|
48
|
+
* the start/end. If only one these is a built-in `number` type, it will
|
|
49
|
+
* be promoted to the type of the other endpoint. However, in the case of
|
|
50
|
+
* Unit values, both endpoints must have compatible units, and the return
|
|
51
|
+
* value will have compatible units as well.
|
|
52
|
+
*
|
|
47
53
|
* Examples:
|
|
48
54
|
*
|
|
49
55
|
* math.range(2, 6) // [2, 3, 4, 5]
|
|
50
56
|
* math.range(2, -3, -1) // [2, 1, 0, -1, -2]
|
|
51
57
|
* math.range('2:1:6') // [2, 3, 4, 5]
|
|
52
58
|
* math.range(2, 6, true) // [2, 3, 4, 5, 6]
|
|
59
|
+
* math.range(2, math.fraction(8,3), math.fraction(1,3)) // [fraction(2), fraction(7,3)]
|
|
53
60
|
* math.range(math.unit(2, 'm'), math.unit(-3, 'm'), math.unit(-1, 'm')) // [2 m, 1 m, 0 m , -1 m, -2 m]
|
|
54
61
|
*
|
|
55
62
|
* See also:
|
|
56
63
|
*
|
|
57
64
|
* ones, zeros, size, subset
|
|
58
65
|
*
|
|
59
|
-
* @param {*} args Parameters describing the
|
|
66
|
+
* @param {*} args Parameters describing the range's `start`, `end`, and optional `step`.
|
|
60
67
|
* @return {Array | Matrix} range
|
|
61
68
|
*/
|
|
62
69
|
return typed(name, {
|
|
63
70
|
// TODO: simplify signatures when typed-function supports default values and optional arguments
|
|
64
71
|
|
|
65
|
-
// TODO: a number or boolean should not be converted to string here
|
|
66
72
|
string: _strRange,
|
|
67
73
|
'string, boolean': _strRange,
|
|
74
|
+
number: function number(oops) {
|
|
75
|
+
throw new TypeError("Too few arguments to function range(): ".concat(oops));
|
|
76
|
+
},
|
|
77
|
+
boolean: function boolean(oops) {
|
|
78
|
+
throw new TypeError("Unexpected type of argument 1 to function range(): ".concat(oops, ", number|bigint|BigNumber|Fraction"));
|
|
79
|
+
},
|
|
68
80
|
'number, number': function number_number(start, end) {
|
|
69
81
|
return _out(_range(start, end, 1, false));
|
|
70
82
|
},
|
|
@@ -77,6 +89,31 @@ export var createRange = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
77
89
|
'number, number, number, boolean': function number_number_number_boolean(start, end, step, includeEnd) {
|
|
78
90
|
return _out(_range(start, end, step, includeEnd));
|
|
79
91
|
},
|
|
92
|
+
// Handle bigints; if either limit is bigint, range should be too
|
|
93
|
+
'bigint, bigint|number': function bigint_bigintNumber(start, end) {
|
|
94
|
+
return _out(_range(start, end, 1n, false));
|
|
95
|
+
},
|
|
96
|
+
'number, bigint': function number_bigint(start, end) {
|
|
97
|
+
return _out(_range(BigInt(start), end, 1n, false));
|
|
98
|
+
},
|
|
99
|
+
'bigint, bigint|number, bigint|number': function bigint_bigintNumber_bigintNumber(start, end, step) {
|
|
100
|
+
return _out(_range(start, end, BigInt(step), false));
|
|
101
|
+
},
|
|
102
|
+
'number, bigint, bigint|number': function number_bigint_bigintNumber(start, end, step) {
|
|
103
|
+
return _out(_range(BigInt(start), end, BigInt(step), false));
|
|
104
|
+
},
|
|
105
|
+
'bigint, bigint|number, boolean': function bigint_bigintNumber_boolean(start, end, includeEnd) {
|
|
106
|
+
return _out(_range(start, end, 1n, includeEnd));
|
|
107
|
+
},
|
|
108
|
+
'number, bigint, boolean': function number_bigint_boolean(start, end, includeEnd) {
|
|
109
|
+
return _out(_range(BigInt(start), end, 1n, includeEnd));
|
|
110
|
+
},
|
|
111
|
+
'bigint, bigint|number, bigint|number, boolean': function bigint_bigintNumber_bigintNumber_boolean(start, end, step, includeEnd) {
|
|
112
|
+
return _out(_range(start, end, BigInt(step), includeEnd));
|
|
113
|
+
},
|
|
114
|
+
'number, bigint, bigint|number, boolean': function number_bigint_bigintNumber_boolean(start, end, step, includeEnd) {
|
|
115
|
+
return _out(_range(BigInt(start), end, BigInt(step), includeEnd));
|
|
116
|
+
},
|
|
80
117
|
'BigNumber, BigNumber': function BigNumber_BigNumber(start, end) {
|
|
81
118
|
var BigNumber = start.constructor;
|
|
82
119
|
return _out(_range(start, end, new BigNumber(1), false));
|
|
@@ -91,6 +128,18 @@ export var createRange = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
91
128
|
'BigNumber, BigNumber, BigNumber, boolean': function BigNumber_BigNumber_BigNumber_boolean(start, end, step, includeEnd) {
|
|
92
129
|
return _out(_range(start, end, step, includeEnd));
|
|
93
130
|
},
|
|
131
|
+
'Fraction, Fraction': function Fraction_Fraction(start, end) {
|
|
132
|
+
return _out(_range(start, end, 1, false));
|
|
133
|
+
},
|
|
134
|
+
'Fraction, Fraction, Fraction': function Fraction_Fraction_Fraction(start, end, step) {
|
|
135
|
+
return _out(_range(start, end, step, false));
|
|
136
|
+
},
|
|
137
|
+
'Fraction, Fraction, boolean': function Fraction_Fraction_boolean(start, end, includeEnd) {
|
|
138
|
+
return _out(_range(start, end, 1, includeEnd));
|
|
139
|
+
},
|
|
140
|
+
'Fraction, Fraction, Fraction, boolean': function Fraction_Fraction_Fraction_boolean(start, end, step, includeEnd) {
|
|
141
|
+
return _out(_range(start, end, step, includeEnd));
|
|
142
|
+
},
|
|
94
143
|
'Unit, Unit, Unit': function Unit_Unit_Unit(start, end, step) {
|
|
95
144
|
return _out(_range(start, end, step, false));
|
|
96
145
|
},
|
|
@@ -3,11 +3,13 @@ import { randomMatrix } from './util/randomMatrix.js';
|
|
|
3
3
|
import { createRng } from './util/seededRNG.js';
|
|
4
4
|
import { isMatrix } from '../../utils/is.js';
|
|
5
5
|
var name = 'randomInt';
|
|
6
|
-
var dependencies = ['typed', 'config', '?on'];
|
|
6
|
+
var dependencies = ['typed', 'config', 'log2', '?on'];
|
|
7
|
+
var simpleCutoff = 2n ** 30n;
|
|
7
8
|
export var createRandomInt = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
8
9
|
var {
|
|
9
10
|
typed,
|
|
10
11
|
config,
|
|
12
|
+
log2,
|
|
11
13
|
on
|
|
12
14
|
} = _ref;
|
|
13
15
|
// seeded pseudo random number generator
|
|
@@ -26,7 +28,7 @@ export var createRandomInt = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
26
28
|
*
|
|
27
29
|
* Syntax:
|
|
28
30
|
*
|
|
29
|
-
* math.randomInt() // generate
|
|
31
|
+
* math.randomInt() // generate either 0 or 1, randomly
|
|
30
32
|
* math.randomInt(max) // generate a random integer between 0 and max
|
|
31
33
|
* math.randomInt(min, max) // generate a random integer between min and max
|
|
32
34
|
* math.randomInt(size) // generate a matrix with random integer between 0 and 1
|
|
@@ -50,9 +52,11 @@ export var createRandomInt = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
50
52
|
* @return {number | Array | Matrix} A random integer value
|
|
51
53
|
*/
|
|
52
54
|
return typed(name, {
|
|
53
|
-
'': () => _randomInt(0,
|
|
55
|
+
'': () => _randomInt(0, 2),
|
|
54
56
|
number: max => _randomInt(0, max),
|
|
55
57
|
'number, number': (min, max) => _randomInt(min, max),
|
|
58
|
+
bigint: max => _randomBigint(0n, max),
|
|
59
|
+
'bigint, bigint': _randomBigint,
|
|
56
60
|
'Array | Matrix': size => _randomIntMatrix(size, 0, 1),
|
|
57
61
|
'Array | Matrix, number': (size, max) => _randomIntMatrix(size, 0, max),
|
|
58
62
|
'Array | Matrix, number, number': (size, min, max) => _randomIntMatrix(size, min, max)
|
|
@@ -64,4 +68,23 @@ export var createRandomInt = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
64
68
|
function _randomInt(min, max) {
|
|
65
69
|
return Math.floor(min + rng() * (max - min));
|
|
66
70
|
}
|
|
71
|
+
function _randomBigint(min, max) {
|
|
72
|
+
var width = max - min; // number of choices
|
|
73
|
+
if (width <= simpleCutoff) {
|
|
74
|
+
// do it with number type
|
|
75
|
+
return min + BigInt(_randomInt(0, Number(width)));
|
|
76
|
+
}
|
|
77
|
+
// Too big to choose accurately that way. Instead, choose the correct
|
|
78
|
+
// number of random bits to cover the width, and repeat until the
|
|
79
|
+
// resulting number falls within the width
|
|
80
|
+
var bits = log2(width);
|
|
81
|
+
var picked = width;
|
|
82
|
+
while (picked >= width) {
|
|
83
|
+
picked = 0n;
|
|
84
|
+
for (var i = 0; i < bits; ++i) {
|
|
85
|
+
picked = 2n * picked + (rng() < 0.5 ? 0n : 1n);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return min + picked;
|
|
89
|
+
}
|
|
67
90
|
});
|
|
@@ -7,11 +7,12 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
|
9
9
|
var name = 'larger';
|
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat', 'SparseMatrix'];
|
|
10
|
+
var dependencies = ['typed', 'config', 'bignumber', 'matrix', 'DenseMatrix', 'concat', 'SparseMatrix'];
|
|
11
11
|
export var createLarger = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
12
12
|
var {
|
|
13
13
|
typed,
|
|
14
14
|
config,
|
|
15
|
+
bignumber,
|
|
15
16
|
matrix,
|
|
16
17
|
DenseMatrix,
|
|
17
18
|
concat,
|
|
@@ -68,16 +69,23 @@ export var createLarger = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
68
69
|
* @param {number | BigNumber | bigint | Fraction | boolean | Unit | string | Array | Matrix} y Second value to compare
|
|
69
70
|
* @return {boolean | Array | Matrix} Returns true when the x is larger than y, else returns false
|
|
70
71
|
*/
|
|
72
|
+
function bignumLarger(x, y) {
|
|
73
|
+
return x.gt(y) && !bigNearlyEqual(x, y, config.relTol, config.absTol);
|
|
74
|
+
}
|
|
71
75
|
return typed(name, createLargerNumber({
|
|
72
76
|
typed,
|
|
73
77
|
config
|
|
74
78
|
}), {
|
|
75
79
|
'boolean, boolean': (x, y) => x > y,
|
|
76
|
-
'BigNumber, BigNumber':
|
|
77
|
-
return x.gt(y) && !bigNearlyEqual(x, y, config.relTol, config.absTol);
|
|
78
|
-
},
|
|
80
|
+
'BigNumber, BigNumber': bignumLarger,
|
|
79
81
|
'bigint, bigint': (x, y) => x > y,
|
|
80
82
|
'Fraction, Fraction': (x, y) => x.compare(y) === 1,
|
|
83
|
+
'Fraction, BigNumber': function Fraction_BigNumber(x, y) {
|
|
84
|
+
return bignumLarger(bignumber(x), y);
|
|
85
|
+
},
|
|
86
|
+
'BigNumber, Fraction': function BigNumber_Fraction(x, y) {
|
|
87
|
+
return bignumLarger(x, bignumber(y));
|
|
88
|
+
},
|
|
81
89
|
'Complex, Complex': function Complex_Complex() {
|
|
82
90
|
throw new TypeError('No ordering relation is defined for complex numbers');
|
|
83
91
|
}
|
|
@@ -7,11 +7,12 @@ import { createMatAlgo12xSfs } from '../../type/matrix/utils/matAlgo12xSfs.js';
|
|
|
7
7
|
import { createMatrixAlgorithmSuite } from '../../type/matrix/utils/matrixAlgorithmSuite.js';
|
|
8
8
|
import { createCompareUnits } from './compareUnits.js';
|
|
9
9
|
var name = 'smaller';
|
|
10
|
-
var dependencies = ['typed', 'config', 'matrix', 'DenseMatrix', 'concat', 'SparseMatrix'];
|
|
10
|
+
var dependencies = ['typed', 'config', 'bignumber', 'matrix', 'DenseMatrix', 'concat', 'SparseMatrix'];
|
|
11
11
|
export var createSmaller = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
12
12
|
var {
|
|
13
13
|
typed,
|
|
14
14
|
config,
|
|
15
|
+
bignumber,
|
|
15
16
|
matrix,
|
|
16
17
|
DenseMatrix,
|
|
17
18
|
concat,
|
|
@@ -68,16 +69,23 @@ export var createSmaller = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
68
69
|
* @param {number | BigNumber | bigint | Fraction | boolean | Unit | string | Array | Matrix} y Second value to compare
|
|
69
70
|
* @return {boolean | Array | Matrix} Returns true when the x is smaller than y, else returns false
|
|
70
71
|
*/
|
|
72
|
+
function bignumSmaller(x, y) {
|
|
73
|
+
return x.lt(y) && !bigNearlyEqual(x, y, config.relTol, config.absTol);
|
|
74
|
+
}
|
|
71
75
|
return typed(name, createSmallerNumber({
|
|
72
76
|
typed,
|
|
73
77
|
config
|
|
74
78
|
}), {
|
|
75
79
|
'boolean, boolean': (x, y) => x < y,
|
|
76
|
-
'BigNumber, BigNumber':
|
|
77
|
-
return x.lt(y) && !bigNearlyEqual(x, y, config.relTol, config.absTol);
|
|
78
|
-
},
|
|
80
|
+
'BigNumber, BigNumber': bignumSmaller,
|
|
79
81
|
'bigint, bigint': (x, y) => x < y,
|
|
80
82
|
'Fraction, Fraction': (x, y) => x.compare(y) === -1,
|
|
83
|
+
'Fraction, BigNumber': function Fraction_BigNumber(x, y) {
|
|
84
|
+
return bignumSmaller(bignumber(x), y);
|
|
85
|
+
},
|
|
86
|
+
'BigNumber, Fraction': function BigNumber_Fraction(x, y) {
|
|
87
|
+
return bignumSmaller(x, bignumber(y));
|
|
88
|
+
},
|
|
81
89
|
'Complex, Complex': function Complex_Complex(x, y) {
|
|
82
90
|
throw new TypeError('No ordering relation is defined for complex numbers');
|
|
83
91
|
}
|
|
@@ -83,7 +83,7 @@ export var createMax = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
83
83
|
var res;
|
|
84
84
|
deepForEach(array, function (value) {
|
|
85
85
|
try {
|
|
86
|
-
if (
|
|
86
|
+
if (typeof value === 'number' && isNaN(value)) {
|
|
87
87
|
res = NaN;
|
|
88
88
|
} else if (res === undefined || larger(value, res)) {
|
|
89
89
|
res = value;
|
|
@@ -83,7 +83,7 @@ export var createMin = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
83
83
|
var min;
|
|
84
84
|
deepForEach(array, function (value) {
|
|
85
85
|
try {
|
|
86
|
-
if (
|
|
86
|
+
if (typeof value === 'number' && isNaN(value)) {
|
|
87
87
|
min = NaN;
|
|
88
88
|
} else if (min === undefined || smaller(value, min)) {
|
|
89
89
|
min = value;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { isNumber } from '../../utils/is.js';
|
|
2
2
|
import { flatten } from '../../utils/array.js';
|
|
3
3
|
import { factory } from '../../utils/factory.js';
|
|
4
|
-
import { createApply } from '../matrix/apply.js';
|
|
5
4
|
var name = 'quantileSeq';
|
|
6
|
-
var dependencies = ['typed', '?bignumber', 'add', 'subtract', 'divide', 'multiply', 'partitionSelect', 'compare', 'isInteger', 'smaller', 'smallerEq', 'larger'];
|
|
5
|
+
var dependencies = ['typed', '?bignumber', 'add', 'subtract', 'divide', 'multiply', 'partitionSelect', 'compare', 'isInteger', 'smaller', 'smallerEq', 'larger', 'mapSlices'];
|
|
7
6
|
export var createQuantileSeq = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
8
7
|
var {
|
|
9
8
|
typed,
|
|
@@ -17,13 +16,9 @@ export var createQuantileSeq = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
|
17
16
|
isInteger,
|
|
18
17
|
smaller,
|
|
19
18
|
smallerEq,
|
|
20
|
-
larger
|
|
19
|
+
larger,
|
|
20
|
+
mapSlices
|
|
21
21
|
} = _ref;
|
|
22
|
-
var apply = createApply({
|
|
23
|
-
typed,
|
|
24
|
-
isInteger
|
|
25
|
-
});
|
|
26
|
-
|
|
27
22
|
/**
|
|
28
23
|
* Compute the prob order quantile of a matrix or a list with values.
|
|
29
24
|
* The sequence is sorted and the middle value is returned.
|
|
@@ -69,7 +64,7 @@ export var createQuantileSeq = /* #__PURE__ */factory(name, dependencies, _ref =
|
|
|
69
64
|
'Array | Matrix, Array | Matrix, boolean, number': (data, prob, sorted, dim) => _quantileSeqDim(data, prob, sorted, dim, _quantileSeqProbCollection)
|
|
70
65
|
});
|
|
71
66
|
function _quantileSeqDim(data, prob, sorted, dim, fn) {
|
|
72
|
-
return
|
|
67
|
+
return mapSlices(data, dim, x => fn(x, prob, sorted));
|
|
73
68
|
}
|
|
74
69
|
function _quantileSeqProbNumber(data, probOrN, sorted) {
|
|
75
70
|
var probArr;
|
|
@@ -4,7 +4,7 @@ import { factory } from '../../utils/factory.js';
|
|
|
4
4
|
import { improveErrorMessage } from './utils/improveErrorMessage.js';
|
|
5
5
|
var DEFAULT_NORMALIZATION = 'unbiased';
|
|
6
6
|
var name = 'variance';
|
|
7
|
-
var dependencies = ['typed', 'add', 'subtract', 'multiply', 'divide', '
|
|
7
|
+
var dependencies = ['typed', 'add', 'subtract', 'multiply', 'divide', 'mapSlices', 'isNaN'];
|
|
8
8
|
export var createVariance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
9
9
|
var {
|
|
10
10
|
typed,
|
|
@@ -12,7 +12,7 @@ export var createVariance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
12
12
|
subtract,
|
|
13
13
|
multiply,
|
|
14
14
|
divide,
|
|
15
|
-
|
|
15
|
+
mapSlices,
|
|
16
16
|
isNaN
|
|
17
17
|
} = _ref;
|
|
18
18
|
/**
|
|
@@ -145,7 +145,7 @@ export var createVariance = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
145
145
|
if (array.length === 0) {
|
|
146
146
|
throw new SyntaxError('Function variance requires one or more parameters (0 provided)');
|
|
147
147
|
}
|
|
148
|
-
return
|
|
148
|
+
return mapSlices(array, dim, x => _var(x, normalization));
|
|
149
149
|
} catch (err) {
|
|
150
150
|
throw improveErrorMessage(err, 'variance');
|
|
151
151
|
}
|
|
@@ -25,12 +25,12 @@ export var createPrint = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
25
25
|
* // the following outputs: 'The value of pi is 3.141592654'
|
|
26
26
|
* math.print('The value of pi is $pi', {pi: math.pi}, 10)
|
|
27
27
|
*
|
|
28
|
-
* // the following outputs: '
|
|
28
|
+
* // the following outputs: 'Hello Mary! The date is 2013-03-23'
|
|
29
29
|
* math.print('Hello $user.name! The date is $date', {
|
|
30
30
|
* user: {
|
|
31
31
|
* name: 'Mary',
|
|
32
32
|
* },
|
|
33
|
-
* date:
|
|
33
|
+
* date: '2013-03-23'
|
|
34
34
|
* })
|
|
35
35
|
*
|
|
36
36
|
* // the following outputs: 'My favorite fruits are apples and bananas !'
|
|
@@ -23,7 +23,7 @@ export var createAcsc = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
23
23
|
*
|
|
24
24
|
* math.acsc(2) // returns 0.5235987755982989
|
|
25
25
|
* math.acsc(0.5) // returns Complex 1.5707963267948966 -1.3169578969248166i
|
|
26
|
-
* math.acsc(math.csc(1.5)) // returns number
|
|
26
|
+
* math.acsc(math.csc(1.5)) // returns number 1.5
|
|
27
27
|
*
|
|
28
28
|
* See also:
|
|
29
29
|
*
|
|
@@ -20,7 +20,7 @@ export var createAsin = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
20
20
|
* Examples:
|
|
21
21
|
*
|
|
22
22
|
* math.asin(0.5) // returns number 0.5235987755982989
|
|
23
|
-
* math.asin(math.sin(1.5)) // returns number
|
|
23
|
+
* math.asin(math.sin(1.5)) // returns number 1.5
|
|
24
24
|
*
|
|
25
25
|
* math.asin(2) // returns Complex 1.5707963267948966 -1.3169578969248166i
|
|
26
26
|
*
|
|
@@ -56,9 +56,10 @@ export var createAtan2 = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
56
56
|
*
|
|
57
57
|
* math.atan2(2, 2) / math.pi // returns number 0.25
|
|
58
58
|
*
|
|
59
|
-
* const angle = math.unit(60, 'deg')
|
|
59
|
+
* const angle = math.unit(60, 'deg')
|
|
60
60
|
* const x = math.cos(angle)
|
|
61
61
|
* const y = math.sin(angle)
|
|
62
|
+
* math.atan2(y, x) * 180 / math.pi // returns 60
|
|
62
63
|
*
|
|
63
64
|
* math.atan(2) // returns number 1.1071487177940904
|
|
64
65
|
*
|
|
@@ -28,7 +28,7 @@ export var createCos = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
28
28
|
* math.cos(math.unit(60, 'deg')) // returns number 0.5
|
|
29
29
|
*
|
|
30
30
|
* const angle = 0.2
|
|
31
|
-
* math.pow(math.sin(angle), 2) + math.pow(math.cos(angle), 2) // returns number
|
|
31
|
+
* math.pow(math.sin(angle), 2) + math.pow(math.cos(angle), 2) // returns number 1
|
|
32
32
|
*
|
|
33
33
|
* See also:
|
|
34
34
|
*
|
|
@@ -28,7 +28,7 @@ export var createSin = /* #__PURE__ */factory(name, dependencies, _ref => {
|
|
|
28
28
|
* math.sin(math.unit(30, 'deg')) // returns number 0.5
|
|
29
29
|
*
|
|
30
30
|
* const angle = 0.2
|
|
31
|
-
* math.pow(math.sin(angle), 2) + math.pow(math.cos(angle), 2) // returns number
|
|
31
|
+
* math.pow(math.sin(angle), 2) + math.pow(math.cos(angle), 2) // returns number 1
|
|
32
32
|
*
|
|
33
33
|
* See also:
|
|
34
34
|
*
|
|
@@ -26,7 +26,7 @@ export var createIsInteger = /* #__PURE__ */factory(name, dependencies, _ref =>
|
|
|
26
26
|
* math.isInteger(math.fraction(4)) // returns true
|
|
27
27
|
* math.isInteger('3') // returns true
|
|
28
28
|
* math.isInteger([3, 0.5, -2]) // returns [true, false, true]
|
|
29
|
-
* math.isInteger(math.complex('2-4i')) // throws
|
|
29
|
+
* math.isInteger(math.complex('2-4i')) // throws TypeError
|
|
30
30
|
*
|
|
31
31
|
* See also:
|
|
32
32
|
*
|
package/lib/esm/header.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* @date @@date
|
|
11
11
|
*
|
|
12
12
|
* @license
|
|
13
|
-
* Copyright (C) 2013-
|
|
13
|
+
* Copyright (C) 2013-2025 Jos de Jong <wjosdejong@gmail.com>
|
|
14
14
|
*
|
|
15
15
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
|
|
16
16
|
* use this file except in compliance with the License. You may obtain a copy
|