mathjs 13.0.2 → 13.1.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.
Files changed (214) hide show
  1. package/HISTORY.md +26 -1
  2. package/lib/browser/math.js +1 -1
  3. package/lib/browser/math.js.LICENSE.txt +2 -2
  4. package/lib/browser/math.js.map +1 -1
  5. package/lib/cjs/core/create.js +12 -9
  6. package/lib/cjs/core/function/import.js +1 -1
  7. package/lib/cjs/core/function/typed.js +3 -4
  8. package/lib/cjs/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
  9. package/lib/cjs/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
  10. package/lib/cjs/entry/impureFunctionsAny.generated.js +2 -2
  11. package/lib/cjs/entry/pureFunctionsAny.generated.js +6 -8
  12. package/lib/cjs/entry/typeChecks.js +18 -0
  13. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +2 -2
  14. package/lib/cjs/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
  15. package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +1 -1
  16. package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +1 -1
  17. package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +1 -1
  18. package/lib/cjs/expression/embeddedDocs/function/matrix/kron.js +1 -1
  19. package/lib/cjs/expression/embeddedDocs/function/matrix/map.js +3 -3
  20. package/lib/cjs/expression/embeddedDocs/function/special/zeta.js +1 -1
  21. package/lib/cjs/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
  22. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
  23. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
  24. package/lib/cjs/expression/embeddedDocs/function/utils/clone.js +1 -1
  25. package/lib/cjs/expression/function/evaluate.js +5 -0
  26. package/lib/cjs/expression/node/FunctionNode.js +1 -1
  27. package/lib/cjs/expression/transform/filter.transform.js +2 -2
  28. package/lib/cjs/expression/transform/map.transform.js +104 -37
  29. package/lib/cjs/expression/transform/utils/dimToZeroBase.js +23 -0
  30. package/lib/cjs/expression/transform/utils/lastDimToZeroBase.js +3 -4
  31. package/lib/cjs/function/arithmetic/hypot.js +3 -3
  32. package/lib/cjs/function/matrix/apply.js +1 -1
  33. package/lib/cjs/function/matrix/fft.js +3 -3
  34. package/lib/cjs/function/matrix/filter.js +2 -2
  35. package/lib/cjs/function/matrix/flatten.js +5 -6
  36. package/lib/cjs/function/matrix/ifft.js +2 -2
  37. package/lib/cjs/function/matrix/kron.js +4 -4
  38. package/lib/cjs/function/matrix/map.js +109 -18
  39. package/lib/cjs/function/matrix/size.js +7 -7
  40. package/lib/cjs/function/matrix/squeeze.js +3 -4
  41. package/lib/cjs/function/probability/random.js +1 -1
  42. package/lib/cjs/function/probability/randomInt.js +1 -1
  43. package/lib/cjs/function/statistics/cumsum.js +2 -2
  44. package/lib/cjs/function/trigonometry/acoth.js +2 -2
  45. package/lib/cjs/function/trigonometry/acsch.js +2 -2
  46. package/lib/cjs/header.js +2 -2
  47. package/lib/cjs/type/matrix/DenseMatrix.js +3 -28
  48. package/lib/cjs/type/matrix/SparseMatrix.js +5 -8
  49. package/lib/cjs/type/unit/Unit.js +57 -114
  50. package/lib/cjs/utils/array.js +27 -0
  51. package/lib/cjs/utils/collection.js +1 -1
  52. package/lib/cjs/utils/function.js +0 -14
  53. package/lib/cjs/utils/is.js +27 -0
  54. package/lib/cjs/utils/map.js +2 -20
  55. package/lib/cjs/version.js +1 -1
  56. package/lib/esm/core/create.js +9 -6
  57. package/lib/esm/core/function/import.js +1 -1
  58. package/lib/esm/core/function/typed.js +2 -3
  59. package/lib/esm/entry/dependenciesAny/dependenciesFlatten.generated.js +0 -2
  60. package/lib/esm/entry/dependenciesAny/dependenciesSqueeze.generated.js +0 -2
  61. package/lib/esm/entry/impureFunctionsAny.generated.js +3 -3
  62. package/lib/esm/entry/pureFunctionsAny.generated.js +7 -9
  63. package/lib/esm/entry/typeChecks.js +1 -1
  64. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +2 -2
  65. package/lib/esm/expression/embeddedDocs/function/arithmetic/hypot.js +1 -1
  66. package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
  67. package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +1 -1
  68. package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +1 -1
  69. package/lib/esm/expression/embeddedDocs/function/matrix/kron.js +1 -1
  70. package/lib/esm/expression/embeddedDocs/function/matrix/map.js +3 -3
  71. package/lib/esm/expression/embeddedDocs/function/special/zeta.js +1 -1
  72. package/lib/esm/expression/embeddedDocs/function/statistics/quantileSeq.js +1 -1
  73. package/lib/esm/expression/embeddedDocs/function/trigonometry/acoth.js +1 -1
  74. package/lib/esm/expression/embeddedDocs/function/trigonometry/acsch.js +1 -1
  75. package/lib/esm/expression/embeddedDocs/function/utils/clone.js +1 -1
  76. package/lib/esm/expression/function/compile.js +1 -1
  77. package/lib/esm/expression/function/evaluate.js +8 -3
  78. package/lib/esm/expression/node/FunctionNode.js +1 -1
  79. package/lib/esm/expression/parse.js +2 -2
  80. package/lib/esm/expression/transform/filter.transform.js +4 -4
  81. package/lib/esm/expression/transform/forEach.transform.js +4 -4
  82. package/lib/esm/expression/transform/map.transform.js +104 -37
  83. package/lib/esm/expression/transform/print.transform.js +2 -2
  84. package/lib/esm/expression/transform/utils/dimToZeroBase.js +16 -0
  85. package/lib/esm/expression/transform/utils/lastDimToZeroBase.js +4 -6
  86. package/lib/esm/function/algebra/decomposition/slu.js +1 -1
  87. package/lib/esm/function/algebra/derivative.js +15 -15
  88. package/lib/esm/function/algebra/lyap.js +4 -4
  89. package/lib/esm/function/algebra/simplify/util.js +3 -3
  90. package/lib/esm/function/algebra/simplifyConstant.js +9 -9
  91. package/lib/esm/function/algebra/solver/lsolve.js +3 -3
  92. package/lib/esm/function/algebra/solver/lsolveAll.js +3 -3
  93. package/lib/esm/function/algebra/solver/lusolve.js +5 -5
  94. package/lib/esm/function/algebra/solver/usolve.js +3 -3
  95. package/lib/esm/function/algebra/solver/usolveAll.js +3 -3
  96. package/lib/esm/function/algebra/sylvester.js +7 -7
  97. package/lib/esm/function/arithmetic/addScalar.js +4 -4
  98. package/lib/esm/function/arithmetic/ceil.js +6 -6
  99. package/lib/esm/function/arithmetic/divide.js +5 -5
  100. package/lib/esm/function/arithmetic/divideScalar.js +5 -5
  101. package/lib/esm/function/arithmetic/fix.js +5 -5
  102. package/lib/esm/function/arithmetic/floor.js +6 -6
  103. package/lib/esm/function/arithmetic/hypot.js +3 -3
  104. package/lib/esm/function/arithmetic/mod.js +3 -3
  105. package/lib/esm/function/arithmetic/multiply.js +7 -7
  106. package/lib/esm/function/arithmetic/multiplyScalar.js +4 -4
  107. package/lib/esm/function/arithmetic/norm.js +2 -2
  108. package/lib/esm/function/arithmetic/pow.js +6 -6
  109. package/lib/esm/function/arithmetic/round.js +7 -7
  110. package/lib/esm/function/arithmetic/subtractScalar.js +4 -4
  111. package/lib/esm/function/arithmetic/xgcd.js +1 -1
  112. package/lib/esm/function/combinatorics/bellNumbers.js +1 -1
  113. package/lib/esm/function/combinatorics/catalan.js +1 -1
  114. package/lib/esm/function/combinatorics/composition.js +1 -1
  115. package/lib/esm/function/combinatorics/stirlingS2.js +1 -1
  116. package/lib/esm/function/geometry/distance.js +4 -4
  117. package/lib/esm/function/geometry/intersect.js +2 -2
  118. package/lib/esm/function/logical/and.js +2 -2
  119. package/lib/esm/function/logical/or.js +2 -2
  120. package/lib/esm/function/logical/xor.js +2 -2
  121. package/lib/esm/function/matrix/apply.js +2 -2
  122. package/lib/esm/function/matrix/column.js +1 -1
  123. package/lib/esm/function/matrix/concat.js +1 -1
  124. package/lib/esm/function/matrix/count.js +1 -1
  125. package/lib/esm/function/matrix/cross.js +3 -3
  126. package/lib/esm/function/matrix/diag.js +10 -10
  127. package/lib/esm/function/matrix/diff.js +2 -2
  128. package/lib/esm/function/matrix/eigs.js +3 -3
  129. package/lib/esm/function/matrix/fft.js +3 -3
  130. package/lib/esm/function/matrix/filter.js +4 -4
  131. package/lib/esm/function/matrix/flatten.js +5 -6
  132. package/lib/esm/function/matrix/forEach.js +4 -4
  133. package/lib/esm/function/matrix/identity.js +6 -6
  134. package/lib/esm/function/matrix/ifft.js +3 -3
  135. package/lib/esm/function/matrix/inv.js +1 -1
  136. package/lib/esm/function/matrix/kron.js +7 -7
  137. package/lib/esm/function/matrix/map.js +110 -19
  138. package/lib/esm/function/matrix/matrixFromFunction.js +6 -6
  139. package/lib/esm/function/matrix/ones.js +2 -2
  140. package/lib/esm/function/matrix/partitionSelect.js +2 -2
  141. package/lib/esm/function/matrix/pinv.js +1 -1
  142. package/lib/esm/function/matrix/range.js +10 -10
  143. package/lib/esm/function/matrix/reshape.js +2 -2
  144. package/lib/esm/function/matrix/rotate.js +4 -4
  145. package/lib/esm/function/matrix/rotationMatrix.js +6 -6
  146. package/lib/esm/function/matrix/row.js +1 -1
  147. package/lib/esm/function/matrix/size.js +8 -8
  148. package/lib/esm/function/matrix/sort.js +4 -4
  149. package/lib/esm/function/matrix/sqrtm.js +1 -1
  150. package/lib/esm/function/matrix/squeeze.js +3 -4
  151. package/lib/esm/function/matrix/subset.js +2 -2
  152. package/lib/esm/function/matrix/zeros.js +2 -2
  153. package/lib/esm/function/probability/combinations.js +1 -1
  154. package/lib/esm/function/probability/combinationsWithRep.js +2 -2
  155. package/lib/esm/function/probability/kldivergence.js +4 -4
  156. package/lib/esm/function/probability/multinomial.js +1 -1
  157. package/lib/esm/function/probability/permutations.js +2 -2
  158. package/lib/esm/function/probability/pickRandom.js +6 -6
  159. package/lib/esm/function/probability/random.js +1 -1
  160. package/lib/esm/function/probability/randomInt.js +1 -1
  161. package/lib/esm/function/relational/compare.js +6 -6
  162. package/lib/esm/function/relational/deepEqual.js +1 -1
  163. package/lib/esm/function/relational/equal.js +1 -1
  164. package/lib/esm/function/relational/equalScalar.js +7 -7
  165. package/lib/esm/function/relational/equalText.js +1 -1
  166. package/lib/esm/function/relational/larger.js +3 -3
  167. package/lib/esm/function/relational/largerEq.js +4 -4
  168. package/lib/esm/function/relational/smaller.js +3 -3
  169. package/lib/esm/function/relational/smallerEq.js +3 -3
  170. package/lib/esm/function/relational/unequal.js +1 -1
  171. package/lib/esm/function/set/setCartesian.js +1 -1
  172. package/lib/esm/function/set/setDifference.js +1 -1
  173. package/lib/esm/function/set/setDistinct.js +1 -1
  174. package/lib/esm/function/set/setIntersect.js +1 -1
  175. package/lib/esm/function/set/setIsSubset.js +1 -1
  176. package/lib/esm/function/set/setMultiplicity.js +1 -1
  177. package/lib/esm/function/set/setPowerset.js +1 -1
  178. package/lib/esm/function/set/setSize.js +2 -2
  179. package/lib/esm/function/set/setSymDifference.js +1 -1
  180. package/lib/esm/function/set/setUnion.js +1 -1
  181. package/lib/esm/function/signal/freqz.js +6 -6
  182. package/lib/esm/function/statistics/corr.js +2 -2
  183. package/lib/esm/function/statistics/cumsum.js +3 -3
  184. package/lib/esm/function/statistics/max.js +1 -1
  185. package/lib/esm/function/statistics/median.js +3 -3
  186. package/lib/esm/function/statistics/min.js +1 -1
  187. package/lib/esm/function/statistics/prod.js +1 -1
  188. package/lib/esm/function/statistics/variance.js +2 -2
  189. package/lib/esm/function/string/bin.js +2 -2
  190. package/lib/esm/function/string/hex.js +2 -2
  191. package/lib/esm/function/string/oct.js +2 -2
  192. package/lib/esm/function/trigonometry/acoth.js +2 -2
  193. package/lib/esm/function/trigonometry/acsch.js +2 -2
  194. package/lib/esm/type/bigint.js +1 -1
  195. package/lib/esm/type/complex/function/complex.js +2 -2
  196. package/lib/esm/type/fraction/function/fraction.js +1 -1
  197. package/lib/esm/type/matrix/DenseMatrix.js +13 -38
  198. package/lib/esm/type/matrix/SparseMatrix.js +5 -8
  199. package/lib/esm/type/matrix/function/index.js +1 -1
  200. package/lib/esm/type/matrix/function/matrix.js +1 -1
  201. package/lib/esm/type/matrix/function/sparse.js +2 -2
  202. package/lib/esm/type/number.js +1 -1
  203. package/lib/esm/type/unit/Unit.js +57 -114
  204. package/lib/esm/type/unit/function/createUnit.js +3 -3
  205. package/lib/esm/type/unit/function/splitUnit.js +1 -1
  206. package/lib/esm/type/unit/function/unit.js +2 -2
  207. package/lib/esm/utils/array.js +26 -0
  208. package/lib/esm/utils/collection.js +1 -1
  209. package/lib/esm/utils/function.js +0 -13
  210. package/lib/esm/utils/is.js +24 -0
  211. package/lib/esm/utils/map.js +2 -19
  212. package/lib/esm/version.js +1 -1
  213. package/package.json +19 -19
  214. package/types/index.d.ts +108 -25
@@ -5,7 +5,7 @@
5
5
  import { config } from './configReadonly.js';
6
6
  import { createBigNumberClass, createComplexClass, createE, createFalse, createFineStructure, createFractionClass, createI, createInfinity, createLN10, createLOG10E, createMatrixClass, createNaN, createNull, createPhi, createRangeClass, createResultSet, createSQRT1_2,
7
7
  // eslint-disable-line camelcase
8
- createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBigint, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createSubtractScalar, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBignumber, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createTanh, createUnaryMinus, createAcoth, createBin, createCoth, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createSqueeze, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createFlatten, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createNthRoot, createOnes, createQr, createResize, createRightArithShift, createRound, createSmaller, createSubtract, createTo, createUnaryPlus, createUsolve, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDiff, createDistance, createDot, createEqualText, createFloor, createGcd, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMin, createMod, createMultiply, createNthRoots, createOr, createPartitionSelect, createRightLogShift, createSlu, createSubset, createSum, createTrace, createUsolveAll, createZpk2tf, createCeil, createCompareNatural, createComposition, createCross, createDet, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createInvmod, createLcm, createLog1p, createMax, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSmallerEq, createSort, createUnequal, createAnd, createRange, createRow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createColumn, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCreateUnit, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
8
+ createSackurTetrode, createTau, createTrue, createVersion, createDenseMatrixClass, createEfimovFactor, createLN2, createPi, createReplacer, createSQRT2, createTyped, createWeakMixingAngle, createAbs, createAcos, createAcot, createAcsc, createAddScalar, createArg, createAsech, createAsinh, createAtan, createAtanh, createBigint, createBitNot, createBoolean, createClone, createCombinations, createComplex, createConj, createCos, createCot, createCsc, createCube, createEqualScalar, createErf, createExp, createExpm1, createFilter, createFlatten, createForEach, createFormat, createGetMatrixDataType, createHex, createIm, createIsInteger, createIsNegative, createIsPositive, createIsZero, createLOG2E, createLgamma, createLog10, createLog2, createMap, createMultiplyScalar, createNot, createNumber, createOct, createPickRandom, createPrint, createRandom, createRe, createSec, createSign, createSin, createSparseMatrixClass, createSplitUnit, createSquare, createString, createSubtractScalar, createTan, createTypeOf, createAcosh, createAcsch, createApply, createAsec, createBignumber, createCombinationsWithRep, createCosh, createCsch, createIsNaN, createIsPrime, createRandomInt, createSech, createSinh, createSparse, createSqrt, createSqueeze, createTanh, createUnaryMinus, createAcoth, createBin, createCoth, createFraction, createIsNumeric, createMatrix, createMatrixFromFunction, createMode, createNumeric, createProd, createReshape, createSize, createTranspose, createXgcd, createZeros, createAsin, createCbrt, createConcat, createCount, createCtranspose, createDiag, createDivideScalar, createDotDivide, createEqual, createHasNumericValue, createIdentity, createKron, createLargerEq, createLeftShift, createLsolve, createMatrixFromColumns, createNthRoot, createOnes, createQr, createResize, createRightArithShift, createRound, createSmaller, createSubtract, createTo, createUnaryPlus, createUsolve, createXor, createAdd, createAtan2, createBitAnd, createBitOr, createBitXor, createCatalan, createCompare, createCompareText, createCumSum, createDeepEqual, createDiff, createDistance, createDot, createEqualText, createFloor, createGcd, createHypot, createImmutableDenseMatrixClass, createIndexClass, createLarger, createLog, createLsolveAll, createMatrixFromRows, createMin, createMod, createMultiply, createNthRoots, createOr, createPartitionSelect, createRightLogShift, createSlu, createSubset, createSum, createTrace, createUsolveAll, createZpk2tf, createCeil, createCompareNatural, createComposition, createCross, createDet, createDotMultiply, createFibonacciHeapClass, createFix, createIndex, createIntersect, createInvmod, createLcm, createLog1p, createMax, createSetCartesian, createSetDistinct, createSetIsSubset, createSetPowerset, createSmallerEq, createSort, createUnequal, createAnd, createRange, createRow, createSetDifference, createSetMultiplicity, createSetSymDifference, createSpaClass, createColumn, createInv, createLup, createPinv, createPow, createSetIntersect, createSetUnion, createSqrtm, createUnitClass, createVacuumImpedance, createWienDisplacement, createAtomicMass, createBohrMagneton, createBoltzmann, createConductanceQuantum, createCoulomb, createDeuteronMass, createDotPow, createElectricConstant, createElementaryCharge, createExpm, createFaraday, createFft, createGamma, createGravitationConstant, createHartreeEnergy, createIfft, createKlitzing, createLoschmidt, createMagneticConstant, createMolarMass, createMolarPlanckConstant, createNeutronMass, createNuclearMagneton, createPlanckCharge, createPlanckLength, createPlanckTemperature, createProtonMass, createQuantumOfCirculation, createReducedPlanckConstant, createRydberg, createSecondRadiation, createSpeedOfLight, createStefanBoltzmann, createThomsonCrossSection, createAvogadro, createBohrRadius, createCreateUnit, createDivide, createElectronMass, createFactorial, createFirstRadiation, createGravity, createInverseConductanceQuantum, createLusolve, createMagneticFluxQuantum, createMolarMassC12, createMultinomial, createPermutations, createPlanckMass, createPolynomialRoot, createSetSize, createSolveODE, createStirlingS2, createUnitFunction, createBellNumbers, createEigs, createFermiCoupling, createGasConstant, createKldivergence, createMean, createMolarVolume, createPlanckConstant, createQuantileSeq, createVariance, createClassicalElectronRadius, createMedian, createCorr, createFreqz, createMad, createStd, createZeta, createNorm, createRotationMatrix, createPlanckTime, createSchur, createRotate, createSylvester, createLyap } from '../factoriesAny.js';
9
9
  export var BigNumber = /* #__PURE__ */createBigNumberClass({
10
10
  config
11
11
  });
@@ -185,6 +185,9 @@ export var expm1 = /* #__PURE__ */createExpm1({
185
185
  export var filter = /* #__PURE__ */createFilter({
186
186
  typed
187
187
  });
188
+ export var flatten = /* #__PURE__ */createFlatten({
189
+ typed
190
+ });
188
191
  export var forEach = /* #__PURE__ */createForEach({
189
192
  typed
190
193
  });
@@ -359,6 +362,9 @@ export var sqrt = /* #__PURE__ */createSqrt({
359
362
  config,
360
363
  typed
361
364
  });
365
+ export var squeeze = /* #__PURE__ */createSqueeze({
366
+ typed
367
+ });
362
368
  export var tanh = /* #__PURE__ */createTanh({
363
369
  typed
364
370
  });
@@ -423,10 +429,6 @@ export var size = /* #__PURE__ */createSize({
423
429
  config,
424
430
  typed
425
431
  });
426
- export var squeeze = /* #__PURE__ */createSqueeze({
427
- matrix,
428
- typed
429
- });
430
432
  export var transpose = /* #__PURE__ */createTranspose({
431
433
  matrix,
432
434
  typed
@@ -498,10 +500,6 @@ export var equal = /* #__PURE__ */createEqual({
498
500
  matrix,
499
501
  typed
500
502
  });
501
- export var flatten = /* #__PURE__ */createFlatten({
502
- matrix,
503
- typed
504
- });
505
503
  export var hasNumericValue = /* #__PURE__ */createHasNumericValue({
506
504
  isNumeric,
507
505
  typed
@@ -1,2 +1,2 @@
1
1
  // util functions
2
- export { isAccessorNode, isArray, isArrayNode, isAssignmentNode, isBigNumber, isBigInt, isBlockNode, isBoolean, isChain, isCollection, isComplex, isConditionalNode, isConstantNode, isDate, isDenseMatrix, isFraction, isFunction, isFunctionAssignmentNode, isFunctionNode, isHelp, isIndex, isIndexNode, isMatrix, isNode, isNull, isNumber, isString, isUndefined, isObject, isObjectNode, isOperatorNode, isParenthesisNode, isRange, isRangeNode, isRelationalNode, isRegExp, isResultSet, isSparseMatrix, isSymbolNode, isUnit } from '../utils/is.js';
2
+ export { isAccessorNode, isArray, isArrayNode, isAssignmentNode, isBigNumber, isBigInt, isBlockNode, isBoolean, isChain, isCollection, isComplex, isConditionalNode, isConstantNode, isDate, isDenseMatrix, isFraction, isFunction, isFunctionAssignmentNode, isFunctionNode, isHelp, isIndex, isIndexNode, isMatrix, isNode, isNull, isNumber, isString, isUndefined, isObject, isMap, isPartitionedMap, isObjectWrappingMap, isObjectNode, isOperatorNode, isParenthesisNode, isRange, isRangeNode, isRelationalNode, isRegExp, isResultSet, isSparseMatrix, isSymbolNode, isUnit } from '../utils/is.js';
@@ -316,7 +316,7 @@ export var embeddedDocs = {
316
316
  examples: ['elementaryCharge']
317
317
  },
318
318
  bohrMagneton: {
319
- description: 'Borh magneton',
319
+ description: 'Bohr magneton',
320
320
  examples: ['bohrMagneton']
321
321
  },
322
322
  conductanceQuantum: {
@@ -341,7 +341,7 @@ export var embeddedDocs = {
341
341
  examples: ['klitzing']
342
342
  },
343
343
  bohrRadius: {
344
- description: 'Borh radius',
344
+ description: 'Bohr radius',
345
345
  examples: ['bohrRadius']
346
346
  },
347
347
  classicalElectronRadius: {
@@ -2,7 +2,7 @@ export var hypotDocs = {
2
2
  name: 'hypot',
3
3
  category: 'Arithmetic',
4
4
  syntax: ['hypot(a, b, c, ...)', 'hypot([a, b, c, ...])'],
5
- description: 'Calculate the hypotenusa of a list with values. ',
5
+ description: 'Calculate the hypotenuse of a list with values.',
6
6
  examples: ['hypot(3, 4)', 'sqrt(3^2 + 4^2)', 'hypot(-2)', 'hypot([3, 4, 5])'],
7
7
  seealso: ['abs', 'norm']
8
8
  };
@@ -2,7 +2,7 @@ export var diffDocs = {
2
2
  name: 'diff',
3
3
  category: 'Matrix',
4
4
  syntax: ['diff(arr)', 'diff(arr, dim)'],
5
- description: ['Create a new matrix or array with the difference of the passed matrix or array.', 'Dim parameter is optional and used to indicant the dimension of the array/matrix to apply the difference', 'If no dimension parameter is passed it is assumed as dimension 0', 'Dimension is zero-based in javascript and one-based in the parser', 'Arrays must be \'rectangular\' meaning arrays like [1, 2]', 'If something is passed as a matrix it will be returned as a matrix but other than that all matrices are converted to arrays'],
5
+ description: ['Create a new matrix or array with the difference of the passed matrix or array.', 'Dim parameter is optional and used to indicate the dimension of the array/matrix to apply the difference', 'If no dimension parameter is passed it is assumed as dimension 0', 'Dimension is zero-based in javascript and one-based in the parser', 'Arrays must be \'rectangular\' meaning arrays like [1, 2]', 'If something is passed as a matrix it will be returned as a matrix but other than that all matrices are converted to arrays'],
6
6
  examples: ['A = [1, 2, 4, 7, 0]', 'diff(A)', 'diff(A, 1)', 'B = [[1, 2], [3, 4]]', 'diff(B)', 'diff(B, 1)', 'diff(B, 2)', 'diff(B, bignumber(2))', 'diff([[1, 2], matrix([3, 4])], 2)'],
7
7
  seealso: ['subtract', 'partitionSelect']
8
8
  };
@@ -2,7 +2,7 @@ export var fftDocs = {
2
2
  name: 'fft',
3
3
  category: 'Matrix',
4
4
  syntax: ['fft(x)'],
5
- description: 'Calculate N-dimensional fourier transform',
5
+ description: 'Calculate N-dimensional Fourier transform',
6
6
  examples: ['fft([[1, 0], [1, 0]])'],
7
7
  seealso: ['ifft']
8
8
  };
@@ -2,7 +2,7 @@ export var ifftDocs = {
2
2
  name: 'ifft',
3
3
  category: 'Matrix',
4
4
  syntax: ['ifft(x)'],
5
- description: 'Calculate N-dimensional inverse fourier transform',
5
+ description: 'Calculate N-dimensional inverse Fourier transform',
6
6
  examples: ['ifft([[2, 2], [0, 0]])'],
7
7
  seealso: ['fft']
8
8
  };
@@ -2,7 +2,7 @@ export var kronDocs = {
2
2
  name: 'kron',
3
3
  category: 'Matrix',
4
4
  syntax: ['kron(x, y)'],
5
- description: 'Calculates the kronecker product of 2 matrices or vectors.',
5
+ description: 'Calculates the Kronecker product of 2 matrices or vectors.',
6
6
  examples: ['kron([[1, 0], [0, 1]], [[1, 2], [3, 4]])', 'kron([1,1], [2,3,4])'],
7
7
  seealso: ['multiply', 'dot', 'cross']
8
8
  };
@@ -1,8 +1,8 @@
1
1
  export var mapDocs = {
2
2
  name: 'map',
3
3
  category: 'Matrix',
4
- syntax: ['map(x, callback)'],
5
- description: 'Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array.',
6
- examples: ['map([1, 2, 3], square)'],
4
+ syntax: ['map(x, callback)', 'map(x, y, ..., callback)'],
5
+ description: 'Create a new matrix or array with the results of the callback function executed on each entry of the matrix/array or the matrices/arrays.',
6
+ examples: ['map([1, 2, 3], square)', 'map([1, 2], [3, 4], f(a,b) = a + b)'],
7
7
  seealso: ['filter', 'forEach']
8
8
  };
@@ -2,7 +2,7 @@ export var zetaDocs = {
2
2
  name: 'zeta',
3
3
  category: 'Special',
4
4
  syntax: ['zeta(s)'],
5
- description: 'Compute the Riemann Zeta Function using an infinite series and Riemanns Functional Equation for the entire complex plane',
5
+ description: 'Compute the Riemann Zeta Function using an infinite series and Riemann\'s Functional Equation for the entire complex plane',
6
6
  examples: ['zeta(0.2)', 'zeta(-0.5)', 'zeta(4)'],
7
7
  seealso: []
8
8
  };
@@ -2,7 +2,7 @@ export var quantileSeqDocs = {
2
2
  name: 'quantileSeq',
3
3
  category: 'Statistics',
4
4
  syntax: ['quantileSeq(A, prob[, sorted])', 'quantileSeq(A, [prob1, prob2, ...][, sorted])', 'quantileSeq(A, N[, sorted])'],
5
- description: 'Compute the prob order quantile of a matrix or a list with values. The sequence is sorted and the middle value is returned. Supported types of sequence values are: Number, BigNumber, Unit Supported types of probablity are: Number, BigNumber. \n\nIn case of a (multi dimensional) array or matrix, the prob order quantile of all elements will be calculated.',
5
+ description: 'Compute the prob order quantile of a matrix or a list with values. The sequence is sorted and the middle value is returned. Supported types of sequence values are: Number, BigNumber, Unit Supported types of probability are: Number, BigNumber. \n\nIn case of a (multi dimensional) array or matrix, the prob order quantile of all elements will be calculated.',
6
6
  examples: ['quantileSeq([3, -1, 5, 7], 0.5)', 'quantileSeq([3, -1, 5, 7], [1/3, 2/3])', 'quantileSeq([3, -1, 5, 7], 2)', 'quantileSeq([-1, 3, 5, 7], 0.5, true)'],
7
7
  seealso: ['mean', 'median', 'min', 'max', 'prod', 'std', 'sum', 'variance']
8
8
  };
@@ -2,7 +2,7 @@ export var acothDocs = {
2
2
  name: 'acoth',
3
3
  category: 'Trigonometry',
4
4
  syntax: ['acoth(x)'],
5
- description: 'Calculate the hyperbolic arccotangent of a value, defined as `acoth(x) = (ln((x+1)/x) + ln(x/(x-1))) / 2`.',
5
+ description: 'Calculate the inverse hyperbolic tangent of a value, defined as `acoth(x) = (ln((x+1)/x) + ln(x/(x-1))) / 2`.',
6
6
  examples: ['acoth(2)', 'acoth(0.5)'],
7
7
  seealso: ['acsch', 'asech']
8
8
  };
@@ -2,7 +2,7 @@ export var acschDocs = {
2
2
  name: 'acsch',
3
3
  category: 'Trigonometry',
4
4
  syntax: ['acsch(x)'],
5
- description: 'Calculate the hyperbolic arccosecant of a value, defined as `acsch(x) = ln(1/x + sqrt(1/x^2 + 1))`.',
5
+ description: 'Calculate the inverse hyperbolic cosecant of a value, defined as `acsch(x) = ln(1/x + sqrt(1/x^2 + 1))`.',
6
6
  examples: ['acsch(0.5)'],
7
7
  seealso: ['asech', 'acoth']
8
8
  };
@@ -2,7 +2,7 @@ export var cloneDocs = {
2
2
  name: 'clone',
3
3
  category: 'Utils',
4
4
  syntax: ['clone(x)'],
5
- description: 'Clone a variable. Creates a copy of primitive variables,and a deep copy of matrices',
5
+ description: 'Clone a variable. Creates a copy of primitive variables, and a deep copy of matrices',
6
6
  examples: ['clone(3.5)', 'clone(2 - 4i)', 'clone(45 deg)', 'clone([1, 2; 3, 4])', 'clone("hello world")'],
7
7
  seealso: []
8
8
  };
@@ -45,7 +45,7 @@ export var createCompile = /* #__PURE__ */factory(name, dependencies, _ref => {
45
45
  string: function string(expr) {
46
46
  return parse(expr).compile();
47
47
  },
48
- 'Array | Matrix': function ArrayMatrix(expr) {
48
+ 'Array | Matrix': function Array__Matrix(expr) {
49
49
  return deepMap(expr, function (entry) {
50
50
  return parse(entry).compile();
51
51
  });
@@ -11,6 +11,11 @@ export var createEvaluate = /* #__PURE__ */factory(name, dependencies, _ref => {
11
11
  /**
12
12
  * Evaluate an expression.
13
13
  *
14
+ * The expression parser does not use JavaScript. Its syntax is close
15
+ * to JavaScript but more suited for mathematical expressions.
16
+ * See [https://mathjs.org/docs/expressions/syntax.html](https://mathjs.org/docs/expressions/syntax.html) to learn
17
+ * the syntax and get an overview of the exact differences from JavaScript.
18
+ *
14
19
  * Note the evaluating arbitrary expressions may involve security risks,
15
20
  * see [https://mathjs.org/docs/expressions/security.html](https://mathjs.org/docs/expressions/security.html) for more information.
16
21
  *
@@ -45,16 +50,16 @@ export var createEvaluate = /* #__PURE__ */factory(name, dependencies, _ref => {
45
50
  var scope = createEmptyMap();
46
51
  return parse(expr).compile().evaluate(scope);
47
52
  },
48
- 'string, Map | Object': function stringMapObject(expr, scope) {
53
+ 'string, Map | Object': function string_Map__Object(expr, scope) {
49
54
  return parse(expr).compile().evaluate(scope);
50
55
  },
51
- 'Array | Matrix': function ArrayMatrix(expr) {
56
+ 'Array | Matrix': function Array__Matrix(expr) {
52
57
  var scope = createEmptyMap();
53
58
  return deepMap(expr, function (entry) {
54
59
  return parse(entry).compile().evaluate(scope);
55
60
  });
56
61
  },
57
- 'Array | Matrix, Map | Object': function ArrayMatrixMapObject(expr, scope) {
62
+ 'Array | Matrix, Map | Object': function Array__Matrix_Map__Object(expr, scope) {
58
63
  return deepMap(expr, function (entry) {
59
64
  return parse(entry).compile().evaluate(scope);
60
65
  });
@@ -97,7 +97,7 @@ export var createFunctionNode = /* #__PURE__ */factory(name, dependencies, _ref
97
97
  * invoke a list with arguments on a node
98
98
  * @param {./Node | string} fn
99
99
  * Item resolving to a function on which to invoke
100
- * the arguments, typically a SymboNode or AccessorNode
100
+ * the arguments, typically a SymbolNode or AccessorNode
101
101
  * @param {./Node[]} args
102
102
  */
103
103
  constructor(fn, args) {
@@ -70,10 +70,10 @@ export var createParse = /* #__PURE__ */factory(name, dependencies, _ref => {
70
70
  string: function string(expression) {
71
71
  return parseStart(expression, {});
72
72
  },
73
- 'Array | Matrix': function ArrayMatrix(expressions) {
73
+ 'Array | Matrix': function Array__Matrix(expressions) {
74
74
  return parseMultiple(expressions, {});
75
75
  },
76
- 'string, Object': function stringObject(expression, options) {
76
+ 'string, Object': function string_Object(expression, options) {
77
77
  var extraNodes = options.nodes !== undefined ? options.nodes : {};
78
78
  return parseStart(expression, extraNodes);
79
79
  },
@@ -37,12 +37,12 @@ export var createFilterTransform = /* #__PURE__ */factory(name, dependencies, _r
37
37
  // one based version of function filter
38
38
  var filter = typed('filter', {
39
39
  'Array, function': _filter,
40
- 'Matrix, function': function MatrixFunction(x, test) {
41
- return x.create(_filter(x.toArray(), test));
40
+ 'Matrix, function': function Matrix_function(x, test) {
41
+ return x.create(_filter(x.toArray(), test), x.datatype());
42
42
  },
43
43
  'Array, RegExp': filterRegExp,
44
- 'Matrix, RegExp': function MatrixRegExp(x, test) {
45
- return x.create(filterRegExp(x.toArray(), test));
44
+ 'Matrix, RegExp': function Matrix_RegExp(x, test) {
45
+ return x.create(filterRegExp(x.toArray(), test), x.datatype());
46
46
  }
47
47
  });
48
48
  return filterTransform;
@@ -35,19 +35,19 @@ export var createForEachTransform = /* #__PURE__ */factory(name, dependencies, _
35
35
 
36
36
  // one-based version of forEach
37
37
  var _forEach = typed('forEach', {
38
- 'Array | Matrix, function': function ArrayMatrixFunction(array, callback) {
39
- var recurse = function recurse(value, index) {
38
+ 'Array | Matrix, function': function Array__Matrix_function(array, callback) {
39
+ var _recurse = function recurse(value, index) {
40
40
  if (Array.isArray(value)) {
41
41
  forEach(value, function (child, i) {
42
42
  // we create a copy of the index array and append the new index value
43
- recurse(child, index.concat(i + 1)); // one based index, hence i+1
43
+ _recurse(child, index.concat(i + 1)); // one based index, hence i+1
44
44
  });
45
45
  } else {
46
46
  // invoke the callback function with the right number of arguments
47
47
  return applyCallback(callback, value, index, array, 'forEach');
48
48
  }
49
49
  };
50
- recurse(array.valueOf(), []); // pass Array
50
+ _recurse(array.valueOf(), []); // pass Array
51
51
  }
52
52
  });
53
53
  return forEachTransform;
@@ -1,7 +1,6 @@
1
- import { applyCallback } from '../../utils/applyCallback.js';
2
- import { map } from '../../utils/array.js';
3
1
  import { factory } from '../../utils/factory.js';
4
2
  import { isFunctionAssignmentNode, isSymbolNode } from '../../utils/is.js';
3
+ import { createMap } from '../../function/matrix/map.js';
5
4
  import { compileInlineExpression } from './utils/compileInlineExpression.js';
6
5
  var name = 'map';
7
6
  var dependencies = ['typed'];
@@ -15,57 +14,125 @@ export var createMapTransform = /* #__PURE__ */factory(name, dependencies, _ref
15
14
  *
16
15
  * This transform creates a one-based index instead of a zero-based index
17
16
  */
17
+ var map = createMap({
18
+ typed
19
+ });
18
20
  function mapTransform(args, math, scope) {
19
- var x, callback;
20
- if (args[0]) {
21
- x = args[0].compile().evaluate(scope);
21
+ if (args.length === 0) {
22
+ return map();
22
23
  }
23
- if (args[1]) {
24
- if (isSymbolNode(args[1]) || isFunctionAssignmentNode(args[1])) {
24
+ if (args.length === 1) {
25
+ return map(args[0]);
26
+ }
27
+ var N = args.length - 1;
28
+ var X, callback;
29
+ callback = args[N];
30
+ X = args.slice(0, N);
31
+ X = X.map(arg => _compileAndEvaluate(arg, scope));
32
+ if (callback) {
33
+ if (isSymbolNode(callback) || isFunctionAssignmentNode(callback)) {
25
34
  // a function pointer, like filter([3, -2, 5], myTestFunction)
26
- callback = args[1].compile().evaluate(scope);
35
+ callback = _compileAndEvaluate(callback, scope);
27
36
  } else {
28
37
  // an expression like filter([3, -2, 5], x > 0)
29
- callback = compileInlineExpression(args[1], math, scope);
38
+ callback = compileInlineExpression(callback, math, scope);
30
39
  }
31
40
  }
32
- return map(x, callback);
41
+ return map(...X, _transformCallback(callback, N));
42
+ function _compileAndEvaluate(arg, scope) {
43
+ return arg.compile().evaluate(scope);
44
+ }
33
45
  }
34
46
  mapTransform.rawArgs = true;
47
+ return mapTransform;
35
48
 
36
- // one-based version of map function
37
- var map = typed('map', {
38
- 'Array, function': function ArrayFunction(x, callback) {
39
- return _map(x, callback, x);
40
- },
41
- 'Matrix, function': function MatrixFunction(x, callback) {
42
- return x.create(_map(x.valueOf(), callback, x));
49
+ /**
50
+ * Transforms the given callback function based on its type and number of arrays.
51
+ *
52
+ * @param {Function} callback - The callback function to transform.
53
+ * @param {number} numberOfArrays - The number of arrays to pass to the callback function.
54
+ * @returns {*} - The transformed callback function.
55
+ */
56
+ function _transformCallback(callback, numberOfArrays) {
57
+ if (typed.isTypedFunction(callback)) {
58
+ return _transformTypedCallbackFunction(callback, numberOfArrays);
59
+ } else {
60
+ return _transformCallbackFunction(callback, callback.length, numberOfArrays);
43
61
  }
44
- });
45
- return mapTransform;
62
+ }
63
+
64
+ /**
65
+ * Transforms the given typed callback function based on the number of arrays.
66
+ *
67
+ * @param {Function} typedFunction - The typed callback function to transform.
68
+ * @param {number} numberOfArrays - The number of arrays to pass to the callback function.
69
+ * @returns {*} - The transformed typed callback function.
70
+ */
71
+ function _transformTypedCallbackFunction(typedFunction, numberOfArrays) {
72
+ var signatures = Object.fromEntries(Object.entries(typedFunction.signatures).map(_ref2 => {
73
+ var [signature, callbackFunction] = _ref2;
74
+ var numberOfCallbackInputs = signature.split(',').length;
75
+ if (typed.isTypedFunction(callbackFunction)) {
76
+ return [signature, _transformTypedCallbackFunction(callbackFunction, numberOfArrays)];
77
+ } else {
78
+ return [signature, _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays)];
79
+ }
80
+ }));
81
+ if (typeof typedFunction.name === 'string') {
82
+ return typed(typedFunction.name, signatures);
83
+ } else {
84
+ return typed(signatures);
85
+ }
86
+ }
46
87
  }, {
47
88
  isTransformFunction: true
48
89
  });
49
90
 
50
91
  /**
51
- * Map for a multidimensional array. One-based indexes
52
- * @param {Array} array
53
- * @param {function} callback
54
- * @param {Array} orig
55
- * @return {Array}
56
- * @private
92
+ * Transforms the callback function based on the number of callback inputs and arrays.
93
+ * There are three cases:
94
+ * 1. The callback function has N arguments.
95
+ * 2. The callback function has N+1 arguments.
96
+ * 3. The callback function has 2N+1 arguments.
97
+ *
98
+ * @param {Function} callbackFunction - The callback function to transform.
99
+ * @param {number} numberOfCallbackInputs - The number of callback inputs.
100
+ * @param {number} numberOfArrays - The number of arrays.
101
+ * @returns {Function} The transformed callback function.
57
102
  */
58
- function _map(array, callback, orig) {
59
- function recurse(value, index) {
60
- if (Array.isArray(value)) {
61
- return map(value, function (child, i) {
62
- // we create a copy of the index array and append the new index value
63
- return recurse(child, index.concat(i + 1)); // one based index, hence i + 1
64
- });
65
- } else {
66
- // invoke the (typed) callback function with the right number of arguments
67
- return applyCallback(callback, value, index, orig, 'map');
68
- }
103
+ function _transformCallbackFunction(callbackFunction, numberOfCallbackInputs, numberOfArrays) {
104
+ if (numberOfCallbackInputs === numberOfArrays) {
105
+ return callbackFunction;
106
+ } else if (numberOfCallbackInputs === numberOfArrays + 1) {
107
+ return function () {
108
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
109
+ args[_key] = arguments[_key];
110
+ }
111
+ var vals = args.slice(0, numberOfArrays);
112
+ var idx = _transformDims(args[numberOfArrays]);
113
+ return callbackFunction(...vals, idx);
114
+ };
115
+ } else if (numberOfCallbackInputs > numberOfArrays + 1) {
116
+ return function () {
117
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
118
+ args[_key2] = arguments[_key2];
119
+ }
120
+ var vals = args.slice(0, numberOfArrays);
121
+ var idx = _transformDims(args[numberOfArrays]);
122
+ var rest = args.slice(numberOfArrays + 1);
123
+ return callbackFunction(...vals, idx, ...rest);
124
+ };
125
+ } else {
126
+ return callbackFunction;
69
127
  }
70
- return recurse(array, []);
128
+ }
129
+
130
+ /**
131
+ * Transforms the dimensions by adding 1 to each dimension.
132
+ *
133
+ * @param {Array} dims - The dimensions to transform.
134
+ * @returns {Array} The transformed dimensions.
135
+ */
136
+ function _transformDims(dims) {
137
+ return dims.map(dim => dim.isBigNumber ? dim.plus(1) : dim + 1);
71
138
  }
@@ -17,10 +17,10 @@ export var createPrintTransform = /* #__PURE__ */factory(name, dependencies, _re
17
17
  add
18
18
  });
19
19
  return typed(name, {
20
- 'string, Object | Array': function stringObjectArray(template, values) {
20
+ 'string, Object | Array': function string_Object__Array(template, values) {
21
21
  return print(_convertTemplateToZeroBasedIndex(template), values);
22
22
  },
23
- 'string, Object | Array, number | Object': function stringObjectArrayNumberObject(template, values, options) {
23
+ 'string, Object | Array, number | Object': function string_Object__Array_number__Object(template, values, options) {
24
24
  return print(_convertTemplateToZeroBasedIndex(template), values, options);
25
25
  }
26
26
  });
@@ -0,0 +1,16 @@
1
+ import { isNumber, isBigNumber } from '../../../utils/is.js';
2
+ /**
3
+ * Change last argument dim from one-based to zero-based.
4
+ */
5
+ export function dimToZeroBase(dim) {
6
+ if (isNumber(dim)) {
7
+ return dim - 1;
8
+ } else if (isBigNumber(dim)) {
9
+ return dim.minus(1);
10
+ } else {
11
+ return dim;
12
+ }
13
+ }
14
+ export function isNumberOrBigNumber(n) {
15
+ return isNumber(n) || isBigNumber(n);
16
+ }
@@ -1,5 +1,5 @@
1
- import { isBigNumber, isCollection, isNumber } from '../../../utils/is.js';
2
-
1
+ import { isCollection } from '../../../utils/is.js';
2
+ import { dimToZeroBase, isNumberOrBigNumber } from './dimToZeroBase.js';
3
3
  /**
4
4
  * Change last argument dim from one-based to zero-based.
5
5
  */
@@ -7,10 +7,8 @@ export function lastDimToZeroBase(args) {
7
7
  if (args.length === 2 && isCollection(args[0])) {
8
8
  args = args.slice();
9
9
  var dim = args[1];
10
- if (isNumber(dim)) {
11
- args[1] = dim - 1;
12
- } else if (isBigNumber(dim)) {
13
- args[1] = dim.minus(1);
10
+ if (isNumberOrBigNumber(dim)) {
11
+ args[1] = dimToZeroBase(dim);
14
12
  }
15
13
  }
16
14
  return args;
@@ -70,7 +70,7 @@ export var createSlu = /* #__PURE__ */factory(name, dependencies, _ref => {
70
70
  * @return {Object} The lower triangular matrix, the upper triangular matrix and the permutation vectors.
71
71
  */
72
72
  return typed(name, {
73
- 'SparseMatrix, number, number': function SparseMatrixNumberNumber(a, order, threshold) {
73
+ 'SparseMatrix, number, number': function SparseMatrix_number_number(a, order, threshold) {
74
74
  // verify order
75
75
  if (!isInteger(order) || order < 0 || order > 3) {
76
76
  throw new Error('Symbolic Ordering and Analysis order must be an integer number in the interval [0, 3]');