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
|
@@ -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.createSparseMatrixClass = 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 _number = require("../../utils/number.js");
|
|
@@ -27,8 +31,9 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
|
27
31
|
Matrix = _ref.Matrix;
|
|
28
32
|
|
|
29
33
|
/**
|
|
30
|
-
* Sparse Matrix implementation. This type implements
|
|
31
|
-
*
|
|
34
|
+
* Sparse Matrix implementation. This type implements
|
|
35
|
+
* a [Compressed Column Storage](https://en.wikipedia.org/wiki/Sparse_matrix#Compressed_sparse_column_(CSC_or_CCS))
|
|
36
|
+
* format for two-dimensional sparse matrices.
|
|
32
37
|
* @class SparseMatrix
|
|
33
38
|
*/
|
|
34
39
|
function SparseMatrix(data, datatype) {
|
|
@@ -610,6 +615,8 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
|
610
615
|
*
|
|
611
616
|
* @memberof SparseMatrix
|
|
612
617
|
* @param {number[] | Matrix} size The new size the matrix should have.
|
|
618
|
+
* Since sparse matrices are always two-dimensional,
|
|
619
|
+
* size must be two numbers in either an array or a matrix
|
|
613
620
|
* @param {*} [defaultValue=0] Default value, filled in on new entries.
|
|
614
621
|
* If not provided, the matrix elements will
|
|
615
622
|
* be filled with zeros.
|
|
@@ -780,6 +787,8 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
|
780
787
|
*
|
|
781
788
|
* @memberof SparseMatrix
|
|
782
789
|
* @param {number[]} sizes The new size the matrix should have.
|
|
790
|
+
* Since sparse matrices are always two-dimensional,
|
|
791
|
+
* size must be two numbers in either an array or a matrix
|
|
783
792
|
* @param {boolean} [copy] Return a reshaped copy of the matrix
|
|
784
793
|
*
|
|
785
794
|
* @return {Matrix} The reshaped matrix
|
|
@@ -1020,6 +1029,8 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
|
1020
1029
|
* parameters: the value of the element, the index
|
|
1021
1030
|
* of the element, and the Matrix being traversed.
|
|
1022
1031
|
* @param {boolean} [skipZeros] Invoke callback function for non-zero values only.
|
|
1032
|
+
* If false, the indices are guaranteed to be in order,
|
|
1033
|
+
* if true, the indices can be unordered.
|
|
1023
1034
|
*/
|
|
1024
1035
|
|
|
1025
1036
|
|
|
@@ -1066,13 +1077,76 @@ var createSparseMatrixClass = /* #__PURE__ */(0, _factory.factory)(name, depende
|
|
|
1066
1077
|
}
|
|
1067
1078
|
}
|
|
1068
1079
|
};
|
|
1080
|
+
/**
|
|
1081
|
+
* Iterate over the matrix elements, skipping zeros
|
|
1082
|
+
* @return {Iterable<{ value, index: number[] }>}
|
|
1083
|
+
*/
|
|
1084
|
+
|
|
1085
|
+
|
|
1086
|
+
SparseMatrix.prototype[Symbol.iterator] = /*#__PURE__*/_regenerator["default"].mark(function _callee() {
|
|
1087
|
+
var columns, j, k0, k1, k, i;
|
|
1088
|
+
return _regenerator["default"].wrap(function _callee$(_context) {
|
|
1089
|
+
while (1) {
|
|
1090
|
+
switch (_context.prev = _context.next) {
|
|
1091
|
+
case 0:
|
|
1092
|
+
if (this._values) {
|
|
1093
|
+
_context.next = 2;
|
|
1094
|
+
break;
|
|
1095
|
+
}
|
|
1096
|
+
|
|
1097
|
+
throw new Error('Cannot iterate a Pattern only matrix');
|
|
1098
|
+
|
|
1099
|
+
case 2:
|
|
1100
|
+
columns = this._size[1];
|
|
1101
|
+
j = 0;
|
|
1102
|
+
|
|
1103
|
+
case 4:
|
|
1104
|
+
if (!(j < columns)) {
|
|
1105
|
+
_context.next = 18;
|
|
1106
|
+
break;
|
|
1107
|
+
}
|
|
1108
|
+
|
|
1109
|
+
k0 = this._ptr[j];
|
|
1110
|
+
k1 = this._ptr[j + 1];
|
|
1111
|
+
k = k0;
|
|
1112
|
+
|
|
1113
|
+
case 8:
|
|
1114
|
+
if (!(k < k1)) {
|
|
1115
|
+
_context.next = 15;
|
|
1116
|
+
break;
|
|
1117
|
+
}
|
|
1118
|
+
|
|
1119
|
+
// row index
|
|
1120
|
+
i = this._index[k];
|
|
1121
|
+
_context.next = 12;
|
|
1122
|
+
return {
|
|
1123
|
+
value: this._values[k],
|
|
1124
|
+
index: [i, j]
|
|
1125
|
+
};
|
|
1126
|
+
|
|
1127
|
+
case 12:
|
|
1128
|
+
k++;
|
|
1129
|
+
_context.next = 8;
|
|
1130
|
+
break;
|
|
1131
|
+
|
|
1132
|
+
case 15:
|
|
1133
|
+
j++;
|
|
1134
|
+
_context.next = 4;
|
|
1135
|
+
break;
|
|
1136
|
+
|
|
1137
|
+
case 18:
|
|
1138
|
+
case "end":
|
|
1139
|
+
return _context.stop();
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
}, _callee, this);
|
|
1143
|
+
});
|
|
1069
1144
|
/**
|
|
1070
1145
|
* Create an Array with a copy of the data of the SparseMatrix
|
|
1071
1146
|
* @memberof SparseMatrix
|
|
1072
1147
|
* @returns {Array} array
|
|
1073
1148
|
*/
|
|
1074
1149
|
|
|
1075
|
-
|
|
1076
1150
|
SparseMatrix.prototype.toArray = function () {
|
|
1077
1151
|
return _toArray(this._values, this._index, this._ptr, this._size, true);
|
|
1078
1152
|
};
|
|
@@ -43,7 +43,8 @@ var createMatrix = /* #__PURE__ */(0, _factory.factory)(name, dependencies, func
|
|
|
43
43
|
* bignumber, boolean, complex, index, number, string, unit, sparse
|
|
44
44
|
*
|
|
45
45
|
* @param {Array | Matrix} [data] A multi dimensional array
|
|
46
|
-
* @param {string} [format] The Matrix storage format
|
|
46
|
+
* @param {string} [format] The Matrix storage format, either `'dense'` or `'sparse'`
|
|
47
|
+
* @param {string} [datatype] Type of the values
|
|
47
48
|
*
|
|
48
49
|
* @return {Matrix} The created matrix
|
|
49
50
|
*/
|
|
@@ -1,10 +1,18 @@
|
|
|
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.createUnitClass = void 0;
|
|
7
9
|
|
|
10
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
11
|
+
|
|
12
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
8
16
|
var _is = require("../../utils/is.js");
|
|
9
17
|
|
|
10
18
|
var _factory = require("../../utils/factory.js");
|
|
@@ -17,15 +25,9 @@ var _object = require("../../utils/object.js");
|
|
|
17
25
|
|
|
18
26
|
var _constants = require("../../utils/bignumber/constants.js");
|
|
19
27
|
|
|
20
|
-
function
|
|
21
|
-
|
|
22
|
-
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
23
|
-
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
-
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
28
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
27
29
|
|
|
28
|
-
function
|
|
30
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
29
31
|
|
|
30
32
|
var name = 'Unit';
|
|
31
33
|
var dependencies = ['?on', 'config', 'addScalar', 'subtract', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
|
|
@@ -1949,9 +1951,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
1949
1951
|
}
|
|
1950
1952
|
}
|
|
1951
1953
|
};
|
|
1952
|
-
PREFIXES.SHORTLONG =
|
|
1953
|
-
PREFIXES.BINARY_SHORT =
|
|
1954
|
-
PREFIXES.BINARY_LONG =
|
|
1954
|
+
PREFIXES.SHORTLONG = (0, _extends2["default"])({}, PREFIXES.SHORT, PREFIXES.LONG);
|
|
1955
|
+
PREFIXES.BINARY_SHORT = (0, _extends2["default"])({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
|
|
1956
|
+
PREFIXES.BINARY_LONG = (0, _extends2["default"])({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
|
|
1955
1957
|
/* Internally, each unit is represented by a value and a dimension array. The elements of the dimensions array have the following meaning:
|
|
1956
1958
|
* Index Dimension
|
|
1957
1959
|
* ----- ---------
|
|
@@ -3743,7 +3745,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3743
3745
|
|
|
3744
3746
|
|
|
3745
3747
|
Unit.createUnit = function (obj, options) {
|
|
3746
|
-
if (
|
|
3748
|
+
if ((0, _typeof2["default"])(obj) !== 'object') {
|
|
3747
3749
|
throw new TypeError("createUnit expects first parameter to be of type 'Object'");
|
|
3748
3750
|
} // Remove all units and aliases we are overriding
|
|
3749
3751
|
|
|
@@ -3833,7 +3835,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
|
|
|
3833
3835
|
if (obj !== '') {
|
|
3834
3836
|
definition = obj;
|
|
3835
3837
|
}
|
|
3836
|
-
} else if (
|
|
3838
|
+
} else if ((0, _typeof2["default"])(obj) === 'object') {
|
|
3837
3839
|
definition = obj.definition;
|
|
3838
3840
|
prefixes = obj.prefixes;
|
|
3839
3841
|
offset = obj.offset;
|
package/lib/cjs/utils/array.js
CHANGED
|
@@ -616,7 +616,7 @@ function generalize(a) {
|
|
|
616
616
|
* This method does not validate Array Matrix shape
|
|
617
617
|
* @param {Array} array
|
|
618
618
|
* @param {function} typeOf Callback function to use to determine the type of a value
|
|
619
|
-
* @return string
|
|
619
|
+
* @return {string}
|
|
620
620
|
*/
|
|
621
621
|
|
|
622
622
|
|
package/lib/cjs/utils/customs.js
CHANGED
|
@@ -1,18 +1,22 @@
|
|
|
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.getSafeProperty = getSafeProperty;
|
|
7
9
|
exports.setSafeProperty = setSafeProperty;
|
|
8
10
|
exports.isSafeProperty = isSafeProperty;
|
|
11
|
+
exports.hasSafeProperty = hasSafeProperty;
|
|
12
|
+
exports.getSafeProperties = getSafeProperties;
|
|
9
13
|
exports.validateSafeMethod = validateSafeMethod;
|
|
10
14
|
exports.isSafeMethod = isSafeMethod;
|
|
11
15
|
exports.isPlainObject = isPlainObject;
|
|
12
16
|
|
|
13
|
-
var
|
|
17
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
14
18
|
|
|
15
|
-
|
|
19
|
+
var _object = require("./object.js");
|
|
16
20
|
|
|
17
21
|
/**
|
|
18
22
|
* Get a property of a plain object
|
|
@@ -55,6 +59,16 @@ function setSafeProperty(object, prop, value) {
|
|
|
55
59
|
|
|
56
60
|
throw new Error('No access to property "' + prop + '"');
|
|
57
61
|
}
|
|
62
|
+
|
|
63
|
+
function getSafeProperties(object) {
|
|
64
|
+
return Object.keys(object).filter(function (prop) {
|
|
65
|
+
return (0, _object.hasOwnProperty)(object, prop);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
function hasSafeProperty(object, prop) {
|
|
70
|
+
return prop in object;
|
|
71
|
+
}
|
|
58
72
|
/**
|
|
59
73
|
* Test whether a property is safe to use for an object.
|
|
60
74
|
* For example .toString and .constructor are not safe
|
|
@@ -64,7 +78,7 @@ function setSafeProperty(object, prop, value) {
|
|
|
64
78
|
|
|
65
79
|
|
|
66
80
|
function isSafeProperty(object, prop) {
|
|
67
|
-
if (!object ||
|
|
81
|
+
if (!object || (0, _typeof2["default"])(object) !== 'object') {
|
|
68
82
|
return false;
|
|
69
83
|
} // SAFE: whitelisted
|
|
70
84
|
// e.g length
|
|
@@ -157,7 +171,7 @@ function isSafeMethod(object, method) {
|
|
|
157
171
|
}
|
|
158
172
|
|
|
159
173
|
function isPlainObject(object) {
|
|
160
|
-
return
|
|
174
|
+
return (0, _typeof2["default"])(object) === 'object' && object && object.constructor === Object;
|
|
161
175
|
}
|
|
162
176
|
|
|
163
177
|
var safeNativeProperties = {
|
package/lib/cjs/utils/emitter.js
CHANGED
|
@@ -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.mixin = mixin;
|
|
|
7
9
|
|
|
8
10
|
var _tinyEmitter = _interopRequireDefault(require("tiny-emitter"));
|
|
9
11
|
|
|
10
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
11
|
-
|
|
12
12
|
/**
|
|
13
13
|
* Extend given object with emitter functions `on`, `off`, `once`, `emit`
|
|
14
14
|
* @param {Object} obj
|
|
@@ -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,9 +9,11 @@ exports.memoize = memoize;
|
|
|
7
9
|
exports.memoizeCompare = memoizeCompare;
|
|
8
10
|
exports.maxArgumentCount = maxArgumentCount;
|
|
9
11
|
|
|
12
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
+
|
|
10
14
|
var _lruQueue = require("./lruQueue.js");
|
|
11
15
|
|
|
12
|
-
|
|
16
|
+
// function utils
|
|
13
17
|
|
|
14
18
|
/**
|
|
15
19
|
* Memoize a given function by caching the computed result.
|
|
@@ -34,7 +38,7 @@ function memoize(fn) {
|
|
|
34
38
|
limit = limit == null ? Number.POSITIVE_INFINITY : limit;
|
|
35
39
|
hasher = hasher == null ? JSON.stringify : hasher;
|
|
36
40
|
return function memoize() {
|
|
37
|
-
if (
|
|
41
|
+
if ((0, _typeof2["default"])(memoize.cache) !== 'object') {
|
|
38
42
|
memoize.cache = {
|
|
39
43
|
values: new Map(),
|
|
40
44
|
lru: (0, _lruQueue.lruQueue)(limit || Number.POSITIVE_INFINITY)
|
package/lib/cjs/utils/is.js
CHANGED
|
@@ -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
|
});
|
|
@@ -43,7 +45,7 @@ exports.isChain = isChain;
|
|
|
43
45
|
exports.typeOf = typeOf;
|
|
44
46
|
exports.isArray = void 0;
|
|
45
47
|
|
|
46
|
-
|
|
48
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
47
49
|
|
|
48
50
|
// type checks for all known types
|
|
49
51
|
//
|
|
@@ -67,11 +69,11 @@ function isBigNumber(x) {
|
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
function isComplex(x) {
|
|
70
|
-
return x &&
|
|
72
|
+
return x && (0, _typeof2["default"])(x) === 'object' && Object.getPrototypeOf(x).isComplex === true || false;
|
|
71
73
|
}
|
|
72
74
|
|
|
73
75
|
function isFraction(x) {
|
|
74
|
-
return x &&
|
|
76
|
+
return x && (0, _typeof2["default"])(x) === 'object' && Object.getPrototypeOf(x).isFraction === true || false;
|
|
75
77
|
}
|
|
76
78
|
|
|
77
79
|
function isUnit(x) {
|
|
@@ -140,7 +142,7 @@ function isRegExp(x) {
|
|
|
140
142
|
}
|
|
141
143
|
|
|
142
144
|
function isObject(x) {
|
|
143
|
-
return !!(x &&
|
|
145
|
+
return !!(x && (0, _typeof2["default"])(x) === 'object' && x.constructor === Object && !isComplex(x) && !isFraction(x));
|
|
144
146
|
}
|
|
145
147
|
|
|
146
148
|
function isNull(x) {
|
|
@@ -216,7 +218,7 @@ function isChain(x) {
|
|
|
216
218
|
}
|
|
217
219
|
|
|
218
220
|
function typeOf(x) {
|
|
219
|
-
var t =
|
|
221
|
+
var t = (0, _typeof2["default"])(x);
|
|
220
222
|
|
|
221
223
|
if (t === 'object') {
|
|
222
224
|
// JavaScript types
|
package/lib/cjs/utils/latex.js
CHANGED
|
@@ -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 _escapeLatex = _interopRequireDefault(require("escape-latex"));
|
|
|
11
13
|
|
|
12
14
|
var _object = require("./object.js");
|
|
13
15
|
|
|
14
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
15
|
-
|
|
16
16
|
/* eslint no-template-curly-in-string: "off" */
|
|
17
17
|
var latexSymbols = {
|
|
18
18
|
// GREEK LETTERS
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.createEmptyMap = createEmptyMap;
|
|
9
|
+
exports.createMap = createMap;
|
|
10
|
+
exports.toObject = toObject;
|
|
11
|
+
exports.isMap = isMap;
|
|
12
|
+
exports.assign = assign;
|
|
13
|
+
exports.ObjectWrappingMap = void 0;
|
|
14
|
+
|
|
15
|
+
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
|
|
16
|
+
|
|
17
|
+
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
18
|
+
|
|
19
|
+
var _customs = require("./customs.js");
|
|
20
|
+
|
|
21
|
+
var _is = require("./is.js");
|
|
22
|
+
|
|
23
|
+
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; } } }; }
|
|
24
|
+
|
|
25
|
+
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); }
|
|
26
|
+
|
|
27
|
+
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; }
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* A map facade on a bare object.
|
|
31
|
+
*
|
|
32
|
+
* The small number of methods needed to implement a scope,
|
|
33
|
+
* forwarding on to the SafeProperty functions. Over time, the codebase
|
|
34
|
+
* will stop using this method, as all objects will be Maps, rather than
|
|
35
|
+
* more security prone objects.
|
|
36
|
+
*/
|
|
37
|
+
var ObjectWrappingMap = /*#__PURE__*/function () {
|
|
38
|
+
function ObjectWrappingMap(object) {
|
|
39
|
+
(0, _classCallCheck2["default"])(this, ObjectWrappingMap);
|
|
40
|
+
this.wrappedObject = object;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
(0, _createClass2["default"])(ObjectWrappingMap, [{
|
|
44
|
+
key: "keys",
|
|
45
|
+
value: function keys() {
|
|
46
|
+
return Object.keys(this.wrappedObject);
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
key: "get",
|
|
50
|
+
value: function get(key) {
|
|
51
|
+
return (0, _customs.getSafeProperty)(this.wrappedObject, key);
|
|
52
|
+
}
|
|
53
|
+
}, {
|
|
54
|
+
key: "set",
|
|
55
|
+
value: function set(key, value) {
|
|
56
|
+
(0, _customs.setSafeProperty)(this.wrappedObject, key, value);
|
|
57
|
+
return this;
|
|
58
|
+
}
|
|
59
|
+
}, {
|
|
60
|
+
key: "has",
|
|
61
|
+
value: function has(key) {
|
|
62
|
+
return (0, _customs.hasSafeProperty)(this.wrappedObject, key);
|
|
63
|
+
}
|
|
64
|
+
}]);
|
|
65
|
+
return ObjectWrappingMap;
|
|
66
|
+
}();
|
|
67
|
+
/**
|
|
68
|
+
* Creates an empty map, or whatever your platform's polyfill is.
|
|
69
|
+
*
|
|
70
|
+
* @returns an empty Map or Map like object.
|
|
71
|
+
*/
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
exports.ObjectWrappingMap = ObjectWrappingMap;
|
|
75
|
+
|
|
76
|
+
function createEmptyMap() {
|
|
77
|
+
return new Map();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Creates a Map from the given object.
|
|
81
|
+
*
|
|
82
|
+
* @param { Map | { [key: string]: unknown } | undefined } mapOrObject
|
|
83
|
+
* @returns
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
function createMap(mapOrObject) {
|
|
88
|
+
if (!mapOrObject) {
|
|
89
|
+
return createEmptyMap();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (isMap(mapOrObject)) {
|
|
93
|
+
return mapOrObject;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if ((0, _is.isObject)(mapOrObject)) {
|
|
97
|
+
return new ObjectWrappingMap(mapOrObject);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
throw new Error('createMap can create maps from objects or Maps');
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Unwraps a map into an object.
|
|
104
|
+
*
|
|
105
|
+
* @param {Map} map
|
|
106
|
+
* @returns { [key: string]: unknown }
|
|
107
|
+
*/
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
function toObject(map) {
|
|
111
|
+
if (map instanceof ObjectWrappingMap) {
|
|
112
|
+
return map.wrappedObject;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
var object = {};
|
|
116
|
+
|
|
117
|
+
var _iterator = _createForOfIteratorHelper(map.keys()),
|
|
118
|
+
_step;
|
|
119
|
+
|
|
120
|
+
try {
|
|
121
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
122
|
+
var key = _step.value;
|
|
123
|
+
var value = map.get(key);
|
|
124
|
+
(0, _customs.setSafeProperty)(object, key, value);
|
|
125
|
+
}
|
|
126
|
+
} catch (err) {
|
|
127
|
+
_iterator.e(err);
|
|
128
|
+
} finally {
|
|
129
|
+
_iterator.f();
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return object;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Returns `true` if the passed object appears to be a Map (i.e. duck typing).
|
|
136
|
+
*
|
|
137
|
+
* Methods looked for are `get`, `set`, `keys` and `has`.
|
|
138
|
+
*
|
|
139
|
+
* @param {Map | object} object
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
function isMap(object) {
|
|
145
|
+
// We can use the fast instanceof, or a slower duck typing check.
|
|
146
|
+
// The duck typing method needs to cover enough methods to not be confused with DenseMatrix.
|
|
147
|
+
if (!object) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
return object instanceof Map || object instanceof ObjectWrappingMap || typeof object.set === 'function' && typeof object.get === 'function' && typeof object.keys === 'function' && typeof object.has === 'function';
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Copies the contents of key-value pairs from each `objects` in to `map`.
|
|
155
|
+
*
|
|
156
|
+
* Object is `objects` can be a `Map` or object.
|
|
157
|
+
*
|
|
158
|
+
* This is the `Map` analog to `Object.assign`.
|
|
159
|
+
*/
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
function assign(map) {
|
|
163
|
+
for (var _len = arguments.length, objects = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
164
|
+
objects[_key - 1] = arguments[_key];
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
for (var _i = 0, _objects = objects; _i < _objects.length; _i++) {
|
|
168
|
+
var args = _objects[_i];
|
|
169
|
+
|
|
170
|
+
if (!args) {
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
if (isMap(args)) {
|
|
175
|
+
var _iterator2 = _createForOfIteratorHelper(args.keys()),
|
|
176
|
+
_step2;
|
|
177
|
+
|
|
178
|
+
try {
|
|
179
|
+
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
180
|
+
var key = _step2.value;
|
|
181
|
+
map.set(key, args.get(key));
|
|
182
|
+
}
|
|
183
|
+
} catch (err) {
|
|
184
|
+
_iterator2.e(err);
|
|
185
|
+
} finally {
|
|
186
|
+
_iterator2.f();
|
|
187
|
+
}
|
|
188
|
+
} else if ((0, _is.isObject)(args)) {
|
|
189
|
+
for (var _i2 = 0, _Object$keys = Object.keys(args); _i2 < _Object$keys.length; _i2++) {
|
|
190
|
+
var _key2 = _Object$keys[_i2];
|
|
191
|
+
map.set(_key2, args[_key2]);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
return map;
|
|
197
|
+
}
|
package/lib/cjs/utils/object.js
CHANGED
|
@@ -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
|
});
|
|
@@ -20,9 +22,9 @@ exports.pick = pick;
|
|
|
20
22
|
exports.pickShallow = pickShallow;
|
|
21
23
|
exports.values = values;
|
|
22
24
|
|
|
23
|
-
var
|
|
25
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
var _is = require("./is.js");
|
|
26
28
|
|
|
27
29
|
/**
|
|
28
30
|
* Clone an object
|
|
@@ -36,8 +38,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "functi
|
|
|
36
38
|
* @return {*} clone
|
|
37
39
|
*/
|
|
38
40
|
function clone(x) {
|
|
39
|
-
var type =
|
|
40
|
-
|
|
41
|
+
var type = (0, _typeof2["default"])(x); // immutable primitive types
|
|
41
42
|
|
|
42
43
|
if (type === 'number' || type === 'string' || type === 'boolean' || x === null || x === undefined) {
|
|
43
44
|
return x;
|
|
@@ -212,7 +213,7 @@ function _deepFlatten(nestedObject, flattenedObject) {
|
|
|
212
213
|
if (hasOwnProperty(nestedObject, prop)) {
|
|
213
214
|
var value = nestedObject[prop];
|
|
214
215
|
|
|
215
|
-
if (
|
|
216
|
+
if ((0, _typeof2["default"])(value) === 'object' && value !== null) {
|
|
216
217
|
_deepFlatten(value, flattenedObject);
|
|
217
218
|
} else {
|
|
218
219
|
flattenedObject[prop] = value;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createSubScope = createSubScope;
|
|
7
|
+
|
|
8
|
+
var _map = require("./map.js");
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Create a new scope which can access the parent scope,
|
|
12
|
+
* but does not affect it when written. This is suitable for variable definitions
|
|
13
|
+
* within a block node, or function definition.
|
|
14
|
+
*
|
|
15
|
+
* If parent scope has a createSubScope method, it delegates to that. Otherwise,
|
|
16
|
+
* creates an empty map, and copies the parent scope to it, adding in
|
|
17
|
+
* the remaining `args`.
|
|
18
|
+
*
|
|
19
|
+
* @param {Map} parentScope
|
|
20
|
+
* @param {...any} args
|
|
21
|
+
* @returns {Map}
|
|
22
|
+
*/
|
|
23
|
+
function createSubScope(parentScope) {
|
|
24
|
+
for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
25
|
+
args[_key - 1] = arguments[_key];
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (typeof parentScope.createSubScope === 'function') {
|
|
29
|
+
return _map.assign.apply(void 0, [parentScope.createSubScope()].concat(args));
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return _map.assign.apply(void 0, [(0, _map.createEmptyMap)(), parentScope].concat(args));
|
|
33
|
+
}
|