mathjs 10.5.2 → 10.6.1
Sign up to get free protection for your applications and to get access to all the features.
- package/HISTORY.md +28 -0
- package/lib/browser/math.js +6 -5
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +41 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesIfft.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +16 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +66 -64
- package/lib/cjs/entry/pureFunctionsAny.generated.js +189 -171
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +6 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +15 -0
- package/lib/cjs/factoriesAny.js +16 -0
- package/lib/cjs/function/algebra/derivative.js +1 -1
- package/lib/cjs/function/matrix/fft.js +128 -0
- package/lib/cjs/function/matrix/ifft.js +49 -0
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/version.js +1 -1
- package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +24 -0
- package/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny.generated.js +2 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +63 -61
- package/lib/esm/entry/pureFunctionsAny.generated.js +161 -145
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +4 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +8 -0
- package/lib/esm/factoriesAny.js +2 -0
- package/lib/esm/function/algebra/derivative.js +1 -1
- package/lib/esm/function/matrix/fft.js +104 -0
- package/lib/esm/function/matrix/ifft.js +38 -0
- package/lib/esm/version.js +1 -1
- package/package.json +22 -24
- package/types/index.d.ts +1052 -283
- package/types/index.ts +711 -7
- package/docs/command_line_interface.md +0 -87
- package/docs/core/chaining.md +0 -41
- package/docs/core/configuration.md +0 -144
- package/docs/core/extension.md +0 -263
- package/docs/core/index.md +0 -21
- package/docs/core/serialization.md +0 -50
- package/docs/custom_bundling.md +0 -116
- package/docs/datatypes/bignumbers.md +0 -102
- package/docs/datatypes/complex_numbers.md +0 -168
- package/docs/datatypes/fractions.md +0 -75
- package/docs/datatypes/index.md +0 -67
- package/docs/datatypes/matrices.md +0 -375
- package/docs/datatypes/numbers.md +0 -106
- package/docs/datatypes/units.md +0 -444
- package/docs/expressions/algebra.md +0 -110
- package/docs/expressions/customization.md +0 -379
- package/docs/expressions/expression_trees.md +0 -710
- package/docs/expressions/html_classes.md +0 -38
- package/docs/expressions/index.md +0 -21
- package/docs/expressions/parsing.md +0 -224
- package/docs/expressions/security.md +0 -89
- package/docs/expressions/syntax.md +0 -706
- package/docs/getting_started.md +0 -124
- package/docs/index.md +0 -39
- package/docs/reference/classes/densematrix.md +0 -247
- package/docs/reference/classes/fibonacciheap.md +0 -70
- package/docs/reference/classes/matrixindex.md +0 -133
- package/docs/reference/classes/matrixrange.md +0 -158
- package/docs/reference/classes/resultset.md +0 -47
- package/docs/reference/classes/sparsematrix.md +0 -245
- package/docs/reference/classes/unit.md +0 -242
- package/docs/reference/classes.md +0 -86
- package/docs/reference/constants.md +0 -29
- package/docs/reference/functions/abs.md +0 -46
- package/docs/reference/functions/acos.md +0 -49
- package/docs/reference/functions/acosh.md +0 -47
- package/docs/reference/functions/acot.md +0 -48
- package/docs/reference/functions/acoth.md +0 -46
- package/docs/reference/functions/acsc.md +0 -49
- package/docs/reference/functions/acsch.md +0 -46
- package/docs/reference/functions/add.md +0 -59
- package/docs/reference/functions/and.md +0 -53
- package/docs/reference/functions/apply.md +0 -56
- package/docs/reference/functions/arg.md +0 -53
- package/docs/reference/functions/asec.md +0 -49
- package/docs/reference/functions/asech.md +0 -46
- package/docs/reference/functions/asin.md +0 -49
- package/docs/reference/functions/asinh.md +0 -46
- package/docs/reference/functions/atan.md +0 -49
- package/docs/reference/functions/atan2.md +0 -56
- package/docs/reference/functions/atanh.md +0 -46
- package/docs/reference/functions/bellNumbers.md +0 -45
- package/docs/reference/functions/bignumber.md +0 -47
- package/docs/reference/functions/bin.md +0 -45
- package/docs/reference/functions/bitAnd.md +0 -51
- package/docs/reference/functions/bitNot.md +0 -51
- package/docs/reference/functions/bitOr.md +0 -52
- package/docs/reference/functions/bitXor.md +0 -51
- package/docs/reference/functions/boolean.md +0 -50
- package/docs/reference/functions/catalan.md +0 -45
- package/docs/reference/functions/cbrt.md +0 -60
- package/docs/reference/functions/ceil.md +0 -63
- package/docs/reference/functions/chain.md +0 -54
- package/docs/reference/functions/clone.md +0 -43
- package/docs/reference/functions/column.md +0 -45
- package/docs/reference/functions/combinations.md +0 -49
- package/docs/reference/functions/combinationsWithRep.md +0 -49
- package/docs/reference/functions/compare.md +0 -67
- package/docs/reference/functions/compareNatural.md +0 -92
- package/docs/reference/functions/compareText.md +0 -54
- package/docs/reference/functions/compile.md +0 -56
- package/docs/reference/functions/complex.md +0 -17
- package/docs/reference/functions/composition.md +0 -46
- package/docs/reference/functions/concat.md +0 -56
- package/docs/reference/functions/config.md +0 -44
- package/docs/reference/functions/conj.md +0 -50
- package/docs/reference/functions/cos.md +0 -51
- package/docs/reference/functions/cosh.md +0 -46
- package/docs/reference/functions/cot.md +0 -47
- package/docs/reference/functions/coth.md +0 -49
- package/docs/reference/functions/count.md +0 -45
- package/docs/reference/functions/createUnit.md +0 -52
- package/docs/reference/functions/cross.md +0 -58
- package/docs/reference/functions/csc.md +0 -47
- package/docs/reference/functions/csch.md +0 -49
- package/docs/reference/functions/ctranspose.md +0 -50
- package/docs/reference/functions/cube.md +0 -51
- package/docs/reference/functions/cumsum.md +0 -57
- package/docs/reference/functions/deepEqual.md +0 -53
- package/docs/reference/functions/derivative.md +0 -61
- package/docs/reference/functions/det.md +0 -49
- package/docs/reference/functions/diag.md +0 -61
- package/docs/reference/functions/diff.md +0 -70
- package/docs/reference/functions/distance.md +0 -80
- package/docs/reference/functions/divide.md +0 -55
- package/docs/reference/functions/dot.md +0 -48
- package/docs/reference/functions/dotDivide.md +0 -52
- package/docs/reference/functions/dotMultiply.md +0 -52
- package/docs/reference/functions/dotPow.md +0 -49
- package/docs/reference/functions/eigs.md +0 -54
- package/docs/reference/functions/equal.md +0 -75
- package/docs/reference/functions/equalText.md +0 -53
- package/docs/reference/functions/erf.md +0 -49
- package/docs/reference/functions/evaluate.md +0 -56
- package/docs/reference/functions/exp.md +0 -54
- package/docs/reference/functions/expm.md +0 -49
- package/docs/reference/functions/expm1.md +0 -54
- package/docs/reference/functions/factorial.md +0 -49
- package/docs/reference/functions/fft.md +0 -35
- package/docs/reference/functions/filter.md +0 -50
- package/docs/reference/functions/fix.md +0 -62
- package/docs/reference/functions/flatten.md +0 -46
- package/docs/reference/functions/floor.md +0 -66
- package/docs/reference/functions/forEach.md +0 -41
- package/docs/reference/functions/format.md +0 -127
- package/docs/reference/functions/fraction.md +0 -45
- package/docs/reference/functions/gamma.md +0 -49
- package/docs/reference/functions/gcd.md +0 -50
- package/docs/reference/functions/getMatrixDataType.md +0 -59
- package/docs/reference/functions/hasNumericValue.md +0 -55
- package/docs/reference/functions/help.md +0 -42
- package/docs/reference/functions/hex.md +0 -45
- package/docs/reference/functions/hypot.md +0 -51
- package/docs/reference/functions/identity.md +0 -57
- package/docs/reference/functions/ifft.md +0 -35
- package/docs/reference/functions/im.md +0 -53
- package/docs/reference/functions/import.md +0 -68
- package/docs/reference/functions/index.md +0 -55
- package/docs/reference/functions/intersect.md +0 -50
- package/docs/reference/functions/inv.md +0 -45
- package/docs/reference/functions/invmod.md +0 -47
- package/docs/reference/functions/isInteger.md +0 -55
- package/docs/reference/functions/isNaN.md +0 -56
- package/docs/reference/functions/isNegative.md +0 -55
- package/docs/reference/functions/isNumeric.md +0 -55
- package/docs/reference/functions/isPositive.md +0 -57
- package/docs/reference/functions/isPrime.md +0 -54
- package/docs/reference/functions/isZero.md +0 -59
- package/docs/reference/functions/kldivergence.md +0 -41
- package/docs/reference/functions/kron.md +0 -53
- package/docs/reference/functions/larger.md +0 -60
- package/docs/reference/functions/largerEq.md +0 -56
- package/docs/reference/functions/lcm.md +0 -54
- package/docs/reference/functions/leafCount.md +0 -52
- package/docs/reference/functions/leftShift.md +0 -52
- package/docs/reference/functions/lgamma.md +0 -46
- package/docs/reference/functions/log.md +0 -57
- package/docs/reference/functions/log10.md +0 -50
- package/docs/reference/functions/log1p.md +0 -54
- package/docs/reference/functions/log2.md +0 -50
- package/docs/reference/functions/lsolve.md +0 -51
- package/docs/reference/functions/lsolveAll.md +0 -51
- package/docs/reference/functions/lup.md +0 -52
- package/docs/reference/functions/lusolve.md +0 -59
- package/docs/reference/functions/mad.md +0 -50
- package/docs/reference/functions/map.md +0 -65
- package/docs/reference/functions/matrix.md +0 -56
- package/docs/reference/functions/matrixFromColumns.md +0 -49
- package/docs/reference/functions/matrixFromFunction.md +0 -54
- package/docs/reference/functions/matrixFromRows.md +0 -49
- package/docs/reference/functions/max.md +0 -61
- package/docs/reference/functions/mean.md +0 -57
- package/docs/reference/functions/median.md +0 -57
- package/docs/reference/functions/min.md +0 -61
- package/docs/reference/functions/mod.md +0 -59
- package/docs/reference/functions/mode.md +0 -50
- package/docs/reference/functions/multinomial.md +0 -46
- package/docs/reference/functions/multiply.md +0 -60
- package/docs/reference/functions/norm.md +0 -59
- package/docs/reference/functions/not.md +0 -50
- package/docs/reference/functions/nthRoot.md +0 -53
- package/docs/reference/functions/nthRoots.md +0 -58
- package/docs/reference/functions/number.md +0 -49
- package/docs/reference/functions/numeric.md +0 -52
- package/docs/reference/functions/oct.md +0 -45
- package/docs/reference/functions/ones.md +0 -59
- package/docs/reference/functions/or.md +0 -53
- package/docs/reference/functions/parse.md +0 -56
- package/docs/reference/functions/parser.md +0 -70
- package/docs/reference/functions/partitionSelect.md +0 -53
- package/docs/reference/functions/permutations.md +0 -51
- package/docs/reference/functions/pickRandom.md +0 -59
- package/docs/reference/functions/pinv.md +0 -44
- package/docs/reference/functions/pow.md +0 -65
- package/docs/reference/functions/print.md +0 -64
- package/docs/reference/functions/prod.md +0 -55
- package/docs/reference/functions/qr.md +0 -65
- package/docs/reference/functions/quantileSeq.md +0 -62
- package/docs/reference/functions/random.md +0 -54
- package/docs/reference/functions/randomInt.md +0 -53
- package/docs/reference/functions/range.md +0 -70
- package/docs/reference/functions/rationalize.md +0 -68
- package/docs/reference/functions/re.md +0 -53
- package/docs/reference/functions/reshape.md +0 -60
- package/docs/reference/functions/resize.md +0 -51
- package/docs/reference/functions/resolve.md +0 -46
- package/docs/reference/functions/rightArithShift.md +0 -52
- package/docs/reference/functions/rightLogShift.md +0 -52
- package/docs/reference/functions/rotate.md +0 -53
- package/docs/reference/functions/rotationMatrix.md +0 -57
- package/docs/reference/functions/round.md +0 -61
- package/docs/reference/functions/row.md +0 -45
- package/docs/reference/functions/sec.md +0 -47
- package/docs/reference/functions/sech.md +0 -49
- package/docs/reference/functions/setCartesian.md +0 -49
- package/docs/reference/functions/setDifference.md +0 -47
- package/docs/reference/functions/setDistinct.md +0 -43
- package/docs/reference/functions/setIntersect.md +0 -46
- package/docs/reference/functions/setIsSubset.md +0 -47
- package/docs/reference/functions/setMultiplicity.md +0 -46
- package/docs/reference/functions/setPowerset.md +0 -43
- package/docs/reference/functions/setSize.md +0 -47
- package/docs/reference/functions/setSymDifference.md +0 -47
- package/docs/reference/functions/setUnion.md +0 -46
- package/docs/reference/functions/sign.md +0 -52
- package/docs/reference/functions/simplify.md +0 -130
- package/docs/reference/functions/simplifyConstant.md +0 -52
- package/docs/reference/functions/simplifyCore.md +0 -50
- package/docs/reference/functions/sin.md +0 -51
- package/docs/reference/functions/sinh.md +0 -46
- package/docs/reference/functions/size.md +0 -50
- package/docs/reference/functions/slu.md +0 -57
- package/docs/reference/functions/smaller.md +0 -60
- package/docs/reference/functions/smallerEq.md +0 -56
- package/docs/reference/functions/sort.md +0 -56
- package/docs/reference/functions/sparse.md +0 -51
- package/docs/reference/functions/splitUnit.md +0 -37
- package/docs/reference/functions/sqrt.md +0 -50
- package/docs/reference/functions/sqrtm.md +0 -46
- package/docs/reference/functions/square.md +0 -51
- package/docs/reference/functions/squeeze.md +0 -53
- package/docs/reference/functions/std.md +0 -76
- package/docs/reference/functions/stirlingS2.md +0 -52
- package/docs/reference/functions/string.md +0 -49
- package/docs/reference/functions/subset.md +0 -65
- package/docs/reference/functions/subtract.md +0 -54
- package/docs/reference/functions/sum.md +0 -54
- package/docs/reference/functions/symbolicEqual.md +0 -62
- package/docs/reference/functions/tan.md +0 -49
- package/docs/reference/functions/tanh.md +0 -50
- package/docs/reference/functions/to.md +0 -47
- package/docs/reference/functions/trace.md +0 -50
- package/docs/reference/functions/transpose.md +0 -49
- package/docs/reference/functions/typeOf.md +0 -81
- package/docs/reference/functions/typed.md +0 -56
- package/docs/reference/functions/unaryMinus.md +0 -49
- package/docs/reference/functions/unaryPlus.md +0 -48
- package/docs/reference/functions/unequal.md +0 -74
- package/docs/reference/functions/unit.md +0 -48
- package/docs/reference/functions/usolve.md +0 -51
- package/docs/reference/functions/usolveAll.md +0 -51
- package/docs/reference/functions/variance.md +0 -78
- package/docs/reference/functions/xgcd.md +0 -47
- package/docs/reference/functions/xor.md +0 -53
- package/docs/reference/functions/zeros.md +0 -57
- package/docs/reference/functions.md +0 -297
- package/docs/reference/index.md +0 -5
- package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
- package/examples/advanced/custom_argument_parsing.js +0 -98
- package/examples/advanced/custom_datatype.js +0 -56
- package/examples/advanced/custom_evaluate_using_factories.js +0 -19
- package/examples/advanced/custom_evaluate_using_import.js +0 -18
- package/examples/advanced/custom_loading.js +0 -33
- package/examples/advanced/custom_relational_functions.js +0 -62
- package/examples/advanced/custom_scope_objects.js +0 -115
- package/examples/advanced/expression_trees.js +0 -55
- package/examples/advanced/function_transform.js +0 -50
- package/examples/advanced/more_secure_eval.js +0 -36
- package/examples/advanced/use_bigint.js +0 -43
- package/examples/advanced/web_server/math_worker.js +0 -24
- package/examples/advanced/web_server/server.js +0 -80
- package/examples/algebra.js +0 -34
- package/examples/basic_usage.js +0 -49
- package/examples/bignumbers.js +0 -52
- package/examples/browser/angle_configuration.html +0 -134
- package/examples/browser/basic_usage.html +0 -39
- package/examples/browser/currency_conversion.html +0 -125
- package/examples/browser/custom_separators.html +0 -81
- package/examples/browser/plot.html +0 -78
- package/examples/browser/pretty_printing_with_mathjax.html +0 -122
- package/examples/browser/printing_html.html +0 -170
- package/examples/browser/requirejs_loading.html +0 -20
- package/examples/browser/rocket_trajectory_optimization.html +0 -301
- package/examples/browser/webworkers/webworkers.html +0 -80
- package/examples/browser/webworkers/worker.js +0 -28
- package/examples/chaining.js +0 -56
- package/examples/complex_numbers.js +0 -67
- package/examples/expressions.js +0 -188
- package/examples/fractions.js +0 -74
- package/examples/import.js +0 -95
- package/examples/matrices.js +0 -101
- package/examples/objects.js +0 -35
- package/examples/package.json +0 -3
- package/examples/serialization.js +0 -16
- package/examples/sparse_matrices.js +0 -19
- package/examples/units.js +0 -108
@@ -0,0 +1,128 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports.createFft = void 0;
|
9
|
+
|
10
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
11
|
+
|
12
|
+
var _array = require("../../utils/array.js");
|
13
|
+
|
14
|
+
var _factory = require("../../utils/factory.js");
|
15
|
+
|
16
|
+
var name = 'fft';
|
17
|
+
var dependencies = ['typed', 'matrix', 'addScalar', 'multiplyScalar', 'divideScalar', 'exp', 'tau', 'i'];
|
18
|
+
var createFft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
19
|
+
var typed = _ref.typed,
|
20
|
+
matrix = _ref.matrix,
|
21
|
+
addScalar = _ref.addScalar,
|
22
|
+
multiplyScalar = _ref.multiplyScalar,
|
23
|
+
divideScalar = _ref.divideScalar,
|
24
|
+
exp = _ref.exp,
|
25
|
+
tau = _ref.tau,
|
26
|
+
I = _ref.i;
|
27
|
+
|
28
|
+
/**
|
29
|
+
* Calculate N-dimensional fourier transform
|
30
|
+
*
|
31
|
+
* Syntax:
|
32
|
+
*
|
33
|
+
* math.fft(arr)
|
34
|
+
*
|
35
|
+
* Examples:
|
36
|
+
*
|
37
|
+
* math.fft([[1, 0], [1, 0]]) // returns [[{re:2, im:0}, {re:2, im:0}], [{re:0, im:0}, {re:0, im:0}]]
|
38
|
+
*
|
39
|
+
*
|
40
|
+
* See Also:
|
41
|
+
*
|
42
|
+
* ifft
|
43
|
+
*
|
44
|
+
* @param {Array | Matrix} arr An array or matrix
|
45
|
+
* @return {Array | Matrix} N-dimensional fourier transformation of the array
|
46
|
+
*/
|
47
|
+
return typed(name, {
|
48
|
+
Array: _ndFft,
|
49
|
+
Matrix: function Matrix(matrix) {
|
50
|
+
return matrix.create(_ndFft(matrix.toArray()));
|
51
|
+
}
|
52
|
+
});
|
53
|
+
/**
|
54
|
+
* Perform an N-dimensional Fourier transform
|
55
|
+
*
|
56
|
+
* @param {Array} arr The array
|
57
|
+
* @return {Array} resulting array
|
58
|
+
*/
|
59
|
+
|
60
|
+
function _ndFft(arr) {
|
61
|
+
var size = (0, _array.arraySize)(arr);
|
62
|
+
if (size.length === 1) return _fft(arr, size[0]); // ndFft along dimension 1,...,N-1 then 1dFft along dimension 0
|
63
|
+
|
64
|
+
return _1dFft(arr.map(function (slice) {
|
65
|
+
return _ndFft(slice, size.slice(1));
|
66
|
+
}), 0);
|
67
|
+
}
|
68
|
+
/**
|
69
|
+
* Perform an 1-dimensional Fourier transform
|
70
|
+
*
|
71
|
+
* @param {Array} arr The array
|
72
|
+
* @param {number} dim dimension of the array to perform on
|
73
|
+
* @return {Array} resulting array
|
74
|
+
*/
|
75
|
+
|
76
|
+
|
77
|
+
function _1dFft(arr, dim) {
|
78
|
+
var size = (0, _array.arraySize)(arr);
|
79
|
+
if (dim !== 0) return new Array(size[0]).fill(0).map(function (_, i) {
|
80
|
+
return _1dFft(arr[i], dim - 1);
|
81
|
+
});
|
82
|
+
if (size.length === 1) return _fft(arr);
|
83
|
+
|
84
|
+
function _transpose(arr) {
|
85
|
+
// Swap first 2 dimensions
|
86
|
+
var size = (0, _array.arraySize)(arr);
|
87
|
+
return new Array(size[1]).fill(0).map(function (_, j) {
|
88
|
+
return new Array(size[0]).fill(0).map(function (_, i) {
|
89
|
+
return arr[i][j];
|
90
|
+
});
|
91
|
+
});
|
92
|
+
}
|
93
|
+
|
94
|
+
return _transpose(_1dFft(_transpose(arr), 1));
|
95
|
+
}
|
96
|
+
/**
|
97
|
+
* Perform an 1-dimensional Fourier transform
|
98
|
+
*
|
99
|
+
* @param {Array} arr The array
|
100
|
+
* @return {Array} resulting array
|
101
|
+
*/
|
102
|
+
|
103
|
+
|
104
|
+
function _fft(arr) {
|
105
|
+
var len = arr.length;
|
106
|
+
if (len === 1) return [arr[0]];
|
107
|
+
|
108
|
+
if (len % 2 === 0) {
|
109
|
+
var ret = [].concat((0, _toConsumableArray2.default)(_fft(arr.filter(function (_, i) {
|
110
|
+
return i % 2 === 0;
|
111
|
+
}), len / 2)), (0, _toConsumableArray2.default)(_fft(arr.filter(function (_, i) {
|
112
|
+
return i % 2 === 1;
|
113
|
+
}), len / 2)));
|
114
|
+
|
115
|
+
for (var k = 0; k < len / 2; k++) {
|
116
|
+
var p = ret[k];
|
117
|
+
var q = multiplyScalar(ret[k + len / 2], exp(multiplyScalar(multiplyScalar(tau, I), divideScalar(-k, len))));
|
118
|
+
ret[k] = addScalar(p, q);
|
119
|
+
ret[k + len / 2] = addScalar(p, multiplyScalar(-1, q));
|
120
|
+
}
|
121
|
+
|
122
|
+
return ret;
|
123
|
+
}
|
124
|
+
|
125
|
+
throw new Error('Can only calculate FFT of power-of-two size');
|
126
|
+
}
|
127
|
+
});
|
128
|
+
exports.createFft = createFft;
|
@@ -0,0 +1,49 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createIfft = void 0;
|
7
|
+
|
8
|
+
var _array = require("../../utils/array.js");
|
9
|
+
|
10
|
+
var _factory = require("../../utils/factory.js");
|
11
|
+
|
12
|
+
var _is = require("../../utils/is.js");
|
13
|
+
|
14
|
+
var name = 'ifft';
|
15
|
+
var dependencies = ['typed', 'fft', 'dotDivide', 'conj'];
|
16
|
+
var createIfft = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
17
|
+
var typed = _ref.typed,
|
18
|
+
fft = _ref.fft,
|
19
|
+
dotDivide = _ref.dotDivide,
|
20
|
+
conj = _ref.conj;
|
21
|
+
|
22
|
+
/**
|
23
|
+
* Calculate N-dimensional inverse fourier transform
|
24
|
+
*
|
25
|
+
* Syntax:
|
26
|
+
*
|
27
|
+
* math.ifft(arr)
|
28
|
+
*
|
29
|
+
* Examples:
|
30
|
+
*
|
31
|
+
* math.ifft([[2, 2], [0, 0]]) // returns [[{re:1, im:0}, {re:0, im:0}], [{re:1, im:0}, {re:0, im:0}]]
|
32
|
+
*
|
33
|
+
* See Also:
|
34
|
+
*
|
35
|
+
* fft
|
36
|
+
*
|
37
|
+
* @param {Array | Matrix} arr An array or matrix
|
38
|
+
* @return {Array | Matrix} N-dimensional fourier transformation of the array
|
39
|
+
*/
|
40
|
+
return typed(name, {
|
41
|
+
'Array | Matrix': function ArrayMatrix(arr) {
|
42
|
+
var size = (0, _is.isMatrix)(arr) ? arr.size() : (0, _array.arraySize)(arr);
|
43
|
+
return dotDivide(conj(fft(conj(arr))), size.reduce(function (acc, curr) {
|
44
|
+
return acc * curr;
|
45
|
+
}, 1));
|
46
|
+
}
|
47
|
+
});
|
48
|
+
});
|
49
|
+
exports.createIfft = createIfft;
|
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.
|
10
|
-
* @date 2022-05-
|
9
|
+
* @version 10.6.1
|
10
|
+
* @date 2022-05-31
|
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.
|
7
|
+
var version = '10.6.1'; // 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;
|
@@ -0,0 +1,24 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { addScalarDependencies } from './dependenciesAddScalar.generated.js';
|
6
|
+
import { divideScalarDependencies } from './dependenciesDivideScalar.generated.js';
|
7
|
+
import { expDependencies } from './dependenciesExp.generated.js';
|
8
|
+
import { iDependencies } from './dependenciesI.generated.js';
|
9
|
+
import { matrixDependencies } from './dependenciesMatrix.generated.js';
|
10
|
+
import { multiplyScalarDependencies } from './dependenciesMultiplyScalar.generated.js';
|
11
|
+
import { tauDependencies } from './dependenciesTau.generated.js';
|
12
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
13
|
+
import { createFft } from '../../factoriesAny.js';
|
14
|
+
export var fftDependencies = {
|
15
|
+
addScalarDependencies,
|
16
|
+
divideScalarDependencies,
|
17
|
+
expDependencies,
|
18
|
+
iDependencies,
|
19
|
+
matrixDependencies,
|
20
|
+
multiplyScalarDependencies,
|
21
|
+
tauDependencies,
|
22
|
+
typedDependencies,
|
23
|
+
createFft
|
24
|
+
};
|
@@ -0,0 +1,16 @@
|
|
1
|
+
/**
|
2
|
+
* THIS FILE IS AUTO-GENERATED
|
3
|
+
* DON'T MAKE CHANGES HERE
|
4
|
+
*/
|
5
|
+
import { conjDependencies } from './dependenciesConj.generated.js';
|
6
|
+
import { dotDivideDependencies } from './dependenciesDotDivide.generated.js';
|
7
|
+
import { fftDependencies } from './dependenciesFft.generated.js';
|
8
|
+
import { typedDependencies } from './dependenciesTyped.generated.js';
|
9
|
+
import { createIfft } from '../../factoriesAny.js';
|
10
|
+
export var ifftDependencies = {
|
11
|
+
conjDependencies,
|
12
|
+
dotDivideDependencies,
|
13
|
+
fftDependencies,
|
14
|
+
typedDependencies,
|
15
|
+
createIfft
|
16
|
+
};
|
@@ -111,6 +111,7 @@ export { factorialDependencies } from './dependenciesAny/dependenciesFactorial.g
|
|
111
111
|
export { falseDependencies } from './dependenciesAny/dependenciesFalse.generated.js';
|
112
112
|
export { faradayDependencies } from './dependenciesAny/dependenciesFaraday.generated.js';
|
113
113
|
export { fermiCouplingDependencies } from './dependenciesAny/dependenciesFermiCoupling.generated.js';
|
114
|
+
export { fftDependencies } from './dependenciesAny/dependenciesFft.generated.js';
|
114
115
|
export { FibonacciHeapDependencies } from './dependenciesAny/dependenciesFibonacciHeapClass.generated.js';
|
115
116
|
export { filterDependencies } from './dependenciesAny/dependenciesFilter.generated.js';
|
116
117
|
export { filterTransformDependencies } from './dependenciesAny/dependenciesFilterTransform.generated.js';
|
@@ -140,6 +141,7 @@ export { hexDependencies } from './dependenciesAny/dependenciesHex.generated.js'
|
|
140
141
|
export { hypotDependencies } from './dependenciesAny/dependenciesHypot.generated.js';
|
141
142
|
export { iDependencies } from './dependenciesAny/dependenciesI.generated.js';
|
142
143
|
export { identityDependencies } from './dependenciesAny/dependenciesIdentity.generated.js';
|
144
|
+
export { ifftDependencies } from './dependenciesAny/dependenciesIfft.generated.js';
|
143
145
|
export { imDependencies } from './dependenciesAny/dependenciesIm.generated.js';
|
144
146
|
export { ImmutableDenseMatrixDependencies } from './dependenciesAny/dependenciesImmutableDenseMatrixClass.generated.js';
|
145
147
|
export { indexDependencies } from './dependenciesAny/dependenciesIndex.generated.js';
|
@@ -5,9 +5,9 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
5
5
|
* DON'T MAKE CHANGES HERE
|
6
6
|
*/
|
7
7
|
import { config } from './configReadonly.js';
|
8
|
-
import { createChainClass, createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChain, createFunctionAssignmentNode, createAccessorNode, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyCore, createCompile, createHelpClass, createLeafCount,
|
8
|
+
import { createChainClass, createNode, createObjectNode, createOperatorNode, createParenthesisNode, createRelationalNode, createArrayNode, createBlockNode, createConditionalNode, createConstantNode, createRangeNode, createReviver, createChain, createFunctionAssignmentNode, createAccessorNode, createAssignmentNode, createIndexNode, createSymbolNode, createFunctionNode, createParse, createResolve, createSimplifyCore, createCompile, createHelpClass, createLeafCount, createSimplify, createSymbolicEqual, createEvaluate, createHelp, createParserClass, createRationalize, createDerivative, createParser, createFilterTransform, createForEachTransform, createMapTransform, createApplyTransform, createDiffTransform, createSubsetTransform, createConcatTransform, createMaxTransform, createMinTransform, createRangeTransform, createSumTransform, createCumSumTransform, createRowTransform, createColumnTransform, createIndexTransform, createMeanTransform, createVarianceTransform, createStdTransform } from '../factoriesAny.js';
|
9
9
|
import { BigNumber, Complex, e, _false, fineStructure, Fraction, i, _Infinity, LN10, LOG10E, Matrix, _NaN, _null, phi, Range, ResultSet, SQRT1_2, // eslint-disable-line camelcase
|
10
|
-
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mod, nthRoot, numeric, or, prod, reshape, size, smaller, squeeze, subset, subtract, to, transpose, xgcd, zeros, and, bitAnd, bitXor, cbrt, compare, compareText, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, flatten, gcd, hasNumericValue, hypot,
|
10
|
+
sackurTetrode, tau, _true, version, DenseMatrix, efimovFactor, LN2, pi, replacer, SQRT2, typed, unaryPlus, weakMixingAngle, abs, acos, acot, acsc, addScalar, arg, asech, asinh, atan, atanh, bignumber, bitNot, boolean, clone, combinations, complex, conj, cosh, coth, csc, cube, equalScalar, erf, exp, expm1, filter, forEach, format, getMatrixDataType, hex, im, isInteger, isNegative, isPositive, isZero, LOG2E, lgamma, log10, log2, map, multiplyScalar, not, number, oct, pickRandom, print, random, re, sec, sign, sin, SparseMatrix, splitUnit, square, string, tan, typeOf, acosh, acsch, apply, asec, bin, combinationsWithRep, cos, csch, isNaN, isPrime, randomInt, sech, sinh, sparse, sqrt, tanh, unaryMinus, acoth, cot, fraction, isNumeric, matrix, matrixFromFunction, mod, nthRoot, numeric, or, prod, reshape, size, smaller, squeeze, subset, subtract, to, transpose, xgcd, zeros, and, bitAnd, bitXor, cbrt, compare, compareText, concat, count, ctranspose, diag, divideScalar, dotDivide, equal, fft, flatten, gcd, hasNumericValue, hypot, ifft, kron, largerEq, leftShift, lsolve, matrixFromColumns, min, mode, nthRoots, ones, partitionSelect, resize, rightArithShift, round, smallerEq, unequal, usolve, xor, add, atan2, bitOr, catalan, compareNatural, cumsum, deepEqual, diff, dot, equalText, floor, identity, invmod, larger, log, lsolveAll, matrixFromRows, multiply, qr, range, rightLogShift, setSize, slu, sum, trace, usolveAll, asin, ceil, composition, cross, det, distance, dotMultiply, FibonacciHeap, fix, ImmutableDenseMatrix, Index, intersect, lcm, log1p, max, quantileSeq, row, setCartesian, setDistinct, setIsSubset, setPowerset, sort, column, index, inv, pinv, pow, setDifference, setMultiplicity, Spa, sqrtm, Unit, vacuumImpedance, wienDisplacement, atomicMass, bohrMagneton, boltzmann, conductanceQuantum, createUnit, deuteronMass, dotPow, electricConstant, elementaryCharge, expm, faraday, firstRadiation, gamma, gravitationConstant, hartreeEnergy, klitzing, loschmidt, magneticConstant, molarMass, molarPlanckConstant, neutronMass, nuclearMagneton, planckCharge, planckLength, planckTemperature, protonMass, reducedPlanckConstant, rydberg, setIntersect, speedOfLight, stefanBoltzmann, thomsonCrossSection, avogadro, bohrRadius, coulomb, divide, electronMass, factorial, gravity, inverseConductanceQuantum, lup, magneticFluxQuantum, molarMassC12, multinomial, permutations, planckMass, quantumOfCirculation, secondRadiation, stirlingS2, unit, bellNumbers, eigs, fermiCoupling, mean, molarVolume, planckConstant, setSymDifference, classicalElectronRadius, lusolve, median, setUnion, variance, kldivergence, norm, planckTime, rotationMatrix, gasConstant, std, mad, rotate } from './pureFunctionsAny.generated.js';
|
11
11
|
var math = {}; // NOT pure!
|
12
12
|
|
13
13
|
var mathWithTransform = {}; // NOT pure!
|
@@ -138,18 +138,6 @@ export var leafCount = createLeafCount({
|
|
138
138
|
parse,
|
139
139
|
typed
|
140
140
|
});
|
141
|
-
export var evaluate = createEvaluate({
|
142
|
-
parse,
|
143
|
-
typed
|
144
|
-
});
|
145
|
-
export var help = createHelp({
|
146
|
-
Help,
|
147
|
-
mathWithTransform,
|
148
|
-
typed
|
149
|
-
});
|
150
|
-
export var Parser = createParserClass({
|
151
|
-
evaluate
|
152
|
-
});
|
153
141
|
export var simplify = createSimplify({
|
154
142
|
bignumber,
|
155
143
|
fraction,
|
@@ -177,10 +165,24 @@ export var simplify = createSimplify({
|
|
177
165
|
subtract,
|
178
166
|
typed
|
179
167
|
});
|
180
|
-
export var
|
181
|
-
|
168
|
+
export var symbolicEqual = createSymbolicEqual({
|
169
|
+
OperatorNode,
|
170
|
+
parse,
|
171
|
+
simplify,
|
172
|
+
typed
|
173
|
+
});
|
174
|
+
export var evaluate = createEvaluate({
|
175
|
+
parse,
|
182
176
|
typed
|
183
177
|
});
|
178
|
+
export var help = createHelp({
|
179
|
+
Help,
|
180
|
+
mathWithTransform,
|
181
|
+
typed
|
182
|
+
});
|
183
|
+
export var Parser = createParserClass({
|
184
|
+
evaluate
|
185
|
+
});
|
184
186
|
export var rationalize = createRationalize({
|
185
187
|
bignumber,
|
186
188
|
fraction,
|
@@ -222,10 +224,8 @@ export var derivative = createDerivative({
|
|
222
224
|
simplify,
|
223
225
|
typed
|
224
226
|
});
|
225
|
-
export var
|
226
|
-
|
227
|
-
parse,
|
228
|
-
simplify,
|
227
|
+
export var parser = createParser({
|
228
|
+
Parser,
|
229
229
|
typed
|
230
230
|
});
|
231
231
|
|
@@ -364,10 +364,12 @@ _extends(math, {
|
|
364
364
|
divideScalar,
|
365
365
|
dotDivide,
|
366
366
|
equal,
|
367
|
+
fft,
|
367
368
|
flatten,
|
368
369
|
gcd,
|
369
370
|
hasNumericValue,
|
370
371
|
hypot,
|
372
|
+
ifft,
|
371
373
|
kron,
|
372
374
|
largerEq,
|
373
375
|
leftShift,
|
@@ -406,36 +408,37 @@ _extends(math, {
|
|
406
408
|
qr,
|
407
409
|
range,
|
408
410
|
rightLogShift,
|
409
|
-
|
410
|
-
setCartesian,
|
411
|
-
setDistinct,
|
412
|
-
setIsSubset,
|
413
|
-
setPowerset,
|
411
|
+
setSize,
|
414
412
|
slu,
|
415
413
|
sum,
|
416
414
|
trace,
|
417
415
|
usolveAll,
|
418
416
|
asin,
|
419
417
|
ceil,
|
420
|
-
column,
|
421
418
|
composition,
|
422
419
|
cross,
|
423
420
|
det,
|
424
421
|
distance,
|
425
422
|
dotMultiply,
|
426
423
|
fix,
|
427
|
-
|
428
|
-
inv,
|
424
|
+
intersect,
|
429
425
|
lcm,
|
430
426
|
log1p,
|
431
427
|
max,
|
428
|
+
quantileSeq,
|
429
|
+
row,
|
430
|
+
setCartesian,
|
431
|
+
setDistinct,
|
432
|
+
setIsSubset,
|
433
|
+
setPowerset,
|
434
|
+
sort,
|
435
|
+
column,
|
436
|
+
index,
|
437
|
+
inv,
|
432
438
|
pinv,
|
433
439
|
pow,
|
434
|
-
quantileSeq,
|
435
440
|
setDifference,
|
436
441
|
setMultiplicity,
|
437
|
-
setSymDifference,
|
438
|
-
sort,
|
439
442
|
sqrtm,
|
440
443
|
vacuumImpedance,
|
441
444
|
wienDisplacement,
|
@@ -454,7 +457,6 @@ _extends(math, {
|
|
454
457
|
gamma,
|
455
458
|
gravitationConstant,
|
456
459
|
hartreeEnergy,
|
457
|
-
intersect,
|
458
460
|
klitzing,
|
459
461
|
loschmidt,
|
460
462
|
magneticConstant,
|
@@ -469,7 +471,7 @@ _extends(math, {
|
|
469
471
|
reducedPlanckConstant,
|
470
472
|
rydberg,
|
471
473
|
setIntersect,
|
472
|
-
|
474
|
+
speedOfLight,
|
473
475
|
stefanBoltzmann,
|
474
476
|
thomsonCrossSection,
|
475
477
|
avogadro,
|
@@ -501,27 +503,27 @@ _extends(math, {
|
|
501
503
|
mean,
|
502
504
|
molarVolume,
|
503
505
|
planckConstant,
|
504
|
-
|
505
|
-
|
506
|
-
|
506
|
+
setSymDifference,
|
507
|
+
simplify,
|
508
|
+
symbolicEqual,
|
507
509
|
classicalElectronRadius,
|
508
510
|
evaluate,
|
509
511
|
help,
|
510
512
|
lusolve,
|
511
513
|
median,
|
512
|
-
simplify,
|
513
|
-
gasConstant,
|
514
|
-
mad,
|
515
|
-
parser,
|
516
514
|
rationalize,
|
517
|
-
|
515
|
+
setUnion,
|
516
|
+
variance,
|
518
517
|
derivative,
|
518
|
+
kldivergence,
|
519
519
|
norm,
|
520
|
+
planckTime,
|
520
521
|
rotationMatrix,
|
521
|
-
|
522
|
+
gasConstant,
|
523
|
+
parser,
|
524
|
+
std,
|
525
|
+
mad,
|
522
526
|
rotate,
|
523
|
-
planckTime,
|
524
|
-
symbolicEqual,
|
525
527
|
config
|
526
528
|
});
|
527
529
|
|
@@ -546,9 +548,6 @@ _extends(mathWithTransform, math, {
|
|
546
548
|
subtract,
|
547
549
|
typed
|
548
550
|
}),
|
549
|
-
index: createIndexTransform({
|
550
|
-
Index
|
551
|
-
}),
|
552
551
|
subset: createSubsetTransform({
|
553
552
|
matrix,
|
554
553
|
typed
|
@@ -580,24 +579,32 @@ _extends(mathWithTransform, math, {
|
|
580
579
|
smallerEq,
|
581
580
|
typed
|
582
581
|
}),
|
583
|
-
row: createRowTransform({
|
584
|
-
Index,
|
585
|
-
matrix,
|
586
|
-
range,
|
587
|
-
typed
|
588
|
-
}),
|
589
582
|
sum: createSumTransform({
|
590
583
|
add,
|
591
584
|
config,
|
592
585
|
numeric,
|
593
586
|
typed
|
594
587
|
}),
|
588
|
+
cumsum: createCumSumTransform({
|
589
|
+
add,
|
590
|
+
typed,
|
591
|
+
unaryPlus
|
592
|
+
}),
|
593
|
+
row: createRowTransform({
|
594
|
+
Index,
|
595
|
+
matrix,
|
596
|
+
range,
|
597
|
+
typed
|
598
|
+
}),
|
595
599
|
column: createColumnTransform({
|
596
600
|
Index,
|
597
601
|
matrix,
|
598
602
|
range,
|
599
603
|
typed
|
600
604
|
}),
|
605
|
+
index: createIndexTransform({
|
606
|
+
Index
|
607
|
+
}),
|
601
608
|
mean: createMeanTransform({
|
602
609
|
add,
|
603
610
|
divide,
|
@@ -616,11 +623,6 @@ _extends(mathWithTransform, math, {
|
|
616
623
|
sqrt,
|
617
624
|
typed,
|
618
625
|
variance
|
619
|
-
}),
|
620
|
-
cumsum: createCumSumTransform({
|
621
|
-
add,
|
622
|
-
typed,
|
623
|
-
unaryPlus
|
624
626
|
})
|
625
627
|
});
|
626
628
|
|
@@ -647,12 +649,12 @@ _extends(classes, {
|
|
647
649
|
SparseMatrix,
|
648
650
|
AccessorNode,
|
649
651
|
AssignmentNode,
|
650
|
-
ImmutableDenseMatrix,
|
651
|
-
Index,
|
652
652
|
IndexNode,
|
653
653
|
FibonacciHeap,
|
654
|
-
|
654
|
+
ImmutableDenseMatrix,
|
655
|
+
Index,
|
655
656
|
Spa,
|
657
|
+
Unit,
|
656
658
|
SymbolNode,
|
657
659
|
FunctionNode,
|
658
660
|
Help,
|