mathjs 9.3.2 → 9.4.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|