mathjs 9.3.2 → 9.4.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 +22 -0
- package/README.md +1 -0
- package/bin/cli.js +11 -11
- package/docs/expressions/parsing.md +21 -4
- package/docs/reference/functions/complex.md +5 -49
- package/docs/reference/functions/eigs.md +12 -12
- package/docs/reference/functions/flatten.md +1 -0
- package/docs/reference/functions/matrixFromColumns.md +1 -1
- package/docs/reference/functions/matrixFromFunction.md +12 -0
- package/docs/reference/functions/matrixFromRows.md +1 -1
- package/docs/reference/functions.md +4 -1
- package/examples/advanced/custom_scope_objects.js +115 -0
- package/lib/browser/math.js +10 -10
- package/lib/browser/math.js.map +1 -1
- package/lib/cjs/core/create.js +8 -7
- package/lib/cjs/core/function/import.js +9 -7
- package/lib/cjs/core/function/typed.js +6 -1
- package/lib/cjs/defaultInstance.js +3 -3
- package/lib/cjs/entry/allFactoriesAny.js +3 -3
- package/lib/cjs/entry/allFactoriesNumber.js +3 -3
- package/lib/cjs/entry/configReadonly.js +5 -4
- package/lib/cjs/entry/dependenciesAny/dependenciesEigs.generated.js +51 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js +26 -0
- package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js +29 -0
- package/lib/cjs/entry/dependenciesAny.generated.js +24 -0
- package/lib/cjs/entry/impureFunctionsAny.generated.js +22 -17
- package/lib/cjs/entry/impureFunctionsNumber.generated.js +11 -9
- package/lib/cjs/entry/pureFunctionsAny.generated.js +78 -41
- package/lib/cjs/expression/Parser.js +22 -15
- package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +9 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/column.js +1 -1
- package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromColumns.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromFunction.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromRows.js +15 -0
- package/lib/cjs/expression/embeddedDocs/function/matrix/row.js +1 -1
- package/lib/cjs/expression/function/evaluate.js +6 -4
- package/lib/cjs/expression/keywords.js +1 -3
- package/lib/cjs/expression/node/AccessorNode.js +1 -0
- package/lib/cjs/expression/node/AssignmentNode.js +6 -3
- package/lib/cjs/expression/node/FunctionAssignmentNode.js +2 -4
- package/lib/cjs/expression/node/FunctionNode.js +76 -46
- package/lib/cjs/expression/node/IndexNode.js +5 -13
- package/lib/cjs/expression/node/Node.js +15 -9
- package/lib/cjs/expression/node/ObjectNode.js +5 -3
- package/lib/cjs/expression/node/SymbolNode.js +2 -2
- package/lib/cjs/expression/node/utils/access.js +5 -3
- package/lib/cjs/expression/node/utils/assign.js +5 -3
- package/lib/cjs/expression/parse.js +10 -14
- package/lib/cjs/expression/transform/utils/compileInlineExpression.js +5 -3
- package/lib/cjs/factoriesAny.js +24 -0
- package/lib/cjs/function/algebra/decomposition/qr.js +5 -3
- package/lib/cjs/function/algebra/simplify/resolve.js +7 -1
- package/lib/cjs/function/algebra/simplify.js +20 -14
- package/lib/cjs/function/algebra/solver/lsolveAll.js +6 -16
- package/lib/cjs/function/algebra/solver/usolveAll.js +6 -16
- package/lib/cjs/function/arithmetic/ceil.js +6 -16
- package/lib/cjs/function/arithmetic/floor.js +6 -16
- package/lib/cjs/function/arithmetic/norm.js +2 -2
- package/lib/cjs/function/arithmetic/pow.js +9 -7
- package/lib/cjs/function/arithmetic/round.js +7 -5
- package/lib/cjs/function/complex/im.js +3 -0
- package/lib/cjs/function/complex/re.js +3 -0
- package/lib/cjs/function/matrix/eigs/complexEigs.js +631 -0
- package/lib/cjs/function/matrix/eigs/realSymetric.js +341 -0
- package/lib/cjs/function/matrix/eigs.js +188 -334
- package/lib/cjs/function/matrix/flatten.js +1 -0
- package/lib/cjs/function/matrix/matrixFromColumns.js +118 -0
- package/lib/cjs/function/matrix/matrixFromFunction.js +85 -0
- package/lib/cjs/function/matrix/matrixFromRows.js +108 -0
- package/lib/cjs/function/probability/pickRandom.js +1 -1
- package/lib/cjs/function/probability/util/seededRNG.js +2 -2
- package/lib/cjs/function/relational/compareNatural.js +2 -2
- package/lib/cjs/header.js +2 -2
- package/lib/cjs/plain/bignumber/index.js +2 -2
- package/lib/cjs/type/bignumber/BigNumber.js +2 -2
- package/lib/cjs/type/complex/Complex.js +5 -5
- package/lib/cjs/type/fraction/Fraction.js +2 -2
- package/lib/cjs/type/matrix/DenseMatrix.js +138 -0
- package/lib/cjs/type/matrix/Matrix.js +10 -0
- package/lib/cjs/type/matrix/SparseMatrix.js +77 -3
- package/lib/cjs/type/matrix/function/matrix.js +2 -1
- package/lib/cjs/type/unit/Unit.js +15 -13
- package/lib/cjs/utils/array.js +1 -1
- package/lib/cjs/utils/customs.js +18 -4
- package/lib/cjs/utils/emitter.js +2 -2
- package/lib/cjs/utils/function.js +6 -2
- package/lib/cjs/utils/is.js +7 -5
- package/lib/cjs/utils/latex.js +2 -2
- package/lib/cjs/utils/map.js +197 -0
- package/lib/cjs/utils/object.js +6 -5
- package/lib/cjs/utils/scope.js +33 -0
- package/lib/cjs/utils/snapshot.js +17 -16
- package/lib/cjs/utils/string.js +6 -4
- package/lib/cjs/version.js +1 -1
- package/lib/esm/constants.js +15 -15
- package/lib/esm/core/create.js +1 -2
- package/lib/esm/core/function/typed.js +5 -1
- package/lib/esm/entry/configReadonly.js +1 -2
- package/lib/esm/entry/dependenciesAny/dependenciesEigs.generated.js +34 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js +14 -0
- package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js +16 -0
- package/lib/esm/entry/dependenciesAny.generated.js +3 -0
- package/lib/esm/entry/impureFunctionsAny.generated.js +13 -10
- package/lib/esm/entry/impureFunctionsNumber.generated.js +1 -1
- package/lib/esm/entry/pureFunctionsAny.generated.js +66 -32
- package/lib/esm/expression/Help.js +1 -1
- package/lib/esm/expression/Parser.js +23 -15
- package/lib/esm/expression/embeddedDocs/embeddedDocs.js +6 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/column.js +1 -1
- package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromColumns.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromFunction.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromRows.js +8 -0
- package/lib/esm/expression/embeddedDocs/function/matrix/row.js +1 -1
- package/lib/esm/expression/function/compile.js +1 -1
- package/lib/esm/expression/function/evaluate.js +6 -5
- package/lib/esm/expression/function/help.js +1 -1
- package/lib/esm/expression/function/parser.js +1 -1
- package/lib/esm/expression/keywords.js +1 -3
- package/lib/esm/expression/node/AccessorNode.js +2 -1
- package/lib/esm/expression/node/ArrayNode.js +1 -1
- package/lib/esm/expression/node/AssignmentNode.js +7 -4
- package/lib/esm/expression/node/BlockNode.js +1 -1
- package/lib/esm/expression/node/ConditionalNode.js +1 -1
- package/lib/esm/expression/node/ConstantNode.js +1 -1
- package/lib/esm/expression/node/FunctionAssignmentNode.js +3 -4
- package/lib/esm/expression/node/FunctionNode.js +57 -39
- package/lib/esm/expression/node/IndexNode.js +1 -1
- package/lib/esm/expression/node/Node.js +7 -8
- package/lib/esm/expression/node/ObjectNode.js +1 -1
- package/lib/esm/expression/node/OperatorNode.js +1 -1
- package/lib/esm/expression/node/ParenthesisNode.js +1 -1
- package/lib/esm/expression/node/RangeNode.js +1 -1
- package/lib/esm/expression/node/RelationalNode.js +1 -1
- package/lib/esm/expression/node/SymbolNode.js +3 -3
- package/lib/esm/expression/parse.js +2 -3
- package/lib/esm/expression/transform/apply.transform.js +1 -1
- package/lib/esm/expression/transform/column.transform.js +1 -1
- package/lib/esm/expression/transform/concat.transform.js +1 -1
- package/lib/esm/expression/transform/diff.transform.js +1 -1
- package/lib/esm/expression/transform/filter.transform.js +1 -1
- package/lib/esm/expression/transform/forEach.transform.js +1 -1
- package/lib/esm/expression/transform/index.transform.js +1 -1
- package/lib/esm/expression/transform/map.transform.js +1 -1
- package/lib/esm/expression/transform/max.transform.js +1 -1
- package/lib/esm/expression/transform/mean.transform.js +1 -1
- package/lib/esm/expression/transform/min.transform.js +1 -1
- package/lib/esm/expression/transform/range.transform.js +1 -1
- package/lib/esm/expression/transform/row.transform.js +1 -1
- package/lib/esm/expression/transform/std.transform.js +1 -1
- package/lib/esm/expression/transform/subset.transform.js +1 -1
- package/lib/esm/expression/transform/sum.transform.js +1 -1
- package/lib/esm/expression/transform/utils/compileInlineExpression.js +4 -3
- package/lib/esm/expression/transform/variance.transform.js +1 -1
- package/lib/esm/factoriesAny.js +3 -0
- package/lib/esm/factoriesNumber.js +1 -1
- package/lib/esm/function/algebra/decomposition/lup.js +1 -1
- package/lib/esm/function/algebra/decomposition/qr.js +2 -3
- package/lib/esm/function/algebra/decomposition/slu.js +1 -1
- package/lib/esm/function/algebra/derivative.js +1 -1
- package/lib/esm/function/algebra/rationalize.js +1 -1
- package/lib/esm/function/algebra/simplify/resolve.js +7 -2
- package/lib/esm/function/algebra/simplify/simplifyConstant.js +1 -1
- package/lib/esm/function/algebra/simplify/simplifyCore.js +1 -1
- package/lib/esm/function/algebra/simplify/util.js +1 -1
- package/lib/esm/function/algebra/simplify.js +16 -12
- package/lib/esm/function/algebra/solver/lsolve.js +1 -1
- package/lib/esm/function/algebra/solver/lsolveAll.js +1 -1
- package/lib/esm/function/algebra/solver/lusolve.js +1 -1
- package/lib/esm/function/algebra/solver/usolve.js +1 -1
- package/lib/esm/function/algebra/solver/usolveAll.js +1 -1
- package/lib/esm/function/algebra/sparse/csAmd.js +1 -1
- package/lib/esm/function/algebra/sparse/csChol.js +1 -1
- package/lib/esm/function/algebra/sparse/csCounts.js +1 -1
- package/lib/esm/function/algebra/sparse/csLu.js +1 -1
- package/lib/esm/function/algebra/sparse/csSpsolve.js +1 -1
- package/lib/esm/function/algebra/sparse/csSqr.js +1 -1
- package/lib/esm/function/algebra/sparse/csSymperm.js +1 -1
- package/lib/esm/function/arithmetic/abs.js +1 -1
- package/lib/esm/function/arithmetic/add.js +1 -1
- package/lib/esm/function/arithmetic/addScalar.js +1 -1
- package/lib/esm/function/arithmetic/cbrt.js +1 -1
- package/lib/esm/function/arithmetic/ceil.js +1 -1
- package/lib/esm/function/arithmetic/cube.js +1 -1
- package/lib/esm/function/arithmetic/divide.js +1 -1
- package/lib/esm/function/arithmetic/divideScalar.js +1 -1
- package/lib/esm/function/arithmetic/dotDivide.js +1 -1
- package/lib/esm/function/arithmetic/dotMultiply.js +1 -1
- package/lib/esm/function/arithmetic/dotPow.js +1 -1
- package/lib/esm/function/arithmetic/exp.js +1 -1
- package/lib/esm/function/arithmetic/expm1.js +1 -1
- package/lib/esm/function/arithmetic/fix.js +1 -1
- package/lib/esm/function/arithmetic/floor.js +1 -1
- package/lib/esm/function/arithmetic/gcd.js +1 -1
- package/lib/esm/function/arithmetic/hypot.js +1 -1
- package/lib/esm/function/arithmetic/lcm.js +1 -1
- package/lib/esm/function/arithmetic/log.js +1 -1
- package/lib/esm/function/arithmetic/log10.js +1 -1
- package/lib/esm/function/arithmetic/log1p.js +1 -1
- package/lib/esm/function/arithmetic/log2.js +1 -1
- package/lib/esm/function/arithmetic/mod.js +1 -1
- package/lib/esm/function/arithmetic/multiply.js +1 -1
- package/lib/esm/function/arithmetic/multiplyScalar.js +1 -1
- package/lib/esm/function/arithmetic/norm.js +3 -3
- package/lib/esm/function/arithmetic/nthRoot.js +2 -2
- package/lib/esm/function/arithmetic/nthRoots.js +1 -1
- package/lib/esm/function/arithmetic/pow.js +10 -8
- package/lib/esm/function/arithmetic/round.js +6 -6
- package/lib/esm/function/arithmetic/sign.js +1 -1
- package/lib/esm/function/arithmetic/sqrt.js +1 -1
- package/lib/esm/function/arithmetic/square.js +1 -1
- package/lib/esm/function/arithmetic/subtract.js +1 -1
- package/lib/esm/function/arithmetic/unaryMinus.js +1 -1
- package/lib/esm/function/arithmetic/unaryPlus.js +1 -1
- package/lib/esm/function/arithmetic/xgcd.js +1 -1
- package/lib/esm/function/bitwise/bitAnd.js +1 -1
- package/lib/esm/function/bitwise/bitNot.js +1 -1
- package/lib/esm/function/bitwise/bitOr.js +1 -1
- package/lib/esm/function/bitwise/bitXor.js +1 -1
- package/lib/esm/function/bitwise/leftShift.js +1 -1
- package/lib/esm/function/bitwise/rightArithShift.js +1 -1
- package/lib/esm/function/bitwise/rightLogShift.js +1 -1
- package/lib/esm/function/combinatorics/bellNumbers.js +1 -1
- package/lib/esm/function/combinatorics/catalan.js +1 -1
- package/lib/esm/function/combinatorics/composition.js +1 -1
- package/lib/esm/function/combinatorics/stirlingS2.js +1 -1
- package/lib/esm/function/complex/arg.js +1 -1
- package/lib/esm/function/complex/conj.js +1 -1
- package/lib/esm/function/complex/im.js +4 -1
- package/lib/esm/function/complex/re.js +4 -1
- package/lib/esm/function/geometry/distance.js +1 -1
- package/lib/esm/function/geometry/intersect.js +1 -1
- package/lib/esm/function/logical/and.js +1 -1
- package/lib/esm/function/logical/not.js +1 -1
- package/lib/esm/function/logical/or.js +1 -1
- package/lib/esm/function/logical/xor.js +1 -1
- package/lib/esm/function/matrix/apply.js +1 -1
- package/lib/esm/function/matrix/column.js +1 -1
- package/lib/esm/function/matrix/concat.js +1 -1
- package/lib/esm/function/matrix/count.js +1 -1
- package/lib/esm/function/matrix/cross.js +1 -1
- package/lib/esm/function/matrix/ctranspose.js +1 -1
- package/lib/esm/function/matrix/det.js +1 -1
- package/lib/esm/function/matrix/diag.js +1 -1
- package/lib/esm/function/matrix/diff.js +1 -1
- package/lib/esm/function/matrix/dot.js +1 -1
- package/lib/esm/function/matrix/eigs/complexEigs.js +586 -0
- package/lib/esm/function/matrix/eigs/realSymetric.js +335 -0
- package/lib/esm/function/matrix/eigs.js +187 -335
- package/lib/esm/function/matrix/expm.js +1 -1
- package/lib/esm/function/matrix/filter.js +1 -1
- package/lib/esm/function/matrix/flatten.js +2 -1
- package/lib/esm/function/matrix/forEach.js +1 -1
- package/lib/esm/function/matrix/getMatrixDataType.js +1 -1
- package/lib/esm/function/matrix/identity.js +1 -1
- package/lib/esm/function/matrix/inv.js +1 -1
- package/lib/esm/function/matrix/kron.js +1 -1
- package/lib/esm/function/matrix/map.js +1 -1
- package/lib/esm/function/matrix/matrixFromColumns.js +93 -0
- package/lib/esm/function/matrix/matrixFromFunction.js +78 -0
- package/lib/esm/function/matrix/matrixFromRows.js +83 -0
- package/lib/esm/function/matrix/ones.js +1 -1
- package/lib/esm/function/matrix/partitionSelect.js +1 -1
- package/lib/esm/function/matrix/range.js +1 -1
- package/lib/esm/function/matrix/reshape.js +1 -1
- package/lib/esm/function/matrix/resize.js +1 -1
- package/lib/esm/function/matrix/rotate.js +1 -1
- package/lib/esm/function/matrix/rotationMatrix.js +1 -1
- package/lib/esm/function/matrix/row.js +1 -1
- package/lib/esm/function/matrix/size.js +1 -1
- package/lib/esm/function/matrix/sort.js +1 -1
- package/lib/esm/function/matrix/sqrtm.js +1 -1
- package/lib/esm/function/matrix/squeeze.js +1 -1
- package/lib/esm/function/matrix/subset.js +1 -1
- package/lib/esm/function/matrix/trace.js +1 -1
- package/lib/esm/function/matrix/transpose.js +1 -1
- package/lib/esm/function/matrix/zeros.js +1 -1
- package/lib/esm/function/probability/combinations.js +1 -1
- package/lib/esm/function/probability/combinationsWithRep.js +1 -1
- package/lib/esm/function/probability/factorial.js +1 -1
- package/lib/esm/function/probability/gamma.js +1 -1
- package/lib/esm/function/probability/kldivergence.js +1 -1
- package/lib/esm/function/probability/multinomial.js +1 -1
- package/lib/esm/function/probability/permutations.js +1 -1
- package/lib/esm/function/probability/pickRandom.js +2 -2
- package/lib/esm/function/probability/random.js +2 -2
- package/lib/esm/function/probability/randomInt.js +1 -1
- package/lib/esm/function/relational/compare.js +2 -2
- package/lib/esm/function/relational/compareNatural.js +1 -1
- package/lib/esm/function/relational/compareText.js +2 -2
- package/lib/esm/function/relational/deepEqual.js +1 -1
- package/lib/esm/function/relational/equal.js +2 -2
- package/lib/esm/function/relational/equalScalar.js +2 -2
- package/lib/esm/function/relational/equalText.js +1 -1
- package/lib/esm/function/relational/larger.js +2 -2
- package/lib/esm/function/relational/largerEq.js +2 -2
- package/lib/esm/function/relational/smaller.js +2 -2
- package/lib/esm/function/relational/smallerEq.js +2 -2
- package/lib/esm/function/relational/unequal.js +2 -2
- package/lib/esm/function/set/setCartesian.js +1 -1
- package/lib/esm/function/set/setDifference.js +1 -1
- package/lib/esm/function/set/setDistinct.js +1 -1
- package/lib/esm/function/set/setIntersect.js +1 -1
- package/lib/esm/function/set/setIsSubset.js +1 -1
- package/lib/esm/function/set/setMultiplicity.js +1 -1
- package/lib/esm/function/set/setPowerset.js +1 -1
- package/lib/esm/function/set/setSize.js +1 -1
- package/lib/esm/function/set/setSymDifference.js +1 -1
- package/lib/esm/function/set/setUnion.js +1 -1
- package/lib/esm/function/special/erf.js +1 -1
- package/lib/esm/function/statistics/mad.js +1 -1
- package/lib/esm/function/statistics/max.js +1 -1
- package/lib/esm/function/statistics/mean.js +1 -1
- package/lib/esm/function/statistics/median.js +1 -1
- package/lib/esm/function/statistics/min.js +1 -1
- package/lib/esm/function/statistics/mode.js +1 -1
- package/lib/esm/function/statistics/prod.js +1 -1
- package/lib/esm/function/statistics/quantileSeq.js +1 -1
- package/lib/esm/function/statistics/std.js +1 -1
- package/lib/esm/function/statistics/sum.js +1 -1
- package/lib/esm/function/statistics/variance.js +1 -1
- package/lib/esm/function/string/bin.js +1 -1
- package/lib/esm/function/string/format.js +1 -1
- package/lib/esm/function/string/hex.js +1 -1
- package/lib/esm/function/string/oct.js +1 -1
- package/lib/esm/function/string/print.js +1 -1
- package/lib/esm/function/trigonometry/acos.js +1 -1
- package/lib/esm/function/trigonometry/acosh.js +1 -1
- package/lib/esm/function/trigonometry/acot.js +1 -1
- package/lib/esm/function/trigonometry/acoth.js +1 -1
- package/lib/esm/function/trigonometry/acsc.js +1 -1
- package/lib/esm/function/trigonometry/acsch.js +1 -1
- package/lib/esm/function/trigonometry/asec.js +1 -1
- package/lib/esm/function/trigonometry/asech.js +1 -1
- package/lib/esm/function/trigonometry/asin.js +1 -1
- package/lib/esm/function/trigonometry/asinh.js +1 -1
- package/lib/esm/function/trigonometry/atan.js +1 -1
- package/lib/esm/function/trigonometry/atan2.js +1 -1
- package/lib/esm/function/trigonometry/atanh.js +1 -1
- package/lib/esm/function/trigonometry/cos.js +1 -1
- package/lib/esm/function/trigonometry/cosh.js +1 -1
- package/lib/esm/function/trigonometry/cot.js +1 -1
- package/lib/esm/function/trigonometry/coth.js +1 -1
- package/lib/esm/function/trigonometry/csc.js +1 -1
- package/lib/esm/function/trigonometry/csch.js +1 -1
- package/lib/esm/function/trigonometry/sec.js +1 -1
- package/lib/esm/function/trigonometry/sech.js +1 -1
- package/lib/esm/function/trigonometry/sin.js +1 -1
- package/lib/esm/function/trigonometry/sinh.js +1 -1
- package/lib/esm/function/trigonometry/tan.js +1 -1
- package/lib/esm/function/trigonometry/tanh.js +1 -1
- package/lib/esm/function/unit/to.js +1 -1
- package/lib/esm/function/utils/clone.js +1 -1
- package/lib/esm/function/utils/hasNumericValue.js +1 -1
- package/lib/esm/function/utils/isInteger.js +1 -1
- package/lib/esm/function/utils/isNaN.js +1 -1
- package/lib/esm/function/utils/isNegative.js +1 -1
- package/lib/esm/function/utils/isNumeric.js +1 -1
- package/lib/esm/function/utils/isPositive.js +1 -1
- package/lib/esm/function/utils/isPrime.js +1 -1
- package/lib/esm/function/utils/isZero.js +1 -1
- package/lib/esm/function/utils/numeric.js +1 -1
- package/lib/esm/function/utils/typeOf.js +1 -1
- package/lib/esm/json/reviver.js +1 -1
- package/lib/esm/type/bignumber/BigNumber.js +1 -1
- package/lib/esm/type/bignumber/function/bignumber.js +1 -1
- package/lib/esm/type/boolean.js +1 -1
- package/lib/esm/type/chain/Chain.js +1 -1
- package/lib/esm/type/chain/function/chain.js +1 -1
- package/lib/esm/type/complex/function/complex.js +1 -1
- package/lib/esm/type/fraction/function/fraction.js +1 -1
- package/lib/esm/type/matrix/DenseMatrix.js +75 -1
- package/lib/esm/type/matrix/FibonacciHeap.js +1 -1
- package/lib/esm/type/matrix/ImmutableDenseMatrix.js +1 -1
- package/lib/esm/type/matrix/Matrix.js +10 -0
- package/lib/esm/type/matrix/MatrixIndex.js +1 -1
- package/lib/esm/type/matrix/Spa.js +1 -1
- package/lib/esm/type/matrix/SparseMatrix.js +37 -3
- package/lib/esm/type/matrix/function/index.js +1 -1
- package/lib/esm/type/matrix/function/matrix.js +3 -2
- package/lib/esm/type/matrix/function/sparse.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm01.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm02.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm03.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm04.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm05.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm06.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm07.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm08.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm09.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm10.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm11.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm12.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm13.js +1 -1
- package/lib/esm/type/matrix/utils/algorithm14.js +1 -1
- package/lib/esm/type/number.js +1 -1
- package/lib/esm/type/string.js +1 -1
- package/lib/esm/type/unit/Unit.js +4 -5
- package/lib/esm/type/unit/function/createUnit.js +1 -1
- package/lib/esm/type/unit/function/splitUnit.js +1 -1
- package/lib/esm/type/unit/function/unit.js +1 -1
- package/lib/esm/type/unit/physicalConstants.js +2 -2
- package/lib/esm/utils/array.js +1 -1
- package/lib/esm/utils/customs.js +10 -0
- package/lib/esm/utils/map.js +135 -0
- package/lib/esm/utils/scope.js +26 -0
- package/lib/esm/utils/snapshot.js +3 -4
- package/lib/esm/version.js +1 -1
- package/package.json +18 -9
@@ -0,0 +1,118 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createMatrixFromColumns = void 0;
|
7
|
+
|
8
|
+
var _factory = require("../../utils/factory.js");
|
9
|
+
|
10
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
11
|
+
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
13
|
+
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
15
|
+
|
16
|
+
var name = 'matrixFromColumns';
|
17
|
+
var dependencies = ['typed', 'matrix', 'flatten', 'size'];
|
18
|
+
var createMatrixFromColumns = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
19
|
+
var typed = _ref.typed,
|
20
|
+
matrix = _ref.matrix,
|
21
|
+
flatten = _ref.flatten,
|
22
|
+
size = _ref.size;
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Create a dense matrix from vectors as individual columns.
|
26
|
+
* If you pass row vectors, they will be transposed (but not conjugated!)
|
27
|
+
*
|
28
|
+
* Syntax:
|
29
|
+
*
|
30
|
+
* math.matrixFromColumns(...arr)
|
31
|
+
* math.matrixFromColumns(col1, col2)
|
32
|
+
* math.matrixFromColumns(col1, col2, col3)
|
33
|
+
*
|
34
|
+
* Examples:
|
35
|
+
*
|
36
|
+
* math.matrixFromColumns([1, 2, 3], [[4],[5],[6]])
|
37
|
+
* math.matrixFromColumns(...vectors)
|
38
|
+
*
|
39
|
+
* See also:
|
40
|
+
*
|
41
|
+
* matrix, matrixFromRows, matrixFromFunction, zeros
|
42
|
+
*
|
43
|
+
* @param {... Array | Matrix} cols Multiple columns
|
44
|
+
* @return { number[][] | Matrix } if at least one of the arguments is an array, an array will be returned
|
45
|
+
*/
|
46
|
+
return typed(name, {
|
47
|
+
'...Array': function Array(arr) {
|
48
|
+
return _createArray(arr);
|
49
|
+
},
|
50
|
+
'...Matrix': function Matrix(arr) {
|
51
|
+
return matrix(_createArray(arr.map(function (m) {
|
52
|
+
return m.toArray();
|
53
|
+
})));
|
54
|
+
} // TODO implement this properly for SparseMatrix
|
55
|
+
|
56
|
+
});
|
57
|
+
|
58
|
+
function _createArray(arr) {
|
59
|
+
if (arr.length === 0) throw new TypeError('At least one column is needed to construct a matrix.');
|
60
|
+
var N = checkVectorTypeAndReturnLength(arr[0]); // create an array with empty rows
|
61
|
+
|
62
|
+
var result = [];
|
63
|
+
|
64
|
+
for (var i = 0; i < N; i++) {
|
65
|
+
result[i] = [];
|
66
|
+
} // loop columns
|
67
|
+
|
68
|
+
|
69
|
+
var _iterator = _createForOfIteratorHelper(arr),
|
70
|
+
_step;
|
71
|
+
|
72
|
+
try {
|
73
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
74
|
+
var col = _step.value;
|
75
|
+
var colLength = checkVectorTypeAndReturnLength(col);
|
76
|
+
|
77
|
+
if (colLength !== N) {
|
78
|
+
throw new TypeError('The vectors had different length: ' + (N | 0) + ' ≠ ' + (colLength | 0));
|
79
|
+
}
|
80
|
+
|
81
|
+
var f = flatten(col); // push a value to each row
|
82
|
+
|
83
|
+
for (var _i = 0; _i < N; _i++) {
|
84
|
+
result[_i].push(f[_i]);
|
85
|
+
}
|
86
|
+
}
|
87
|
+
} catch (err) {
|
88
|
+
_iterator.e(err);
|
89
|
+
} finally {
|
90
|
+
_iterator.f();
|
91
|
+
}
|
92
|
+
|
93
|
+
return result;
|
94
|
+
}
|
95
|
+
|
96
|
+
function checkVectorTypeAndReturnLength(vec) {
|
97
|
+
var s = size(vec);
|
98
|
+
|
99
|
+
if (s.length === 1) {
|
100
|
+
// 1D vector
|
101
|
+
return s[0];
|
102
|
+
} else if (s.length === 2) {
|
103
|
+
// 2D vector
|
104
|
+
if (s[0] === 1) {
|
105
|
+
// row vector
|
106
|
+
return s[1];
|
107
|
+
} else if (s[1] === 1) {
|
108
|
+
// col vector
|
109
|
+
return s[0];
|
110
|
+
} else {
|
111
|
+
throw new TypeError('At least one of the arguments is not a vector.');
|
112
|
+
}
|
113
|
+
} else {
|
114
|
+
throw new TypeError('Only one- or two-dimensional vectors are supported.');
|
115
|
+
}
|
116
|
+
}
|
117
|
+
});
|
118
|
+
exports.createMatrixFromColumns = createMatrixFromColumns;
|
@@ -0,0 +1,85 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createMatrixFromFunction = void 0;
|
7
|
+
|
8
|
+
var _factory = require("../../utils/factory.js");
|
9
|
+
|
10
|
+
var name = 'matrixFromFunction';
|
11
|
+
var dependencies = ['typed', 'matrix', 'isZero'];
|
12
|
+
var createMatrixFromFunction = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
13
|
+
var typed = _ref.typed,
|
14
|
+
matrix = _ref.matrix,
|
15
|
+
isZero = _ref.isZero;
|
16
|
+
|
17
|
+
/**
|
18
|
+
* Create a matrix by evaluating a generating function at each index.
|
19
|
+
* The simplest overload returns a multi-dimensional array as long as `size` is an array.
|
20
|
+
* Passing `size` as a Matrix or specifying a `format` will result in returning a Matrix.
|
21
|
+
*
|
22
|
+
* Syntax:
|
23
|
+
*
|
24
|
+
* math.matrixFromFunction(size, fn)
|
25
|
+
* math.matrixFromFunction(size, fn, format)
|
26
|
+
* math.matrixFromFunction(size, fn, format, datatype)
|
27
|
+
* math.matrixFromFunction(size, format, fn)
|
28
|
+
* math.matrixFromFunction(size, format, datatype, fn)
|
29
|
+
*
|
30
|
+
* Examples:
|
31
|
+
*
|
32
|
+
* math.matrixFromFunction([3,3], i => i[0] - i[1]) // an antisymmetric matrix
|
33
|
+
* math.matrixFromFunction([100, 100], 'sparse', i => i[0] - i[1] === 1 ? 4 : 0) // a sparse subdiagonal matrix
|
34
|
+
* math.matrixFromFunction([5], i => math.random()) // a random vector
|
35
|
+
*
|
36
|
+
* See also:
|
37
|
+
*
|
38
|
+
* matrix, zeros
|
39
|
+
*
|
40
|
+
* @param {Array | Matrix} size The size of the matrix to be created
|
41
|
+
* @param {function} fn Callback function invoked for every entry in the matrix
|
42
|
+
* @param {string} [format] The Matrix storage format, either `'dense'` or `'sparse'`
|
43
|
+
* @param {string} [datatype] Type of the values
|
44
|
+
* @return {Array | Matrix} Returns the created matrix
|
45
|
+
*/
|
46
|
+
return typed(name, {
|
47
|
+
'Array | Matrix, function, string, string': function ArrayMatrixFunctionStringString(size, fn, format, datatype) {
|
48
|
+
return _create(size, fn, format, datatype);
|
49
|
+
},
|
50
|
+
'Array | Matrix, function, string': function ArrayMatrixFunctionString(size, fn, format) {
|
51
|
+
return _create(size, fn, format);
|
52
|
+
},
|
53
|
+
'Matrix, function': function MatrixFunction(size, fn) {
|
54
|
+
return _create(size, fn, 'dense');
|
55
|
+
},
|
56
|
+
'Array, function': function ArrayFunction(size, fn) {
|
57
|
+
return _create(size, fn, 'dense').toArray();
|
58
|
+
},
|
59
|
+
'Array | Matrix, string, function': function ArrayMatrixStringFunction(size, format, fn) {
|
60
|
+
return _create(size, fn, format);
|
61
|
+
},
|
62
|
+
'Array | Matrix, string, string, function': function ArrayMatrixStringStringFunction(size, format, datatype, fn) {
|
63
|
+
return _create(size, fn, format, datatype);
|
64
|
+
}
|
65
|
+
});
|
66
|
+
|
67
|
+
function _create(size, fn, format, datatype) {
|
68
|
+
var m;
|
69
|
+
|
70
|
+
if (datatype !== undefined) {
|
71
|
+
m = matrix(format, datatype);
|
72
|
+
} else {
|
73
|
+
m = matrix(format);
|
74
|
+
}
|
75
|
+
|
76
|
+
m.resize(size);
|
77
|
+
m.forEach(function (_, index) {
|
78
|
+
var val = fn(index);
|
79
|
+
if (isZero(val)) return;
|
80
|
+
m.set(index, val);
|
81
|
+
});
|
82
|
+
return m;
|
83
|
+
}
|
84
|
+
});
|
85
|
+
exports.createMatrixFromFunction = createMatrixFromFunction;
|
@@ -0,0 +1,108 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
4
|
+
value: true
|
5
|
+
});
|
6
|
+
exports.createMatrixFromRows = void 0;
|
7
|
+
|
8
|
+
var _factory = require("../../utils/factory.js");
|
9
|
+
|
10
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
11
|
+
|
12
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
13
|
+
|
14
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
15
|
+
|
16
|
+
var name = 'matrixFromRows';
|
17
|
+
var dependencies = ['typed', 'matrix', 'flatten', 'size'];
|
18
|
+
var createMatrixFromRows = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
19
|
+
var typed = _ref.typed,
|
20
|
+
matrix = _ref.matrix,
|
21
|
+
flatten = _ref.flatten,
|
22
|
+
size = _ref.size;
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Create a dense matrix from vectors as individual rows.
|
26
|
+
* If you pass column vectors, they will be transposed (but not conjugated!)
|
27
|
+
*
|
28
|
+
* Syntax:
|
29
|
+
*
|
30
|
+
* math.matrixFromRows(...arr)
|
31
|
+
* math.matrixFromRows(row1, row2)
|
32
|
+
* math.matrixFromRows(row1, row2, row3)
|
33
|
+
*
|
34
|
+
* Examples:
|
35
|
+
*
|
36
|
+
* math.matrixFromRows([1, 2, 3], [[4],[5],[6]])
|
37
|
+
* math.matrixFromRows(...vectors)
|
38
|
+
*
|
39
|
+
* See also:
|
40
|
+
*
|
41
|
+
* matrix, matrixFromColumns, matrixFromFunction, zeros
|
42
|
+
*
|
43
|
+
* @param {... Array | Matrix} rows Multiple rows
|
44
|
+
* @return { number[][] | Matrix } if at least one of the arguments is an array, an array will be returned
|
45
|
+
*/
|
46
|
+
return typed(name, {
|
47
|
+
'...Array': function Array(arr) {
|
48
|
+
return _createArray(arr);
|
49
|
+
},
|
50
|
+
'...Matrix': function Matrix(arr) {
|
51
|
+
return matrix(_createArray(arr.map(function (m) {
|
52
|
+
return m.toArray();
|
53
|
+
})));
|
54
|
+
} // TODO implement this properly for SparseMatrix
|
55
|
+
|
56
|
+
});
|
57
|
+
|
58
|
+
function _createArray(arr) {
|
59
|
+
if (arr.length === 0) throw new TypeError('At least one row is needed to construct a matrix.');
|
60
|
+
var N = checkVectorTypeAndReturnLength(arr[0]);
|
61
|
+
var result = [];
|
62
|
+
|
63
|
+
var _iterator = _createForOfIteratorHelper(arr),
|
64
|
+
_step;
|
65
|
+
|
66
|
+
try {
|
67
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
68
|
+
var row = _step.value;
|
69
|
+
var rowLength = checkVectorTypeAndReturnLength(row);
|
70
|
+
|
71
|
+
if (rowLength !== N) {
|
72
|
+
throw new TypeError('The vectors had different length: ' + (N | 0) + ' ≠ ' + (rowLength | 0));
|
73
|
+
}
|
74
|
+
|
75
|
+
result.push(flatten(row));
|
76
|
+
}
|
77
|
+
} catch (err) {
|
78
|
+
_iterator.e(err);
|
79
|
+
} finally {
|
80
|
+
_iterator.f();
|
81
|
+
}
|
82
|
+
|
83
|
+
return result;
|
84
|
+
}
|
85
|
+
|
86
|
+
function checkVectorTypeAndReturnLength(vec) {
|
87
|
+
var s = size(vec);
|
88
|
+
|
89
|
+
if (s.length === 1) {
|
90
|
+
// 1D vector
|
91
|
+
return s[0];
|
92
|
+
} else if (s.length === 2) {
|
93
|
+
// 2D vector
|
94
|
+
if (s[0] === 1) {
|
95
|
+
// row vector
|
96
|
+
return s[1];
|
97
|
+
} else if (s[1] === 1) {
|
98
|
+
// col vector
|
99
|
+
return s[0];
|
100
|
+
} else {
|
101
|
+
throw new TypeError('At least one of the arguments is not a vector.');
|
102
|
+
}
|
103
|
+
} else {
|
104
|
+
throw new TypeError('Only one- or two-dimensional vectors are supported.');
|
105
|
+
}
|
106
|
+
}
|
107
|
+
});
|
108
|
+
exports.createMatrixFromRows = createMatrixFromRows;
|
@@ -1,5 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
@@ -7,8 +9,6 @@ exports.createRng = createRng;
|
|
7
9
|
|
8
10
|
var _seedrandom = _interopRequireDefault(require("seedrandom"));
|
9
11
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
11
|
-
|
12
12
|
var singletonRandom = /* #__PURE__ */(0, _seedrandom["default"])(Date.now());
|
13
13
|
|
14
14
|
function createRng(randomSeed) {
|
@@ -1,5 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
@@ -11,8 +13,6 @@ var _is = require("../../utils/is.js");
|
|
11
13
|
|
12
14
|
var _factory = require("../../utils/factory.js");
|
13
15
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
15
|
-
|
16
16
|
var name = 'compareNatural';
|
17
17
|
var dependencies = ['typed', 'compare'];
|
18
18
|
var createCompareNatural = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
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 9.
|
10
|
-
* @date 2021-
|
9
|
+
* @version 9.4.0
|
10
|
+
* @date 2021-05-16
|
11
11
|
*
|
12
12
|
* @license
|
13
13
|
* Copyright (C) 2013-2021 Jos de Jong <wjosdejong@gmail.com>
|
@@ -1,5 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
@@ -24,8 +26,6 @@ Object.keys(_arithmetic).forEach(function (key) {
|
|
24
26
|
});
|
25
27
|
});
|
26
28
|
|
27
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
28
|
-
|
29
29
|
// TODO: this is ugly. Instead, be able to pass your own isBigNumber function to typed?
|
30
30
|
var BigNumber = _decimal["default"].clone();
|
31
31
|
|
@@ -1,5 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
@@ -9,8 +11,6 @@ var _decimal = _interopRequireDefault(require("decimal.js"));
|
|
9
11
|
|
10
12
|
var _factory = require("../../utils/factory.js");
|
11
13
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
13
|
-
|
14
14
|
var name = 'BigNumber';
|
15
15
|
var dependencies = ['?on', 'config'];
|
16
16
|
var createBigNumberClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
@@ -1,10 +1,14 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
6
8
|
exports.createComplexClass = void 0;
|
7
9
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
11
|
+
|
8
12
|
var _complex = _interopRequireDefault(require("complex.js"));
|
9
13
|
|
10
14
|
var _number = require("../../utils/number.js");
|
@@ -13,10 +17,6 @@ var _is = require("../../utils/is.js");
|
|
13
17
|
|
14
18
|
var _factory = require("../../utils/factory.js");
|
15
19
|
|
16
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
17
|
-
|
18
|
-
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
19
|
-
|
20
20
|
var name = 'Complex';
|
21
21
|
var dependencies = [];
|
22
22
|
var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function () {
|
@@ -133,7 +133,7 @@ var createComplexClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies
|
|
133
133
|
{
|
134
134
|
var arg = arguments[0];
|
135
135
|
|
136
|
-
if (
|
136
|
+
if ((0, _typeof2["default"])(arg) === 'object') {
|
137
137
|
return (0, _complex["default"])(arg);
|
138
138
|
} else {
|
139
139
|
throw new TypeError('Input has to be an object with r and phi keys.');
|
@@ -1,5 +1,7 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
@@ -9,8 +11,6 @@ var _fraction = _interopRequireDefault(require("fraction.js"));
|
|
9
11
|
|
10
12
|
var _factory = require("../../utils/factory.js");
|
11
13
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
13
|
-
|
14
14
|
var name = 'Fraction';
|
15
15
|
var dependencies = [];
|
16
16
|
var createFractionClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function () {
|
@@ -1,10 +1,14 @@
|
|
1
1
|
"use strict";
|
2
2
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4
|
+
|
3
5
|
Object.defineProperty(exports, "__esModule", {
|
4
6
|
value: true
|
5
7
|
});
|
6
8
|
exports.createDenseMatrixClass = void 0;
|
7
9
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
11
|
+
|
8
12
|
var _is = require("../../utils/is.js");
|
9
13
|
|
10
14
|
var _array = require("../../utils/array.js");
|
@@ -19,6 +23,12 @@ var _DimensionError = require("../../error/DimensionError.js");
|
|
19
23
|
|
20
24
|
var _factory = require("../../utils/factory.js");
|
21
25
|
|
26
|
+
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
|
27
|
+
|
28
|
+
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
29
|
+
|
30
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
31
|
+
|
22
32
|
var name = 'DenseMatrix';
|
23
33
|
var dependencies = ['Matrix'];
|
24
34
|
var createDenseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
|
@@ -27,6 +37,7 @@ var createDenseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependen
|
|
27
37
|
/**
|
28
38
|
* Dense Matrix implementation. A regular, dense matrix, supporting multi-dimensional matrices. This is the default matrix type.
|
29
39
|
* @class DenseMatrix
|
40
|
+
* @enum {{ value, index: number[] }}
|
30
41
|
*/
|
31
42
|
function DenseMatrix(data, datatype) {
|
32
43
|
if (!(this instanceof DenseMatrix)) {
|
@@ -631,6 +642,133 @@ var createDenseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependen
|
|
631
642
|
|
632
643
|
recurse(this._data, []);
|
633
644
|
};
|
645
|
+
/**
|
646
|
+
* Iterate over the matrix elements
|
647
|
+
* @return {Iterable<{ value, index: number[] }>}
|
648
|
+
*/
|
649
|
+
|
650
|
+
|
651
|
+
DenseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
652
|
+
var recurse;
|
653
|
+
return _regenerator["default"].wrap(function _callee$(_context2) {
|
654
|
+
while (1) {
|
655
|
+
switch (_context2.prev = _context2.next) {
|
656
|
+
case 0:
|
657
|
+
recurse = /*#__PURE__*/_regenerator["default"].mark(function recurse(value, index) {
|
658
|
+
var i;
|
659
|
+
return _regenerator["default"].wrap(function recurse$(_context) {
|
660
|
+
while (1) {
|
661
|
+
switch (_context.prev = _context.next) {
|
662
|
+
case 0:
|
663
|
+
if (!(0, _is.isArray)(value)) {
|
664
|
+
_context.next = 9;
|
665
|
+
break;
|
666
|
+
}
|
667
|
+
|
668
|
+
i = 0;
|
669
|
+
|
670
|
+
case 2:
|
671
|
+
if (!(i < value.length)) {
|
672
|
+
_context.next = 7;
|
673
|
+
break;
|
674
|
+
}
|
675
|
+
|
676
|
+
return _context.delegateYield(recurse(value[i], index.concat(i)), "t0", 4);
|
677
|
+
|
678
|
+
case 4:
|
679
|
+
i++;
|
680
|
+
_context.next = 2;
|
681
|
+
break;
|
682
|
+
|
683
|
+
case 7:
|
684
|
+
_context.next = 11;
|
685
|
+
break;
|
686
|
+
|
687
|
+
case 9:
|
688
|
+
_context.next = 11;
|
689
|
+
return {
|
690
|
+
value: value,
|
691
|
+
index: index
|
692
|
+
};
|
693
|
+
|
694
|
+
case 11:
|
695
|
+
case "end":
|
696
|
+
return _context.stop();
|
697
|
+
}
|
698
|
+
}
|
699
|
+
}, recurse);
|
700
|
+
});
|
701
|
+
return _context2.delegateYield(recurse(this._data, []), "t0", 2);
|
702
|
+
|
703
|
+
case 2:
|
704
|
+
case "end":
|
705
|
+
return _context2.stop();
|
706
|
+
}
|
707
|
+
}
|
708
|
+
}, _callee, this);
|
709
|
+
});
|
710
|
+
/**
|
711
|
+
* Returns an array containing the rows of a 2D matrix
|
712
|
+
* @returns {Array<Matrix>}
|
713
|
+
*/
|
714
|
+
|
715
|
+
DenseMatrix.prototype.rows = function () {
|
716
|
+
var result = [];
|
717
|
+
var s = this.size();
|
718
|
+
|
719
|
+
if (s.length !== 2) {
|
720
|
+
throw new TypeError('Rows can only be returned for a 2D matrix.');
|
721
|
+
}
|
722
|
+
|
723
|
+
var data = this._data;
|
724
|
+
|
725
|
+
var _iterator = _createForOfIteratorHelper(data),
|
726
|
+
_step;
|
727
|
+
|
728
|
+
try {
|
729
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
730
|
+
var row = _step.value;
|
731
|
+
result.push(new DenseMatrix([row], this._datatype));
|
732
|
+
}
|
733
|
+
} catch (err) {
|
734
|
+
_iterator.e(err);
|
735
|
+
} finally {
|
736
|
+
_iterator.f();
|
737
|
+
}
|
738
|
+
|
739
|
+
return result;
|
740
|
+
};
|
741
|
+
/**
|
742
|
+
* Returns an array containing the columns of a 2D matrix
|
743
|
+
* @returns {Array<Matrix>}
|
744
|
+
*/
|
745
|
+
|
746
|
+
|
747
|
+
DenseMatrix.prototype.columns = function () {
|
748
|
+
var _this = this;
|
749
|
+
|
750
|
+
var result = [];
|
751
|
+
var s = this.size();
|
752
|
+
|
753
|
+
if (s.length !== 2) {
|
754
|
+
throw new TypeError('Rows can only be returned for a 2D matrix.');
|
755
|
+
}
|
756
|
+
|
757
|
+
var data = this._data;
|
758
|
+
|
759
|
+
var _loop = function _loop(i) {
|
760
|
+
var col = data.map(function (row) {
|
761
|
+
return [row[i]];
|
762
|
+
});
|
763
|
+
result.push(new DenseMatrix(col, _this._datatype));
|
764
|
+
};
|
765
|
+
|
766
|
+
for (var i = 0; i < s[1]; i++) {
|
767
|
+
_loop(i);
|
768
|
+
}
|
769
|
+
|
770
|
+
return result;
|
771
|
+
};
|
634
772
|
/**
|
635
773
|
* Create an Array with a copy of the data of the DenseMatrix
|
636
774
|
* @memberof DenseMatrix
|
@@ -207,6 +207,16 @@ var createMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies,
|
|
207
207
|
// must be implemented by each of the Matrix implementations
|
208
208
|
throw new Error('Cannot invoke forEach on a Matrix interface');
|
209
209
|
};
|
210
|
+
/**
|
211
|
+
* Iterate over the matrix elements
|
212
|
+
* @return {Iterable<{ value, index: number[] }>}
|
213
|
+
*/
|
214
|
+
|
215
|
+
|
216
|
+
Matrix.prototype[Symbol.iterator] = function () {
|
217
|
+
// must be implemented by each of the Matrix implementations
|
218
|
+
throw new Error('Cannot iterate a Matrix interface');
|
219
|
+
};
|
210
220
|
/**
|
211
221
|
* Create an Array with a copy of the data of the Matrix
|
212
222
|
* @returns {Array} array
|