mathjs 13.0.2 → 13.1.0

Sign up to get free protection for your applications and to get access to all the features.
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]');