mathjs 8.1.0 → 12.2.1

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 (2099) hide show
  1. package/CONTRIBUTING.md +11 -10
  2. package/HISTORY.md +772 -1
  3. package/NOTICE +1 -1
  4. package/README.md +33 -16
  5. package/bin/cli.js +12 -12
  6. package/lib/browser/math.js +2 -40
  7. package/lib/browser/math.js.LICENSE.txt +43 -0
  8. package/lib/browser/math.js.map +1 -1
  9. package/lib/cjs/constants.js +40 -61
  10. package/lib/cjs/core/config.js +2 -3
  11. package/lib/cjs/core/create.js +31 -46
  12. package/lib/cjs/core/function/config.js +15 -20
  13. package/lib/cjs/core/function/import.js +28 -82
  14. package/lib/cjs/core/function/typed.js +71 -49
  15. package/lib/cjs/defaultInstance.js +4 -12
  16. package/lib/cjs/entry/allFactoriesAny.js +5 -10
  17. package/lib/cjs/entry/allFactoriesNumber.js +5 -10
  18. package/lib/cjs/entry/configReadonly.js +4 -11
  19. package/lib/cjs/entry/dependenciesAny/dependenciesAbs.generated.js +3 -6
  20. package/lib/cjs/entry/dependenciesAny/dependenciesAccessorNode.generated.js +3 -7
  21. package/lib/cjs/entry/dependenciesAny/dependenciesAcos.generated.js +3 -7
  22. package/lib/cjs/entry/dependenciesAny/dependenciesAcosh.generated.js +3 -7
  23. package/lib/cjs/entry/dependenciesAny/dependenciesAcot.generated.js +3 -7
  24. package/lib/cjs/entry/dependenciesAny/dependenciesAcoth.generated.js +3 -8
  25. package/lib/cjs/entry/dependenciesAny/dependenciesAcsc.generated.js +3 -8
  26. package/lib/cjs/entry/dependenciesAny/dependenciesAcsch.generated.js +3 -7
  27. package/lib/cjs/entry/dependenciesAny/dependenciesAdd.generated.js +5 -11
  28. package/lib/cjs/entry/dependenciesAny/dependenciesAddScalar.generated.js +3 -6
  29. package/lib/cjs/entry/dependenciesAny/dependenciesAnd.generated.js +5 -10
  30. package/lib/cjs/entry/dependenciesAny/dependenciesAndTransform.generated.js +29 -0
  31. package/lib/cjs/entry/dependenciesAny/dependenciesApply.generated.js +3 -7
  32. package/lib/cjs/entry/dependenciesAny/dependenciesApplyTransform.generated.js +3 -7
  33. package/lib/cjs/entry/dependenciesAny/dependenciesArg.generated.js +3 -6
  34. package/lib/cjs/entry/dependenciesAny/dependenciesArrayNode.generated.js +3 -6
  35. package/lib/cjs/entry/dependenciesAny/dependenciesAsec.generated.js +3 -8
  36. package/lib/cjs/entry/dependenciesAny/dependenciesAsech.generated.js +3 -8
  37. package/lib/cjs/entry/dependenciesAny/dependenciesAsin.generated.js +3 -7
  38. package/lib/cjs/entry/dependenciesAny/dependenciesAsinh.generated.js +3 -6
  39. package/lib/cjs/entry/dependenciesAny/dependenciesAssignmentNode.generated.js +3 -8
  40. package/lib/cjs/entry/dependenciesAny/dependenciesAtan.generated.js +3 -6
  41. package/lib/cjs/entry/dependenciesAny/dependenciesAtan2.generated.js +5 -10
  42. package/lib/cjs/entry/dependenciesAny/dependenciesAtanh.generated.js +3 -7
  43. package/lib/cjs/entry/dependenciesAny/dependenciesAtomicMass.generated.js +3 -7
  44. package/lib/cjs/entry/dependenciesAny/dependenciesAvogadro.generated.js +3 -7
  45. package/lib/cjs/entry/dependenciesAny/dependenciesBellNumbers.generated.js +3 -10
  46. package/lib/cjs/entry/dependenciesAny/dependenciesBigNumberClass.generated.js +3 -5
  47. package/lib/cjs/entry/dependenciesAny/dependenciesBignumber.generated.js +3 -7
  48. package/lib/cjs/entry/dependenciesAny/dependenciesBin.generated.js +5 -6
  49. package/lib/cjs/entry/dependenciesAny/dependenciesBitAnd.generated.js +5 -8
  50. package/lib/cjs/entry/dependenciesAny/dependenciesBitAndTransform.generated.js +29 -0
  51. package/lib/cjs/entry/dependenciesAny/dependenciesBitNot.generated.js +3 -6
  52. package/lib/cjs/entry/dependenciesAny/dependenciesBitOr.generated.js +5 -9
  53. package/lib/cjs/entry/dependenciesAny/dependenciesBitOrTransform.generated.js +25 -0
  54. package/lib/cjs/entry/dependenciesAny/dependenciesBitXor.generated.js +5 -8
  55. package/lib/cjs/entry/dependenciesAny/dependenciesBlockNode.generated.js +3 -7
  56. package/lib/cjs/entry/dependenciesAny/dependenciesBohrMagneton.generated.js +3 -7
  57. package/lib/cjs/entry/dependenciesAny/dependenciesBohrRadius.generated.js +3 -7
  58. package/lib/cjs/entry/dependenciesAny/dependenciesBoltzmann.generated.js +3 -7
  59. package/lib/cjs/entry/dependenciesAny/dependenciesBoolean.generated.js +3 -6
  60. package/lib/cjs/entry/dependenciesAny/dependenciesCatalan.generated.js +3 -12
  61. package/lib/cjs/entry/dependenciesAny/dependenciesCbrt.generated.js +3 -12
  62. package/lib/cjs/entry/dependenciesAny/dependenciesCeil.generated.js +7 -9
  63. package/lib/cjs/entry/dependenciesAny/dependenciesChain.generated.js +3 -7
  64. package/lib/cjs/entry/dependenciesAny/dependenciesChainClass.generated.js +5 -5
  65. package/lib/cjs/entry/dependenciesAny/dependenciesClassicalElectronRadius.generated.js +3 -7
  66. package/lib/cjs/entry/dependenciesAny/dependenciesClone.generated.js +3 -6
  67. package/lib/cjs/entry/dependenciesAny/dependenciesColumn.generated.js +3 -9
  68. package/lib/cjs/entry/dependenciesAny/dependenciesColumnTransform.generated.js +3 -9
  69. package/lib/cjs/entry/dependenciesAny/dependenciesCombinations.generated.js +3 -6
  70. package/lib/cjs/entry/dependenciesAny/dependenciesCombinationsWithRep.generated.js +3 -6
  71. package/lib/cjs/entry/dependenciesAny/dependenciesCompare.generated.js +5 -11
  72. package/lib/cjs/entry/dependenciesAny/dependenciesCompareNatural.generated.js +3 -7
  73. package/lib/cjs/entry/dependenciesAny/dependenciesCompareText.generated.js +5 -7
  74. package/lib/cjs/entry/dependenciesAny/dependenciesCompile.generated.js +3 -7
  75. package/lib/cjs/entry/dependenciesAny/dependenciesComplex.generated.js +3 -7
  76. package/lib/cjs/entry/dependenciesAny/dependenciesComplexClass.generated.js +3 -5
  77. package/lib/cjs/entry/dependenciesAny/dependenciesComposition.generated.js +3 -12
  78. package/lib/cjs/entry/dependenciesAny/dependenciesConcat.generated.js +3 -8
  79. package/lib/cjs/entry/dependenciesAny/dependenciesConcatTransform.generated.js +3 -8
  80. package/lib/cjs/entry/dependenciesAny/dependenciesConditionalNode.generated.js +3 -6
  81. package/lib/cjs/entry/dependenciesAny/dependenciesConductanceQuantum.generated.js +3 -7
  82. package/lib/cjs/entry/dependenciesAny/dependenciesConj.generated.js +3 -6
  83. package/lib/cjs/entry/dependenciesAny/dependenciesConstantNode.generated.js +3 -6
  84. package/lib/cjs/entry/dependenciesAny/dependenciesCorr.generated.js +35 -0
  85. package/lib/cjs/entry/dependenciesAny/dependenciesCos.generated.js +3 -6
  86. package/lib/cjs/entry/dependenciesAny/dependenciesCosh.generated.js +3 -6
  87. package/lib/cjs/entry/dependenciesAny/dependenciesCot.generated.js +3 -7
  88. package/lib/cjs/entry/dependenciesAny/dependenciesCoth.generated.js +3 -7
  89. package/lib/cjs/entry/dependenciesAny/dependenciesCoulomb.generated.js +3 -7
  90. package/lib/cjs/entry/dependenciesAny/dependenciesCount.generated.js +21 -0
  91. package/lib/cjs/entry/dependenciesAny/dependenciesCreateUnit.generated.js +3 -7
  92. package/lib/cjs/entry/dependenciesAny/dependenciesCross.generated.js +3 -9
  93. package/lib/cjs/entry/dependenciesAny/dependenciesCsc.generated.js +3 -7
  94. package/lib/cjs/entry/dependenciesAny/dependenciesCsch.generated.js +3 -7
  95. package/lib/cjs/entry/dependenciesAny/dependenciesCtranspose.generated.js +3 -8
  96. package/lib/cjs/entry/dependenciesAny/dependenciesCube.generated.js +3 -6
  97. package/lib/cjs/entry/dependenciesAny/dependenciesCumSum.generated.js +21 -0
  98. package/lib/cjs/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +21 -0
  99. package/lib/cjs/entry/dependenciesAny/dependenciesDeepEqual.generated.js +3 -7
  100. package/lib/cjs/entry/dependenciesAny/dependenciesDenseMatrixClass.generated.js +3 -6
  101. package/lib/cjs/entry/dependenciesAny/dependenciesDerivative.generated.js +3 -16
  102. package/lib/cjs/entry/dependenciesAny/dependenciesDet.generated.js +9 -15
  103. package/lib/cjs/entry/dependenciesAny/dependenciesDeuteronMass.generated.js +3 -7
  104. package/lib/cjs/entry/dependenciesAny/dependenciesDiag.generated.js +3 -9
  105. package/lib/cjs/entry/dependenciesAny/dependenciesDiff.generated.js +3 -9
  106. package/lib/cjs/entry/dependenciesAny/dependenciesDiffTransform.generated.js +3 -10
  107. package/lib/cjs/entry/dependenciesAny/dependenciesDistance.generated.js +7 -17
  108. package/lib/cjs/entry/dependenciesAny/dependenciesDivide.generated.js +3 -11
  109. package/lib/cjs/entry/dependenciesAny/dependenciesDivideScalar.generated.js +3 -7
  110. package/lib/cjs/entry/dependenciesAny/dependenciesDot.generated.js +3 -10
  111. package/lib/cjs/entry/dependenciesAny/dependenciesDotDivide.generated.js +5 -10
  112. package/lib/cjs/entry/dependenciesAny/dependenciesDotMultiply.generated.js +5 -9
  113. package/lib/cjs/entry/dependenciesAny/dependenciesDotPow.generated.js +5 -10
  114. package/lib/cjs/entry/dependenciesAny/dependenciesE.generated.js +3 -6
  115. package/lib/cjs/entry/dependenciesAny/dependenciesEfimovFactor.generated.js +3 -6
  116. package/lib/cjs/entry/dependenciesAny/dependenciesEigs.generated.js +39 -19
  117. package/lib/cjs/entry/dependenciesAny/dependenciesElectricConstant.generated.js +3 -7
  118. package/lib/cjs/entry/dependenciesAny/dependenciesElectronMass.generated.js +3 -7
  119. package/lib/cjs/entry/dependenciesAny/dependenciesElementaryCharge.generated.js +3 -7
  120. package/lib/cjs/entry/dependenciesAny/dependenciesEqual.generated.js +5 -9
  121. package/lib/cjs/entry/dependenciesAny/dependenciesEqualScalar.generated.js +3 -6
  122. package/lib/cjs/entry/dependenciesAny/dependenciesEqualText.generated.js +3 -8
  123. package/lib/cjs/entry/dependenciesAny/dependenciesErf.generated.js +3 -6
  124. package/lib/cjs/entry/dependenciesAny/dependenciesEvaluate.generated.js +3 -7
  125. package/lib/cjs/entry/dependenciesAny/dependenciesExp.generated.js +3 -6
  126. package/lib/cjs/entry/dependenciesAny/dependenciesExpm.generated.js +3 -11
  127. package/lib/cjs/entry/dependenciesAny/dependenciesExpm1.generated.js +3 -7
  128. package/lib/cjs/entry/dependenciesAny/dependenciesFactorial.generated.js +3 -7
  129. package/lib/cjs/entry/dependenciesAny/dependenciesFalse.generated.js +3 -5
  130. package/lib/cjs/entry/dependenciesAny/dependenciesFaraday.generated.js +3 -7
  131. package/lib/cjs/entry/dependenciesAny/dependenciesFermiCoupling.generated.js +3 -7
  132. package/lib/cjs/entry/dependenciesAny/dependenciesFft.generated.js +41 -0
  133. package/lib/cjs/entry/dependenciesAny/dependenciesFibonacciHeapClass.generated.js +3 -7
  134. package/lib/cjs/entry/dependenciesAny/dependenciesFilter.generated.js +3 -6
  135. package/lib/cjs/entry/dependenciesAny/dependenciesFilterTransform.generated.js +3 -6
  136. package/lib/cjs/entry/dependenciesAny/dependenciesFineStructure.generated.js +3 -6
  137. package/lib/cjs/entry/dependenciesAny/dependenciesFirstRadiation.generated.js +3 -7
  138. package/lib/cjs/entry/dependenciesAny/dependenciesFix.generated.js +9 -10
  139. package/lib/cjs/entry/dependenciesAny/dependenciesFlatten.generated.js +3 -7
  140. package/lib/cjs/entry/dependenciesAny/dependenciesFloor.generated.js +7 -9
  141. package/lib/cjs/entry/dependenciesAny/dependenciesForEach.generated.js +3 -6
  142. package/lib/cjs/entry/dependenciesAny/dependenciesForEachTransform.generated.js +3 -6
  143. package/lib/cjs/entry/dependenciesAny/dependenciesFormat.generated.js +3 -6
  144. package/lib/cjs/entry/dependenciesAny/dependenciesFraction.generated.js +3 -7
  145. package/lib/cjs/entry/dependenciesAny/dependenciesFractionClass.generated.js +3 -5
  146. package/lib/cjs/entry/dependenciesAny/dependenciesFreqz.generated.js +27 -0
  147. package/lib/cjs/entry/dependenciesAny/dependenciesFunctionAssignmentNode.generated.js +3 -7
  148. package/lib/cjs/entry/dependenciesAny/dependenciesFunctionNode.generated.js +3 -7
  149. package/lib/cjs/entry/dependenciesAny/dependenciesGamma.generated.js +3 -10
  150. package/lib/cjs/entry/dependenciesAny/dependenciesGasConstant.generated.js +3 -7
  151. package/lib/cjs/entry/dependenciesAny/dependenciesGcd.generated.js +9 -10
  152. package/lib/cjs/entry/dependenciesAny/dependenciesGetMatrixDataType.generated.js +3 -6
  153. package/lib/cjs/entry/dependenciesAny/dependenciesGravitationConstant.generated.js +3 -7
  154. package/lib/cjs/entry/dependenciesAny/dependenciesGravity.generated.js +3 -7
  155. package/lib/cjs/entry/dependenciesAny/dependenciesHartreeEnergy.generated.js +3 -7
  156. package/lib/cjs/entry/dependenciesAny/dependenciesHasNumericValue.generated.js +3 -7
  157. package/lib/cjs/entry/dependenciesAny/dependenciesHelp.generated.js +3 -7
  158. package/lib/cjs/entry/dependenciesAny/dependenciesHelpClass.generated.js +3 -6
  159. package/lib/cjs/entry/dependenciesAny/dependenciesHex.generated.js +5 -6
  160. package/lib/cjs/entry/dependenciesAny/dependenciesHypot.generated.js +3 -13
  161. package/lib/cjs/entry/dependenciesAny/dependenciesI.generated.js +3 -6
  162. package/lib/cjs/entry/dependenciesAny/dependenciesIdentity.generated.js +3 -10
  163. package/lib/cjs/entry/dependenciesAny/dependenciesIfft.generated.js +23 -0
  164. package/lib/cjs/entry/dependenciesAny/dependenciesIm.generated.js +3 -6
  165. package/lib/cjs/entry/dependenciesAny/dependenciesImmutableDenseMatrixClass.generated.js +3 -7
  166. package/lib/cjs/entry/dependenciesAny/dependenciesIndex.generated.js +3 -7
  167. package/lib/cjs/entry/dependenciesAny/dependenciesIndexClass.generated.js +5 -6
  168. package/lib/cjs/entry/dependenciesAny/dependenciesIndexNode.generated.js +3 -10
  169. package/lib/cjs/entry/dependenciesAny/dependenciesIndexTransform.generated.js +5 -6
  170. package/lib/cjs/entry/dependenciesAny/dependenciesInfinity.generated.js +3 -6
  171. package/lib/cjs/entry/dependenciesAny/dependenciesIntersect.generated.js +9 -16
  172. package/lib/cjs/entry/dependenciesAny/dependenciesInv.generated.js +3 -14
  173. package/lib/cjs/entry/dependenciesAny/dependenciesInverseConductanceQuantum.generated.js +3 -7
  174. package/lib/cjs/entry/dependenciesAny/dependenciesInvmod.generated.js +31 -0
  175. package/lib/cjs/entry/dependenciesAny/dependenciesIsInteger.generated.js +3 -6
  176. package/lib/cjs/entry/dependenciesAny/dependenciesIsNaN.generated.js +3 -6
  177. package/lib/cjs/entry/dependenciesAny/dependenciesIsNegative.generated.js +3 -6
  178. package/lib/cjs/entry/dependenciesAny/dependenciesIsNumeric.generated.js +3 -6
  179. package/lib/cjs/entry/dependenciesAny/dependenciesIsPositive.generated.js +3 -6
  180. package/lib/cjs/entry/dependenciesAny/dependenciesIsPrime.generated.js +3 -6
  181. package/lib/cjs/entry/dependenciesAny/dependenciesIsZero.generated.js +3 -6
  182. package/lib/cjs/entry/dependenciesAny/dependenciesKldivergence.generated.js +5 -13
  183. package/lib/cjs/entry/dependenciesAny/dependenciesKlitzing.generated.js +3 -7
  184. package/lib/cjs/entry/dependenciesAny/dependenciesKron.generated.js +3 -8
  185. package/lib/cjs/entry/dependenciesAny/dependenciesLN10.generated.js +3 -6
  186. package/lib/cjs/entry/dependenciesAny/dependenciesLN2.generated.js +3 -6
  187. package/lib/cjs/entry/dependenciesAny/dependenciesLOG10E.generated.js +3 -6
  188. package/lib/cjs/entry/dependenciesAny/dependenciesLOG2E.generated.js +3 -6
  189. package/lib/cjs/entry/dependenciesAny/dependenciesLarger.generated.js +5 -8
  190. package/lib/cjs/entry/dependenciesAny/dependenciesLargerEq.generated.js +5 -8
  191. package/lib/cjs/entry/dependenciesAny/dependenciesLcm.generated.js +5 -8
  192. package/lib/cjs/entry/dependenciesAny/dependenciesLeafCount.generated.js +19 -0
  193. package/lib/cjs/entry/dependenciesAny/dependenciesLeftShift.generated.js +5 -10
  194. package/lib/cjs/entry/dependenciesAny/dependenciesLgamma.generated.js +19 -0
  195. package/lib/cjs/entry/dependenciesAny/dependenciesLog.generated.js +3 -8
  196. package/lib/cjs/entry/dependenciesAny/dependenciesLog10.generated.js +3 -7
  197. package/lib/cjs/entry/dependenciesAny/dependenciesLog1p.generated.js +3 -9
  198. package/lib/cjs/entry/dependenciesAny/dependenciesLog2.generated.js +3 -7
  199. package/lib/cjs/entry/dependenciesAny/dependenciesLoschmidt.generated.js +3 -7
  200. package/lib/cjs/entry/dependenciesAny/dependenciesLsolve.generated.js +5 -14
  201. package/lib/cjs/entry/dependenciesAny/dependenciesLsolveAll.generated.js +5 -14
  202. package/lib/cjs/entry/dependenciesAny/dependenciesLup.generated.js +5 -20
  203. package/lib/cjs/entry/dependenciesAny/dependenciesLusolve.generated.js +3 -12
  204. package/lib/cjs/entry/dependenciesAny/dependenciesLyap.generated.js +25 -0
  205. package/lib/cjs/entry/dependenciesAny/dependenciesMad.generated.js +3 -10
  206. package/lib/cjs/entry/dependenciesAny/dependenciesMagneticConstant.generated.js +3 -7
  207. package/lib/cjs/entry/dependenciesAny/dependenciesMagneticFluxQuantum.generated.js +3 -7
  208. package/lib/cjs/entry/dependenciesAny/dependenciesMap.generated.js +3 -6
  209. package/lib/cjs/entry/dependenciesAny/dependenciesMapTransform.generated.js +3 -6
  210. package/lib/cjs/entry/dependenciesAny/dependenciesMatrix.generated.js +3 -9
  211. package/lib/cjs/entry/dependenciesAny/dependenciesMatrixClass.generated.js +3 -5
  212. package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js +23 -0
  213. package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js +21 -0
  214. package/lib/cjs/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js +23 -0
  215. package/lib/cjs/entry/dependenciesAny/dependenciesMax.generated.js +3 -8
  216. package/lib/cjs/entry/dependenciesAny/dependenciesMaxTransform.generated.js +3 -8
  217. package/lib/cjs/entry/dependenciesAny/dependenciesMean.generated.js +3 -8
  218. package/lib/cjs/entry/dependenciesAny/dependenciesMeanTransform.generated.js +3 -8
  219. package/lib/cjs/entry/dependenciesAny/dependenciesMedian.generated.js +3 -10
  220. package/lib/cjs/entry/dependenciesAny/dependenciesMin.generated.js +3 -8
  221. package/lib/cjs/entry/dependenciesAny/dependenciesMinTransform.generated.js +3 -8
  222. package/lib/cjs/entry/dependenciesAny/dependenciesMod.generated.js +9 -9
  223. package/lib/cjs/entry/dependenciesAny/dependenciesMode.generated.js +3 -8
  224. package/lib/cjs/entry/dependenciesAny/dependenciesMolarMass.generated.js +3 -7
  225. package/lib/cjs/entry/dependenciesAny/dependenciesMolarMassC12.generated.js +3 -7
  226. package/lib/cjs/entry/dependenciesAny/dependenciesMolarPlanckConstant.generated.js +3 -7
  227. package/lib/cjs/entry/dependenciesAny/dependenciesMolarVolume.generated.js +3 -7
  228. package/lib/cjs/entry/dependenciesAny/dependenciesMultinomial.generated.js +3 -12
  229. package/lib/cjs/entry/dependenciesAny/dependenciesMultiply.generated.js +3 -11
  230. package/lib/cjs/entry/dependenciesAny/dependenciesMultiplyScalar.generated.js +3 -6
  231. package/lib/cjs/entry/dependenciesAny/dependenciesNaN.generated.js +3 -6
  232. package/lib/cjs/entry/dependenciesAny/dependenciesNeutronMass.generated.js +3 -7
  233. package/lib/cjs/entry/dependenciesAny/dependenciesNode.generated.js +3 -5
  234. package/lib/cjs/entry/dependenciesAny/dependenciesNorm.generated.js +3 -18
  235. package/lib/cjs/entry/dependenciesAny/dependenciesNot.generated.js +3 -6
  236. package/lib/cjs/entry/dependenciesAny/dependenciesNthRoot.generated.js +5 -9
  237. package/lib/cjs/entry/dependenciesAny/dependenciesNthRoots.generated.js +3 -8
  238. package/lib/cjs/entry/dependenciesAny/dependenciesNuclearMagneton.generated.js +3 -7
  239. package/lib/cjs/entry/dependenciesAny/dependenciesNull.generated.js +3 -5
  240. package/lib/cjs/entry/dependenciesAny/dependenciesNumber.generated.js +3 -6
  241. package/lib/cjs/entry/dependenciesAny/dependenciesNumeric.generated.js +3 -8
  242. package/lib/cjs/entry/dependenciesAny/dependenciesObjectNode.generated.js +3 -6
  243. package/lib/cjs/entry/dependenciesAny/dependenciesOct.generated.js +5 -6
  244. package/lib/cjs/entry/dependenciesAny/dependenciesOnes.generated.js +3 -8
  245. package/lib/cjs/entry/dependenciesAny/dependenciesOperatorNode.generated.js +3 -6
  246. package/lib/cjs/entry/dependenciesAny/dependenciesOr.generated.js +5 -9
  247. package/lib/cjs/entry/dependenciesAny/dependenciesOrTransform.generated.js +25 -0
  248. package/lib/cjs/entry/dependenciesAny/dependenciesParenthesisNode.generated.js +3 -6
  249. package/lib/cjs/entry/dependenciesAny/dependenciesParse.generated.js +3 -22
  250. package/lib/cjs/entry/dependenciesAny/dependenciesParser.generated.js +3 -7
  251. package/lib/cjs/entry/dependenciesAny/dependenciesParserClass.generated.js +5 -8
  252. package/lib/cjs/entry/dependenciesAny/dependenciesPartitionSelect.generated.js +3 -9
  253. package/lib/cjs/entry/dependenciesAny/dependenciesPermutations.generated.js +3 -7
  254. package/lib/cjs/entry/dependenciesAny/dependenciesPhi.generated.js +3 -6
  255. package/lib/cjs/entry/dependenciesAny/dependenciesPi.generated.js +3 -6
  256. package/lib/cjs/entry/dependenciesAny/dependenciesPickRandom.generated.js +3 -6
  257. package/lib/cjs/entry/dependenciesAny/dependenciesPinv.generated.js +39 -0
  258. package/lib/cjs/entry/dependenciesAny/dependenciesPlanckCharge.generated.js +3 -7
  259. package/lib/cjs/entry/dependenciesAny/dependenciesPlanckConstant.generated.js +3 -7
  260. package/lib/cjs/entry/dependenciesAny/dependenciesPlanckLength.generated.js +3 -7
  261. package/lib/cjs/entry/dependenciesAny/dependenciesPlanckMass.generated.js +3 -7
  262. package/lib/cjs/entry/dependenciesAny/dependenciesPlanckTemperature.generated.js +3 -7
  263. package/lib/cjs/entry/dependenciesAny/dependenciesPlanckTime.generated.js +3 -7
  264. package/lib/cjs/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js +41 -0
  265. package/lib/cjs/entry/dependenciesAny/dependenciesPow.generated.js +5 -12
  266. package/lib/cjs/entry/dependenciesAny/dependenciesPrint.generated.js +3 -6
  267. package/lib/cjs/entry/dependenciesAny/dependenciesPrintTransform.generated.js +23 -0
  268. package/lib/cjs/entry/dependenciesAny/dependenciesProd.generated.js +3 -8
  269. package/lib/cjs/entry/dependenciesAny/dependenciesProtonMass.generated.js +3 -7
  270. package/lib/cjs/entry/dependenciesAny/dependenciesQr.generated.js +5 -22
  271. package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +17 -10
  272. package/lib/cjs/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +39 -0
  273. package/lib/cjs/entry/dependenciesAny/dependenciesQuantumOfCirculation.generated.js +3 -7
  274. package/lib/cjs/entry/dependenciesAny/dependenciesRandom.generated.js +3 -6
  275. package/lib/cjs/entry/dependenciesAny/dependenciesRandomInt.generated.js +3 -6
  276. package/lib/cjs/entry/dependenciesAny/dependenciesRange.generated.js +7 -12
  277. package/lib/cjs/entry/dependenciesAny/dependenciesRangeClass.generated.js +3 -5
  278. package/lib/cjs/entry/dependenciesAny/dependenciesRangeNode.generated.js +3 -6
  279. package/lib/cjs/entry/dependenciesAny/dependenciesRangeTransform.generated.js +7 -12
  280. package/lib/cjs/entry/dependenciesAny/dependenciesRationalize.generated.js +17 -22
  281. package/lib/cjs/entry/dependenciesAny/dependenciesRe.generated.js +3 -6
  282. package/lib/cjs/entry/dependenciesAny/dependenciesReducedPlanckConstant.generated.js +3 -7
  283. package/lib/cjs/entry/dependenciesAny/dependenciesRelationalNode.generated.js +3 -6
  284. package/lib/cjs/entry/dependenciesAny/dependenciesReplacer.generated.js +3 -5
  285. package/lib/cjs/entry/dependenciesAny/dependenciesReshape.generated.js +3 -8
  286. package/lib/cjs/entry/dependenciesAny/dependenciesResize.generated.js +3 -6
  287. package/lib/cjs/entry/dependenciesAny/dependenciesResolve.generated.js +27 -0
  288. package/lib/cjs/entry/dependenciesAny/dependenciesResultSet.generated.js +3 -5
  289. package/lib/cjs/entry/dependenciesAny/dependenciesReviver.generated.js +3 -5
  290. package/lib/cjs/entry/dependenciesAny/dependenciesRightArithShift.generated.js +5 -10
  291. package/lib/cjs/entry/dependenciesAny/dependenciesRightLogShift.generated.js +5 -10
  292. package/lib/cjs/entry/dependenciesAny/dependenciesRotate.generated.js +3 -8
  293. package/lib/cjs/entry/dependenciesAny/dependenciesRotationMatrix.generated.js +3 -16
  294. package/lib/cjs/entry/dependenciesAny/dependenciesRound.generated.js +3 -11
  295. package/lib/cjs/entry/dependenciesAny/dependenciesRow.generated.js +3 -9
  296. package/lib/cjs/entry/dependenciesAny/dependenciesRowTransform.generated.js +3 -9
  297. package/lib/cjs/entry/dependenciesAny/dependenciesRydberg.generated.js +3 -7
  298. package/lib/cjs/entry/dependenciesAny/dependenciesSQRT1_2.generated.js +4 -6
  299. package/lib/cjs/entry/dependenciesAny/dependenciesSQRT2.generated.js +3 -6
  300. package/lib/cjs/entry/dependenciesAny/dependenciesSackurTetrode.generated.js +3 -6
  301. package/lib/cjs/entry/dependenciesAny/dependenciesSchur.generated.js +29 -0
  302. package/lib/cjs/entry/dependenciesAny/dependenciesSec.generated.js +3 -7
  303. package/lib/cjs/entry/dependenciesAny/dependenciesSech.generated.js +3 -7
  304. package/lib/cjs/entry/dependenciesAny/dependenciesSecondRadiation.generated.js +3 -7
  305. package/lib/cjs/entry/dependenciesAny/dependenciesSetCartesian.generated.js +3 -11
  306. package/lib/cjs/entry/dependenciesAny/dependenciesSetDifference.generated.js +3 -11
  307. package/lib/cjs/entry/dependenciesAny/dependenciesSetDistinct.generated.js +3 -11
  308. package/lib/cjs/entry/dependenciesAny/dependenciesSetIntersect.generated.js +3 -11
  309. package/lib/cjs/entry/dependenciesAny/dependenciesSetIsSubset.generated.js +3 -10
  310. package/lib/cjs/entry/dependenciesAny/dependenciesSetMultiplicity.generated.js +3 -10
  311. package/lib/cjs/entry/dependenciesAny/dependenciesSetPowerset.generated.js +3 -10
  312. package/lib/cjs/entry/dependenciesAny/dependenciesSetSize.generated.js +3 -7
  313. package/lib/cjs/entry/dependenciesAny/dependenciesSetSymDifference.generated.js +3 -11
  314. package/lib/cjs/entry/dependenciesAny/dependenciesSetUnion.generated.js +3 -12
  315. package/lib/cjs/entry/dependenciesAny/dependenciesSign.generated.js +3 -9
  316. package/lib/cjs/entry/dependenciesAny/dependenciesSimplify.generated.js +19 -21
  317. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +39 -0
  318. package/lib/cjs/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +51 -0
  319. package/lib/cjs/entry/dependenciesAny/dependenciesSin.generated.js +3 -6
  320. package/lib/cjs/entry/dependenciesAny/dependenciesSinh.generated.js +3 -6
  321. package/lib/cjs/entry/dependenciesAny/dependenciesSize.generated.js +3 -7
  322. package/lib/cjs/entry/dependenciesAny/dependenciesSlu.generated.js +3 -15
  323. package/lib/cjs/entry/dependenciesAny/dependenciesSmaller.generated.js +5 -8
  324. package/lib/cjs/entry/dependenciesAny/dependenciesSmallerEq.generated.js +5 -8
  325. package/lib/cjs/entry/dependenciesAny/dependenciesSolveODE.generated.js +45 -0
  326. package/lib/cjs/entry/dependenciesAny/dependenciesSort.generated.js +3 -9
  327. package/lib/cjs/entry/dependenciesAny/dependenciesSpaClass.generated.js +3 -8
  328. package/lib/cjs/entry/dependenciesAny/dependenciesSparse.generated.js +3 -7
  329. package/lib/cjs/entry/dependenciesAny/dependenciesSparseMatrixClass.generated.js +3 -8
  330. package/lib/cjs/entry/dependenciesAny/dependenciesSpeedOfLight.generated.js +3 -7
  331. package/lib/cjs/entry/dependenciesAny/dependenciesSplitUnit.generated.js +3 -6
  332. package/lib/cjs/entry/dependenciesAny/dependenciesSqrt.generated.js +3 -7
  333. package/lib/cjs/entry/dependenciesAny/dependenciesSqrtm.generated.js +5 -15
  334. package/lib/cjs/entry/dependenciesAny/dependenciesSquare.generated.js +3 -6
  335. package/lib/cjs/entry/dependenciesAny/dependenciesSqueeze.generated.js +3 -7
  336. package/lib/cjs/entry/dependenciesAny/dependenciesStd.generated.js +5 -8
  337. package/lib/cjs/entry/dependenciesAny/dependenciesStdTransform.generated.js +5 -8
  338. package/lib/cjs/entry/dependenciesAny/dependenciesStefanBoltzmann.generated.js +3 -7
  339. package/lib/cjs/entry/dependenciesAny/dependenciesStirlingS2.generated.js +9 -18
  340. package/lib/cjs/entry/dependenciesAny/dependenciesString.generated.js +3 -6
  341. package/lib/cjs/entry/dependenciesAny/dependenciesSubset.generated.js +7 -7
  342. package/lib/cjs/entry/dependenciesAny/dependenciesSubsetTransform.generated.js +7 -7
  343. package/lib/cjs/entry/dependenciesAny/dependenciesSubtract.generated.js +7 -13
  344. package/lib/cjs/entry/dependenciesAny/dependenciesSubtractScalar.generated.js +17 -0
  345. package/lib/cjs/entry/dependenciesAny/dependenciesSum.generated.js +3 -8
  346. package/lib/cjs/entry/dependenciesAny/dependenciesSumTransform.generated.js +3 -8
  347. package/lib/cjs/entry/dependenciesAny/dependenciesSylvester.generated.js +45 -0
  348. package/lib/cjs/entry/dependenciesAny/dependenciesSymbolNode.generated.js +3 -7
  349. package/lib/cjs/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +23 -0
  350. package/lib/cjs/entry/dependenciesAny/dependenciesTan.generated.js +3 -6
  351. package/lib/cjs/entry/dependenciesAny/dependenciesTanh.generated.js +3 -6
  352. package/lib/cjs/entry/dependenciesAny/dependenciesTau.generated.js +3 -6
  353. package/lib/cjs/entry/dependenciesAny/dependenciesThomsonCrossSection.generated.js +3 -7
  354. package/lib/cjs/entry/dependenciesAny/dependenciesTo.generated.js +5 -7
  355. package/lib/cjs/entry/dependenciesAny/dependenciesTrace.generated.js +3 -8
  356. package/lib/cjs/entry/dependenciesAny/dependenciesTranspose.generated.js +3 -7
  357. package/lib/cjs/entry/dependenciesAny/dependenciesTrue.generated.js +3 -5
  358. package/lib/cjs/entry/dependenciesAny/dependenciesTypeOf.generated.js +3 -6
  359. package/lib/cjs/entry/dependenciesAny/dependenciesTyped.generated.js +3 -9
  360. package/lib/cjs/entry/dependenciesAny/dependenciesUnaryMinus.generated.js +3 -6
  361. package/lib/cjs/entry/dependenciesAny/dependenciesUnaryPlus.generated.js +3 -7
  362. package/lib/cjs/entry/dependenciesAny/dependenciesUnequal.generated.js +5 -9
  363. package/lib/cjs/entry/dependenciesAny/dependenciesUnitClass.generated.js +5 -22
  364. package/lib/cjs/entry/dependenciesAny/dependenciesUnitFunction.generated.js +3 -7
  365. package/lib/cjs/entry/dependenciesAny/dependenciesUppercaseE.generated.js +3 -6
  366. package/lib/cjs/entry/dependenciesAny/dependenciesUppercasePi.generated.js +3 -6
  367. package/lib/cjs/entry/dependenciesAny/dependenciesUsolve.generated.js +5 -14
  368. package/lib/cjs/entry/dependenciesAny/dependenciesUsolveAll.generated.js +5 -14
  369. package/lib/cjs/entry/dependenciesAny/dependenciesVacuumImpedance.generated.js +3 -7
  370. package/lib/cjs/entry/dependenciesAny/dependenciesVariance.generated.js +3 -12
  371. package/lib/cjs/entry/dependenciesAny/dependenciesVarianceTransform.generated.js +3 -12
  372. package/lib/cjs/entry/dependenciesAny/dependenciesVersion.generated.js +3 -5
  373. package/lib/cjs/entry/dependenciesAny/dependenciesWeakMixingAngle.generated.js +3 -6
  374. package/lib/cjs/entry/dependenciesAny/dependenciesWienDisplacement.generated.js +3 -7
  375. package/lib/cjs/entry/dependenciesAny/dependenciesXgcd.generated.js +3 -8
  376. package/lib/cjs/entry/dependenciesAny/dependenciesXor.generated.js +5 -8
  377. package/lib/cjs/entry/dependenciesAny/dependenciesZeros.generated.js +3 -8
  378. package/lib/cjs/entry/dependenciesAny/dependenciesZeta.generated.js +45 -0
  379. package/lib/cjs/entry/dependenciesAny/dependenciesZpk2tf.generated.js +25 -0
  380. package/lib/cjs/entry/dependenciesAny.generated.js +1150 -1256
  381. package/lib/cjs/entry/dependenciesNumber/dependenciesAbs.generated.js +3 -6
  382. package/lib/cjs/entry/dependenciesNumber/dependenciesAccessorNode.generated.js +3 -7
  383. package/lib/cjs/entry/dependenciesNumber/dependenciesAcos.generated.js +3 -6
  384. package/lib/cjs/entry/dependenciesNumber/dependenciesAcosh.generated.js +3 -6
  385. package/lib/cjs/entry/dependenciesNumber/dependenciesAcot.generated.js +3 -6
  386. package/lib/cjs/entry/dependenciesNumber/dependenciesAcoth.generated.js +3 -6
  387. package/lib/cjs/entry/dependenciesNumber/dependenciesAcsc.generated.js +3 -6
  388. package/lib/cjs/entry/dependenciesNumber/dependenciesAcsch.generated.js +3 -6
  389. package/lib/cjs/entry/dependenciesNumber/dependenciesAdd.generated.js +3 -6
  390. package/lib/cjs/entry/dependenciesNumber/dependenciesAddScalar.generated.js +3 -6
  391. package/lib/cjs/entry/dependenciesNumber/dependenciesAnd.generated.js +3 -6
  392. package/lib/cjs/entry/dependenciesNumber/dependenciesApply.generated.js +3 -7
  393. package/lib/cjs/entry/dependenciesNumber/dependenciesApplyTransform.generated.js +3 -7
  394. package/lib/cjs/entry/dependenciesNumber/dependenciesArrayNode.generated.js +3 -6
  395. package/lib/cjs/entry/dependenciesNumber/dependenciesAsec.generated.js +3 -6
  396. package/lib/cjs/entry/dependenciesNumber/dependenciesAsech.generated.js +3 -6
  397. package/lib/cjs/entry/dependenciesNumber/dependenciesAsin.generated.js +3 -6
  398. package/lib/cjs/entry/dependenciesNumber/dependenciesAsinh.generated.js +3 -6
  399. package/lib/cjs/entry/dependenciesNumber/dependenciesAssignmentNode.generated.js +3 -8
  400. package/lib/cjs/entry/dependenciesNumber/dependenciesAtan.generated.js +3 -6
  401. package/lib/cjs/entry/dependenciesNumber/dependenciesAtan2.generated.js +3 -6
  402. package/lib/cjs/entry/dependenciesNumber/dependenciesAtanh.generated.js +3 -6
  403. package/lib/cjs/entry/dependenciesNumber/dependenciesBellNumbers.generated.js +3 -10
  404. package/lib/cjs/entry/dependenciesNumber/dependenciesBitAnd.generated.js +3 -6
  405. package/lib/cjs/entry/dependenciesNumber/dependenciesBitNot.generated.js +3 -6
  406. package/lib/cjs/entry/dependenciesNumber/dependenciesBitOr.generated.js +3 -6
  407. package/lib/cjs/entry/dependenciesNumber/dependenciesBitXor.generated.js +3 -6
  408. package/lib/cjs/entry/dependenciesNumber/dependenciesBlockNode.generated.js +3 -7
  409. package/lib/cjs/entry/dependenciesNumber/dependenciesBoolean.generated.js +3 -6
  410. package/lib/cjs/entry/dependenciesNumber/dependenciesCatalan.generated.js +3 -12
  411. package/lib/cjs/entry/dependenciesNumber/dependenciesCbrt.generated.js +3 -6
  412. package/lib/cjs/entry/dependenciesNumber/dependenciesCeil.generated.js +5 -6
  413. package/lib/cjs/entry/dependenciesNumber/dependenciesChain.generated.js +3 -7
  414. package/lib/cjs/entry/dependenciesNumber/dependenciesChainClass.generated.js +5 -5
  415. package/lib/cjs/entry/dependenciesNumber/dependenciesClone.generated.js +3 -6
  416. package/lib/cjs/entry/dependenciesNumber/dependenciesCombinations.generated.js +3 -6
  417. package/lib/cjs/entry/dependenciesNumber/dependenciesCombinationsWithRep.generated.js +3 -6
  418. package/lib/cjs/entry/dependenciesNumber/dependenciesCompare.generated.js +3 -6
  419. package/lib/cjs/entry/dependenciesNumber/dependenciesCompareNatural.generated.js +3 -7
  420. package/lib/cjs/entry/dependenciesNumber/dependenciesCompareText.generated.js +3 -6
  421. package/lib/cjs/entry/dependenciesNumber/dependenciesCompile.generated.js +3 -7
  422. package/lib/cjs/entry/dependenciesNumber/dependenciesComposition.generated.js +3 -12
  423. package/lib/cjs/entry/dependenciesNumber/dependenciesConditionalNode.generated.js +3 -6
  424. package/lib/cjs/entry/dependenciesNumber/dependenciesConstantNode.generated.js +3 -6
  425. package/lib/cjs/entry/dependenciesNumber/dependenciesCorr.generated.js +35 -0
  426. package/lib/cjs/entry/dependenciesNumber/dependenciesCos.generated.js +3 -6
  427. package/lib/cjs/entry/dependenciesNumber/dependenciesCosh.generated.js +3 -6
  428. package/lib/cjs/entry/dependenciesNumber/dependenciesCot.generated.js +3 -6
  429. package/lib/cjs/entry/dependenciesNumber/dependenciesCoth.generated.js +3 -6
  430. package/lib/cjs/entry/dependenciesNumber/dependenciesCsc.generated.js +3 -6
  431. package/lib/cjs/entry/dependenciesNumber/dependenciesCsch.generated.js +3 -6
  432. package/lib/cjs/entry/dependenciesNumber/dependenciesCube.generated.js +3 -6
  433. package/lib/cjs/entry/dependenciesNumber/dependenciesCumSum.generated.js +21 -0
  434. package/lib/cjs/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +21 -0
  435. package/lib/cjs/entry/dependenciesNumber/dependenciesDeepEqual.generated.js +3 -7
  436. package/lib/cjs/entry/dependenciesNumber/dependenciesDerivative.generated.js +3 -16
  437. package/lib/cjs/entry/dependenciesNumber/dependenciesDivide.generated.js +3 -6
  438. package/lib/cjs/entry/dependenciesNumber/dependenciesDivideScalar.generated.js +3 -6
  439. package/lib/cjs/entry/dependenciesNumber/dependenciesE.generated.js +3 -5
  440. package/lib/cjs/entry/dependenciesNumber/dependenciesEqual.generated.js +3 -7
  441. package/lib/cjs/entry/dependenciesNumber/dependenciesEqualScalar.generated.js +3 -6
  442. package/lib/cjs/entry/dependenciesNumber/dependenciesEqualText.generated.js +3 -8
  443. package/lib/cjs/entry/dependenciesNumber/dependenciesErf.generated.js +3 -6
  444. package/lib/cjs/entry/dependenciesNumber/dependenciesEvaluate.generated.js +3 -7
  445. package/lib/cjs/entry/dependenciesNumber/dependenciesExp.generated.js +3 -6
  446. package/lib/cjs/entry/dependenciesNumber/dependenciesExpm1.generated.js +3 -6
  447. package/lib/cjs/entry/dependenciesNumber/dependenciesFactorial.generated.js +3 -7
  448. package/lib/cjs/entry/dependenciesNumber/dependenciesFalse.generated.js +3 -5
  449. package/lib/cjs/entry/dependenciesNumber/dependenciesFilter.generated.js +3 -6
  450. package/lib/cjs/entry/dependenciesNumber/dependenciesFilterTransform.generated.js +3 -6
  451. package/lib/cjs/entry/dependenciesNumber/dependenciesFix.generated.js +7 -6
  452. package/lib/cjs/entry/dependenciesNumber/dependenciesFloor.generated.js +5 -6
  453. package/lib/cjs/entry/dependenciesNumber/dependenciesForEach.generated.js +3 -6
  454. package/lib/cjs/entry/dependenciesNumber/dependenciesForEachTransform.generated.js +3 -6
  455. package/lib/cjs/entry/dependenciesNumber/dependenciesFormat.generated.js +3 -6
  456. package/lib/cjs/entry/dependenciesNumber/dependenciesFunctionAssignmentNode.generated.js +3 -7
  457. package/lib/cjs/entry/dependenciesNumber/dependenciesFunctionNode.generated.js +3 -7
  458. package/lib/cjs/entry/dependenciesNumber/dependenciesGamma.generated.js +3 -6
  459. package/lib/cjs/entry/dependenciesNumber/dependenciesGcd.generated.js +3 -6
  460. package/lib/cjs/entry/dependenciesNumber/dependenciesHasNumericValue.generated.js +3 -7
  461. package/lib/cjs/entry/dependenciesNumber/dependenciesHelp.generated.js +3 -7
  462. package/lib/cjs/entry/dependenciesNumber/dependenciesHelpClass.generated.js +3 -6
  463. package/lib/cjs/entry/dependenciesNumber/dependenciesHypot.generated.js +3 -13
  464. package/lib/cjs/entry/dependenciesNumber/dependenciesIndex.generated.js +3 -5
  465. package/lib/cjs/entry/dependenciesNumber/dependenciesIndexNode.generated.js +3 -10
  466. package/lib/cjs/entry/dependenciesNumber/dependenciesInfinity.generated.js +3 -5
  467. package/lib/cjs/entry/dependenciesNumber/dependenciesIsInteger.generated.js +3 -6
  468. package/lib/cjs/entry/dependenciesNumber/dependenciesIsNaN.generated.js +3 -6
  469. package/lib/cjs/entry/dependenciesNumber/dependenciesIsNegative.generated.js +3 -6
  470. package/lib/cjs/entry/dependenciesNumber/dependenciesIsNumeric.generated.js +3 -6
  471. package/lib/cjs/entry/dependenciesNumber/dependenciesIsPositive.generated.js +3 -6
  472. package/lib/cjs/entry/dependenciesNumber/dependenciesIsPrime.generated.js +3 -6
  473. package/lib/cjs/entry/dependenciesNumber/dependenciesIsZero.generated.js +3 -6
  474. package/lib/cjs/entry/dependenciesNumber/dependenciesLN10.generated.js +3 -5
  475. package/lib/cjs/entry/dependenciesNumber/dependenciesLN2.generated.js +3 -5
  476. package/lib/cjs/entry/dependenciesNumber/dependenciesLOG10E.generated.js +3 -5
  477. package/lib/cjs/entry/dependenciesNumber/dependenciesLOG2E.generated.js +3 -5
  478. package/lib/cjs/entry/dependenciesNumber/dependenciesLarger.generated.js +3 -6
  479. package/lib/cjs/entry/dependenciesNumber/dependenciesLargerEq.generated.js +3 -6
  480. package/lib/cjs/entry/dependenciesNumber/dependenciesLcm.generated.js +3 -6
  481. package/lib/cjs/entry/dependenciesNumber/dependenciesLeftShift.generated.js +3 -6
  482. package/lib/cjs/entry/dependenciesNumber/dependenciesLgamma.generated.js +17 -0
  483. package/lib/cjs/entry/dependenciesNumber/dependenciesLog.generated.js +3 -6
  484. package/lib/cjs/entry/dependenciesNumber/dependenciesLog10.generated.js +3 -6
  485. package/lib/cjs/entry/dependenciesNumber/dependenciesLog1p.generated.js +3 -6
  486. package/lib/cjs/entry/dependenciesNumber/dependenciesLog2.generated.js +3 -6
  487. package/lib/cjs/entry/dependenciesNumber/dependenciesMad.generated.js +3 -10
  488. package/lib/cjs/entry/dependenciesNumber/dependenciesMap.generated.js +3 -6
  489. package/lib/cjs/entry/dependenciesNumber/dependenciesMapTransform.generated.js +3 -6
  490. package/lib/cjs/entry/dependenciesNumber/dependenciesMatrix.generated.js +3 -5
  491. package/lib/cjs/entry/dependenciesNumber/dependenciesMax.generated.js +3 -8
  492. package/lib/cjs/entry/dependenciesNumber/dependenciesMaxTransform.generated.js +3 -8
  493. package/lib/cjs/entry/dependenciesNumber/dependenciesMean.generated.js +3 -8
  494. package/lib/cjs/entry/dependenciesNumber/dependenciesMeanTransform.generated.js +3 -8
  495. package/lib/cjs/entry/dependenciesNumber/dependenciesMedian.generated.js +3 -10
  496. package/lib/cjs/entry/dependenciesNumber/dependenciesMin.generated.js +3 -8
  497. package/lib/cjs/entry/dependenciesNumber/dependenciesMinTransform.generated.js +3 -8
  498. package/lib/cjs/entry/dependenciesNumber/dependenciesMod.generated.js +3 -6
  499. package/lib/cjs/entry/dependenciesNumber/dependenciesMode.generated.js +3 -8
  500. package/lib/cjs/entry/dependenciesNumber/dependenciesMultinomial.generated.js +3 -12
  501. package/lib/cjs/entry/dependenciesNumber/dependenciesMultiply.generated.js +3 -6
  502. package/lib/cjs/entry/dependenciesNumber/dependenciesMultiplyScalar.generated.js +3 -6
  503. package/lib/cjs/entry/dependenciesNumber/dependenciesNaN.generated.js +3 -5
  504. package/lib/cjs/entry/dependenciesNumber/dependenciesNode.generated.js +3 -5
  505. package/lib/cjs/entry/dependenciesNumber/dependenciesNorm.generated.js +3 -6
  506. package/lib/cjs/entry/dependenciesNumber/dependenciesNot.generated.js +3 -6
  507. package/lib/cjs/entry/dependenciesNumber/dependenciesNthRoot.generated.js +3 -6
  508. package/lib/cjs/entry/dependenciesNumber/dependenciesNull.generated.js +3 -5
  509. package/lib/cjs/entry/dependenciesNumber/dependenciesNumber.generated.js +3 -6
  510. package/lib/cjs/entry/dependenciesNumber/dependenciesNumeric.generated.js +3 -6
  511. package/lib/cjs/entry/dependenciesNumber/dependenciesObjectNode.generated.js +3 -6
  512. package/lib/cjs/entry/dependenciesNumber/dependenciesOperatorNode.generated.js +3 -6
  513. package/lib/cjs/entry/dependenciesNumber/dependenciesOr.generated.js +3 -6
  514. package/lib/cjs/entry/dependenciesNumber/dependenciesParenthesisNode.generated.js +3 -6
  515. package/lib/cjs/entry/dependenciesNumber/dependenciesParse.generated.js +3 -22
  516. package/lib/cjs/entry/dependenciesNumber/dependenciesParser.generated.js +3 -7
  517. package/lib/cjs/entry/dependenciesNumber/dependenciesParserClass.generated.js +5 -8
  518. package/lib/cjs/entry/dependenciesNumber/dependenciesPartitionSelect.generated.js +3 -9
  519. package/lib/cjs/entry/dependenciesNumber/dependenciesPermutations.generated.js +3 -7
  520. package/lib/cjs/entry/dependenciesNumber/dependenciesPhi.generated.js +3 -5
  521. package/lib/cjs/entry/dependenciesNumber/dependenciesPi.generated.js +3 -5
  522. package/lib/cjs/entry/dependenciesNumber/dependenciesPickRandom.generated.js +3 -6
  523. package/lib/cjs/entry/dependenciesNumber/dependenciesPow.generated.js +3 -6
  524. package/lib/cjs/entry/dependenciesNumber/dependenciesPrint.generated.js +3 -6
  525. package/lib/cjs/entry/dependenciesNumber/dependenciesProd.generated.js +3 -8
  526. package/lib/cjs/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +15 -10
  527. package/lib/cjs/entry/dependenciesNumber/dependenciesRandom.generated.js +3 -6
  528. package/lib/cjs/entry/dependenciesNumber/dependenciesRandomInt.generated.js +3 -6
  529. package/lib/cjs/entry/dependenciesNumber/dependenciesRange.generated.js +7 -11
  530. package/lib/cjs/entry/dependenciesNumber/dependenciesRangeClass.generated.js +3 -5
  531. package/lib/cjs/entry/dependenciesNumber/dependenciesRangeNode.generated.js +3 -6
  532. package/lib/cjs/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +7 -11
  533. package/lib/cjs/entry/dependenciesNumber/dependenciesRationalize.generated.js +17 -20
  534. package/lib/cjs/entry/dependenciesNumber/dependenciesRelationalNode.generated.js +3 -6
  535. package/lib/cjs/entry/dependenciesNumber/dependenciesReplacer.generated.js +3 -5
  536. package/lib/cjs/entry/dependenciesNumber/dependenciesResolve.generated.js +27 -0
  537. package/lib/cjs/entry/dependenciesNumber/dependenciesResultSet.generated.js +3 -5
  538. package/lib/cjs/entry/dependenciesNumber/dependenciesReviver.generated.js +3 -5
  539. package/lib/cjs/entry/dependenciesNumber/dependenciesRightArithShift.generated.js +3 -6
  540. package/lib/cjs/entry/dependenciesNumber/dependenciesRightLogShift.generated.js +3 -6
  541. package/lib/cjs/entry/dependenciesNumber/dependenciesRound.generated.js +3 -6
  542. package/lib/cjs/entry/dependenciesNumber/dependenciesSQRT1_2.generated.js +3 -5
  543. package/lib/cjs/entry/dependenciesNumber/dependenciesSQRT2.generated.js +3 -5
  544. package/lib/cjs/entry/dependenciesNumber/dependenciesSec.generated.js +3 -6
  545. package/lib/cjs/entry/dependenciesNumber/dependenciesSech.generated.js +3 -6
  546. package/lib/cjs/entry/dependenciesNumber/dependenciesSign.generated.js +3 -6
  547. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplify.generated.js +19 -19
  548. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +35 -0
  549. package/lib/cjs/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +51 -0
  550. package/lib/cjs/entry/dependenciesNumber/dependenciesSin.generated.js +3 -6
  551. package/lib/cjs/entry/dependenciesNumber/dependenciesSinh.generated.js +3 -6
  552. package/lib/cjs/entry/dependenciesNumber/dependenciesSize.generated.js +3 -7
  553. package/lib/cjs/entry/dependenciesNumber/dependenciesSmaller.generated.js +3 -6
  554. package/lib/cjs/entry/dependenciesNumber/dependenciesSmallerEq.generated.js +3 -6
  555. package/lib/cjs/entry/dependenciesNumber/dependenciesSqrt.generated.js +3 -6
  556. package/lib/cjs/entry/dependenciesNumber/dependenciesSquare.generated.js +3 -6
  557. package/lib/cjs/entry/dependenciesNumber/dependenciesStd.generated.js +5 -8
  558. package/lib/cjs/entry/dependenciesNumber/dependenciesStdTransform.generated.js +5 -8
  559. package/lib/cjs/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +7 -18
  560. package/lib/cjs/entry/dependenciesNumber/dependenciesString.generated.js +3 -6
  561. package/lib/cjs/entry/dependenciesNumber/dependenciesSubset.generated.js +3 -5
  562. package/lib/cjs/entry/dependenciesNumber/dependenciesSubsetTransform.generated.js +3 -5
  563. package/lib/cjs/entry/dependenciesNumber/dependenciesSubtract.generated.js +3 -6
  564. package/lib/cjs/entry/dependenciesNumber/dependenciesSubtractScalar.generated.js +17 -0
  565. package/lib/cjs/entry/dependenciesNumber/dependenciesSum.generated.js +3 -8
  566. package/lib/cjs/entry/dependenciesNumber/dependenciesSumTransform.generated.js +3 -8
  567. package/lib/cjs/entry/dependenciesNumber/dependenciesSymbolNode.generated.js +3 -6
  568. package/lib/cjs/entry/dependenciesNumber/dependenciesTan.generated.js +3 -6
  569. package/lib/cjs/entry/dependenciesNumber/dependenciesTanh.generated.js +3 -6
  570. package/lib/cjs/entry/dependenciesNumber/dependenciesTau.generated.js +3 -5
  571. package/lib/cjs/entry/dependenciesNumber/dependenciesTrue.generated.js +3 -5
  572. package/lib/cjs/entry/dependenciesNumber/dependenciesTypeOf.generated.js +3 -6
  573. package/lib/cjs/entry/dependenciesNumber/dependenciesTyped.generated.js +3 -5
  574. package/lib/cjs/entry/dependenciesNumber/dependenciesUnaryMinus.generated.js +3 -6
  575. package/lib/cjs/entry/dependenciesNumber/dependenciesUnaryPlus.generated.js +3 -6
  576. package/lib/cjs/entry/dependenciesNumber/dependenciesUnequal.generated.js +3 -7
  577. package/lib/cjs/entry/dependenciesNumber/dependenciesUppercaseE.generated.js +3 -6
  578. package/lib/cjs/entry/dependenciesNumber/dependenciesUppercasePi.generated.js +3 -6
  579. package/lib/cjs/entry/dependenciesNumber/dependenciesVariance.generated.js +3 -12
  580. package/lib/cjs/entry/dependenciesNumber/dependenciesVarianceTransform.generated.js +3 -12
  581. package/lib/cjs/entry/dependenciesNumber/dependenciesVersion.generated.js +3 -5
  582. package/lib/cjs/entry/dependenciesNumber/dependenciesXgcd.generated.js +3 -6
  583. package/lib/cjs/entry/dependenciesNumber/dependenciesXor.generated.js +3 -6
  584. package/lib/cjs/entry/dependenciesNumber/dependenciesZeta.generated.js +41 -0
  585. package/lib/cjs/entry/dependenciesNumber.generated.js +627 -760
  586. package/lib/cjs/entry/impureFunctionsAny.generated.js +446 -323
  587. package/lib/cjs/entry/impureFunctionsNumber.generated.js +299 -260
  588. package/lib/cjs/entry/mainAny.js +8 -24
  589. package/lib/cjs/entry/mainNumber.js +8 -24
  590. package/lib/cjs/entry/pureFunctionsAny.generated.js +1038 -1058
  591. package/lib/cjs/entry/pureFunctionsNumber.generated.js +296 -407
  592. package/lib/cjs/entry/typeChecks.js +18 -13
  593. package/lib/cjs/error/ArgumentsError.js +0 -3
  594. package/lib/cjs/error/DimensionError.js +0 -3
  595. package/lib/cjs/error/IndexError.js +0 -6
  596. package/lib/cjs/expression/Help.js +10 -30
  597. package/lib/cjs/expression/Parser.js +37 -43
  598. package/lib/cjs/expression/embeddedDocs/constants/Infinity.js +2 -3
  599. package/lib/cjs/expression/embeddedDocs/constants/LN10.js +2 -3
  600. package/lib/cjs/expression/embeddedDocs/constants/LN2.js +2 -3
  601. package/lib/cjs/expression/embeddedDocs/constants/LOG10E.js +2 -3
  602. package/lib/cjs/expression/embeddedDocs/constants/LOG2E.js +2 -3
  603. package/lib/cjs/expression/embeddedDocs/constants/NaN.js +2 -3
  604. package/lib/cjs/expression/embeddedDocs/constants/SQRT1_2.js +2 -3
  605. package/lib/cjs/expression/embeddedDocs/constants/SQRT2.js +2 -3
  606. package/lib/cjs/expression/embeddedDocs/constants/e.js +2 -3
  607. package/lib/cjs/expression/embeddedDocs/constants/false.js +2 -3
  608. package/lib/cjs/expression/embeddedDocs/constants/i.js +2 -3
  609. package/lib/cjs/expression/embeddedDocs/constants/null.js +2 -3
  610. package/lib/cjs/expression/embeddedDocs/constants/phi.js +2 -3
  611. package/lib/cjs/expression/embeddedDocs/constants/pi.js +2 -3
  612. package/lib/cjs/expression/embeddedDocs/constants/tau.js +2 -3
  613. package/lib/cjs/expression/embeddedDocs/constants/true.js +2 -3
  614. package/lib/cjs/expression/embeddedDocs/constants/version.js +2 -3
  615. package/lib/cjs/expression/embeddedDocs/construction/bignumber.js +2 -3
  616. package/lib/cjs/expression/embeddedDocs/construction/boolean.js +2 -3
  617. package/lib/cjs/expression/embeddedDocs/construction/complex.js +2 -3
  618. package/lib/cjs/expression/embeddedDocs/construction/createUnit.js +2 -3
  619. package/lib/cjs/expression/embeddedDocs/construction/fraction.js +5 -6
  620. package/lib/cjs/expression/embeddedDocs/construction/index.js +3 -4
  621. package/lib/cjs/expression/embeddedDocs/construction/matrix.js +2 -3
  622. package/lib/cjs/expression/embeddedDocs/construction/number.js +2 -3
  623. package/lib/cjs/expression/embeddedDocs/construction/sparse.js +2 -3
  624. package/lib/cjs/expression/embeddedDocs/construction/splitUnit.js +2 -3
  625. package/lib/cjs/expression/embeddedDocs/construction/string.js +2 -3
  626. package/lib/cjs/expression/embeddedDocs/construction/unit.js +2 -3
  627. package/lib/cjs/expression/embeddedDocs/core/config.js +2 -3
  628. package/lib/cjs/expression/embeddedDocs/core/import.js +2 -3
  629. package/lib/cjs/expression/embeddedDocs/core/typed.js +3 -4
  630. package/lib/cjs/expression/embeddedDocs/embeddedDocs.js +272 -440
  631. package/lib/cjs/expression/embeddedDocs/function/algebra/derivative.js +2 -3
  632. package/lib/cjs/expression/embeddedDocs/function/algebra/leafCount.js +14 -0
  633. package/lib/cjs/expression/embeddedDocs/function/algebra/lsolve.js +2 -3
  634. package/lib/cjs/expression/embeddedDocs/function/algebra/lsolveAll.js +2 -3
  635. package/lib/cjs/expression/embeddedDocs/function/algebra/lup.js +2 -3
  636. package/lib/cjs/expression/embeddedDocs/function/algebra/lusolve.js +2 -3
  637. package/lib/cjs/expression/embeddedDocs/function/algebra/lyap.js +14 -0
  638. package/lib/cjs/expression/embeddedDocs/function/algebra/polynomialRoot.js +14 -0
  639. package/lib/cjs/expression/embeddedDocs/function/algebra/qr.js +2 -3
  640. package/lib/cjs/expression/embeddedDocs/function/algebra/rationalize.js +2 -3
  641. package/lib/cjs/expression/embeddedDocs/function/algebra/resolve.js +15 -0
  642. package/lib/cjs/expression/embeddedDocs/function/algebra/schur.js +14 -0
  643. package/lib/cjs/expression/embeddedDocs/function/algebra/simplify.js +3 -4
  644. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyConstant.js +14 -0
  645. package/lib/cjs/expression/embeddedDocs/function/algebra/simplifyCore.js +14 -0
  646. package/lib/cjs/expression/embeddedDocs/function/algebra/slu.js +2 -3
  647. package/lib/cjs/expression/embeddedDocs/function/algebra/sylvester.js +14 -0
  648. package/lib/cjs/expression/embeddedDocs/function/algebra/symbolicEqual.js +14 -0
  649. package/lib/cjs/expression/embeddedDocs/function/algebra/usolve.js +2 -3
  650. package/lib/cjs/expression/embeddedDocs/function/algebra/usolveAll.js +2 -3
  651. package/lib/cjs/expression/embeddedDocs/function/arithmetic/abs.js +2 -3
  652. package/lib/cjs/expression/embeddedDocs/function/arithmetic/add.js +2 -3
  653. package/lib/cjs/expression/embeddedDocs/function/arithmetic/cbrt.js +2 -3
  654. package/lib/cjs/expression/embeddedDocs/function/arithmetic/ceil.js +2 -3
  655. package/lib/cjs/expression/embeddedDocs/function/arithmetic/cube.js +2 -3
  656. package/lib/cjs/expression/embeddedDocs/function/arithmetic/divide.js +2 -3
  657. package/lib/cjs/expression/embeddedDocs/function/arithmetic/dotDivide.js +2 -3
  658. package/lib/cjs/expression/embeddedDocs/function/arithmetic/dotMultiply.js +2 -3
  659. package/lib/cjs/expression/embeddedDocs/function/arithmetic/dotPow.js +2 -3
  660. package/lib/cjs/expression/embeddedDocs/function/arithmetic/exp.js +2 -3
  661. package/lib/cjs/expression/embeddedDocs/function/arithmetic/expm.js +2 -3
  662. package/lib/cjs/expression/embeddedDocs/function/arithmetic/expm1.js +2 -3
  663. package/lib/cjs/expression/embeddedDocs/function/arithmetic/fix.js +2 -3
  664. package/lib/cjs/expression/embeddedDocs/function/arithmetic/floor.js +2 -3
  665. package/lib/cjs/expression/embeddedDocs/function/arithmetic/gcd.js +2 -3
  666. package/lib/cjs/expression/embeddedDocs/function/arithmetic/hypot.js +2 -3
  667. package/lib/cjs/expression/embeddedDocs/function/arithmetic/invmod.js +14 -0
  668. package/lib/cjs/expression/embeddedDocs/function/arithmetic/lcm.js +2 -3
  669. package/lib/cjs/expression/embeddedDocs/function/arithmetic/log.js +2 -3
  670. package/lib/cjs/expression/embeddedDocs/function/arithmetic/log10.js +2 -3
  671. package/lib/cjs/expression/embeddedDocs/function/arithmetic/log1p.js +2 -3
  672. package/lib/cjs/expression/embeddedDocs/function/arithmetic/log2.js +2 -3
  673. package/lib/cjs/expression/embeddedDocs/function/arithmetic/mod.js +2 -3
  674. package/lib/cjs/expression/embeddedDocs/function/arithmetic/multiply.js +2 -3
  675. package/lib/cjs/expression/embeddedDocs/function/arithmetic/norm.js +2 -3
  676. package/lib/cjs/expression/embeddedDocs/function/arithmetic/nthRoot.js +2 -3
  677. package/lib/cjs/expression/embeddedDocs/function/arithmetic/nthRoots.js +2 -3
  678. package/lib/cjs/expression/embeddedDocs/function/arithmetic/pow.js +3 -4
  679. package/lib/cjs/expression/embeddedDocs/function/arithmetic/round.js +4 -5
  680. package/lib/cjs/expression/embeddedDocs/function/arithmetic/sign.js +2 -3
  681. package/lib/cjs/expression/embeddedDocs/function/arithmetic/sqrt.js +2 -3
  682. package/lib/cjs/expression/embeddedDocs/function/arithmetic/sqrtm.js +3 -4
  683. package/lib/cjs/expression/embeddedDocs/function/arithmetic/square.js +2 -3
  684. package/lib/cjs/expression/embeddedDocs/function/arithmetic/subtract.js +2 -3
  685. package/lib/cjs/expression/embeddedDocs/function/arithmetic/unaryMinus.js +2 -3
  686. package/lib/cjs/expression/embeddedDocs/function/arithmetic/unaryPlus.js +2 -3
  687. package/lib/cjs/expression/embeddedDocs/function/arithmetic/xgcd.js +2 -3
  688. package/lib/cjs/expression/embeddedDocs/function/bitwise/bitAnd.js +2 -3
  689. package/lib/cjs/expression/embeddedDocs/function/bitwise/bitNot.js +2 -3
  690. package/lib/cjs/expression/embeddedDocs/function/bitwise/bitOr.js +2 -3
  691. package/lib/cjs/expression/embeddedDocs/function/bitwise/bitXor.js +2 -3
  692. package/lib/cjs/expression/embeddedDocs/function/bitwise/leftShift.js +2 -3
  693. package/lib/cjs/expression/embeddedDocs/function/bitwise/rightArithShift.js +2 -3
  694. package/lib/cjs/expression/embeddedDocs/function/bitwise/rightLogShift.js +2 -3
  695. package/lib/cjs/expression/embeddedDocs/function/combinatorics/bellNumbers.js +2 -3
  696. package/lib/cjs/expression/embeddedDocs/function/combinatorics/catalan.js +2 -3
  697. package/lib/cjs/expression/embeddedDocs/function/combinatorics/composition.js +2 -3
  698. package/lib/cjs/expression/embeddedDocs/function/combinatorics/stirlingS2.js +2 -3
  699. package/lib/cjs/expression/embeddedDocs/function/complex/arg.js +2 -3
  700. package/lib/cjs/expression/embeddedDocs/function/complex/conj.js +2 -3
  701. package/lib/cjs/expression/embeddedDocs/function/complex/im.js +2 -3
  702. package/lib/cjs/expression/embeddedDocs/function/complex/re.js +2 -3
  703. package/lib/cjs/expression/embeddedDocs/function/expression/evaluate.js +4 -5
  704. package/lib/cjs/expression/embeddedDocs/function/expression/help.js +2 -3
  705. package/lib/cjs/expression/embeddedDocs/function/geometry/distance.js +2 -3
  706. package/lib/cjs/expression/embeddedDocs/function/geometry/intersect.js +2 -3
  707. package/lib/cjs/expression/embeddedDocs/function/logical/and.js +2 -3
  708. package/lib/cjs/expression/embeddedDocs/function/logical/not.js +2 -3
  709. package/lib/cjs/expression/embeddedDocs/function/logical/or.js +2 -3
  710. package/lib/cjs/expression/embeddedDocs/function/logical/xor.js +2 -3
  711. package/lib/cjs/expression/embeddedDocs/function/matrix/column.js +3 -4
  712. package/lib/cjs/expression/embeddedDocs/function/matrix/concat.js +2 -3
  713. package/lib/cjs/expression/embeddedDocs/function/matrix/count.js +14 -0
  714. package/lib/cjs/expression/embeddedDocs/function/matrix/cross.js +2 -3
  715. package/lib/cjs/expression/embeddedDocs/function/matrix/ctranspose.js +2 -3
  716. package/lib/cjs/expression/embeddedDocs/function/matrix/det.js +2 -3
  717. package/lib/cjs/expression/embeddedDocs/function/matrix/diag.js +2 -3
  718. package/lib/cjs/expression/embeddedDocs/function/matrix/diff.js +3 -4
  719. package/lib/cjs/expression/embeddedDocs/function/matrix/dot.js +2 -3
  720. package/lib/cjs/expression/embeddedDocs/function/matrix/eigs.js +4 -5
  721. package/lib/cjs/expression/embeddedDocs/function/matrix/fft.js +14 -0
  722. package/lib/cjs/expression/embeddedDocs/function/matrix/filter.js +2 -3
  723. package/lib/cjs/expression/embeddedDocs/function/matrix/flatten.js +2 -3
  724. package/lib/cjs/expression/embeddedDocs/function/matrix/forEach.js +3 -4
  725. package/lib/cjs/expression/embeddedDocs/function/matrix/getMatrixDataType.js +2 -3
  726. package/lib/cjs/expression/embeddedDocs/function/matrix/identity.js +2 -3
  727. package/lib/cjs/expression/embeddedDocs/function/matrix/ifft.js +14 -0
  728. package/lib/cjs/expression/embeddedDocs/function/matrix/inv.js +2 -3
  729. package/lib/cjs/expression/embeddedDocs/function/matrix/kron.js +2 -3
  730. package/lib/cjs/expression/embeddedDocs/function/matrix/map.js +2 -3
  731. package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromColumns.js +14 -0
  732. package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromFunction.js +14 -0
  733. package/lib/cjs/expression/embeddedDocs/function/matrix/matrixFromRows.js +14 -0
  734. package/lib/cjs/expression/embeddedDocs/function/matrix/ones.js +2 -3
  735. package/lib/cjs/expression/embeddedDocs/function/matrix/partitionSelect.js +3 -4
  736. package/lib/cjs/expression/embeddedDocs/function/matrix/pinv.js +14 -0
  737. package/lib/cjs/expression/embeddedDocs/function/matrix/range.js +3 -4
  738. package/lib/cjs/expression/embeddedDocs/function/matrix/reshape.js +3 -4
  739. package/lib/cjs/expression/embeddedDocs/function/matrix/resize.js +2 -3
  740. package/lib/cjs/expression/embeddedDocs/function/matrix/rotate.js +3 -4
  741. package/lib/cjs/expression/embeddedDocs/function/matrix/rotationMatrix.js +2 -3
  742. package/lib/cjs/expression/embeddedDocs/function/matrix/row.js +3 -4
  743. package/lib/cjs/expression/embeddedDocs/function/matrix/size.js +3 -4
  744. package/lib/cjs/expression/embeddedDocs/function/matrix/sort.js +3 -4
  745. package/lib/cjs/expression/embeddedDocs/function/matrix/squeeze.js +2 -3
  746. package/lib/cjs/expression/embeddedDocs/function/matrix/subset.js +4 -5
  747. package/lib/cjs/expression/embeddedDocs/function/matrix/trace.js +2 -3
  748. package/lib/cjs/expression/embeddedDocs/function/matrix/transpose.js +2 -3
  749. package/lib/cjs/expression/embeddedDocs/function/matrix/zeros.js +2 -3
  750. package/lib/cjs/expression/embeddedDocs/function/numeric/solveODE.js +14 -0
  751. package/lib/cjs/expression/embeddedDocs/function/probability/combinations.js +2 -3
  752. package/lib/cjs/expression/embeddedDocs/function/probability/combinationsWithRep.js +2 -3
  753. package/lib/cjs/expression/embeddedDocs/function/probability/distribution.js +2 -3
  754. package/lib/cjs/expression/embeddedDocs/function/probability/factorial.js +2 -3
  755. package/lib/cjs/expression/embeddedDocs/function/probability/gamma.js +2 -3
  756. package/lib/cjs/expression/embeddedDocs/function/probability/kldivergence.js +2 -3
  757. package/lib/cjs/expression/embeddedDocs/function/probability/lgamma.js +14 -0
  758. package/lib/cjs/expression/embeddedDocs/function/probability/multinomial.js +2 -3
  759. package/lib/cjs/expression/embeddedDocs/function/probability/permutations.js +2 -3
  760. package/lib/cjs/expression/embeddedDocs/function/probability/pickRandom.js +2 -3
  761. package/lib/cjs/expression/embeddedDocs/function/probability/random.js +2 -3
  762. package/lib/cjs/expression/embeddedDocs/function/probability/randomInt.js +2 -3
  763. package/lib/cjs/expression/embeddedDocs/function/relational/compare.js +2 -3
  764. package/lib/cjs/expression/embeddedDocs/function/relational/compareNatural.js +2 -3
  765. package/lib/cjs/expression/embeddedDocs/function/relational/compareText.js +2 -3
  766. package/lib/cjs/expression/embeddedDocs/function/relational/deepEqual.js +2 -3
  767. package/lib/cjs/expression/embeddedDocs/function/relational/equal.js +2 -3
  768. package/lib/cjs/expression/embeddedDocs/function/relational/equalText.js +2 -3
  769. package/lib/cjs/expression/embeddedDocs/function/relational/larger.js +2 -3
  770. package/lib/cjs/expression/embeddedDocs/function/relational/largerEq.js +2 -3
  771. package/lib/cjs/expression/embeddedDocs/function/relational/smaller.js +2 -3
  772. package/lib/cjs/expression/embeddedDocs/function/relational/smallerEq.js +2 -3
  773. package/lib/cjs/expression/embeddedDocs/function/relational/unequal.js +2 -3
  774. package/lib/cjs/expression/embeddedDocs/function/set/setCartesian.js +3 -4
  775. package/lib/cjs/expression/embeddedDocs/function/set/setDifference.js +2 -3
  776. package/lib/cjs/expression/embeddedDocs/function/set/setDistinct.js +2 -3
  777. package/lib/cjs/expression/embeddedDocs/function/set/setIntersect.js +2 -3
  778. package/lib/cjs/expression/embeddedDocs/function/set/setIsSubset.js +2 -3
  779. package/lib/cjs/expression/embeddedDocs/function/set/setMultiplicity.js +2 -3
  780. package/lib/cjs/expression/embeddedDocs/function/set/setPowerset.js +2 -3
  781. package/lib/cjs/expression/embeddedDocs/function/set/setSize.js +2 -3
  782. package/lib/cjs/expression/embeddedDocs/function/set/setSymDifference.js +2 -3
  783. package/lib/cjs/expression/embeddedDocs/function/set/setUnion.js +2 -3
  784. package/lib/cjs/expression/embeddedDocs/function/signal/freqz.js +14 -0
  785. package/lib/cjs/expression/embeddedDocs/function/signal/zpk2tf.js +14 -0
  786. package/lib/cjs/expression/embeddedDocs/function/special/erf.js +2 -3
  787. package/lib/cjs/expression/embeddedDocs/function/special/zeta.js +14 -0
  788. package/lib/cjs/expression/embeddedDocs/function/statistics/corr.js +14 -0
  789. package/lib/cjs/expression/embeddedDocs/function/statistics/cumsum.js +14 -0
  790. package/lib/cjs/expression/embeddedDocs/function/statistics/mad.js +2 -3
  791. package/lib/cjs/expression/embeddedDocs/function/statistics/max.js +3 -4
  792. package/lib/cjs/expression/embeddedDocs/function/statistics/mean.js +3 -4
  793. package/lib/cjs/expression/embeddedDocs/function/statistics/median.js +2 -3
  794. package/lib/cjs/expression/embeddedDocs/function/statistics/min.js +3 -4
  795. package/lib/cjs/expression/embeddedDocs/function/statistics/mode.js +2 -3
  796. package/lib/cjs/expression/embeddedDocs/function/statistics/prod.js +2 -3
  797. package/lib/cjs/expression/embeddedDocs/function/statistics/quantileSeq.js +2 -3
  798. package/lib/cjs/expression/embeddedDocs/function/statistics/std.js +3 -4
  799. package/lib/cjs/expression/embeddedDocs/function/statistics/sum.js +3 -4
  800. package/lib/cjs/expression/embeddedDocs/function/statistics/variance.js +3 -4
  801. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acos.js +2 -3
  802. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acosh.js +2 -3
  803. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acot.js +2 -3
  804. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acoth.js +2 -3
  805. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsc.js +2 -3
  806. package/lib/cjs/expression/embeddedDocs/function/trigonometry/acsch.js +2 -3
  807. package/lib/cjs/expression/embeddedDocs/function/trigonometry/asec.js +2 -3
  808. package/lib/cjs/expression/embeddedDocs/function/trigonometry/asech.js +2 -3
  809. package/lib/cjs/expression/embeddedDocs/function/trigonometry/asin.js +2 -3
  810. package/lib/cjs/expression/embeddedDocs/function/trigonometry/asinh.js +2 -3
  811. package/lib/cjs/expression/embeddedDocs/function/trigonometry/atan.js +2 -3
  812. package/lib/cjs/expression/embeddedDocs/function/trigonometry/atan2.js +2 -3
  813. package/lib/cjs/expression/embeddedDocs/function/trigonometry/atanh.js +2 -3
  814. package/lib/cjs/expression/embeddedDocs/function/trigonometry/cos.js +2 -3
  815. package/lib/cjs/expression/embeddedDocs/function/trigonometry/cosh.js +2 -3
  816. package/lib/cjs/expression/embeddedDocs/function/trigonometry/cot.js +2 -3
  817. package/lib/cjs/expression/embeddedDocs/function/trigonometry/coth.js +2 -3
  818. package/lib/cjs/expression/embeddedDocs/function/trigonometry/csc.js +2 -3
  819. package/lib/cjs/expression/embeddedDocs/function/trigonometry/csch.js +2 -3
  820. package/lib/cjs/expression/embeddedDocs/function/trigonometry/sec.js +2 -3
  821. package/lib/cjs/expression/embeddedDocs/function/trigonometry/sech.js +2 -3
  822. package/lib/cjs/expression/embeddedDocs/function/trigonometry/sin.js +2 -3
  823. package/lib/cjs/expression/embeddedDocs/function/trigonometry/sinh.js +2 -3
  824. package/lib/cjs/expression/embeddedDocs/function/trigonometry/tan.js +2 -3
  825. package/lib/cjs/expression/embeddedDocs/function/trigonometry/tanh.js +2 -3
  826. package/lib/cjs/expression/embeddedDocs/function/units/to.js +2 -3
  827. package/lib/cjs/expression/embeddedDocs/function/utils/bin.js +2 -3
  828. package/lib/cjs/expression/embeddedDocs/function/utils/clone.js +2 -3
  829. package/lib/cjs/expression/embeddedDocs/function/utils/format.js +2 -3
  830. package/lib/cjs/expression/embeddedDocs/function/utils/hasNumericValue.js +2 -3
  831. package/lib/cjs/expression/embeddedDocs/function/utils/hex.js +2 -3
  832. package/lib/cjs/expression/embeddedDocs/function/utils/isInteger.js +2 -3
  833. package/lib/cjs/expression/embeddedDocs/function/utils/isNaN.js +2 -3
  834. package/lib/cjs/expression/embeddedDocs/function/utils/isNegative.js +2 -3
  835. package/lib/cjs/expression/embeddedDocs/function/utils/isNumeric.js +2 -3
  836. package/lib/cjs/expression/embeddedDocs/function/utils/isPositive.js +2 -3
  837. package/lib/cjs/expression/embeddedDocs/function/utils/isPrime.js +2 -3
  838. package/lib/cjs/expression/embeddedDocs/function/utils/isZero.js +2 -3
  839. package/lib/cjs/expression/embeddedDocs/function/utils/numeric.js +3 -4
  840. package/lib/cjs/expression/embeddedDocs/function/utils/oct.js +2 -3
  841. package/lib/cjs/expression/embeddedDocs/function/utils/print.js +3 -4
  842. package/lib/cjs/expression/embeddedDocs/function/utils/typeOf.js +2 -3
  843. package/lib/cjs/expression/function/compile.js +3 -8
  844. package/lib/cjs/expression/function/evaluate.js +8 -12
  845. package/lib/cjs/expression/function/help.js +5 -16
  846. package/lib/cjs/expression/function/parser.js +8 -12
  847. package/lib/cjs/expression/keywords.js +1 -4
  848. package/lib/cjs/expression/node/AccessorNode.js +193 -180
  849. package/lib/cjs/expression/node/ArrayNode.js +199 -177
  850. package/lib/cjs/expression/node/AssignmentNode.js +301 -288
  851. package/lib/cjs/expression/node/BlockNode.js +207 -183
  852. package/lib/cjs/expression/node/ConditionalNode.js +224 -207
  853. package/lib/cjs/expression/node/ConstantNode.js +194 -181
  854. package/lib/cjs/expression/node/FunctionAssignmentNode.js +257 -218
  855. package/lib/cjs/expression/node/FunctionNode.js +424 -367
  856. package/lib/cjs/expression/node/IndexNode.js +241 -268
  857. package/lib/cjs/expression/node/Node.js +385 -393
  858. package/lib/cjs/expression/node/ObjectNode.js +200 -194
  859. package/lib/cjs/expression/node/OperatorNode.js +447 -470
  860. package/lib/cjs/expression/node/ParenthesisNode.js +179 -156
  861. package/lib/cjs/expression/node/RangeNode.js +249 -253
  862. package/lib/cjs/expression/node/RelationalNode.js +218 -204
  863. package/lib/cjs/expression/node/SymbolNode.js +210 -191
  864. package/lib/cjs/expression/node/utils/access.js +3 -8
  865. package/lib/cjs/expression/node/utils/assign.js +11 -11
  866. package/lib/cjs/expression/operators.js +116 -42
  867. package/lib/cjs/expression/parse.js +292 -412
  868. package/lib/cjs/expression/transform/and.transform.js +39 -0
  869. package/lib/cjs/expression/transform/apply.transform.js +6 -13
  870. package/lib/cjs/expression/transform/bitAnd.transform.js +44 -0
  871. package/lib/cjs/expression/transform/bitOr.transform.js +45 -0
  872. package/lib/cjs/expression/transform/column.transform.js +8 -15
  873. package/lib/cjs/expression/transform/concat.transform.js +5 -13
  874. package/lib/cjs/expression/transform/cumsum.transform.js +49 -0
  875. package/lib/cjs/expression/transform/diff.transform.js +9 -25
  876. package/lib/cjs/expression/transform/filter.transform.js +8 -29
  877. package/lib/cjs/expression/transform/forEach.transform.js +7 -30
  878. package/lib/cjs/expression/transform/index.transform.js +14 -17
  879. package/lib/cjs/expression/transform/map.transform.js +8 -31
  880. package/lib/cjs/expression/transform/max.transform.js +8 -24
  881. package/lib/cjs/expression/transform/mean.transform.js +7 -23
  882. package/lib/cjs/expression/transform/min.transform.js +8 -24
  883. package/lib/cjs/expression/transform/or.transform.js +37 -0
  884. package/lib/cjs/expression/transform/print.transform.js +46 -0
  885. package/lib/cjs/expression/transform/quantileSeq.transform.js +71 -0
  886. package/lib/cjs/expression/transform/range.transform.js +16 -18
  887. package/lib/cjs/expression/transform/row.transform.js +8 -15
  888. package/lib/cjs/expression/transform/std.transform.js +10 -24
  889. package/lib/cjs/expression/transform/subset.transform.js +10 -11
  890. package/lib/cjs/expression/transform/sum.transform.js +8 -24
  891. package/lib/cjs/expression/transform/utils/compileInlineExpression.js +6 -9
  892. package/lib/cjs/expression/transform/utils/errorTransform.js +0 -3
  893. package/lib/cjs/expression/transform/utils/lastDimToZeroBase.js +22 -0
  894. package/lib/cjs/expression/transform/variance.transform.js +11 -27
  895. package/lib/cjs/factoriesAny.js +877 -915
  896. package/lib/cjs/factoriesNumber.js +443 -495
  897. package/lib/cjs/function/algebra/decomposition/lup.js +140 -178
  898. package/lib/cjs/function/algebra/decomposition/qr.js +44 -61
  899. package/lib/cjs/function/algebra/decomposition/schur.js +74 -0
  900. package/lib/cjs/function/algebra/decomposition/slu.js +20 -25
  901. package/lib/cjs/function/algebra/derivative.js +75 -180
  902. package/lib/cjs/function/algebra/leafCount.js +58 -0
  903. package/lib/cjs/function/algebra/lyap.js +56 -0
  904. package/lib/cjs/function/algebra/polynomialRoot.js +138 -0
  905. package/lib/cjs/function/algebra/rationalize.js +238 -294
  906. package/lib/cjs/function/algebra/resolve.js +131 -0
  907. package/lib/cjs/function/algebra/simplify/util.js +151 -74
  908. package/lib/cjs/function/algebra/simplify/wildcards.js +38 -0
  909. package/lib/cjs/function/algebra/simplify.js +855 -419
  910. package/lib/cjs/function/algebra/simplifyConstant.js +488 -0
  911. package/lib/cjs/function/algebra/simplifyCore.js +299 -0
  912. package/lib/cjs/function/algebra/solver/lsolve.js +33 -41
  913. package/lib/cjs/function/algebra/solver/lsolveAll.js +42 -59
  914. package/lib/cjs/function/algebra/solver/lusolve.js +17 -28
  915. package/lib/cjs/function/algebra/solver/usolve.js +37 -46
  916. package/lib/cjs/function/algebra/solver/usolveAll.js +46 -59
  917. package/lib/cjs/function/algebra/solver/utils/solveValidation.js +4 -32
  918. package/lib/cjs/function/algebra/sparse/csAmd.js +252 -307
  919. package/lib/cjs/function/algebra/sparse/csChol.js +74 -91
  920. package/lib/cjs/function/algebra/sparse/csCounts.js +39 -58
  921. package/lib/cjs/function/algebra/sparse/csCumsum.js +8 -11
  922. package/lib/cjs/function/algebra/sparse/csDfs.js +34 -42
  923. package/lib/cjs/function/algebra/sparse/csEreach.js +24 -31
  924. package/lib/cjs/function/algebra/sparse/csEtree.js +23 -28
  925. package/lib/cjs/function/algebra/sparse/csFkeep.js +20 -25
  926. package/lib/cjs/function/algebra/sparse/csFlip.js +0 -1
  927. package/lib/cjs/function/algebra/sparse/csIpvec.js +2 -4
  928. package/lib/cjs/function/algebra/sparse/csLeaf.js +13 -16
  929. package/lib/cjs/function/algebra/sparse/csLu.js +73 -95
  930. package/lib/cjs/function/algebra/sparse/csMark.js +0 -2
  931. package/lib/cjs/function/algebra/sparse/csMarked.js +0 -1
  932. package/lib/cjs/function/algebra/sparse/csPermute.js +20 -25
  933. package/lib/cjs/function/algebra/sparse/csPost.js +14 -24
  934. package/lib/cjs/function/algebra/sparse/csReach.js +14 -20
  935. package/lib/cjs/function/algebra/sparse/csSpsolve.js +34 -43
  936. package/lib/cjs/function/algebra/sparse/csSqr.js +64 -89
  937. package/lib/cjs/function/algebra/sparse/csSymperm.js +35 -47
  938. package/lib/cjs/function/algebra/sparse/csTdfs.js +12 -15
  939. package/lib/cjs/function/algebra/sparse/csUnflip.js +0 -2
  940. package/lib/cjs/function/algebra/sylvester.js +126 -0
  941. package/lib/cjs/function/algebra/symbolicEqual.js +64 -0
  942. package/lib/cjs/function/arithmetic/abs.js +9 -22
  943. package/lib/cjs/function/arithmetic/add.js +69 -121
  944. package/lib/cjs/function/arithmetic/addScalar.js +17 -16
  945. package/lib/cjs/function/arithmetic/cbrt.js +24 -40
  946. package/lib/cjs/function/arithmetic/ceil.js +102 -86
  947. package/lib/cjs/function/arithmetic/cube.js +7 -17
  948. package/lib/cjs/function/arithmetic/divide.js +16 -21
  949. package/lib/cjs/function/arithmetic/divideScalar.js +7 -25
  950. package/lib/cjs/function/arithmetic/dotDivide.js +32 -82
  951. package/lib/cjs/function/arithmetic/dotMultiply.js +25 -75
  952. package/lib/cjs/function/arithmetic/dotPow.js +38 -79
  953. package/lib/cjs/function/arithmetic/exp.js +10 -19
  954. package/lib/cjs/function/arithmetic/expm1.js +13 -18
  955. package/lib/cjs/function/arithmetic/fix.js +75 -41
  956. package/lib/cjs/function/arithmetic/floor.js +107 -85
  957. package/lib/cjs/function/arithmetic/gcd.js +97 -90
  958. package/lib/cjs/function/arithmetic/hypot.js +17 -23
  959. package/lib/cjs/function/arithmetic/invmod.js +64 -0
  960. package/lib/cjs/function/arithmetic/lcm.js +37 -90
  961. package/lib/cjs/function/arithmetic/log.js +15 -22
  962. package/lib/cjs/function/arithmetic/log10.js +9 -13
  963. package/lib/cjs/function/arithmetic/log1p.js +18 -21
  964. package/lib/cjs/function/arithmetic/log2.js +10 -14
  965. package/lib/cjs/function/arithmetic/mod.js +62 -92
  966. package/lib/cjs/function/arithmetic/multiply.js +352 -371
  967. package/lib/cjs/function/arithmetic/multiplyScalar.js +4 -16
  968. package/lib/cjs/function/arithmetic/norm.js +45 -78
  969. package/lib/cjs/function/arithmetic/nthRoot.js +98 -128
  970. package/lib/cjs/function/arithmetic/nthRoots.js +13 -22
  971. package/lib/cjs/function/arithmetic/pow.js +52 -51
  972. package/lib/cjs/function/arithmetic/round.js +122 -100
  973. package/lib/cjs/function/arithmetic/sign.js +20 -19
  974. package/lib/cjs/function/arithmetic/sqrt.js +10 -18
  975. package/lib/cjs/function/arithmetic/square.js +8 -17
  976. package/lib/cjs/function/arithmetic/subtract.js +40 -135
  977. package/lib/cjs/function/arithmetic/subtractScalar.js +52 -0
  978. package/lib/cjs/function/arithmetic/unaryMinus.js +17 -24
  979. package/lib/cjs/function/arithmetic/unaryPlus.js +10 -14
  980. package/lib/cjs/function/arithmetic/xgcd.js +14 -21
  981. package/lib/cjs/function/bitwise/bitAnd.js +24 -75
  982. package/lib/cjs/function/bitwise/bitNot.js +8 -13
  983. package/lib/cjs/function/bitwise/bitOr.js +25 -76
  984. package/lib/cjs/function/bitwise/bitXor.js +24 -75
  985. package/lib/cjs/function/bitwise/leftShift.js +73 -101
  986. package/lib/cjs/function/bitwise/rightArithShift.js +74 -102
  987. package/lib/cjs/function/bitwise/rightLogShift.js +73 -98
  988. package/lib/cjs/function/bitwise/useMatrixForArrayScalar.js +33 -0
  989. package/lib/cjs/function/combinatorics/bellNumbers.js +8 -14
  990. package/lib/cjs/function/combinatorics/catalan.js +8 -13
  991. package/lib/cjs/function/combinatorics/composition.js +8 -13
  992. package/lib/cjs/function/combinatorics/stirlingS2.js +49 -31
  993. package/lib/cjs/function/complex/arg.js +8 -10
  994. package/lib/cjs/function/complex/conj.js +8 -14
  995. package/lib/cjs/function/complex/im.js +9 -12
  996. package/lib/cjs/function/complex/re.js +8 -14
  997. package/lib/cjs/function/geometry/distance.js +44 -91
  998. package/lib/cjs/function/geometry/intersect.js +100 -102
  999. package/lib/cjs/function/logical/and.js +83 -100
  1000. package/lib/cjs/function/logical/not.js +15 -14
  1001. package/lib/cjs/function/logical/or.js +29 -77
  1002. package/lib/cjs/function/logical/xor.js +28 -76
  1003. package/lib/cjs/function/matrix/apply.js +4 -25
  1004. package/lib/cjs/function/matrix/column.js +9 -14
  1005. package/lib/cjs/function/matrix/concat.js +11 -56
  1006. package/lib/cjs/function/matrix/count.js +43 -0
  1007. package/lib/cjs/function/matrix/cross.js +6 -14
  1008. package/lib/cjs/function/matrix/ctranspose.js +4 -8
  1009. package/lib/cjs/function/matrix/det.js +48 -57
  1010. package/lib/cjs/function/matrix/diag.js +23 -38
  1011. package/lib/cjs/function/matrix/diff.js +23 -40
  1012. package/lib/cjs/function/matrix/dot.js +24 -49
  1013. package/lib/cjs/function/matrix/eigs/complexEigs.js +744 -0
  1014. package/lib/cjs/function/matrix/eigs/realSymmetric.js +303 -0
  1015. package/lib/cjs/function/matrix/eigs.js +271 -379
  1016. package/lib/cjs/function/matrix/expm.js +28 -45
  1017. package/lib/cjs/function/matrix/fft.js +152 -0
  1018. package/lib/cjs/function/matrix/filter.js +4 -20
  1019. package/lib/cjs/function/matrix/flatten.js +8 -14
  1020. package/lib/cjs/function/matrix/forEach.js +6 -24
  1021. package/lib/cjs/function/matrix/getMatrixDataType.js +3 -9
  1022. package/lib/cjs/function/matrix/identity.js +16 -33
  1023. package/lib/cjs/function/matrix/ifft.js +43 -0
  1024. package/lib/cjs/function/matrix/inv.js +22 -47
  1025. package/lib/cjs/function/matrix/kron.js +5 -13
  1026. package/lib/cjs/function/matrix/map.js +23 -28
  1027. package/lib/cjs/function/matrix/matrixFromColumns.js +106 -0
  1028. package/lib/cjs/function/matrix/matrixFromFunction.js +78 -0
  1029. package/lib/cjs/function/matrix/matrixFromRows.js +94 -0
  1030. package/lib/cjs/function/matrix/ones.js +12 -26
  1031. package/lib/cjs/function/matrix/partitionSelect.js +24 -32
  1032. package/lib/cjs/function/matrix/pinv.js +190 -0
  1033. package/lib/cjs/function/matrix/range.js +45 -148
  1034. package/lib/cjs/function/matrix/reshape.js +9 -15
  1035. package/lib/cjs/function/matrix/resize.js +8 -31
  1036. package/lib/cjs/function/matrix/rotate.js +9 -22
  1037. package/lib/cjs/function/matrix/rotationMatrix.js +16 -36
  1038. package/lib/cjs/function/matrix/row.js +9 -14
  1039. package/lib/cjs/function/matrix/size.js +5 -11
  1040. package/lib/cjs/function/matrix/sort.js +9 -23
  1041. package/lib/cjs/function/matrix/sqrtm.js +18 -31
  1042. package/lib/cjs/function/matrix/squeeze.js +5 -11
  1043. package/lib/cjs/function/matrix/subset.js +114 -66
  1044. package/lib/cjs/function/matrix/trace.js +24 -39
  1045. package/lib/cjs/function/matrix/transpose.js +81 -99
  1046. package/lib/cjs/function/matrix/zeros.js +13 -26
  1047. package/lib/cjs/function/numeric/solveODE.js +314 -0
  1048. package/lib/cjs/function/probability/combinations.js +4 -14
  1049. package/lib/cjs/function/probability/combinationsWithRep.js +2 -19
  1050. package/lib/cjs/function/probability/factorial.js +8 -13
  1051. package/lib/cjs/function/probability/gamma.js +52 -68
  1052. package/lib/cjs/function/probability/kldivergence.js +16 -26
  1053. package/lib/cjs/function/probability/lgamma.js +141 -0
  1054. package/lib/cjs/function/probability/multinomial.js +8 -14
  1055. package/lib/cjs/function/probability/permutations.js +7 -21
  1056. package/lib/cjs/function/probability/pickRandom.js +12 -34
  1057. package/lib/cjs/function/probability/random.js +12 -25
  1058. package/lib/cjs/function/probability/randomInt.js +5 -15
  1059. package/lib/cjs/function/probability/util/randomMatrix.js +0 -3
  1060. package/lib/cjs/function/probability/util/seededRNG.js +7 -10
  1061. package/lib/cjs/function/relational/compare.js +35 -90
  1062. package/lib/cjs/function/relational/compareNatural.js +75 -102
  1063. package/lib/cjs/function/relational/compareText.js +18 -55
  1064. package/lib/cjs/function/relational/compareUnits.js +20 -0
  1065. package/lib/cjs/function/relational/deepEqual.js +4 -11
  1066. package/lib/cjs/function/relational/equal.js +30 -101
  1067. package/lib/cjs/function/relational/equalScalar.js +10 -20
  1068. package/lib/cjs/function/relational/equalText.js +4 -8
  1069. package/lib/cjs/function/relational/larger.js +32 -87
  1070. package/lib/cjs/function/relational/largerEq.js +32 -87
  1071. package/lib/cjs/function/relational/smaller.js +32 -87
  1072. package/lib/cjs/function/relational/smallerEq.js +32 -87
  1073. package/lib/cjs/function/relational/unequal.js +31 -103
  1074. package/lib/cjs/function/set/setCartesian.js +14 -21
  1075. package/lib/cjs/function/set/setDifference.js +11 -22
  1076. package/lib/cjs/function/set/setDistinct.js +11 -20
  1077. package/lib/cjs/function/set/setIntersect.js +11 -20
  1078. package/lib/cjs/function/set/setIsSubset.js +7 -17
  1079. package/lib/cjs/function/set/setMultiplicity.js +6 -14
  1080. package/lib/cjs/function/set/setPowerset.js +12 -23
  1081. package/lib/cjs/function/set/setSize.js +6 -12
  1082. package/lib/cjs/function/set/setSymDifference.js +7 -13
  1083. package/lib/cjs/function/set/setUnion.js +8 -14
  1084. package/lib/cjs/function/signal/freqz.js +116 -0
  1085. package/lib/cjs/function/signal/zpk2tf.js +94 -0
  1086. package/lib/cjs/function/special/erf.js +20 -31
  1087. package/lib/cjs/function/special/zeta.js +170 -0
  1088. package/lib/cjs/function/statistics/corr.js +94 -0
  1089. package/lib/cjs/function/statistics/cumsum.js +127 -0
  1090. package/lib/cjs/function/statistics/mad.js +6 -15
  1091. package/lib/cjs/function/statistics/max.js +12 -22
  1092. package/lib/cjs/function/statistics/mean.js +8 -19
  1093. package/lib/cjs/function/statistics/median.js +15 -24
  1094. package/lib/cjs/function/statistics/min.js +11 -21
  1095. package/lib/cjs/function/statistics/mode.js +6 -19
  1096. package/lib/cjs/function/statistics/prod.js +11 -17
  1097. package/lib/cjs/function/statistics/quantileSeq.js +108 -209
  1098. package/lib/cjs/function/statistics/std.js +13 -12
  1099. package/lib/cjs/function/statistics/sum.js +12 -20
  1100. package/lib/cjs/function/statistics/utils/improveErrorMessage.js +0 -5
  1101. package/lib/cjs/function/statistics/variance.js +14 -28
  1102. package/lib/cjs/function/string/bin.js +21 -4
  1103. package/lib/cjs/function/string/format.js +40 -28
  1104. package/lib/cjs/function/string/hex.js +22 -6
  1105. package/lib/cjs/function/string/oct.js +24 -6
  1106. package/lib/cjs/function/string/print.js +7 -13
  1107. package/lib/cjs/function/trigonometry/acos.js +8 -16
  1108. package/lib/cjs/function/trigonometry/acosh.js +6 -18
  1109. package/lib/cjs/function/trigonometry/acot.js +9 -19
  1110. package/lib/cjs/function/trigonometry/acoth.js +9 -19
  1111. package/lib/cjs/function/trigonometry/acsc.js +11 -22
  1112. package/lib/cjs/function/trigonometry/acsch.js +7 -16
  1113. package/lib/cjs/function/trigonometry/asec.js +11 -21
  1114. package/lib/cjs/function/trigonometry/asech.js +9 -21
  1115. package/lib/cjs/function/trigonometry/asin.js +9 -18
  1116. package/lib/cjs/function/trigonometry/asinh.js +6 -16
  1117. package/lib/cjs/function/trigonometry/atan.js +7 -17
  1118. package/lib/cjs/function/trigonometry/atan2.js +36 -80
  1119. package/lib/cjs/function/trigonometry/atanh.js +8 -19
  1120. package/lib/cjs/function/trigonometry/cos.js +12 -25
  1121. package/lib/cjs/function/trigonometry/cosh.js +7 -26
  1122. package/lib/cjs/function/trigonometry/cot.js +10 -21
  1123. package/lib/cjs/function/trigonometry/coth.js +7 -23
  1124. package/lib/cjs/function/trigonometry/csc.js +12 -23
  1125. package/lib/cjs/function/trigonometry/csch.js +7 -23
  1126. package/lib/cjs/function/trigonometry/sec.js +12 -23
  1127. package/lib/cjs/function/trigonometry/sech.js +7 -23
  1128. package/lib/cjs/function/trigonometry/sin.js +12 -26
  1129. package/lib/cjs/function/trigonometry/sinh.js +7 -27
  1130. package/lib/cjs/function/trigonometry/tan.js +12 -26
  1131. package/lib/cjs/function/trigonometry/tanh.js +7 -27
  1132. package/lib/cjs/function/trigonometry/trigUnit.js +20 -0
  1133. package/lib/cjs/function/unit/to.js +17 -53
  1134. package/lib/cjs/function/utils/clone.js +3 -8
  1135. package/lib/cjs/function/utils/hasNumericValue.js +8 -8
  1136. package/lib/cjs/function/utils/isInteger.js +9 -12
  1137. package/lib/cjs/function/utils/isNaN.js +3 -9
  1138. package/lib/cjs/function/utils/isNegative.js +13 -15
  1139. package/lib/cjs/function/utils/isNumeric.js +8 -11
  1140. package/lib/cjs/function/utils/isPositive.js +13 -15
  1141. package/lib/cjs/function/utils/isPrime.js +63 -19
  1142. package/lib/cjs/function/utils/isZero.js +23 -25
  1143. package/lib/cjs/function/utils/numeric.js +16 -18
  1144. package/lib/cjs/function/utils/typeOf.js +40 -51
  1145. package/lib/cjs/header.js +3 -3
  1146. package/lib/cjs/index.js +0 -2
  1147. package/lib/cjs/json/replacer.js +2 -6
  1148. package/lib/cjs/json/reviver.js +2 -8
  1149. package/lib/cjs/number.js +0 -2
  1150. package/lib/cjs/plain/bignumber/arithmetic.js +2 -12
  1151. package/lib/cjs/plain/bignumber/index.js +1 -8
  1152. package/lib/cjs/plain/number/arithmetic.js +47 -131
  1153. package/lib/cjs/plain/number/bitwise.js +0 -23
  1154. package/lib/cjs/plain/number/combinations.js +17 -15
  1155. package/lib/cjs/plain/number/constants.js +5 -10
  1156. package/lib/cjs/plain/number/index.js +0 -18
  1157. package/lib/cjs/plain/number/logical.js +1 -9
  1158. package/lib/cjs/plain/number/probability.js +41 -18
  1159. package/lib/cjs/plain/number/trigonometry.js +1 -53
  1160. package/lib/cjs/plain/number/utils.js +1 -13
  1161. package/lib/cjs/type/bignumber/BigNumber.js +9 -19
  1162. package/lib/cjs/type/bignumber/function/bignumber.js +31 -11
  1163. package/lib/cjs/type/boolean.js +9 -15
  1164. package/lib/cjs/type/chain/Chain.js +36 -42
  1165. package/lib/cjs/type/chain/function/chain.js +3 -7
  1166. package/lib/cjs/type/complex/Complex.js +17 -41
  1167. package/lib/cjs/type/complex/function/complex.js +8 -13
  1168. package/lib/cjs/type/fraction/Fraction.js +9 -12
  1169. package/lib/cjs/type/fraction/function/fraction.js +36 -21
  1170. package/lib/cjs/type/matrix/DenseMatrix.js +288 -227
  1171. package/lib/cjs/type/matrix/FibonacciHeap.js +121 -162
  1172. package/lib/cjs/type/matrix/ImmutableDenseMatrix.js +22 -46
  1173. package/lib/cjs/type/matrix/Matrix.js +28 -39
  1174. package/lib/cjs/type/matrix/MatrixIndex.js +62 -72
  1175. package/lib/cjs/type/matrix/Range.js +16 -53
  1176. package/lib/cjs/type/matrix/Spa.js +36 -57
  1177. package/lib/cjs/type/matrix/SparseMatrix.js +524 -551
  1178. package/lib/cjs/type/matrix/function/index.js +9 -12
  1179. package/lib/cjs/type/matrix/function/matrix.js +8 -13
  1180. package/lib/cjs/type/matrix/function/sparse.js +9 -7
  1181. package/lib/cjs/type/matrix/utils/broadcast.js +77 -0
  1182. package/lib/cjs/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +40 -41
  1183. package/lib/cjs/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +48 -49
  1184. package/lib/cjs/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +45 -46
  1185. package/lib/cjs/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +78 -79
  1186. package/lib/cjs/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +78 -80
  1187. package/lib/cjs/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +66 -67
  1188. package/lib/cjs/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +52 -55
  1189. package/lib/cjs/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +73 -74
  1190. package/lib/cjs/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +62 -62
  1191. package/lib/cjs/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +38 -39
  1192. package/lib/cjs/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +44 -44
  1193. package/lib/cjs/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +38 -39
  1194. package/lib/cjs/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +31 -34
  1195. package/lib/cjs/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +23 -25
  1196. package/lib/cjs/type/matrix/utils/matrixAlgorithmSuite.js +222 -0
  1197. package/lib/cjs/type/number.js +83 -25
  1198. package/lib/cjs/type/resultset/ResultSet.js +7 -16
  1199. package/lib/cjs/type/string.js +7 -11
  1200. package/lib/cjs/type/unit/Unit.js +382 -515
  1201. package/lib/cjs/type/unit/function/createUnit.js +5 -8
  1202. package/lib/cjs/type/unit/function/splitUnit.js +3 -7
  1203. package/lib/cjs/type/unit/function/unit.js +20 -15
  1204. package/lib/cjs/type/unit/physicalConstants.js +66 -114
  1205. package/lib/cjs/utils/applyCallback.js +73 -0
  1206. package/lib/cjs/utils/array.js +368 -174
  1207. package/lib/cjs/utils/bignumber/bitwise.js +14 -97
  1208. package/lib/cjs/utils/bignumber/constants.js +20 -19
  1209. package/lib/cjs/utils/bignumber/formatter.js +92 -31
  1210. package/lib/cjs/utils/bignumber/nearlyEqual.js +8 -10
  1211. package/lib/cjs/utils/collection.js +25 -68
  1212. package/lib/cjs/utils/complex.js +0 -2
  1213. package/lib/cjs/utils/customs.js +39 -48
  1214. package/lib/cjs/utils/emitter.js +3 -5
  1215. package/lib/cjs/utils/factory.js +14 -31
  1216. package/lib/cjs/utils/function.js +31 -27
  1217. package/lib/cjs/utils/is.js +64 -92
  1218. package/lib/cjs/utils/latex.js +17 -24
  1219. package/lib/cjs/utils/log.js +2 -9
  1220. package/lib/cjs/utils/lruQueue.js +57 -0
  1221. package/lib/cjs/utils/map.js +166 -0
  1222. package/lib/cjs/utils/noop.js +1 -6
  1223. package/lib/cjs/utils/number.js +176 -167
  1224. package/lib/cjs/utils/object.js +43 -98
  1225. package/lib/cjs/utils/print.js +7 -0
  1226. package/lib/cjs/utils/product.js +0 -4
  1227. package/lib/cjs/utils/scope.js +29 -0
  1228. package/lib/cjs/utils/snapshot.js +53 -108
  1229. package/lib/cjs/utils/string.js +41 -61
  1230. package/lib/cjs/utils/switch.js +26 -0
  1231. package/lib/cjs/version.js +3 -4
  1232. package/lib/esm/constants.js +24 -20
  1233. package/lib/esm/core/create.js +29 -30
  1234. package/lib/esm/core/function/config.js +12 -10
  1235. package/lib/esm/core/function/import.js +23 -70
  1236. package/lib/esm/core/function/typed.js +63 -39
  1237. package/lib/esm/entry/configReadonly.js +3 -5
  1238. package/lib/esm/entry/dependenciesAny/dependenciesAdd.generated.js +2 -0
  1239. package/lib/esm/entry/dependenciesAny/dependenciesAnd.generated.js +2 -0
  1240. package/lib/esm/entry/dependenciesAny/dependenciesAndTransform.generated.js +22 -0
  1241. package/lib/esm/entry/dependenciesAny/dependenciesAtan2.generated.js +2 -0
  1242. package/lib/esm/entry/dependenciesAny/dependenciesBin.generated.js +2 -0
  1243. package/lib/esm/entry/dependenciesAny/dependenciesBitAnd.generated.js +2 -0
  1244. package/lib/esm/entry/dependenciesAny/dependenciesBitAndTransform.generated.js +22 -0
  1245. package/lib/esm/entry/dependenciesAny/dependenciesBitOr.generated.js +2 -0
  1246. package/lib/esm/entry/dependenciesAny/dependenciesBitOrTransform.generated.js +18 -0
  1247. package/lib/esm/entry/dependenciesAny/dependenciesBitXor.generated.js +2 -0
  1248. package/lib/esm/entry/dependenciesAny/dependenciesCeil.generated.js +4 -0
  1249. package/lib/esm/entry/dependenciesAny/dependenciesChainClass.generated.js +2 -0
  1250. package/lib/esm/entry/dependenciesAny/dependenciesCompare.generated.js +2 -0
  1251. package/lib/esm/entry/dependenciesAny/dependenciesCompareText.generated.js +2 -0
  1252. package/lib/esm/entry/dependenciesAny/dependenciesCorr.generated.js +28 -0
  1253. package/lib/esm/entry/dependenciesAny/dependenciesCount.generated.js +14 -0
  1254. package/lib/esm/entry/dependenciesAny/dependenciesCumSum.generated.js +14 -0
  1255. package/lib/esm/entry/dependenciesAny/dependenciesCumSumTransform.generated.js +14 -0
  1256. package/lib/esm/entry/dependenciesAny/dependenciesDet.generated.js +6 -4
  1257. package/lib/esm/entry/dependenciesAny/dependenciesDistance.generated.js +4 -4
  1258. package/lib/esm/entry/dependenciesAny/dependenciesDotDivide.generated.js +2 -0
  1259. package/lib/esm/entry/dependenciesAny/dependenciesDotMultiply.generated.js +2 -0
  1260. package/lib/esm/entry/dependenciesAny/dependenciesDotPow.generated.js +2 -0
  1261. package/lib/esm/entry/dependenciesAny/dependenciesEigs.generated.js +36 -0
  1262. package/lib/esm/entry/dependenciesAny/dependenciesEqual.generated.js +2 -0
  1263. package/lib/esm/entry/dependenciesAny/dependenciesFft.generated.js +34 -0
  1264. package/lib/esm/entry/dependenciesAny/dependenciesFix.generated.js +6 -0
  1265. package/lib/esm/entry/dependenciesAny/dependenciesFloor.generated.js +4 -0
  1266. package/lib/esm/entry/dependenciesAny/dependenciesFreqz.generated.js +20 -0
  1267. package/lib/esm/entry/dependenciesAny/dependenciesGcd.generated.js +6 -0
  1268. package/lib/esm/entry/dependenciesAny/dependenciesHex.generated.js +2 -0
  1269. package/lib/esm/entry/dependenciesAny/dependenciesIfft.generated.js +16 -0
  1270. package/lib/esm/entry/dependenciesAny/dependenciesIndexClass.generated.js +2 -0
  1271. package/lib/esm/entry/dependenciesAny/dependenciesIndexNode.generated.js +0 -2
  1272. package/lib/esm/entry/dependenciesAny/dependenciesIndexTransform.generated.js +2 -0
  1273. package/lib/esm/entry/dependenciesAny/dependenciesIntersect.generated.js +6 -0
  1274. package/lib/esm/entry/dependenciesAny/dependenciesInvmod.generated.js +24 -0
  1275. package/lib/esm/entry/dependenciesAny/dependenciesKldivergence.generated.js +2 -0
  1276. package/lib/esm/entry/dependenciesAny/dependenciesLarger.generated.js +2 -0
  1277. package/lib/esm/entry/dependenciesAny/dependenciesLargerEq.generated.js +2 -0
  1278. package/lib/esm/entry/dependenciesAny/dependenciesLcm.generated.js +2 -0
  1279. package/lib/esm/entry/dependenciesAny/dependenciesLeafCount.generated.js +12 -0
  1280. package/lib/esm/entry/dependenciesAny/dependenciesLeftShift.generated.js +2 -0
  1281. package/lib/esm/entry/dependenciesAny/dependenciesLgamma.generated.js +12 -0
  1282. package/lib/esm/entry/dependenciesAny/dependenciesLsolve.generated.js +2 -2
  1283. package/lib/esm/entry/dependenciesAny/dependenciesLsolveAll.generated.js +2 -2
  1284. package/lib/esm/entry/dependenciesAny/dependenciesLup.generated.js +2 -2
  1285. package/lib/esm/entry/dependenciesAny/dependenciesLyap.generated.js +18 -0
  1286. package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromColumns.generated.js +16 -0
  1287. package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromFunction.generated.js +14 -0
  1288. package/lib/esm/entry/dependenciesAny/dependenciesMatrixFromRows.generated.js +16 -0
  1289. package/lib/esm/entry/dependenciesAny/dependenciesMod.generated.js +6 -0
  1290. package/lib/esm/entry/dependenciesAny/dependenciesNthRoot.generated.js +2 -0
  1291. package/lib/esm/entry/dependenciesAny/dependenciesOct.generated.js +2 -0
  1292. package/lib/esm/entry/dependenciesAny/dependenciesOr.generated.js +2 -0
  1293. package/lib/esm/entry/dependenciesAny/dependenciesOrTransform.generated.js +18 -0
  1294. package/lib/esm/entry/dependenciesAny/dependenciesParserClass.generated.js +2 -2
  1295. package/lib/esm/entry/dependenciesAny/dependenciesPinv.generated.js +32 -0
  1296. package/lib/esm/entry/dependenciesAny/dependenciesPolynomialRoot.generated.js +34 -0
  1297. package/lib/esm/entry/dependenciesAny/dependenciesPow.generated.js +2 -0
  1298. package/lib/esm/entry/dependenciesAny/dependenciesPrintTransform.generated.js +16 -0
  1299. package/lib/esm/entry/dependenciesAny/dependenciesQr.generated.js +2 -2
  1300. package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeq.generated.js +14 -0
  1301. package/lib/esm/entry/dependenciesAny/dependenciesQuantileSeqTransform.generated.js +32 -0
  1302. package/lib/esm/entry/dependenciesAny/dependenciesRange.generated.js +4 -0
  1303. package/lib/esm/entry/dependenciesAny/dependenciesRangeTransform.generated.js +4 -0
  1304. package/lib/esm/entry/dependenciesAny/dependenciesRationalize.generated.js +14 -0
  1305. package/lib/esm/entry/dependenciesAny/dependenciesResolve.generated.js +20 -0
  1306. package/lib/esm/entry/dependenciesAny/dependenciesRightArithShift.generated.js +2 -0
  1307. package/lib/esm/entry/dependenciesAny/dependenciesRightLogShift.generated.js +2 -0
  1308. package/lib/esm/entry/dependenciesAny/dependenciesSchur.generated.js +22 -0
  1309. package/lib/esm/entry/dependenciesAny/dependenciesSimplify.generated.js +16 -0
  1310. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyConstant.generated.js +32 -0
  1311. package/lib/esm/entry/dependenciesAny/dependenciesSimplifyCore.generated.js +44 -0
  1312. package/lib/esm/entry/dependenciesAny/dependenciesSmaller.generated.js +2 -0
  1313. package/lib/esm/entry/dependenciesAny/dependenciesSmallerEq.generated.js +2 -0
  1314. package/lib/esm/entry/dependenciesAny/dependenciesSolveODE.generated.js +38 -0
  1315. package/lib/esm/entry/dependenciesAny/dependenciesSqrtm.generated.js +2 -0
  1316. package/lib/esm/entry/dependenciesAny/dependenciesStd.generated.js +2 -0
  1317. package/lib/esm/entry/dependenciesAny/dependenciesStdTransform.generated.js +2 -0
  1318. package/lib/esm/entry/dependenciesAny/dependenciesStirlingS2.generated.js +6 -2
  1319. package/lib/esm/entry/dependenciesAny/dependenciesSubset.generated.js +4 -0
  1320. package/lib/esm/entry/dependenciesAny/dependenciesSubsetTransform.generated.js +4 -0
  1321. package/lib/esm/entry/dependenciesAny/dependenciesSubtract.generated.js +4 -2
  1322. package/lib/esm/entry/dependenciesAny/dependenciesSubtractScalar.generated.js +10 -0
  1323. package/lib/esm/entry/dependenciesAny/dependenciesSylvester.generated.js +38 -0
  1324. package/lib/esm/entry/dependenciesAny/dependenciesSymbolicEqual.generated.js +16 -0
  1325. package/lib/esm/entry/dependenciesAny/dependenciesTo.generated.js +2 -0
  1326. package/lib/esm/entry/dependenciesAny/dependenciesUnequal.generated.js +2 -0
  1327. package/lib/esm/entry/dependenciesAny/dependenciesUnitClass.generated.js +2 -2
  1328. package/lib/esm/entry/dependenciesAny/dependenciesUsolve.generated.js +2 -2
  1329. package/lib/esm/entry/dependenciesAny/dependenciesUsolveAll.generated.js +2 -2
  1330. package/lib/esm/entry/dependenciesAny/dependenciesXor.generated.js +2 -0
  1331. package/lib/esm/entry/dependenciesAny/dependenciesZeta.generated.js +38 -0
  1332. package/lib/esm/entry/dependenciesAny/dependenciesZpk2tf.generated.js +18 -0
  1333. package/lib/esm/entry/dependenciesAny.generated.js +297 -266
  1334. package/lib/esm/entry/dependenciesNumber/dependenciesCeil.generated.js +2 -0
  1335. package/lib/esm/entry/dependenciesNumber/dependenciesChainClass.generated.js +2 -0
  1336. package/lib/esm/entry/dependenciesNumber/dependenciesCorr.generated.js +28 -0
  1337. package/lib/esm/entry/dependenciesNumber/dependenciesCumSum.generated.js +14 -0
  1338. package/lib/esm/entry/dependenciesNumber/dependenciesCumSumTransform.generated.js +14 -0
  1339. package/lib/esm/entry/dependenciesNumber/dependenciesFix.generated.js +4 -0
  1340. package/lib/esm/entry/dependenciesNumber/dependenciesFloor.generated.js +2 -0
  1341. package/lib/esm/entry/dependenciesNumber/dependenciesIndexNode.generated.js +0 -2
  1342. package/lib/esm/entry/dependenciesNumber/dependenciesLgamma.generated.js +10 -0
  1343. package/lib/esm/entry/dependenciesNumber/dependenciesParserClass.generated.js +2 -2
  1344. package/lib/esm/entry/dependenciesNumber/dependenciesQuantileSeq.generated.js +12 -0
  1345. package/lib/esm/entry/dependenciesNumber/dependenciesRange.generated.js +4 -0
  1346. package/lib/esm/entry/dependenciesNumber/dependenciesRangeTransform.generated.js +4 -0
  1347. package/lib/esm/entry/dependenciesNumber/dependenciesRationalize.generated.js +14 -0
  1348. package/lib/esm/entry/dependenciesNumber/dependenciesResolve.generated.js +20 -0
  1349. package/lib/esm/entry/dependenciesNumber/dependenciesSimplify.generated.js +16 -0
  1350. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyConstant.generated.js +28 -0
  1351. package/lib/esm/entry/dependenciesNumber/dependenciesSimplifyCore.generated.js +44 -0
  1352. package/lib/esm/entry/dependenciesNumber/dependenciesStd.generated.js +2 -0
  1353. package/lib/esm/entry/dependenciesNumber/dependenciesStdTransform.generated.js +2 -0
  1354. package/lib/esm/entry/dependenciesNumber/dependenciesStirlingS2.generated.js +4 -2
  1355. package/lib/esm/entry/dependenciesNumber/dependenciesSubtractScalar.generated.js +10 -0
  1356. package/lib/esm/entry/dependenciesNumber/dependenciesZeta.generated.js +34 -0
  1357. package/lib/esm/entry/dependenciesNumber.generated.js +171 -163
  1358. package/lib/esm/entry/impureFunctionsAny.generated.js +425 -274
  1359. package/lib/esm/entry/impureFunctionsNumber.generated.js +283 -216
  1360. package/lib/esm/entry/mainAny.js +10 -5
  1361. package/lib/esm/entry/mainNumber.js +10 -5
  1362. package/lib/esm/entry/pureFunctionsAny.generated.js +1028 -753
  1363. package/lib/esm/entry/pureFunctionsNumber.generated.js +279 -223
  1364. package/lib/esm/entry/typeChecks.js +1 -1
  1365. package/lib/esm/error/ArgumentsError.js +0 -1
  1366. package/lib/esm/error/DimensionError.js +0 -1
  1367. package/lib/esm/error/IndexError.js +0 -4
  1368. package/lib/esm/expression/Help.js +9 -23
  1369. package/lib/esm/expression/Parser.js +36 -37
  1370. package/lib/esm/expression/embeddedDocs/construction/fraction.js +3 -3
  1371. package/lib/esm/expression/embeddedDocs/construction/index.js +1 -1
  1372. package/lib/esm/expression/embeddedDocs/core/typed.js +1 -1
  1373. package/lib/esm/expression/embeddedDocs/embeddedDocs.js +261 -209
  1374. package/lib/esm/expression/embeddedDocs/function/algebra/leafCount.js +8 -0
  1375. package/lib/esm/expression/embeddedDocs/function/algebra/lyap.js +8 -0
  1376. package/lib/esm/expression/embeddedDocs/function/algebra/polynomialRoot.js +8 -0
  1377. package/lib/esm/expression/embeddedDocs/function/algebra/resolve.js +9 -0
  1378. package/lib/esm/expression/embeddedDocs/function/algebra/schur.js +8 -0
  1379. package/lib/esm/expression/embeddedDocs/function/algebra/simplify.js +1 -1
  1380. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyConstant.js +8 -0
  1381. package/lib/esm/expression/embeddedDocs/function/algebra/simplifyCore.js +8 -0
  1382. package/lib/esm/expression/embeddedDocs/function/algebra/sylvester.js +8 -0
  1383. package/lib/esm/expression/embeddedDocs/function/algebra/symbolicEqual.js +8 -0
  1384. package/lib/esm/expression/embeddedDocs/function/arithmetic/invmod.js +8 -0
  1385. package/lib/esm/expression/embeddedDocs/function/arithmetic/pow.js +1 -1
  1386. package/lib/esm/expression/embeddedDocs/function/arithmetic/round.js +2 -2
  1387. package/lib/esm/expression/embeddedDocs/function/arithmetic/sqrtm.js +1 -1
  1388. package/lib/esm/expression/embeddedDocs/function/expression/evaluate.js +2 -2
  1389. package/lib/esm/expression/embeddedDocs/function/matrix/column.js +1 -1
  1390. package/lib/esm/expression/embeddedDocs/function/matrix/count.js +8 -0
  1391. package/lib/esm/expression/embeddedDocs/function/matrix/diff.js +1 -1
  1392. package/lib/esm/expression/embeddedDocs/function/matrix/eigs.js +2 -2
  1393. package/lib/esm/expression/embeddedDocs/function/matrix/fft.js +8 -0
  1394. package/lib/esm/expression/embeddedDocs/function/matrix/forEach.js +1 -1
  1395. package/lib/esm/expression/embeddedDocs/function/matrix/ifft.js +8 -0
  1396. package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromColumns.js +8 -0
  1397. package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromFunction.js +8 -0
  1398. package/lib/esm/expression/embeddedDocs/function/matrix/matrixFromRows.js +8 -0
  1399. package/lib/esm/expression/embeddedDocs/function/matrix/partitionSelect.js +1 -1
  1400. package/lib/esm/expression/embeddedDocs/function/matrix/pinv.js +8 -0
  1401. package/lib/esm/expression/embeddedDocs/function/matrix/range.js +1 -1
  1402. package/lib/esm/expression/embeddedDocs/function/matrix/reshape.js +1 -1
  1403. package/lib/esm/expression/embeddedDocs/function/matrix/rotate.js +1 -1
  1404. package/lib/esm/expression/embeddedDocs/function/matrix/row.js +1 -1
  1405. package/lib/esm/expression/embeddedDocs/function/matrix/size.js +1 -1
  1406. package/lib/esm/expression/embeddedDocs/function/matrix/sort.js +1 -1
  1407. package/lib/esm/expression/embeddedDocs/function/matrix/subset.js +2 -2
  1408. package/lib/esm/expression/embeddedDocs/function/numeric/solveODE.js +8 -0
  1409. package/lib/esm/expression/embeddedDocs/function/probability/lgamma.js +8 -0
  1410. package/lib/esm/expression/embeddedDocs/function/set/setCartesian.js +1 -1
  1411. package/lib/esm/expression/embeddedDocs/function/signal/freqz.js +8 -0
  1412. package/lib/esm/expression/embeddedDocs/function/signal/zpk2tf.js +8 -0
  1413. package/lib/esm/expression/embeddedDocs/function/special/zeta.js +8 -0
  1414. package/lib/esm/expression/embeddedDocs/function/statistics/corr.js +8 -0
  1415. package/lib/esm/expression/embeddedDocs/function/statistics/cumsum.js +8 -0
  1416. package/lib/esm/expression/embeddedDocs/function/statistics/max.js +1 -1
  1417. package/lib/esm/expression/embeddedDocs/function/statistics/mean.js +1 -1
  1418. package/lib/esm/expression/embeddedDocs/function/statistics/min.js +1 -1
  1419. package/lib/esm/expression/embeddedDocs/function/statistics/std.js +1 -1
  1420. package/lib/esm/expression/embeddedDocs/function/statistics/sum.js +1 -1
  1421. package/lib/esm/expression/embeddedDocs/function/statistics/variance.js +1 -1
  1422. package/lib/esm/expression/embeddedDocs/function/utils/numeric.js +1 -1
  1423. package/lib/esm/expression/embeddedDocs/function/utils/print.js +1 -1
  1424. package/lib/esm/expression/function/compile.js +1 -2
  1425. package/lib/esm/expression/function/evaluate.js +6 -6
  1426. package/lib/esm/expression/function/help.js +2 -7
  1427. package/lib/esm/expression/function/parser.js +6 -7
  1428. package/lib/esm/expression/keywords.js +1 -3
  1429. package/lib/esm/expression/node/AccessorNode.js +150 -170
  1430. package/lib/esm/expression/node/ArrayNode.js +149 -159
  1431. package/lib/esm/expression/node/AssignmentNode.js +249 -267
  1432. package/lib/esm/expression/node/BlockNode.js +156 -164
  1433. package/lib/esm/expression/node/ConditionalNode.js +186 -201
  1434. package/lib/esm/expression/node/ConstantNode.js +145 -163
  1435. package/lib/esm/expression/node/FunctionAssignmentNode.js +195 -195
  1436. package/lib/esm/expression/node/FunctionNode.js +367 -357
  1437. package/lib/esm/expression/node/IndexNode.js +178 -230
  1438. package/lib/esm/expression/node/Node.js +316 -375
  1439. package/lib/esm/expression/node/ObjectNode.js +154 -177
  1440. package/lib/esm/expression/node/OperatorNode.js +399 -456
  1441. package/lib/esm/expression/node/ParenthesisNode.js +126 -138
  1442. package/lib/esm/expression/node/RangeNode.js +200 -238
  1443. package/lib/esm/expression/node/RelationalNode.js +169 -183
  1444. package/lib/esm/expression/node/SymbolNode.js +156 -170
  1445. package/lib/esm/expression/node/utils/access.js +0 -2
  1446. package/lib/esm/expression/node/utils/assign.js +7 -4
  1447. package/lib/esm/expression/operators.js +101 -33
  1448. package/lib/esm/expression/parse.js +273 -388
  1449. package/lib/esm/expression/transform/and.transform.js +35 -0
  1450. package/lib/esm/expression/transform/apply.transform.js +4 -5
  1451. package/lib/esm/expression/transform/bitAnd.transform.js +40 -0
  1452. package/lib/esm/expression/transform/bitOr.transform.js +41 -0
  1453. package/lib/esm/expression/transform/column.transform.js +4 -5
  1454. package/lib/esm/expression/transform/concat.transform.js +2 -4
  1455. package/lib/esm/expression/transform/cumsum.transform.js +46 -0
  1456. package/lib/esm/expression/transform/diff.transform.js +4 -14
  1457. package/lib/esm/expression/transform/filter.transform.js +8 -21
  1458. package/lib/esm/expression/transform/forEach.transform.js +6 -22
  1459. package/lib/esm/expression/transform/index.transform.js +13 -12
  1460. package/lib/esm/expression/transform/map.transform.js +8 -23
  1461. package/lib/esm/expression/transform/max.transform.js +4 -14
  1462. package/lib/esm/expression/transform/mean.transform.js +4 -14
  1463. package/lib/esm/expression/transform/min.transform.js +4 -14
  1464. package/lib/esm/expression/transform/or.transform.js +33 -0
  1465. package/lib/esm/expression/transform/print.transform.js +42 -0
  1466. package/lib/esm/expression/transform/quantileSeq.transform.js +59 -0
  1467. package/lib/esm/expression/transform/range.transform.js +9 -7
  1468. package/lib/esm/expression/transform/row.transform.js +4 -5
  1469. package/lib/esm/expression/transform/std.transform.js +7 -15
  1470. package/lib/esm/expression/transform/subset.transform.js +9 -5
  1471. package/lib/esm/expression/transform/sum.transform.js +5 -15
  1472. package/lib/esm/expression/transform/utils/compileInlineExpression.js +7 -8
  1473. package/lib/esm/expression/transform/utils/errorTransform.js +1 -2
  1474. package/lib/esm/expression/transform/utils/lastDimToZeroBase.js +17 -0
  1475. package/lib/esm/expression/transform/variance.transform.js +4 -14
  1476. package/lib/esm/factoriesAny.js +36 -3
  1477. package/lib/esm/factoriesNumber.js +83 -38
  1478. package/lib/esm/function/algebra/decomposition/lup.js +128 -162
  1479. package/lib/esm/function/algebra/decomposition/qr.js +30 -45
  1480. package/lib/esm/function/algebra/decomposition/schur.js +70 -0
  1481. package/lib/esm/function/algebra/decomposition/slu.js +10 -9
  1482. package/lib/esm/function/algebra/derivative.js +63 -164
  1483. package/lib/esm/function/algebra/leafCount.js +54 -0
  1484. package/lib/esm/function/algebra/lyap.js +52 -0
  1485. package/lib/esm/function/algebra/polynomialRoot.js +122 -0
  1486. package/lib/esm/function/algebra/rationalize.js +220 -272
  1487. package/lib/esm/function/algebra/resolve.js +97 -0
  1488. package/lib/esm/function/algebra/simplify/util.js +148 -67
  1489. package/lib/esm/function/algebra/simplify/wildcards.js +20 -0
  1490. package/lib/esm/function/algebra/simplify.js +823 -380
  1491. package/lib/esm/function/algebra/simplifyConstant.js +457 -0
  1492. package/lib/esm/function/algebra/simplifyCore.js +288 -0
  1493. package/lib/esm/function/algebra/solver/lsolve.js +27 -31
  1494. package/lib/esm/function/algebra/solver/lsolveAll.js +34 -35
  1495. package/lib/esm/function/algebra/solver/lusolve.js +10 -15
  1496. package/lib/esm/function/algebra/solver/usolve.js +31 -36
  1497. package/lib/esm/function/algebra/solver/usolveAll.js +38 -35
  1498. package/lib/esm/function/algebra/solver/utils/solveValidation.js +9 -33
  1499. package/lib/esm/function/algebra/sparse/csAmd.js +249 -298
  1500. package/lib/esm/function/algebra/sparse/csChol.js +66 -78
  1501. package/lib/esm/function/algebra/sparse/csCounts.js +38 -53
  1502. package/lib/esm/function/algebra/sparse/csCumsum.js +8 -10
  1503. package/lib/esm/function/algebra/sparse/csDfs.js +35 -39
  1504. package/lib/esm/function/algebra/sparse/csEreach.js +25 -29
  1505. package/lib/esm/function/algebra/sparse/csEtree.js +23 -27
  1506. package/lib/esm/function/algebra/sparse/csFkeep.js +20 -24
  1507. package/lib/esm/function/algebra/sparse/csIpvec.js +2 -3
  1508. package/lib/esm/function/algebra/sparse/csLeaf.js +15 -17
  1509. package/lib/esm/function/algebra/sparse/csLu.js +69 -87
  1510. package/lib/esm/function/algebra/sparse/csMark.js +1 -1
  1511. package/lib/esm/function/algebra/sparse/csPermute.js +20 -24
  1512. package/lib/esm/function/algebra/sparse/csPost.js +15 -23
  1513. package/lib/esm/function/algebra/sparse/csReach.js +15 -17
  1514. package/lib/esm/function/algebra/sparse/csSpsolve.js +31 -36
  1515. package/lib/esm/function/algebra/sparse/csSqr.js +61 -78
  1516. package/lib/esm/function/algebra/sparse/csSymperm.js +33 -41
  1517. package/lib/esm/function/algebra/sparse/csTdfs.js +12 -14
  1518. package/lib/esm/function/algebra/sparse/csUnflip.js +1 -1
  1519. package/lib/esm/function/algebra/sylvester.js +118 -0
  1520. package/lib/esm/function/algebra/symbolicEqual.js +60 -0
  1521. package/lib/esm/function/arithmetic/abs.js +4 -18
  1522. package/lib/esm/function/arithmetic/add.js +59 -104
  1523. package/lib/esm/function/arithmetic/addScalar.js +10 -7
  1524. package/lib/esm/function/arithmetic/cbrt.js +16 -26
  1525. package/lib/esm/function/arithmetic/ceil.js +76 -42
  1526. package/lib/esm/function/arithmetic/cube.js +6 -11
  1527. package/lib/esm/function/arithmetic/divide.js +10 -9
  1528. package/lib/esm/function/arithmetic/divideScalar.js +3 -21
  1529. package/lib/esm/function/arithmetic/dotDivide.js +28 -68
  1530. package/lib/esm/function/arithmetic/dotMultiply.js +22 -64
  1531. package/lib/esm/function/arithmetic/dotPow.js +34 -66
  1532. package/lib/esm/function/arithmetic/exp.js +9 -13
  1533. package/lib/esm/function/arithmetic/expm1.js +11 -11
  1534. package/lib/esm/function/arithmetic/fix.js +60 -25
  1535. package/lib/esm/function/arithmetic/floor.js +81 -42
  1536. package/lib/esm/function/arithmetic/gcd.js +86 -79
  1537. package/lib/esm/function/arithmetic/hypot.js +8 -12
  1538. package/lib/esm/function/arithmetic/invmod.js +55 -0
  1539. package/lib/esm/function/arithmetic/lcm.js +33 -81
  1540. package/lib/esm/function/arithmetic/log.js +8 -12
  1541. package/lib/esm/function/arithmetic/log10.js +2 -5
  1542. package/lib/esm/function/arithmetic/log1p.js +6 -10
  1543. package/lib/esm/function/arithmetic/log2.js +3 -6
  1544. package/lib/esm/function/arithmetic/mod.js +59 -78
  1545. package/lib/esm/function/arithmetic/multiply.js +330 -351
  1546. package/lib/esm/function/arithmetic/multiplyScalar.js +3 -15
  1547. package/lib/esm/function/arithmetic/norm.js +32 -62
  1548. package/lib/esm/function/arithmetic/nthRoot.js +53 -96
  1549. package/lib/esm/function/arithmetic/nthRoots.js +10 -16
  1550. package/lib/esm/function/arithmetic/pow.js +44 -37
  1551. package/lib/esm/function/arithmetic/round.js +71 -77
  1552. package/lib/esm/function/arithmetic/sign.js +10 -10
  1553. package/lib/esm/function/arithmetic/sqrt.js +7 -11
  1554. package/lib/esm/function/arithmetic/square.js +7 -11
  1555. package/lib/esm/function/arithmetic/subtract.js +37 -121
  1556. package/lib/esm/function/arithmetic/subtractScalar.js +46 -0
  1557. package/lib/esm/function/arithmetic/unaryMinus.js +8 -18
  1558. package/lib/esm/function/arithmetic/unaryPlus.js +3 -6
  1559. package/lib/esm/function/arithmetic/xgcd.js +10 -13
  1560. package/lib/esm/function/bitwise/bitAnd.js +22 -63
  1561. package/lib/esm/function/bitwise/bitNot.js +3 -6
  1562. package/lib/esm/function/bitwise/bitOr.js +22 -63
  1563. package/lib/esm/function/bitwise/bitXor.js +22 -63
  1564. package/lib/esm/function/bitwise/leftShift.js +45 -69
  1565. package/lib/esm/function/bitwise/rightArithShift.js +46 -70
  1566. package/lib/esm/function/bitwise/rightLogShift.js +46 -68
  1567. package/lib/esm/function/bitwise/useMatrixForArrayScalar.js +13 -0
  1568. package/lib/esm/function/combinatorics/bellNumbers.js +3 -6
  1569. package/lib/esm/function/combinatorics/catalan.js +1 -3
  1570. package/lib/esm/function/combinatorics/composition.js +1 -3
  1571. package/lib/esm/function/combinatorics/stirlingS2.js +39 -18
  1572. package/lib/esm/function/complex/arg.js +3 -5
  1573. package/lib/esm/function/complex/conj.js +4 -14
  1574. package/lib/esm/function/complex/im.js +5 -14
  1575. package/lib/esm/function/complex/re.js +4 -14
  1576. package/lib/esm/function/geometry/distance.js +38 -81
  1577. package/lib/esm/function/geometry/intersect.js +87 -87
  1578. package/lib/esm/function/logical/and.js +41 -65
  1579. package/lib/esm/function/logical/not.js +4 -8
  1580. package/lib/esm/function/logical/or.js +22 -65
  1581. package/lib/esm/function/logical/xor.js +22 -65
  1582. package/lib/esm/function/matrix/apply.js +3 -17
  1583. package/lib/esm/function/matrix/column.js +5 -5
  1584. package/lib/esm/function/matrix/concat.js +10 -46
  1585. package/lib/esm/function/matrix/count.js +39 -0
  1586. package/lib/esm/function/matrix/cross.js +2 -6
  1587. package/lib/esm/function/matrix/ctranspose.js +1 -2
  1588. package/lib/esm/function/matrix/det.js +43 -48
  1589. package/lib/esm/function/matrix/diag.js +19 -28
  1590. package/lib/esm/function/matrix/diff.js +11 -31
  1591. package/lib/esm/function/matrix/dot.js +19 -40
  1592. package/lib/esm/function/matrix/eigs/complexEigs.js +698 -0
  1593. package/lib/esm/function/matrix/eigs/realSymmetric.js +297 -0
  1594. package/lib/esm/function/matrix/eigs.js +258 -360
  1595. package/lib/esm/function/matrix/expm.js +24 -36
  1596. package/lib/esm/function/matrix/fft.js +128 -0
  1597. package/lib/esm/function/matrix/filter.js +4 -14
  1598. package/lib/esm/function/matrix/flatten.js +6 -7
  1599. package/lib/esm/function/matrix/forEach.js +6 -18
  1600. package/lib/esm/function/matrix/getMatrixDataType.js +2 -3
  1601. package/lib/esm/function/matrix/identity.js +10 -21
  1602. package/lib/esm/function/matrix/ifft.js +37 -0
  1603. package/lib/esm/function/matrix/inv.js +13 -32
  1604. package/lib/esm/function/matrix/kron.js +2 -6
  1605. package/lib/esm/function/matrix/map.js +23 -23
  1606. package/lib/esm/function/matrix/matrixFromColumns.js +88 -0
  1607. package/lib/esm/function/matrix/matrixFromFunction.js +74 -0
  1608. package/lib/esm/function/matrix/matrixFromRows.js +76 -0
  1609. package/lib/esm/function/matrix/ones.js +8 -16
  1610. package/lib/esm/function/matrix/partitionSelect.js +20 -23
  1611. package/lib/esm/function/matrix/pinv.js +179 -0
  1612. package/lib/esm/function/matrix/range.js +38 -137
  1613. package/lib/esm/function/matrix/reshape.js +8 -10
  1614. package/lib/esm/function/matrix/resize.js +6 -19
  1615. package/lib/esm/function/matrix/rotate.js +6 -15
  1616. package/lib/esm/function/matrix/rotationMatrix.js +4 -20
  1617. package/lib/esm/function/matrix/row.js +5 -5
  1618. package/lib/esm/function/matrix/size.js +2 -3
  1619. package/lib/esm/function/matrix/sort.js +5 -15
  1620. package/lib/esm/function/matrix/sqrtm.js +8 -15
  1621. package/lib/esm/function/matrix/squeeze.js +3 -4
  1622. package/lib/esm/function/matrix/subset.js +113 -58
  1623. package/lib/esm/function/matrix/trace.js +21 -31
  1624. package/lib/esm/function/matrix/transpose.js +79 -94
  1625. package/lib/esm/function/matrix/zeros.js +11 -17
  1626. package/lib/esm/function/numeric/solveODE.js +284 -0
  1627. package/lib/esm/function/probability/combinations.js +4 -9
  1628. package/lib/esm/function/probability/combinationsWithRep.js +2 -13
  1629. package/lib/esm/function/probability/factorial.js +2 -7
  1630. package/lib/esm/function/probability/gamma.js +48 -59
  1631. package/lib/esm/function/probability/kldivergence.js +6 -15
  1632. package/lib/esm/function/probability/lgamma.js +137 -0
  1633. package/lib/esm/function/probability/multinomial.js +1 -3
  1634. package/lib/esm/function/probability/permutations.js +6 -14
  1635. package/lib/esm/function/probability/pickRandom.js +6 -22
  1636. package/lib/esm/function/probability/random.js +6 -12
  1637. package/lib/esm/function/probability/randomInt.js +2 -6
  1638. package/lib/esm/function/probability/util/randomMatrix.js +0 -2
  1639. package/lib/esm/function/probability/util/seededRNG.js +6 -5
  1640. package/lib/esm/function/relational/compare.js +28 -72
  1641. package/lib/esm/function/relational/compareNatural.js +73 -93
  1642. package/lib/esm/function/relational/compareText.js +17 -47
  1643. package/lib/esm/function/relational/compareUnits.js +14 -0
  1644. package/lib/esm/function/relational/deepEqual.js +2 -6
  1645. package/lib/esm/function/relational/equal.js +26 -88
  1646. package/lib/esm/function/relational/equalScalar.js +7 -10
  1647. package/lib/esm/function/relational/equalText.js +1 -2
  1648. package/lib/esm/function/relational/larger.js +30 -78
  1649. package/lib/esm/function/relational/largerEq.js +30 -78
  1650. package/lib/esm/function/relational/smaller.js +30 -78
  1651. package/lib/esm/function/relational/smallerEq.js +30 -78
  1652. package/lib/esm/function/relational/unequal.js +26 -89
  1653. package/lib/esm/function/set/setCartesian.js +8 -11
  1654. package/lib/esm/function/set/setDifference.js +5 -12
  1655. package/lib/esm/function/set/setDistinct.js +5 -10
  1656. package/lib/esm/function/set/setIntersect.js +5 -10
  1657. package/lib/esm/function/set/setIsSubset.js +2 -8
  1658. package/lib/esm/function/set/setMultiplicity.js +1 -5
  1659. package/lib/esm/function/set/setPowerset.js +7 -14
  1660. package/lib/esm/function/set/setSize.js +4 -6
  1661. package/lib/esm/function/set/setSymDifference.js +1 -3
  1662. package/lib/esm/function/set/setUnion.js +1 -3
  1663. package/lib/esm/function/signal/freqz.js +115 -0
  1664. package/lib/esm/function/signal/zpk2tf.js +82 -0
  1665. package/lib/esm/function/special/erf.js +16 -26
  1666. package/lib/esm/function/special/zeta.js +148 -0
  1667. package/lib/esm/function/statistics/corr.js +84 -0
  1668. package/lib/esm/function/statistics/cumsum.js +123 -0
  1669. package/lib/esm/function/statistics/mad.js +1 -5
  1670. package/lib/esm/function/statistics/max.js +8 -13
  1671. package/lib/esm/function/statistics/mean.js +5 -10
  1672. package/lib/esm/function/statistics/median.js +10 -13
  1673. package/lib/esm/function/statistics/min.js +7 -12
  1674. package/lib/esm/function/statistics/mode.js +3 -12
  1675. package/lib/esm/function/statistics/prod.js +7 -8
  1676. package/lib/esm/function/statistics/quantileSeq.js +91 -200
  1677. package/lib/esm/function/statistics/std.js +10 -6
  1678. package/lib/esm/function/statistics/sum.js +8 -11
  1679. package/lib/esm/function/statistics/utils/improveErrorMessage.js +1 -4
  1680. package/lib/esm/function/statistics/variance.js +7 -15
  1681. package/lib/esm/function/string/bin.js +24 -3
  1682. package/lib/esm/function/string/format.js +39 -23
  1683. package/lib/esm/function/string/hex.js +25 -5
  1684. package/lib/esm/function/string/oct.js +26 -4
  1685. package/lib/esm/function/string/print.js +7 -7
  1686. package/lib/esm/function/trigonometry/acos.js +5 -9
  1687. package/lib/esm/function/trigonometry/acosh.js +3 -10
  1688. package/lib/esm/function/trigonometry/acot.js +7 -12
  1689. package/lib/esm/function/trigonometry/acoth.js +5 -10
  1690. package/lib/esm/function/trigonometry/acsc.js +7 -13
  1691. package/lib/esm/function/trigonometry/acsch.js +5 -9
  1692. package/lib/esm/function/trigonometry/asec.js +7 -12
  1693. package/lib/esm/function/trigonometry/asech.js +5 -12
  1694. package/lib/esm/function/trigonometry/asin.js +6 -11
  1695. package/lib/esm/function/trigonometry/asinh.js +5 -10
  1696. package/lib/esm/function/trigonometry/atan.js +6 -12
  1697. package/lib/esm/function/trigonometry/atan2.js +33 -69
  1698. package/lib/esm/function/trigonometry/atanh.js +5 -11
  1699. package/lib/esm/function/trigonometry/cos.js +11 -22
  1700. package/lib/esm/function/trigonometry/cosh.js +6 -22
  1701. package/lib/esm/function/trigonometry/cot.js +10 -20
  1702. package/lib/esm/function/trigonometry/coth.js +7 -22
  1703. package/lib/esm/function/trigonometry/csc.js +12 -22
  1704. package/lib/esm/function/trigonometry/csch.js +7 -22
  1705. package/lib/esm/function/trigonometry/sec.js +12 -22
  1706. package/lib/esm/function/trigonometry/sech.js +7 -22
  1707. package/lib/esm/function/trigonometry/sin.js +11 -23
  1708. package/lib/esm/function/trigonometry/sinh.js +6 -23
  1709. package/lib/esm/function/trigonometry/tan.js +11 -23
  1710. package/lib/esm/function/trigonometry/tanh.js +6 -23
  1711. package/lib/esm/function/trigonometry/trigUnit.js +14 -0
  1712. package/lib/esm/function/unit/to.js +17 -50
  1713. package/lib/esm/function/utils/clone.js +2 -3
  1714. package/lib/esm/function/utils/hasNumericValue.js +4 -3
  1715. package/lib/esm/function/utils/isInteger.js +4 -6
  1716. package/lib/esm/function/utils/isNaN.js +2 -3
  1717. package/lib/esm/function/utils/isNegative.js +4 -9
  1718. package/lib/esm/function/utils/isNumeric.js +5 -12
  1719. package/lib/esm/function/utils/isPositive.js +4 -9
  1720. package/lib/esm/function/utils/isPrime.js +56 -14
  1721. package/lib/esm/function/utils/isZero.js +14 -19
  1722. package/lib/esm/function/utils/numeric.js +13 -10
  1723. package/lib/esm/function/utils/typeOf.js +39 -46
  1724. package/lib/esm/header.js +1 -1
  1725. package/lib/esm/json/replacer.js +0 -1
  1726. package/lib/esm/json/reviver.js +1 -4
  1727. package/lib/esm/plain/bignumber/index.js +2 -1
  1728. package/lib/esm/plain/number/arithmetic.js +41 -74
  1729. package/lib/esm/plain/number/bitwise.js +0 -7
  1730. package/lib/esm/plain/number/combinations.js +17 -11
  1731. package/lib/esm/plain/number/probability.js +37 -11
  1732. package/lib/esm/type/bignumber/BigNumber.js +6 -10
  1733. package/lib/esm/type/bignumber/function/bignumber.js +23 -5
  1734. package/lib/esm/type/boolean.js +4 -10
  1735. package/lib/esm/type/chain/Chain.js +35 -35
  1736. package/lib/esm/type/chain/function/chain.js +1 -2
  1737. package/lib/esm/type/complex/Complex.js +14 -30
  1738. package/lib/esm/type/complex/function/complex.js +2 -7
  1739. package/lib/esm/type/fraction/Fraction.js +6 -4
  1740. package/lib/esm/type/fraction/function/fraction.js +28 -15
  1741. package/lib/esm/type/matrix/DenseMatrix.js +240 -220
  1742. package/lib/esm/type/matrix/FibonacciHeap.js +121 -159
  1743. package/lib/esm/type/matrix/ImmutableDenseMatrix.js +20 -39
  1744. package/lib/esm/type/matrix/Matrix.js +26 -34
  1745. package/lib/esm/type/matrix/MatrixIndex.js +64 -68
  1746. package/lib/esm/type/matrix/Range.js +14 -46
  1747. package/lib/esm/type/matrix/Spa.js +33 -51
  1748. package/lib/esm/type/matrix/SparseMatrix.js +504 -553
  1749. package/lib/esm/type/matrix/function/index.js +7 -6
  1750. package/lib/esm/type/matrix/function/matrix.js +4 -6
  1751. package/lib/esm/type/matrix/function/sparse.js +7 -2
  1752. package/lib/esm/type/matrix/utils/broadcast.js +69 -0
  1753. package/lib/esm/type/matrix/utils/{algorithm01.js → matAlgo01xDSid.js} +38 -35
  1754. package/lib/esm/type/matrix/utils/{algorithm02.js → matAlgo02xDS0.js} +45 -42
  1755. package/lib/esm/type/matrix/utils/{algorithm03.js → matAlgo03xDSf.js} +43 -40
  1756. package/lib/esm/type/matrix/utils/{algorithm04.js → matAlgo04xSidSid.js} +75 -72
  1757. package/lib/esm/type/matrix/utils/{algorithm05.js → matAlgo05xSfSf.js} +75 -73
  1758. package/lib/esm/type/matrix/utils/{algorithm06.js → matAlgo06xS0S0.js} +63 -59
  1759. package/lib/esm/type/matrix/utils/{algorithm07.js → matAlgo07xSSf.js} +49 -48
  1760. package/lib/esm/type/matrix/utils/{algorithm08.js → matAlgo08xS0Sid.js} +70 -67
  1761. package/lib/esm/type/matrix/utils/{algorithm09.js → matAlgo09xS0Sf.js} +59 -55
  1762. package/lib/esm/type/matrix/utils/{algorithm10.js → matAlgo10xSids.js} +35 -33
  1763. package/lib/esm/type/matrix/utils/{algorithm11.js → matAlgo11xS0s.js} +41 -38
  1764. package/lib/esm/type/matrix/utils/{algorithm12.js → matAlgo12xSfs.js} +35 -33
  1765. package/lib/esm/type/matrix/utils/{algorithm13.js → matAlgo13xDD.js} +29 -28
  1766. package/lib/esm/type/matrix/utils/{algorithm14.js → matAlgo14xDs.js} +21 -19
  1767. package/lib/esm/type/matrix/utils/matrixAlgorithmSuite.js +156 -0
  1768. package/lib/esm/type/number.js +76 -20
  1769. package/lib/esm/type/resultset/ResultSet.js +5 -11
  1770. package/lib/esm/type/string.js +2 -5
  1771. package/lib/esm/type/unit/Unit.js +361 -493
  1772. package/lib/esm/type/unit/function/createUnit.js +3 -3
  1773. package/lib/esm/type/unit/function/splitUnit.js +2 -3
  1774. package/lib/esm/type/unit/function/unit.js +14 -9
  1775. package/lib/esm/type/unit/physicalConstants.js +24 -17
  1776. package/lib/esm/utils/applyCallback.js +67 -0
  1777. package/lib/esm/utils/array.js +341 -137
  1778. package/lib/esm/utils/bignumber/bitwise.js +13 -89
  1779. package/lib/esm/utils/bignumber/constants.js +17 -9
  1780. package/lib/esm/utils/bignumber/formatter.js +94 -28
  1781. package/lib/esm/utils/bignumber/nearlyEqual.js +8 -9
  1782. package/lib/esm/utils/collection.js +25 -60
  1783. package/lib/esm/utils/complex.js +1 -1
  1784. package/lib/esm/utils/customs.js +31 -40
  1785. package/lib/esm/utils/emitter.js +3 -2
  1786. package/lib/esm/utils/factory.js +12 -20
  1787. package/lib/esm/utils/function.js +29 -20
  1788. package/lib/esm/utils/is.js +33 -23
  1789. package/lib/esm/utils/latex.js +10 -8
  1790. package/lib/esm/utils/log.js +0 -2
  1791. package/lib/esm/utils/lruQueue.js +51 -0
  1792. package/lib/esm/utils/map.js +120 -0
  1793. package/lib/esm/utils/number.js +158 -106
  1794. package/lib/esm/utils/object.js +34 -70
  1795. package/lib/esm/utils/print.js +1 -0
  1796. package/lib/esm/utils/product.js +0 -3
  1797. package/lib/esm/utils/scope.js +24 -0
  1798. package/lib/esm/utils/snapshot.js +37 -86
  1799. package/lib/esm/utils/string.js +36 -48
  1800. package/lib/esm/utils/switch.js +20 -0
  1801. package/lib/esm/version.js +2 -1
  1802. package/package.json +71 -45
  1803. package/types/EXPLANATION.md +54 -0
  1804. package/types/index.d.ts +6967 -0
  1805. package/types/tslint.json +6 -0
  1806. package/docs/command_line_interface.md +0 -87
  1807. package/docs/core/chaining.md +0 -41
  1808. package/docs/core/configuration.md +0 -144
  1809. package/docs/core/extension.md +0 -263
  1810. package/docs/core/index.md +0 -21
  1811. package/docs/core/serialization.md +0 -50
  1812. package/docs/custom_bundling.md +0 -116
  1813. package/docs/datatypes/bignumbers.md +0 -102
  1814. package/docs/datatypes/complex_numbers.md +0 -168
  1815. package/docs/datatypes/fractions.md +0 -75
  1816. package/docs/datatypes/index.md +0 -67
  1817. package/docs/datatypes/matrices.md +0 -343
  1818. package/docs/datatypes/numbers.md +0 -106
  1819. package/docs/datatypes/units.md +0 -444
  1820. package/docs/expressions/algebra.md +0 -83
  1821. package/docs/expressions/customization.md +0 -379
  1822. package/docs/expressions/expression_trees.md +0 -699
  1823. package/docs/expressions/html_classes.md +0 -38
  1824. package/docs/expressions/index.md +0 -21
  1825. package/docs/expressions/parsing.md +0 -207
  1826. package/docs/expressions/security.md +0 -89
  1827. package/docs/expressions/syntax.md +0 -648
  1828. package/docs/getting_started.md +0 -124
  1829. package/docs/index.md +0 -39
  1830. package/docs/reference/.gitignore +0 -1
  1831. package/docs/reference/.npmignore +0 -1
  1832. package/docs/reference/classes/densematrix.md +0 -247
  1833. package/docs/reference/classes/fibonacciheap.md +0 -70
  1834. package/docs/reference/classes/matrixindex.md +0 -133
  1835. package/docs/reference/classes/matrixrange.md +0 -158
  1836. package/docs/reference/classes/resultset.md +0 -47
  1837. package/docs/reference/classes/sparsematrix.md +0 -245
  1838. package/docs/reference/classes/unit.md +0 -242
  1839. package/docs/reference/classes.md +0 -86
  1840. package/docs/reference/constants.md +0 -29
  1841. package/docs/reference/functions/.gitignore +0 -1
  1842. package/docs/reference/functions/.npmignore +0 -1
  1843. package/docs/reference/functions/abs.md +0 -40
  1844. package/docs/reference/functions/acos.md +0 -43
  1845. package/docs/reference/functions/acosh.md +0 -41
  1846. package/docs/reference/functions/acot.md +0 -42
  1847. package/docs/reference/functions/acoth.md +0 -40
  1848. package/docs/reference/functions/acsc.md +0 -43
  1849. package/docs/reference/functions/acsch.md +0 -40
  1850. package/docs/reference/functions/add.md +0 -53
  1851. package/docs/reference/functions/and.md +0 -47
  1852. package/docs/reference/functions/apply.md +0 -50
  1853. package/docs/reference/functions/arg.md +0 -47
  1854. package/docs/reference/functions/asec.md +0 -43
  1855. package/docs/reference/functions/asech.md +0 -40
  1856. package/docs/reference/functions/asin.md +0 -43
  1857. package/docs/reference/functions/asinh.md +0 -40
  1858. package/docs/reference/functions/atan.md +0 -43
  1859. package/docs/reference/functions/atan2.md +0 -50
  1860. package/docs/reference/functions/atanh.md +0 -40
  1861. package/docs/reference/functions/bellNumbers.md +0 -39
  1862. package/docs/reference/functions/bignumber.md +0 -47
  1863. package/docs/reference/functions/bin.md +0 -38
  1864. package/docs/reference/functions/bitAnd.md +0 -45
  1865. package/docs/reference/functions/bitNot.md +0 -45
  1866. package/docs/reference/functions/bitOr.md +0 -46
  1867. package/docs/reference/functions/bitXor.md +0 -45
  1868. package/docs/reference/functions/boolean.md +0 -50
  1869. package/docs/reference/functions/catalan.md +0 -39
  1870. package/docs/reference/functions/cbrt.md +0 -54
  1871. package/docs/reference/functions/ceil.md +0 -57
  1872. package/docs/reference/functions/chain.md +0 -54
  1873. package/docs/reference/functions/clone.md +0 -37
  1874. package/docs/reference/functions/column.md +0 -39
  1875. package/docs/reference/functions/combinations.md +0 -43
  1876. package/docs/reference/functions/combinationsWithRep.md +0 -43
  1877. package/docs/reference/functions/compare.md +0 -61
  1878. package/docs/reference/functions/compareNatural.md +0 -86
  1879. package/docs/reference/functions/compareText.md +0 -48
  1880. package/docs/reference/functions/compile.md +0 -50
  1881. package/docs/reference/functions/complex.md +0 -61
  1882. package/docs/reference/functions/composition.md +0 -40
  1883. package/docs/reference/functions/concat.md +0 -50
  1884. package/docs/reference/functions/config.md +0 -44
  1885. package/docs/reference/functions/conj.md +0 -44
  1886. package/docs/reference/functions/cos.md +0 -45
  1887. package/docs/reference/functions/cosh.md +0 -40
  1888. package/docs/reference/functions/cot.md +0 -41
  1889. package/docs/reference/functions/coth.md +0 -43
  1890. package/docs/reference/functions/createUnit.md +0 -52
  1891. package/docs/reference/functions/cross.md +0 -52
  1892. package/docs/reference/functions/csc.md +0 -41
  1893. package/docs/reference/functions/csch.md +0 -43
  1894. package/docs/reference/functions/ctranspose.md +0 -44
  1895. package/docs/reference/functions/cube.md +0 -45
  1896. package/docs/reference/functions/deepEqual.md +0 -47
  1897. package/docs/reference/functions/derivative.md +0 -55
  1898. package/docs/reference/functions/det.md +0 -43
  1899. package/docs/reference/functions/diag.md +0 -55
  1900. package/docs/reference/functions/diff.md +0 -64
  1901. package/docs/reference/functions/distance.md +0 -74
  1902. package/docs/reference/functions/divide.md +0 -49
  1903. package/docs/reference/functions/dot.md +0 -42
  1904. package/docs/reference/functions/dotDivide.md +0 -46
  1905. package/docs/reference/functions/dotMultiply.md +0 -46
  1906. package/docs/reference/functions/dotPow.md +0 -43
  1907. package/docs/reference/functions/eigs.md +0 -48
  1908. package/docs/reference/functions/equal.md +0 -69
  1909. package/docs/reference/functions/equalText.md +0 -47
  1910. package/docs/reference/functions/erf.md +0 -43
  1911. package/docs/reference/functions/evaluate.md +0 -50
  1912. package/docs/reference/functions/exp.md +0 -48
  1913. package/docs/reference/functions/expm.md +0 -43
  1914. package/docs/reference/functions/expm1.md +0 -48
  1915. package/docs/reference/functions/factorial.md +0 -43
  1916. package/docs/reference/functions/filter.md +0 -44
  1917. package/docs/reference/functions/fix.md +0 -55
  1918. package/docs/reference/functions/flatten.md +0 -39
  1919. package/docs/reference/functions/floor.md +0 -56
  1920. package/docs/reference/functions/forEach.md +0 -35
  1921. package/docs/reference/functions/format.md +0 -104
  1922. package/docs/reference/functions/fraction.md +0 -45
  1923. package/docs/reference/functions/gamma.md +0 -43
  1924. package/docs/reference/functions/gcd.md +0 -44
  1925. package/docs/reference/functions/getMatrixDataType.md +0 -53
  1926. package/docs/reference/functions/hasNumericValue.md +0 -49
  1927. package/docs/reference/functions/help.md +0 -36
  1928. package/docs/reference/functions/hex.md +0 -38
  1929. package/docs/reference/functions/hypot.md +0 -45
  1930. package/docs/reference/functions/identity.md +0 -51
  1931. package/docs/reference/functions/im.md +0 -47
  1932. package/docs/reference/functions/import.md +0 -68
  1933. package/docs/reference/functions/index.md +0 -55
  1934. package/docs/reference/functions/intersect.md +0 -44
  1935. package/docs/reference/functions/inv.md +0 -39
  1936. package/docs/reference/functions/isInteger.md +0 -49
  1937. package/docs/reference/functions/isNaN.md +0 -50
  1938. package/docs/reference/functions/isNegative.md +0 -49
  1939. package/docs/reference/functions/isNumeric.md +0 -49
  1940. package/docs/reference/functions/isPositive.md +0 -51
  1941. package/docs/reference/functions/isPrime.md +0 -48
  1942. package/docs/reference/functions/isZero.md +0 -53
  1943. package/docs/reference/functions/kldivergence.md +0 -35
  1944. package/docs/reference/functions/kron.md +0 -47
  1945. package/docs/reference/functions/larger.md +0 -54
  1946. package/docs/reference/functions/largerEq.md +0 -50
  1947. package/docs/reference/functions/lcm.md +0 -48
  1948. package/docs/reference/functions/leftShift.md +0 -46
  1949. package/docs/reference/functions/log.md +0 -51
  1950. package/docs/reference/functions/log10.md +0 -44
  1951. package/docs/reference/functions/log1p.md +0 -48
  1952. package/docs/reference/functions/log2.md +0 -44
  1953. package/docs/reference/functions/lsolve.md +0 -45
  1954. package/docs/reference/functions/lsolveAll.md +0 -45
  1955. package/docs/reference/functions/lup.md +0 -46
  1956. package/docs/reference/functions/lusolve.md +0 -53
  1957. package/docs/reference/functions/mad.md +0 -44
  1958. package/docs/reference/functions/map.md +0 -42
  1959. package/docs/reference/functions/matrix.md +0 -56
  1960. package/docs/reference/functions/max.md +0 -55
  1961. package/docs/reference/functions/mean.md +0 -51
  1962. package/docs/reference/functions/median.md +0 -51
  1963. package/docs/reference/functions/min.md +0 -55
  1964. package/docs/reference/functions/mod.md +0 -53
  1965. package/docs/reference/functions/mode.md +0 -44
  1966. package/docs/reference/functions/multinomial.md +0 -40
  1967. package/docs/reference/functions/multiply.md +0 -54
  1968. package/docs/reference/functions/norm.md +0 -53
  1969. package/docs/reference/functions/not.md +0 -44
  1970. package/docs/reference/functions/nthRoot.md +0 -47
  1971. package/docs/reference/functions/nthRoots.md +0 -52
  1972. package/docs/reference/functions/number.md +0 -49
  1973. package/docs/reference/functions/numeric.md +0 -46
  1974. package/docs/reference/functions/oct.md +0 -38
  1975. package/docs/reference/functions/ones.md +0 -53
  1976. package/docs/reference/functions/or.md +0 -47
  1977. package/docs/reference/functions/parse.md +0 -56
  1978. package/docs/reference/functions/parser.md +0 -64
  1979. package/docs/reference/functions/partitionSelect.md +0 -47
  1980. package/docs/reference/functions/permutations.md +0 -45
  1981. package/docs/reference/functions/pickRandom.md +0 -53
  1982. package/docs/reference/functions/pow.md +0 -53
  1983. package/docs/reference/functions/print.md +0 -58
  1984. package/docs/reference/functions/prod.md +0 -49
  1985. package/docs/reference/functions/qr.md +0 -59
  1986. package/docs/reference/functions/quantileSeq.md +0 -56
  1987. package/docs/reference/functions/random.md +0 -48
  1988. package/docs/reference/functions/randomInt.md +0 -47
  1989. package/docs/reference/functions/range.md +0 -64
  1990. package/docs/reference/functions/rationalize.md +0 -62
  1991. package/docs/reference/functions/re.md +0 -47
  1992. package/docs/reference/functions/reshape.md +0 -50
  1993. package/docs/reference/functions/resize.md +0 -45
  1994. package/docs/reference/functions/rightArithShift.md +0 -46
  1995. package/docs/reference/functions/rightLogShift.md +0 -46
  1996. package/docs/reference/functions/rotate.md +0 -47
  1997. package/docs/reference/functions/rotationMatrix.md +0 -51
  1998. package/docs/reference/functions/round.md +0 -55
  1999. package/docs/reference/functions/row.md +0 -39
  2000. package/docs/reference/functions/sec.md +0 -41
  2001. package/docs/reference/functions/sech.md +0 -43
  2002. package/docs/reference/functions/setCartesian.md +0 -41
  2003. package/docs/reference/functions/setDifference.md +0 -41
  2004. package/docs/reference/functions/setDistinct.md +0 -37
  2005. package/docs/reference/functions/setIntersect.md +0 -40
  2006. package/docs/reference/functions/setIsSubset.md +0 -41
  2007. package/docs/reference/functions/setMultiplicity.md +0 -40
  2008. package/docs/reference/functions/setPowerset.md +0 -37
  2009. package/docs/reference/functions/setSize.md +0 -41
  2010. package/docs/reference/functions/setSymDifference.md +0 -41
  2011. package/docs/reference/functions/setUnion.md +0 -40
  2012. package/docs/reference/functions/sign.md +0 -46
  2013. package/docs/reference/functions/simplify.md +0 -90
  2014. package/docs/reference/functions/sin.md +0 -45
  2015. package/docs/reference/functions/sinh.md +0 -40
  2016. package/docs/reference/functions/size.md +0 -43
  2017. package/docs/reference/functions/slu.md +0 -51
  2018. package/docs/reference/functions/smaller.md +0 -54
  2019. package/docs/reference/functions/smallerEq.md +0 -50
  2020. package/docs/reference/functions/sort.md +0 -50
  2021. package/docs/reference/functions/sparse.md +0 -51
  2022. package/docs/reference/functions/splitUnit.md +0 -37
  2023. package/docs/reference/functions/sqrt.md +0 -44
  2024. package/docs/reference/functions/sqrtm.md +0 -40
  2025. package/docs/reference/functions/square.md +0 -45
  2026. package/docs/reference/functions/squeeze.md +0 -47
  2027. package/docs/reference/functions/std.md +0 -70
  2028. package/docs/reference/functions/stirlingS2.md +0 -42
  2029. package/docs/reference/functions/string.md +0 -49
  2030. package/docs/reference/functions/subset.md +0 -51
  2031. package/docs/reference/functions/subtract.md +0 -48
  2032. package/docs/reference/functions/sum.md +0 -47
  2033. package/docs/reference/functions/tan.md +0 -43
  2034. package/docs/reference/functions/tanh.md +0 -44
  2035. package/docs/reference/functions/to.md +0 -41
  2036. package/docs/reference/functions/trace.md +0 -44
  2037. package/docs/reference/functions/transpose.md +0 -43
  2038. package/docs/reference/functions/typeOf.md +0 -75
  2039. package/docs/reference/functions/typed.md +0 -56
  2040. package/docs/reference/functions/unaryMinus.md +0 -43
  2041. package/docs/reference/functions/unaryPlus.md +0 -42
  2042. package/docs/reference/functions/unequal.md +0 -68
  2043. package/docs/reference/functions/unit.md +0 -48
  2044. package/docs/reference/functions/usolve.md +0 -45
  2045. package/docs/reference/functions/usolveAll.md +0 -45
  2046. package/docs/reference/functions/variance.md +0 -72
  2047. package/docs/reference/functions/xgcd.md +0 -41
  2048. package/docs/reference/functions/xor.md +0 -47
  2049. package/docs/reference/functions/zeros.md +0 -51
  2050. package/docs/reference/functions.md +0 -285
  2051. package/docs/reference/index.md +0 -5
  2052. package/examples/advanced/convert_fraction_to_bignumber.js +0 -59
  2053. package/examples/advanced/custom_argument_parsing.js +0 -98
  2054. package/examples/advanced/custom_datatype.js +0 -53
  2055. package/examples/advanced/custom_evaluate_using_factories.js +0 -19
  2056. package/examples/advanced/custom_evaluate_using_import.js +0 -18
  2057. package/examples/advanced/custom_loading.js +0 -33
  2058. package/examples/advanced/custom_relational_functions.js +0 -62
  2059. package/examples/advanced/expression_trees.js +0 -55
  2060. package/examples/advanced/function_transform.js +0 -50
  2061. package/examples/advanced/more_secure_eval.js +0 -36
  2062. package/examples/advanced/use_bigint.js +0 -43
  2063. package/examples/advanced/web_server/math_worker.js +0 -24
  2064. package/examples/advanced/web_server/server.js +0 -80
  2065. package/examples/algebra.js +0 -34
  2066. package/examples/basic_usage.js +0 -49
  2067. package/examples/bignumbers.js +0 -52
  2068. package/examples/browser/angle_configuration.html +0 -134
  2069. package/examples/browser/basic_usage.html +0 -39
  2070. package/examples/browser/currency_conversion.html +0 -125
  2071. package/examples/browser/custom_separators.html +0 -81
  2072. package/examples/browser/plot.html +0 -78
  2073. package/examples/browser/pretty_printing_with_mathjax.html +0 -122
  2074. package/examples/browser/printing_html.html +0 -170
  2075. package/examples/browser/requirejs_loading.html +0 -20
  2076. package/examples/browser/rocket_trajectory_optimization.html +0 -152
  2077. package/examples/browser/webworkers/webworkers.html +0 -80
  2078. package/examples/browser/webworkers/worker.js +0 -28
  2079. package/examples/chaining.js +0 -56
  2080. package/examples/complex_numbers.js +0 -67
  2081. package/examples/expressions.js +0 -188
  2082. package/examples/fractions.js +0 -74
  2083. package/examples/import.js +0 -95
  2084. package/examples/matrices.js +0 -101
  2085. package/examples/objects.js +0 -35
  2086. package/examples/package.json +0 -3
  2087. package/examples/serialization.js +0 -16
  2088. package/examples/sparse_matrices.js +0 -19
  2089. package/examples/units.js +0 -108
  2090. package/lib/cjs/function/algebra/simplify/resolve.js +0 -70
  2091. package/lib/cjs/function/algebra/simplify/simplifyConstant.js +0 -332
  2092. package/lib/cjs/function/algebra/simplify/simplifyCore.js +0 -199
  2093. package/lib/cjs/function/string/baseUtils.js +0 -45
  2094. package/lib/cjs/utils/polyfills.js +0 -14
  2095. package/lib/esm/function/algebra/simplify/resolve.js +0 -62
  2096. package/lib/esm/function/algebra/simplify/simplifyConstant.js +0 -316
  2097. package/lib/esm/function/algebra/simplify/simplifyCore.js +0 -191
  2098. package/lib/esm/function/string/baseUtils.js +0 -38
  2099. package/lib/esm/utils/polyfills.js +0 -12
@@ -1,24 +1,21 @@
1
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
4
-
5
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
6
-
7
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
-
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+ import _extends from "@babel/runtime/helpers/extends";
3
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
4
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
9
5
  import { isComplex, isUnit, typeOf } from '../../utils/is.js';
10
6
  import { factory } from '../../utils/factory.js';
7
+ import { memoize } from '../../utils/function.js';
11
8
  import { endsWith } from '../../utils/string.js';
12
9
  import { clone, hasOwnProperty } from '../../utils/object.js';
13
10
  import { createBigNumberPi as createPi } from '../../utils/bignumber/constants.js';
14
11
  var name = 'Unit';
15
- var dependencies = ['?on', 'config', 'addScalar', 'subtract', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
16
- export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) => {
12
+ var dependencies = ['?on', 'config', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
13
+ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, _ref => {
17
14
  var {
18
15
  on,
19
16
  config,
20
17
  addScalar,
21
- subtract,
18
+ subtractScalar,
22
19
  multiplyScalar,
23
20
  divideScalar,
24
21
  pow,
@@ -28,17 +25,17 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
28
25
  equal,
29
26
  isNumeric,
30
27
  format,
31
- number,
28
+ number: _number,
32
29
  Complex,
33
30
  BigNumber: _BigNumber,
34
31
  Fraction: _Fraction
35
32
  } = _ref;
36
- var toNumber = number;
33
+ var toNumber = _number;
37
34
  /**
38
35
  * A unit can be constructed in the following ways:
39
36
  *
40
- * const a = new Unit(value, name)
41
- * const b = new Unit(null, name)
37
+ * const a = new Unit(value, valuelessUnit)
38
+ * const b = new Unit(null, valuelessUnit)
42
39
  * const c = Unit.parse(str)
43
40
  *
44
41
  * Example usage:
@@ -51,105 +48,91 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
51
48
  * @class Unit
52
49
  * @constructor Unit
53
50
  * @param {number | BigNumber | Fraction | Complex | boolean} [value] A value like 5.2
54
- * @param {string} [name] A unit name like "cm" or "inch", or a derived unit of the form: "u1[^ex1] [u2[^ex2] ...] [/ u3[^ex3] [u4[^ex4]]]", such as "kg m^2/s^2", where each unit appearing after the forward slash is taken to be in the denominator. "kg m^2 s^-2" is a synonym and is also acceptable. Any of the units can include a prefix.
51
+ * @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like "cm"
55
52
  */
56
-
57
- function Unit(value, name) {
53
+ function Unit(value, valuelessUnit) {
58
54
  if (!(this instanceof Unit)) {
59
55
  throw new Error('Constructor must be called with the new operator');
60
56
  }
61
-
62
57
  if (!(value === null || value === undefined || isNumeric(value) || isComplex(value))) {
63
58
  throw new TypeError('First parameter in Unit constructor must be number, BigNumber, Fraction, Complex, or undefined');
64
59
  }
65
-
66
- if (name !== undefined && (typeof name !== 'string' || name === '')) {
67
- throw new TypeError('Second parameter in Unit constructor must be a string');
68
- }
69
-
70
- if (name !== undefined) {
71
- var u = Unit.parse(name);
72
- this.units = u.units;
73
- this.dimensions = u.dimensions;
74
- } else {
75
- this.units = [{
76
- unit: UNIT_NONE,
77
- prefix: PREFIXES.NONE,
78
- // link to a list with supported prefixes
79
- power: 0
80
- }];
81
- this.dimensions = [];
82
-
83
- for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
84
- this.dimensions[i] = 0;
85
- }
86
- }
87
-
88
- this.value = value !== undefined && value !== null ? this._normalize(value) : null;
89
60
  this.fixPrefix = false; // if true, function format will not search for the
90
61
  // best prefix but leave it as initially provided.
91
62
  // fixPrefix is set true by the method Unit.to
92
- // The justification behind this is that if the constructor is explicitly called,
93
- // the caller wishes the units to be returned exactly as he supplied.
94
63
 
64
+ // The justification behind this is that if the constructor is explicitly called,
65
+ // the caller wishes the units to be returned exactly as supplied.
95
66
  this.skipAutomaticSimplification = true;
67
+ if (valuelessUnit === undefined) {
68
+ this.units = [];
69
+ this.dimensions = BASE_DIMENSIONS.map(x => 0);
70
+ } else if (typeof valuelessUnit === 'string') {
71
+ var u = Unit.parse(valuelessUnit);
72
+ this.units = u.units;
73
+ this.dimensions = u.dimensions;
74
+ } else if (isUnit(valuelessUnit) && valuelessUnit.value === null) {
75
+ // clone from valuelessUnit
76
+ this.fixPrefix = valuelessUnit.fixPrefix;
77
+ this.skipAutomaticSimplification = valuelessUnit.skipAutomaticSimplification;
78
+ this.dimensions = valuelessUnit.dimensions.slice(0);
79
+ this.units = valuelessUnit.units.map(u => _extends({}, u));
80
+ } else {
81
+ throw new TypeError('Second parameter in Unit constructor must be a string or valueless Unit');
82
+ }
83
+ this.value = this._normalize(value);
96
84
  }
85
+
97
86
  /**
98
87
  * Attach type information
99
88
  */
100
-
101
-
89
+ Object.defineProperty(Unit, 'name', {
90
+ value: 'Unit'
91
+ });
92
+ Unit.prototype.constructor = Unit;
102
93
  Unit.prototype.type = 'Unit';
103
- Unit.prototype.isUnit = true; // private variables and functions for the Unit parser
94
+ Unit.prototype.isUnit = true;
104
95
 
96
+ // private variables and functions for the Unit parser
105
97
  var text, index, c;
106
-
107
98
  function skipWhitespace() {
108
99
  while (c === ' ' || c === '\t') {
109
100
  next();
110
101
  }
111
102
  }
112
-
113
103
  function isDigitDot(c) {
114
104
  return c >= '0' && c <= '9' || c === '.';
115
105
  }
116
-
117
106
  function isDigit(c) {
118
107
  return c >= '0' && c <= '9';
119
108
  }
120
-
121
109
  function next() {
122
110
  index++;
123
111
  c = text.charAt(index);
124
112
  }
125
-
126
113
  function revert(oldIndex) {
127
114
  index = oldIndex;
128
115
  c = text.charAt(index);
129
116
  }
130
-
131
117
  function parseNumber() {
132
118
  var number = '';
133
119
  var oldIndex = index;
134
-
135
120
  if (c === '+') {
136
121
  next();
137
122
  } else if (c === '-') {
138
123
  number += c;
139
124
  next();
140
125
  }
141
-
142
126
  if (!isDigitDot(c)) {
143
127
  // a + or - must be followed by a digit
144
128
  revert(oldIndex);
145
129
  return null;
146
- } // get number, can have a single dot
147
-
130
+ }
148
131
 
132
+ // get number, can have a single dot
149
133
  if (c === '.') {
150
134
  number += c;
151
135
  next();
152
-
153
136
  if (!isDigit(c)) {
154
137
  // this is no legal number, it is just a dot
155
138
  revert(oldIndex);
@@ -160,68 +143,62 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
160
143
  number += c;
161
144
  next();
162
145
  }
163
-
164
146
  if (c === '.') {
165
147
  number += c;
166
148
  next();
167
149
  }
168
150
  }
169
-
170
151
  while (isDigit(c)) {
171
152
  number += c;
172
153
  next();
173
- } // check for exponential notation like "2.3e-4" or "1.23e50"
174
-
154
+ }
175
155
 
156
+ // check for exponential notation like "2.3e-4" or "1.23e50"
176
157
  if (c === 'E' || c === 'e') {
177
158
  // The grammar branches here. This could either be part of an exponent or the start of a unit that begins with the letter e, such as "4exabytes"
159
+
178
160
  var tentativeNumber = '';
179
161
  var tentativeIndex = index;
180
162
  tentativeNumber += c;
181
163
  next();
182
-
183
164
  if (c === '+' || c === '-') {
184
165
  tentativeNumber += c;
185
166
  next();
186
- } // Scientific notation MUST be followed by an exponent (otherwise we assume it is not scientific notation)
187
-
167
+ }
188
168
 
169
+ // Scientific notation MUST be followed by an exponent (otherwise we assume it is not scientific notation)
189
170
  if (!isDigit(c)) {
190
171
  // The e or E must belong to something else, so return the number without the e or E.
191
172
  revert(tentativeIndex);
192
173
  return number;
193
- } // We can now safely say that this is scientific notation.
194
-
174
+ }
195
175
 
176
+ // We can now safely say that this is scientific notation.
196
177
  number = number + tentativeNumber;
197
-
198
178
  while (isDigit(c)) {
199
179
  number += c;
200
180
  next();
201
181
  }
202
182
  }
203
-
204
183
  return number;
205
184
  }
206
-
207
185
  function parseUnit() {
208
- var unitName = ''; // Alphanumeric characters only; matches [a-zA-Z0-9]
186
+ var unitName = '';
209
187
 
188
+ // Alphanumeric characters only; matches [a-zA-Z0-9]
210
189
  while (isDigit(c) || Unit.isValidAlpha(c)) {
211
190
  unitName += c;
212
191
  next();
213
- } // Must begin with [a-zA-Z]
214
-
192
+ }
215
193
 
194
+ // Must begin with [a-zA-Z]
216
195
  var firstC = unitName.charAt(0);
217
-
218
196
  if (Unit.isValidAlpha(firstC)) {
219
197
  return unitName;
220
198
  } else {
221
199
  return null;
222
200
  }
223
201
  }
224
-
225
202
  function parseCharacter(toFind) {
226
203
  if (c === toFind) {
227
204
  next();
@@ -230,6 +207,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
230
207
  return null;
231
208
  }
232
209
  }
210
+
233
211
  /**
234
212
  * Parse a string into a unit. The value of the unit is parsed as number,
235
213
  * BigNumber, or Fraction depending on the math.js config setting `number`.
@@ -240,24 +218,23 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
240
218
  * @param {string} str A string like "5.2 inch", "4e2 cm/s^2"
241
219
  * @return {Unit} unit
242
220
  */
243
-
244
-
245
221
  Unit.parse = function (str, options) {
246
222
  options = options || {};
247
223
  text = str;
248
224
  index = -1;
249
225
  c = '';
250
-
251
226
  if (typeof text !== 'string') {
252
227
  throw new TypeError('Invalid argument in Unit.parse, string expected');
253
228
  }
254
-
255
229
  var unit = new Unit();
256
230
  unit.units = [];
257
231
  var powerMultiplierCurrent = 1;
258
- var expectingUnit = false; // A unit should follow this pattern:
232
+ var expectingUnit = false;
233
+
234
+ // A unit should follow this pattern:
259
235
  // [number] ...[ [*/] unit[^number] ]
260
236
  // unit[^number] ... [ [*/] unit[^number] ]
237
+
261
238
  // Rules:
262
239
  // number is any floating point number.
263
240
  // unit is any alphanumeric string beginning with an alpha. Units with names like e3 should be avoided because they look like the exponent of a floating point number!
@@ -269,11 +246,11 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
269
246
  // 4erg
270
247
 
271
248
  next();
272
- skipWhitespace(); // Optional number at the start of the string
249
+ skipWhitespace();
273
250
 
251
+ // Optional number at the start of the string
274
252
  var valueStr = parseNumber();
275
253
  var value = null;
276
-
277
254
  if (valueStr) {
278
255
  if (config.number === 'BigNumber') {
279
256
  value = new _BigNumber(valueStr);
@@ -288,10 +265,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
288
265
  // number
289
266
  value = parseFloat(valueStr);
290
267
  }
291
-
292
268
  skipWhitespace(); // Whitespace is not required here
293
- // handle multiplication or division right after the value, like '1/s'
294
269
 
270
+ // handle multiplication or division right after the value, like '1/s'
295
271
  if (parseCharacter('*')) {
296
272
  powerMultiplierCurrent = 1;
297
273
  expectingUnit = true;
@@ -299,93 +275,83 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
299
275
  powerMultiplierCurrent = -1;
300
276
  expectingUnit = true;
301
277
  }
302
- } // Stack to keep track of powerMultipliers applied to each parentheses group
303
-
278
+ }
304
279
 
305
- var powerMultiplierStack = []; // Running product of all elements in powerMultiplierStack
280
+ // Stack to keep track of powerMultipliers applied to each parentheses group
281
+ var powerMultiplierStack = [];
306
282
 
283
+ // Running product of all elements in powerMultiplierStack
307
284
  var powerMultiplierStackProduct = 1;
308
-
309
285
  while (true) {
310
- skipWhitespace(); // Check for and consume opening parentheses, pushing powerMultiplierCurrent to the stack
311
- // A '(' will always appear directly before a unit.
286
+ skipWhitespace();
312
287
 
288
+ // Check for and consume opening parentheses, pushing powerMultiplierCurrent to the stack
289
+ // A '(' will always appear directly before a unit.
313
290
  while (c === '(') {
314
291
  powerMultiplierStack.push(powerMultiplierCurrent);
315
292
  powerMultiplierStackProduct *= powerMultiplierCurrent;
316
293
  powerMultiplierCurrent = 1;
317
294
  next();
318
295
  skipWhitespace();
319
- } // Is there something here?
320
-
296
+ }
321
297
 
298
+ // Is there something here?
322
299
  var uStr = void 0;
323
-
324
300
  if (c) {
325
301
  var oldC = c;
326
302
  uStr = parseUnit();
327
-
328
303
  if (uStr === null) {
329
304
  throw new SyntaxError('Unexpected "' + oldC + '" in "' + text + '" at index ' + index.toString());
330
305
  }
331
306
  } else {
332
307
  // End of input.
333
308
  break;
334
- } // Verify the unit exists and get the prefix (if any)
335
-
309
+ }
336
310
 
311
+ // Verify the unit exists and get the prefix (if any)
337
312
  var res = _findUnit(uStr);
338
-
339
313
  if (res === null) {
340
314
  // Unit not found.
341
315
  throw new SyntaxError('Unit "' + uStr + '" not found.');
342
316
  }
343
-
344
- var power = powerMultiplierCurrent * powerMultiplierStackProduct; // Is there a "^ number"?
345
-
317
+ var power = powerMultiplierCurrent * powerMultiplierStackProduct;
318
+ // Is there a "^ number"?
346
319
  skipWhitespace();
347
-
348
320
  if (parseCharacter('^')) {
349
321
  skipWhitespace();
350
322
  var p = parseNumber();
351
-
352
323
  if (p === null) {
353
324
  // No valid number found for the power!
354
325
  throw new SyntaxError('In "' + str + '", "^" must be followed by a floating-point number');
355
326
  }
356
-
357
327
  power *= p;
358
- } // Add the unit to the list
359
-
328
+ }
360
329
 
330
+ // Add the unit to the list
361
331
  unit.units.push({
362
332
  unit: res.unit,
363
333
  prefix: res.prefix,
364
- power: power
334
+ power
365
335
  });
366
-
367
336
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
368
337
  unit.dimensions[i] += (res.unit.dimensions[i] || 0) * power;
369
- } // Check for and consume closing parentheses, popping from the stack.
370
- // A ')' will always follow a unit.
371
-
338
+ }
372
339
 
340
+ // Check for and consume closing parentheses, popping from the stack.
341
+ // A ')' will always follow a unit.
373
342
  skipWhitespace();
374
-
375
343
  while (c === ')') {
376
344
  if (powerMultiplierStack.length === 0) {
377
345
  throw new SyntaxError('Unmatched ")" in "' + text + '" at index ' + index.toString());
378
346
  }
379
-
380
347
  powerMultiplierStackProduct /= powerMultiplierStack.pop();
381
348
  next();
382
349
  skipWhitespace();
383
- } // "*" and "/" should mean we are expecting something to come next.
384
- // Is there a forward slash? If so, negate powerMultiplierCurrent. The next unit or paren group is in the denominator.
385
-
350
+ }
386
351
 
352
+ // "*" and "/" should mean we are expecting something to come next.
353
+ // Is there a forward slash? If so, negate powerMultiplierCurrent. The next unit or paren group is in the denominator.
387
354
  expectingUnit = false;
388
-
389
355
  if (parseCharacter('*')) {
390
356
  // explicit multiplication
391
357
  powerMultiplierCurrent = 1;
@@ -397,9 +363,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
397
363
  } else {
398
364
  // implicit multiplication
399
365
  powerMultiplierCurrent = 1;
400
- } // Replace the unit into the auto unit system
401
-
366
+ }
402
367
 
368
+ // Replace the unit into the auto unit system
403
369
  if (res.unit.base) {
404
370
  var baseDim = res.unit.base.key;
405
371
  UNIT_SYSTEMS.auto[baseDim] = {
@@ -407,40 +373,37 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
407
373
  prefix: res.prefix
408
374
  };
409
375
  }
410
- } // Has the string been entirely consumed?
411
-
376
+ }
412
377
 
378
+ // Has the string been entirely consumed?
413
379
  skipWhitespace();
414
-
415
380
  if (c) {
416
381
  throw new SyntaxError('Could not parse: "' + str + '"');
417
- } // Is there a trailing slash?
418
-
382
+ }
419
383
 
384
+ // Is there a trailing slash?
420
385
  if (expectingUnit) {
421
386
  throw new SyntaxError('Trailing characters: "' + str + '"');
422
- } // Is the parentheses stack empty?
423
-
387
+ }
424
388
 
389
+ // Is the parentheses stack empty?
425
390
  if (powerMultiplierStack.length !== 0) {
426
391
  throw new SyntaxError('Unmatched "(" in "' + text + '"');
427
- } // Are there any units at all?
428
-
392
+ }
429
393
 
394
+ // Are there any units at all?
430
395
  if (unit.units.length === 0 && !options.allowNoUnits) {
431
396
  throw new SyntaxError('"' + str + '" contains no units');
432
397
  }
433
-
434
398
  unit.value = value !== undefined ? unit._normalize(value) : null;
435
399
  return unit;
436
400
  };
401
+
437
402
  /**
438
403
  * create a copy of this unit
439
404
  * @memberof Unit
440
405
  * @return {Unit} Returns a cloned version of the unit
441
406
  */
442
-
443
-
444
407
  Unit.prototype.clone = function () {
445
408
  var unit = new Unit();
446
409
  unit.fixPrefix = this.fixPrefix;
@@ -448,33 +411,39 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
448
411
  unit.value = clone(this.value);
449
412
  unit.dimensions = this.dimensions.slice(0);
450
413
  unit.units = [];
451
-
452
414
  for (var i = 0; i < this.units.length; i++) {
453
415
  unit.units[i] = {};
454
-
455
416
  for (var p in this.units[i]) {
456
417
  if (hasOwnProperty(this.units[i], p)) {
457
418
  unit.units[i][p] = this.units[i][p];
458
419
  }
459
420
  }
460
421
  }
461
-
462
422
  return unit;
463
423
  };
424
+
425
+ /**
426
+ * Return the type of the value of this unit
427
+ *
428
+ * @memberof Unit
429
+ * @ return {string} type of the value of the unit
430
+ */
431
+ Unit.prototype.valueType = function () {
432
+ return typeOf(this.value);
433
+ };
434
+
464
435
  /**
465
436
  * Return whether the unit is derived (such as m/s, or cm^2, but not N)
466
437
  * @memberof Unit
467
438
  * @return {boolean} True if the unit is derived
468
439
  */
469
-
470
-
471
440
  Unit.prototype._isDerived = function () {
472
441
  if (this.units.length === 0) {
473
442
  return false;
474
443
  }
475
-
476
444
  return this.units.length > 1 || Math.abs(this.units[0].power - 1.0) > 1e-15;
477
445
  };
446
+
478
447
  /**
479
448
  * Normalize a value, based on its currently set unit(s)
480
449
  * @memberof Unit
@@ -482,38 +451,22 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
482
451
  * @return {number | BigNumber | Fraction | boolean} normalized value
483
452
  * @private
484
453
  */
485
-
486
-
487
454
  Unit.prototype._normalize = function (value) {
488
- var unitValue, unitOffset, unitPower, unitPrefixValue;
489
- var convert;
490
-
491
455
  if (value === null || value === undefined || this.units.length === 0) {
492
456
  return value;
493
- } else if (this._isDerived()) {
494
- // This is a derived unit, so do not apply offsets.
495
- // For example, with J kg^-1 degC^-1 you would NOT want to apply the offset.
496
- var res = value;
497
- convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
498
-
499
- for (var i = 0; i < this.units.length; i++) {
500
- unitValue = convert(this.units[i].unit.value);
501
- unitPrefixValue = convert(this.units[i].prefix.value);
502
- unitPower = convert(this.units[i].power);
503
- res = multiplyScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
504
- }
505
-
506
- return res;
507
- } else {
508
- // This is a single unit of power 1, like kg or degC
509
- convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
457
+ }
458
+ var res = value;
459
+ var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
510
460
 
511
- unitValue = convert(this.units[0].unit.value);
512
- unitOffset = convert(this.units[0].unit.offset);
513
- unitPrefixValue = convert(this.units[0].prefix.value);
514
- return multiplyScalar(addScalar(value, unitOffset), multiplyScalar(unitValue, unitPrefixValue));
461
+ for (var i = 0; i < this.units.length; i++) {
462
+ var unitValue = convert(this.units[i].unit.value);
463
+ var unitPrefixValue = convert(this.units[i].prefix.value);
464
+ var unitPower = convert(this.units[i].power);
465
+ res = multiplyScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
515
466
  }
467
+ return res;
516
468
  };
469
+
517
470
  /**
518
471
  * Denormalize a value, based on its currently set unit(s)
519
472
  * @memberof Unit
@@ -522,44 +475,22 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
522
475
  * @return {number} denormalized value
523
476
  * @private
524
477
  */
525
-
526
-
527
478
  Unit.prototype._denormalize = function (value, prefixValue) {
528
- var unitValue, unitOffset, unitPower, unitPrefixValue;
529
- var convert;
530
-
531
479
  if (value === null || value === undefined || this.units.length === 0) {
532
480
  return value;
533
- } else if (this._isDerived()) {
534
- // This is a derived unit, so do not apply offsets.
535
- // For example, with J kg^-1 degC^-1 you would NOT want to apply the offset.
536
- // Also, prefixValue is ignored--but we will still use the prefix value stored in each unit, since kg is usually preferable to g unless the user decides otherwise.
537
- var res = value;
538
- convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
539
-
540
- for (var i = 0; i < this.units.length; i++) {
541
- unitValue = convert(this.units[i].unit.value);
542
- unitPrefixValue = convert(this.units[i].prefix.value);
543
- unitPower = convert(this.units[i].power);
544
- res = divideScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
545
- }
546
-
547
- return res;
548
- } else {
549
- // This is a single unit of power 1, like kg or degC
550
- convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
551
-
552
- unitValue = convert(this.units[0].unit.value);
553
- unitPrefixValue = convert(this.units[0].prefix.value);
554
- unitOffset = convert(this.units[0].unit.offset);
481
+ }
482
+ var res = value;
483
+ var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
555
484
 
556
- if (prefixValue === undefined || prefixValue === null) {
557
- return subtract(divideScalar(divideScalar(value, unitValue), unitPrefixValue), unitOffset);
558
- } else {
559
- return subtract(divideScalar(divideScalar(value, unitValue), prefixValue), unitOffset);
560
- }
485
+ for (var i = 0; i < this.units.length; i++) {
486
+ var unitValue = convert(this.units[i].unit.value);
487
+ var unitPrefixValue = convert(this.units[i].prefix.value);
488
+ var unitPower = convert(this.units[i].power);
489
+ res = divideScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
561
490
  }
491
+ return res;
562
492
  };
493
+
563
494
  /**
564
495
  * Find a unit from a string
565
496
  * @memberof Unit
@@ -568,9 +499,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
568
499
  * prefix is returned. Else, null is returned.
569
500
  * @private
570
501
  */
571
-
572
-
573
- function _findUnit(str) {
502
+ var _findUnit = memoize(str => {
574
503
  // First, match units names exactly. For example, a user could define 'mm' as 10^-4 m, which is silly, but then we would want 'mm' to match the user-defined unit.
575
504
  if (hasOwnProperty(UNITS, str)) {
576
505
  var unit = UNITS[str];
@@ -580,16 +509,13 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
580
509
  prefix
581
510
  };
582
511
  }
583
-
584
512
  for (var _name in UNITS) {
585
513
  if (hasOwnProperty(UNITS, _name)) {
586
514
  if (endsWith(str, _name)) {
587
515
  var _unit = UNITS[_name];
588
516
  var prefixLen = str.length - _name.length;
589
517
  var prefixName = str.substring(0, prefixLen);
590
-
591
518
  var _prefix = hasOwnProperty(_unit.prefixes, prefixName) ? _unit.prefixes[prefixName] : undefined;
592
-
593
519
  if (_prefix !== undefined) {
594
520
  // store unit, prefix, and value
595
521
  return {
@@ -600,9 +526,12 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
600
526
  }
601
527
  }
602
528
  }
603
-
604
529
  return null;
605
- }
530
+ }, {
531
+ hasher: args => args[0],
532
+ limit: 100
533
+ });
534
+
606
535
  /**
607
536
  * Test if the given expression is a unit.
608
537
  * The unit can have a prefix but cannot have a value.
@@ -611,37 +540,33 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
611
540
  * The unit can have prefix, like "cm"
612
541
  * @return {boolean} true if the given string is a unit
613
542
  */
614
-
615
-
616
543
  Unit.isValuelessUnit = function (name) {
617
544
  return _findUnit(name) !== null;
618
545
  };
546
+
619
547
  /**
620
548
  * check if this unit has given base unit
621
549
  * If this unit is a derived unit, this will ALWAYS return false, since by definition base units are not derived.
622
550
  * @memberof Unit
623
551
  * @param {BASE_UNITS | string | undefined} base
624
552
  */
625
-
626
-
627
553
  Unit.prototype.hasBase = function (base) {
628
554
  if (typeof base === 'string') {
629
555
  base = BASE_UNITS[base];
630
556
  }
631
-
632
557
  if (!base) {
633
558
  return false;
634
- } // All dimensions must be the same
635
-
559
+ }
636
560
 
561
+ // All dimensions must be the same
637
562
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
638
563
  if (Math.abs((this.dimensions[i] || 0) - (base.dimensions[i] || 0)) > 1e-12) {
639
564
  return false;
640
565
  }
641
566
  }
642
-
643
567
  return true;
644
568
  };
569
+
645
570
  /**
646
571
  * Check if this unit has a base or bases equal to another base or bases
647
572
  * For derived units, the exponent on each base also must match
@@ -649,8 +574,6 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
649
574
  * @param {Unit} other
650
575
  * @return {boolean} true if equal base
651
576
  */
652
-
653
-
654
577
  Unit.prototype.equalBase = function (other) {
655
578
  // All dimensions must be the same
656
579
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
@@ -658,45 +581,41 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
658
581
  return false;
659
582
  }
660
583
  }
661
-
662
584
  return true;
663
585
  };
586
+
664
587
  /**
665
588
  * Check if this unit equals another unit
666
589
  * @memberof Unit
667
590
  * @param {Unit} other
668
591
  * @return {boolean} true if both units are equal
669
592
  */
670
-
671
-
672
593
  Unit.prototype.equals = function (other) {
673
594
  return this.equalBase(other) && equal(this.value, other.value);
674
595
  };
596
+
675
597
  /**
676
- * Multiply this unit with another one
598
+ * Multiply this unit with another one or with a scalar
677
599
  * @memberof Unit
678
600
  * @param {Unit} other
679
601
  * @return {Unit} product of this unit and the other unit
680
602
  */
681
-
682
-
683
- Unit.prototype.multiply = function (other) {
603
+ Unit.prototype.multiply = function (_other) {
684
604
  var res = this.clone();
685
-
605
+ var other = isUnit(_other) ? _other : new Unit(_other);
686
606
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
687
607
  // Dimensions arrays may be of different lengths. Default to 0.
688
608
  res.dimensions[i] = (this.dimensions[i] || 0) + (other.dimensions[i] || 0);
689
- } // Append other's units list onto res
690
-
609
+ }
691
610
 
611
+ // Append other's units list onto res
692
612
  for (var _i = 0; _i < other.units.length; _i++) {
693
613
  // Make a shallow copy of every unit
694
614
  var inverted = _objectSpread({}, other.units[_i]);
695
-
696
615
  res.units.push(inverted);
697
- } // If at least one operand has a value, then the result should also have a value
698
-
616
+ }
699
617
 
618
+ // If at least one operand has a value, then the result should also have a value
700
619
  if (this.value !== null || other.value !== null) {
701
620
  var valThis = this.value === null ? this._normalize(1) : this.value;
702
621
  var valOther = other.value === null ? other._normalize(1) : other.value;
@@ -704,37 +623,47 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
704
623
  } else {
705
624
  res.value = null;
706
625
  }
707
-
708
- res.skipAutomaticSimplification = false;
626
+ if (isUnit(_other)) {
627
+ res.skipAutomaticSimplification = false;
628
+ }
709
629
  return getNumericIfUnitless(res);
710
630
  };
631
+
632
+ /**
633
+ * Divide a number by this unit
634
+ *
635
+ * @memberof Unit
636
+ * @param {numeric} numerator
637
+ * @param {unit} result of dividing numerator by this unit
638
+ */
639
+ Unit.prototype.divideInto = function (numerator) {
640
+ return new Unit(numerator).divide(this);
641
+ };
642
+
711
643
  /**
712
644
  * Divide this unit by another one
713
645
  * @memberof Unit
714
- * @param {Unit} other
646
+ * @param {Unit | numeric} other
715
647
  * @return {Unit} result of dividing this unit by the other unit
716
648
  */
717
-
718
-
719
- Unit.prototype.divide = function (other) {
649
+ Unit.prototype.divide = function (_other) {
720
650
  var res = this.clone();
721
-
651
+ var other = isUnit(_other) ? _other : new Unit(_other);
722
652
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
723
653
  // Dimensions arrays may be of different lengths. Default to 0.
724
654
  res.dimensions[i] = (this.dimensions[i] || 0) - (other.dimensions[i] || 0);
725
- } // Invert and append other's units list onto res
726
-
655
+ }
727
656
 
657
+ // Invert and append other's units list onto res
728
658
  for (var _i2 = 0; _i2 < other.units.length; _i2++) {
729
659
  // Make a shallow copy of every unit
730
660
  var inverted = _objectSpread(_objectSpread({}, other.units[_i2]), {}, {
731
661
  power: -other.units[_i2].power
732
662
  });
733
-
734
663
  res.units.push(inverted);
735
- } // If at least one operand has a value, the result should have a value
736
-
664
+ }
737
665
 
666
+ // If at least one operand has a value, the result should have a value
738
667
  if (this.value !== null || other.value !== null) {
739
668
  var valThis = this.value === null ? this._normalize(1) : this.value;
740
669
  var valOther = other.value === null ? other._normalize(1) : other.value;
@@ -742,33 +671,33 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
742
671
  } else {
743
672
  res.value = null;
744
673
  }
745
-
746
- res.skipAutomaticSimplification = false;
674
+ if (isUnit(_other)) {
675
+ res.skipAutomaticSimplification = false;
676
+ }
747
677
  return getNumericIfUnitless(res);
748
678
  };
679
+
749
680
  /**
750
681
  * Calculate the power of a unit
751
682
  * @memberof Unit
752
683
  * @param {number | Fraction | BigNumber} p
753
684
  * @returns {Unit} The result: this^p
754
685
  */
755
-
756
-
757
686
  Unit.prototype.pow = function (p) {
758
687
  var res = this.clone();
759
-
760
688
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
761
689
  // Dimensions arrays may be of different lengths. Default to 0.
762
690
  res.dimensions[i] = (this.dimensions[i] || 0) * p;
763
- } // Adjust the power of each unit in the list
764
-
691
+ }
765
692
 
693
+ // Adjust the power of each unit in the list
766
694
  for (var _i3 = 0; _i3 < res.units.length; _i3++) {
767
695
  res.units[_i3].power *= p;
768
696
  }
769
-
770
697
  if (res.value !== null) {
771
- res.value = pow(res.value, p); // only allow numeric output, we don't want to return a Complex number
698
+ res.value = pow(res.value, p);
699
+
700
+ // only allow numeric output, we don't want to return a Complex number
772
701
  // if (!isNumeric(res.value)) {
773
702
  // res.value = NaN
774
703
  // }
@@ -776,17 +705,15 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
776
705
  } else {
777
706
  res.value = null;
778
707
  }
779
-
780
708
  res.skipAutomaticSimplification = false;
781
709
  return getNumericIfUnitless(res);
782
710
  };
711
+
783
712
  /**
784
713
  * Return the numeric value of this unit if it is dimensionless, has a value, and config.predictable == false; or the original unit otherwise
785
714
  * @param {Unit} unit
786
715
  * @returns {number | Fraction | BigNumber | Unit} The numeric value of the unit if conditions are met, or the original unit otherwise
787
716
  */
788
-
789
-
790
717
  function getNumericIfUnitless(unit) {
791
718
  if (unit.equalBase(BASE_UNITS.NONE) && unit.value !== null && !config.predictable) {
792
719
  return unit.value;
@@ -794,74 +721,78 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
794
721
  return unit;
795
722
  }
796
723
  }
724
+
797
725
  /**
798
726
  * Calculate the absolute value of a unit
799
727
  * @memberof Unit
800
728
  * @param {number | Fraction | BigNumber} x
801
729
  * @returns {Unit} The result: |x|, absolute value of x
802
730
  */
803
-
804
-
805
731
  Unit.prototype.abs = function () {
806
- // This gives correct, but unexpected, results for units with an offset.
807
- // For example, abs(-283.15 degC) = -263.15 degC !!!
808
732
  var ret = this.clone();
809
- ret.value = ret.value !== null ? abs(ret.value) : null;
810
-
733
+ if (ret.value !== null) {
734
+ if (ret._isDerived() || ret.units[0].unit.offset === 0) {
735
+ ret.value = abs(ret.value);
736
+ } else {
737
+ // To give the correct, but unexpected, results for units with an offset.
738
+ // For example, abs(-283.15 degC) = -263.15 degC !!!
739
+ // We must take the offset into consideration here
740
+ var convert = ret._numberConverter(); // convert to Fraction or BigNumber if needed
741
+ var unitValue = convert(ret.units[0].unit.value);
742
+ var nominalOffset = convert(ret.units[0].unit.offset);
743
+ var unitOffset = multiplyScalar(unitValue, nominalOffset);
744
+ ret.value = subtractScalar(abs(addScalar(ret.value, unitOffset)), unitOffset);
745
+ }
746
+ }
811
747
  for (var i in ret.units) {
812
748
  if (ret.units[i].unit.name === 'VA' || ret.units[i].unit.name === 'VAR') {
813
749
  ret.units[i].unit = UNITS.W;
814
750
  }
815
751
  }
816
-
817
752
  return ret;
818
753
  };
754
+
819
755
  /**
820
756
  * Convert the unit to a specific unit name.
821
757
  * @memberof Unit
822
758
  * @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like "cm"
823
759
  * @returns {Unit} Returns a clone of the unit with a fixed prefix and unit.
824
760
  */
825
-
826
-
827
761
  Unit.prototype.to = function (valuelessUnit) {
828
- var other;
829
762
  var value = this.value === null ? this._normalize(1) : this.value;
830
-
763
+ var other;
831
764
  if (typeof valuelessUnit === 'string') {
832
- // other = new Unit(null, valuelessUnit)
833
765
  other = Unit.parse(valuelessUnit);
834
-
835
- if (!this.equalBase(other)) {
836
- throw new Error("Units do not match ('".concat(other.toString(), "' != '").concat(this.toString(), "')"));
837
- }
838
-
839
- if (other.value !== null) {
840
- throw new Error('Cannot convert to a unit with a value');
841
- }
842
-
843
- other.value = clone(value);
844
- other.fixPrefix = true;
845
- other.skipAutomaticSimplification = true;
846
- return other;
847
766
  } else if (isUnit(valuelessUnit)) {
848
- if (!this.equalBase(valuelessUnit)) {
849
- throw new Error("Units do not match ('".concat(valuelessUnit.toString(), "' != '").concat(this.toString(), "')"));
850
- }
851
-
852
- if (valuelessUnit.value !== null) {
853
- throw new Error('Cannot convert to a unit with a value');
854
- }
855
-
856
767
  other = valuelessUnit.clone();
857
- other.value = clone(value);
858
- other.fixPrefix = true;
859
- other.skipAutomaticSimplification = true;
860
- return other;
861
768
  } else {
862
769
  throw new Error('String or Unit expected as parameter');
863
770
  }
771
+ if (!this.equalBase(other)) {
772
+ throw new Error("Units do not match ('".concat(other.toString(), "' != '").concat(this.toString(), "')"));
773
+ }
774
+ if (other.value !== null) {
775
+ throw new Error('Cannot convert to a unit with a value');
776
+ }
777
+ if (this.value === null || this._isDerived() || this.units[0].unit.offset === other.units[0].unit.offset) {
778
+ other.value = clone(value);
779
+ } else {
780
+ /* Need to adjust value by difference in offset to convert */
781
+ var convert = Unit._getNumberConverter(typeOf(value)); // convert to Fraction or BigNumber if needed
782
+
783
+ var thisUnitValue = this.units[0].unit.value;
784
+ var thisNominalOffset = this.units[0].unit.offset;
785
+ var thisUnitOffset = multiplyScalar(thisUnitValue, thisNominalOffset);
786
+ var otherUnitValue = other.units[0].unit.value;
787
+ var otherNominalOffset = other.units[0].unit.offset;
788
+ var otherUnitOffset = multiplyScalar(otherUnitValue, otherNominalOffset);
789
+ other.value = addScalar(value, convert(subtractScalar(thisUnitOffset, otherUnitOffset)));
790
+ }
791
+ other.fixPrefix = true;
792
+ other.skipAutomaticSimplification = true;
793
+ return other;
864
794
  };
795
+
865
796
  /**
866
797
  * Return the value of the unit when represented with given valueless unit
867
798
  * @memberof Unit
@@ -869,53 +800,46 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
869
800
  * @return {number} Returns the unit value as number.
870
801
  */
871
802
  // TODO: deprecate Unit.toNumber? It's always better to use toNumeric
872
-
873
-
874
803
  Unit.prototype.toNumber = function (valuelessUnit) {
875
804
  return toNumber(this.toNumeric(valuelessUnit));
876
805
  };
806
+
877
807
  /**
878
808
  * Return the value of the unit in the original numeric type
879
809
  * @memberof Unit
880
810
  * @param {string | Unit} valuelessUnit For example 'cm' or 'inch'
881
811
  * @return {number | BigNumber | Fraction} Returns the unit value
882
812
  */
883
-
884
-
885
813
  Unit.prototype.toNumeric = function (valuelessUnit) {
886
814
  var other;
887
-
888
815
  if (valuelessUnit) {
889
816
  // Allow getting the numeric value without converting to a different unit
890
817
  other = this.to(valuelessUnit);
891
818
  } else {
892
819
  other = this.clone();
893
820
  }
894
-
895
821
  if (other._isDerived() || other.units.length === 0) {
896
822
  return other._denormalize(other.value);
897
823
  } else {
898
824
  return other._denormalize(other.value, other.units[0].prefix.value);
899
825
  }
900
826
  };
827
+
901
828
  /**
902
829
  * Get a string representation of the unit.
903
830
  * @memberof Unit
904
831
  * @return {string}
905
832
  */
906
-
907
-
908
833
  Unit.prototype.toString = function () {
909
834
  return this.format();
910
835
  };
836
+
911
837
  /**
912
838
  * Get a JSON representation of the unit
913
839
  * @memberof Unit
914
840
  * @returns {Object} Returns a JSON object structured as:
915
841
  * `{"mathjs": "Unit", "value": 2, "unit": "cm", "fixPrefix": false}`
916
842
  */
917
-
918
-
919
843
  Unit.prototype.toJSON = function () {
920
844
  return {
921
845
  mathjs: 'Unit',
@@ -924,6 +848,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
924
848
  fixPrefix: this.fixPrefix
925
849
  };
926
850
  };
851
+
927
852
  /**
928
853
  * Instantiate a Unit from a JSON object
929
854
  * @memberof Unit
@@ -931,32 +856,29 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
931
856
  * `{"mathjs": "Unit", "value": 2, "unit": "cm", "fixPrefix": false}`
932
857
  * @return {Unit}
933
858
  */
934
-
935
-
936
859
  Unit.fromJSON = function (json) {
937
860
  var unit = new Unit(json.value, json.unit);
938
861
  unit.fixPrefix = json.fixPrefix || false;
939
862
  return unit;
940
863
  };
864
+
941
865
  /**
942
866
  * Returns the string representation of the unit.
943
867
  * @memberof Unit
944
868
  * @return {string}
945
869
  */
946
-
947
-
948
870
  Unit.prototype.valueOf = Unit.prototype.toString;
871
+
949
872
  /**
950
873
  * Simplify this Unit's unit list and return a new Unit with the simplified list.
951
874
  * The returned Unit will contain a list of the "best" units for formatting.
952
875
  */
953
-
954
876
  Unit.prototype.simplify = function () {
955
877
  var ret = this.clone();
956
- var proposedUnitList = []; // Search for a matching base
878
+ var proposedUnitList = [];
957
879
 
880
+ // Search for a matching base
958
881
  var matchingBase;
959
-
960
882
  for (var key in currentUnitSystem) {
961
883
  if (hasOwnProperty(currentUnitSystem, key)) {
962
884
  if (ret.hasBase(BASE_UNITS[key])) {
@@ -965,19 +887,16 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
965
887
  }
966
888
  }
967
889
  }
968
-
969
890
  if (matchingBase === 'NONE') {
970
891
  ret.units = [];
971
892
  } else {
972
893
  var matchingUnit;
973
-
974
894
  if (matchingBase) {
975
895
  // Does the unit system have a matching unit?
976
896
  if (hasOwnProperty(currentUnitSystem, matchingBase)) {
977
897
  matchingUnit = currentUnitSystem[matchingBase];
978
898
  }
979
899
  }
980
-
981
900
  if (matchingUnit) {
982
901
  ret.units = [{
983
902
  unit: matchingUnit.unit,
@@ -989,10 +908,8 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
989
908
  // 5 (kg m^2) / (s^3 mol)
990
909
  // Build an representation from the base units of the current unit system
991
910
  var missingBaseDim = false;
992
-
993
911
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
994
912
  var baseDim = BASE_DIMENSIONS[i];
995
-
996
913
  if (Math.abs(ret.dimensions[i] || 0) > 1e-12) {
997
914
  if (hasOwnProperty(currentUnitSystem, baseDim)) {
998
915
  proposedUnitList.push({
@@ -1004,32 +921,30 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1004
921
  missingBaseDim = true;
1005
922
  }
1006
923
  }
1007
- } // Is the proposed unit list "simpler" than the existing one?
1008
-
924
+ }
1009
925
 
926
+ // Is the proposed unit list "simpler" than the existing one?
1010
927
  if (proposedUnitList.length < ret.units.length && !missingBaseDim) {
1011
928
  // Replace this unit list with the proposed list
1012
929
  ret.units = proposedUnitList;
1013
930
  }
1014
931
  }
1015
932
  }
1016
-
1017
933
  return ret;
1018
934
  };
935
+
1019
936
  /**
1020
937
  * Returns a new Unit in the SI system with the same value as this one
1021
938
  */
1022
-
1023
-
1024
939
  Unit.prototype.toSI = function () {
1025
940
  var ret = this.clone();
1026
- var proposedUnitList = []; // Multiple units or units with powers are formatted like this:
941
+ var proposedUnitList = [];
942
+
943
+ // Multiple units or units with powers are formatted like this:
1027
944
  // 5 (kg m^2) / (s^3 mol)
1028
945
  // Build an representation from the base units of the SI unit system
1029
-
1030
946
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
1031
947
  var baseDim = BASE_DIMENSIONS[i];
1032
-
1033
948
  if (Math.abs(ret.dimensions[i] || 0) > 1e-12) {
1034
949
  if (hasOwnProperty(UNIT_SYSTEMS.si, baseDim)) {
1035
950
  proposedUnitList.push({
@@ -1041,32 +956,29 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1041
956
  throw new Error('Cannot express custom unit ' + baseDim + ' in SI units');
1042
957
  }
1043
958
  }
1044
- } // Replace this unit list with the proposed list
1045
-
959
+ }
1046
960
 
961
+ // Replace this unit list with the proposed list
1047
962
  ret.units = proposedUnitList;
1048
963
  ret.fixPrefix = true;
1049
964
  ret.skipAutomaticSimplification = true;
1050
965
  return ret;
1051
966
  };
967
+
1052
968
  /**
1053
969
  * Get a string representation of the units of this Unit, without the value. The unit list is formatted as-is without first being simplified.
1054
970
  * @memberof Unit
1055
971
  * @return {string}
1056
972
  */
1057
-
1058
-
1059
973
  Unit.prototype.formatUnits = function () {
1060
974
  var strNum = '';
1061
975
  var strDen = '';
1062
976
  var nNum = 0;
1063
977
  var nDen = 0;
1064
-
1065
978
  for (var i = 0; i < this.units.length; i++) {
1066
979
  if (this.units[i].power > 0) {
1067
980
  nNum++;
1068
981
  strNum += ' ' + this.units[i].prefix.name + this.units[i].unit.name;
1069
-
1070
982
  if (Math.abs(this.units[i].power - 1.0) > 1e-15) {
1071
983
  strNum += '^' + this.units[i].power;
1072
984
  }
@@ -1074,13 +986,11 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1074
986
  nDen++;
1075
987
  }
1076
988
  }
1077
-
1078
989
  if (nDen > 0) {
1079
990
  for (var _i4 = 0; _i4 < this.units.length; _i4++) {
1080
991
  if (this.units[_i4].power < 0) {
1081
992
  if (nNum > 0) {
1082
993
  strDen += ' ' + this.units[_i4].prefix.name + this.units[_i4].unit.name;
1083
-
1084
994
  if (Math.abs(this.units[_i4].power + 1.0) > 1e-15) {
1085
995
  strDen += '^' + -this.units[_i4].power;
1086
996
  }
@@ -1090,29 +1000,26 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1090
1000
  }
1091
1001
  }
1092
1002
  }
1093
- } // Remove leading " "
1094
-
1095
-
1003
+ }
1004
+ // Remove leading " "
1096
1005
  strNum = strNum.substr(1);
1097
- strDen = strDen.substr(1); // Add parans for better copy/paste back into evaluate, for example, or for better pretty print formatting
1006
+ strDen = strDen.substr(1);
1098
1007
 
1008
+ // Add parans for better copy/paste back into evaluate, for example, or for better pretty print formatting
1099
1009
  if (nNum > 1 && nDen > 0) {
1100
1010
  strNum = '(' + strNum + ')';
1101
1011
  }
1102
-
1103
1012
  if (nDen > 1 && nNum > 0) {
1104
1013
  strDen = '(' + strDen + ')';
1105
1014
  }
1106
-
1107
1015
  var str = strNum;
1108
-
1109
1016
  if (nNum > 0 && nDen > 0) {
1110
1017
  str += ' / ';
1111
1018
  }
1112
-
1113
1019
  str += strDen;
1114
1020
  return str;
1115
1021
  };
1022
+
1116
1023
  /**
1117
1024
  * Get a string representation of the Unit, with optional formatting options.
1118
1025
  * @memberof Unit
@@ -1122,20 +1029,17 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1122
1029
  * options.
1123
1030
  * @return {string}
1124
1031
  */
1125
-
1126
-
1127
1032
  Unit.prototype.format = function (options) {
1128
1033
  // Simplfy the unit list, unless it is valueless or was created directly in the
1129
1034
  // constructor or as the result of to or toSI
1130
- var simp = this.skipAutomaticSimplification || this.value === null ? this.clone() : this.simplify(); // Apply some custom logic for handling VA and VAR. The goal is to express the value of the unit as a real value, if possible. Otherwise, use a real-valued unit instead of a complex-valued one.
1035
+ var simp = this.skipAutomaticSimplification || this.value === null ? this.clone() : this.simplify();
1131
1036
 
1037
+ // Apply some custom logic for handling VA and VAR. The goal is to express the value of the unit as a real value, if possible. Otherwise, use a real-valued unit instead of a complex-valued one.
1132
1038
  var isImaginary = false;
1133
-
1134
1039
  if (typeof simp.value !== 'undefined' && simp.value !== null && isComplex(simp.value)) {
1135
1040
  // TODO: Make this better, for example, use relative magnitude of re and im rather than absolute
1136
1041
  isImaginary = Math.abs(simp.value.re) < 1e-14;
1137
1042
  }
1138
-
1139
1043
  for (var i in simp.units) {
1140
1044
  if (hasOwnProperty(simp.units, i)) {
1141
1045
  if (simp.units[i].unit) {
@@ -1146,10 +1050,10 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1146
1050
  }
1147
1051
  }
1148
1052
  }
1149
- } // Now apply the best prefix
1150
- // Units must have only one unit and not have the fixPrefix flag set
1151
-
1053
+ }
1152
1054
 
1055
+ // Now apply the best prefix
1056
+ // Units must have only one unit and not have the fixPrefix flag set
1153
1057
  if (simp.units.length === 1 && !simp.fixPrefix) {
1154
1058
  // Units must have integer powers, otherwise the prefix will change the
1155
1059
  // outputted value by not-an-integer-power-of-ten
@@ -1158,69 +1062,57 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1158
1062
  simp.units[0].prefix = simp._bestPrefix();
1159
1063
  }
1160
1064
  }
1161
-
1162
1065
  var value = simp._denormalize(simp.value);
1163
-
1164
1066
  var str = simp.value !== null ? format(value, options || {}) : '';
1165
1067
  var unitStr = simp.formatUnits();
1166
-
1167
1068
  if (simp.value && isComplex(simp.value)) {
1168
1069
  str = '(' + str + ')'; // Surround complex values with ( ) to enable better parsing
1169
1070
  }
1170
-
1171
1071
  if (unitStr.length > 0 && str.length > 0) {
1172
1072
  str += ' ';
1173
1073
  }
1174
-
1175
1074
  str += unitStr;
1176
1075
  return str;
1177
1076
  };
1077
+
1178
1078
  /**
1179
1079
  * Calculate the best prefix using current value.
1180
1080
  * @memberof Unit
1181
1081
  * @returns {Object} prefix
1182
1082
  * @private
1183
1083
  */
1184
-
1185
-
1186
1084
  Unit.prototype._bestPrefix = function () {
1187
1085
  if (this.units.length !== 1) {
1188
1086
  throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');
1189
1087
  }
1190
-
1191
1088
  if (Math.abs(this.units[0].power - Math.round(this.units[0].power)) >= 1e-14) {
1192
1089
  throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');
1193
- } // find the best prefix value (resulting in the value of which
1090
+ }
1091
+
1092
+ // find the best prefix value (resulting in the value of which
1194
1093
  // the absolute value of the log10 is closest to zero,
1195
1094
  // though with a little offset of 1.2 for nicer values: you get a
1196
1095
  // sequence 1mm 100mm 500mm 0.6m 1m 10m 100m 500m 0.6km 1km ...
1096
+
1197
1097
  // Note: the units value can be any numeric type, but to find the best
1198
1098
  // prefix it's enough to work with limited precision of a regular number
1199
1099
  // Update: using mathjs abs since we also allow complex numbers
1200
-
1201
-
1202
1100
  var absValue = this.value !== null ? abs(this.value) : 0;
1203
1101
  var absUnitValue = abs(this.units[0].unit.value);
1204
1102
  var bestPrefix = this.units[0].prefix;
1205
-
1206
1103
  if (absValue === 0) {
1207
1104
  return bestPrefix;
1208
1105
  }
1209
-
1210
1106
  var power = this.units[0].power;
1211
1107
  var bestDiff = Math.log(absValue / Math.pow(bestPrefix.value * absUnitValue, power)) / Math.LN10 - 1.2;
1212
1108
  if (bestDiff > -2.200001 && bestDiff < 1.800001) return bestPrefix; // Allow the original prefix
1213
-
1214
1109
  bestDiff = Math.abs(bestDiff);
1215
1110
  var prefixes = this.units[0].unit.prefixes;
1216
-
1217
1111
  for (var p in prefixes) {
1218
1112
  if (hasOwnProperty(prefixes, p)) {
1219
1113
  var prefix = prefixes[p];
1220
-
1221
1114
  if (prefix.scientific) {
1222
1115
  var diff = Math.abs(Math.log(absValue / Math.pow(prefix.value * absUnitValue, power)) / Math.LN10 - 1.2);
1223
-
1224
1116
  if (diff < bestDiff || diff === bestDiff && prefix.name.length < bestPrefix.name.length) {
1225
1117
  // choose the prefix with the smallest diff, or if equal, choose the one
1226
1118
  // with the shortest name (can happen with SHORTLONG for example)
@@ -1230,9 +1122,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1230
1122
  }
1231
1123
  }
1232
1124
  }
1233
-
1234
1125
  return bestPrefix;
1235
1126
  };
1127
+
1236
1128
  /**
1237
1129
  * Returns an array of units whose sum is equal to this unit
1238
1130
  * @memberof Unit
@@ -1246,53 +1138,46 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1246
1138
  *
1247
1139
  * @return {Array} An array of units.
1248
1140
  */
1249
-
1250
-
1251
1141
  Unit.prototype.splitUnit = function (parts) {
1252
1142
  var x = this.clone();
1253
1143
  var ret = [];
1254
-
1255
1144
  for (var i = 0; i < parts.length; i++) {
1256
1145
  // Convert x to the requested unit
1257
1146
  x = x.to(parts[i]);
1258
- if (i === parts.length - 1) break; // Get the numeric value of this unit
1147
+ if (i === parts.length - 1) break;
1259
1148
 
1260
- var xNumeric = x.toNumeric(); // Check to see if xNumeric is nearly equal to an integer,
1261
- // since fix can incorrectly round down if there is round-off error
1149
+ // Get the numeric value of this unit
1150
+ var xNumeric = x.toNumeric();
1262
1151
 
1152
+ // Check to see if xNumeric is nearly equal to an integer,
1153
+ // since fix can incorrectly round down if there is round-off error
1263
1154
  var xRounded = round(xNumeric);
1264
1155
  var xFixed = void 0;
1265
1156
  var isNearlyEqual = equal(xRounded, xNumeric);
1266
-
1267
1157
  if (isNearlyEqual) {
1268
1158
  xFixed = xRounded;
1269
1159
  } else {
1270
1160
  xFixed = fix(x.toNumeric());
1271
1161
  }
1272
-
1273
1162
  var y = new Unit(xFixed, parts[i].toString());
1274
1163
  ret.push(y);
1275
- x = subtract(x, y);
1276
- } // This little bit fixes a bug where the remainder should be 0 but is a little bit off.
1164
+ x = subtractScalar(x, y);
1165
+ }
1166
+
1167
+ // This little bit fixes a bug where the remainder should be 0 but is a little bit off.
1277
1168
  // But instead of comparing x, the remainder, with zero--we will compare the sum of
1278
1169
  // all the parts so far with the original value. If they are nearly equal,
1279
1170
  // we set the remainder to 0.
1280
-
1281
-
1282
1171
  var testSum = 0;
1283
-
1284
1172
  for (var _i5 = 0; _i5 < ret.length; _i5++) {
1285
1173
  testSum = addScalar(testSum, ret[_i5].value);
1286
1174
  }
1287
-
1288
1175
  if (equal(testSum, this.value)) {
1289
1176
  x.value = 0;
1290
1177
  }
1291
-
1292
1178
  ret.push(x);
1293
1179
  return ret;
1294
1180
  };
1295
-
1296
1181
  var PREFIXES = {
1297
1182
  NONE: {
1298
1183
  '': {
@@ -1933,6 +1818,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
1933
1818
  PREFIXES.SHORTLONG = _extends({}, PREFIXES.SHORT, PREFIXES.LONG);
1934
1819
  PREFIXES.BINARY_SHORT = _extends({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
1935
1820
  PREFIXES.BINARY_LONG = _extends({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
1821
+
1936
1822
  /* Internally, each unit is represented by a value and a dimension array. The elements of the dimensions array have the following meaning:
1937
1823
  * Index Dimension
1938
1824
  * ----- ---------
@@ -2027,13 +1913,11 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2027
1913
  dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 1]
2028
1914
  }
2029
1915
  };
2030
-
2031
1916
  for (var key in BASE_UNITS) {
2032
1917
  if (hasOwnProperty(BASE_UNITS, key)) {
2033
1918
  BASE_UNITS[key].key = key;
2034
1919
  }
2035
1920
  }
2036
-
2037
1921
  var BASE_UNIT_NONE = {};
2038
1922
  var UNIT_NONE = {
2039
1923
  name: '',
@@ -2171,6 +2055,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2171
2055
  offset: 0
2172
2056
  },
2173
2057
  // 1/1000 inch
2058
+
2174
2059
  // Surface
2175
2060
  m2: {
2176
2061
  name: 'm2',
@@ -2251,6 +2136,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2251
2136
  offset: 0
2252
2137
  },
2253
2138
  // 10000 m2
2139
+
2254
2140
  // Volume
2255
2141
  m3: {
2256
2142
  name: 'm3',
@@ -2339,6 +2225,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2339
2225
  offset: 0
2340
2226
  },
2341
2227
  // 0.05 mL = 5e-8 m3
2228
+
2342
2229
  // Liquid volume
2343
2230
  minim: {
2344
2231
  name: 'minim',
@@ -2436,6 +2323,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2436
2323
  offset: 0
2437
2324
  },
2438
2325
  // 238.4810 L
2326
+
2439
2327
  // {name: 'min', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.00000006161152, offset: 0}, // 0.06161152 mL // min is already in use as minute
2440
2328
  fldr: {
2441
2329
  name: 'fldr',
@@ -2510,6 +2398,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2510
2398
  },
2511
2399
  // 158.9873 L
2512
2400
  // {name: 'hogshead', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.2384810, offset: 0}, // 238.4810 L // TODO: hh?
2401
+
2513
2402
  // Mass
2514
2403
  g: {
2515
2404
  name: 'g',
@@ -2844,62 +2733,62 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2844
2733
  },
2845
2734
  // Temperature
2846
2735
  // K(C) = °C + 273.15
2847
- // K(F) = (°F + 459.67) / 1.8
2848
- // K(R) = °R / 1.8
2736
+ // K(F) = (°F + 459.67) * (5 / 9)
2737
+ // K(R) = °R * (5 / 9)
2849
2738
  K: {
2850
2739
  name: 'K',
2851
2740
  base: BASE_UNITS.TEMPERATURE,
2852
- prefixes: PREFIXES.NONE,
2741
+ prefixes: PREFIXES.SHORT,
2853
2742
  value: 1,
2854
2743
  offset: 0
2855
2744
  },
2856
2745
  degC: {
2857
2746
  name: 'degC',
2858
2747
  base: BASE_UNITS.TEMPERATURE,
2859
- prefixes: PREFIXES.NONE,
2748
+ prefixes: PREFIXES.SHORT,
2860
2749
  value: 1,
2861
2750
  offset: 273.15
2862
2751
  },
2863
2752
  degF: {
2864
2753
  name: 'degF',
2865
2754
  base: BASE_UNITS.TEMPERATURE,
2866
- prefixes: PREFIXES.NONE,
2867
- value: 1 / 1.8,
2755
+ prefixes: PREFIXES.SHORT,
2756
+ value: new _Fraction(5, 9),
2868
2757
  offset: 459.67
2869
2758
  },
2870
2759
  degR: {
2871
2760
  name: 'degR',
2872
2761
  base: BASE_UNITS.TEMPERATURE,
2873
- prefixes: PREFIXES.NONE,
2874
- value: 1 / 1.8,
2762
+ prefixes: PREFIXES.SHORT,
2763
+ value: new _Fraction(5, 9),
2875
2764
  offset: 0
2876
2765
  },
2877
2766
  kelvin: {
2878
2767
  name: 'kelvin',
2879
2768
  base: BASE_UNITS.TEMPERATURE,
2880
- prefixes: PREFIXES.NONE,
2769
+ prefixes: PREFIXES.LONG,
2881
2770
  value: 1,
2882
2771
  offset: 0
2883
2772
  },
2884
2773
  celsius: {
2885
2774
  name: 'celsius',
2886
2775
  base: BASE_UNITS.TEMPERATURE,
2887
- prefixes: PREFIXES.NONE,
2776
+ prefixes: PREFIXES.LONG,
2888
2777
  value: 1,
2889
2778
  offset: 273.15
2890
2779
  },
2891
2780
  fahrenheit: {
2892
2781
  name: 'fahrenheit',
2893
2782
  base: BASE_UNITS.TEMPERATURE,
2894
- prefixes: PREFIXES.NONE,
2895
- value: 1 / 1.8,
2783
+ prefixes: PREFIXES.LONG,
2784
+ value: new _Fraction(5, 9),
2896
2785
  offset: 459.67
2897
2786
  },
2898
2787
  rankine: {
2899
2788
  name: 'rankine',
2900
2789
  base: BASE_UNITS.TEMPERATURE,
2901
- prefixes: PREFIXES.NONE,
2902
- value: 1 / 1.8,
2790
+ prefixes: PREFIXES.LONG,
2791
+ value: new _Fraction(5, 9),
2903
2792
  offset: 0
2904
2793
  },
2905
2794
  // amount of substance
@@ -2935,6 +2824,7 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
2935
2824
  // TODO: units STERADIAN
2936
2825
  // {name: 'sr', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
2937
2826
  // {name: 'steradian', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
2827
+
2938
2828
  // Force
2939
2829
  N: {
2940
2830
  name: 'N',
@@ -3003,14 +2893,15 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3003
2893
  joule: {
3004
2894
  name: 'joule',
3005
2895
  base: BASE_UNITS.ENERGY,
3006
- prefixes: PREFIXES.SHORT,
2896
+ prefixes: PREFIXES.LONG,
3007
2897
  value: 1,
3008
2898
  offset: 0
3009
2899
  },
3010
2900
  erg: {
3011
2901
  name: 'erg',
3012
2902
  base: BASE_UNITS.ENERGY,
3013
- prefixes: PREFIXES.NONE,
2903
+ prefixes: PREFIXES.SHORTLONG,
2904
+ // Both kiloerg and kerg are acceptable
3014
2905
  value: 1e-7,
3015
2906
  offset: 0
3016
2907
  },
@@ -3190,7 +3081,6 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3190
3081
  value: 1,
3191
3082
  offset: 0
3192
3083
  },
3193
-
3194
3084
  /*
3195
3085
  * Unicode breaks in browsers if charset is not specified
3196
3086
  Ω: {
@@ -3290,8 +3180,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3290
3180
  value: 8,
3291
3181
  offset: 0
3292
3182
  }
3293
- }; // aliases (formerly plurals)
3183
+ };
3294
3184
 
3185
+ // aliases (formerly plurals)
3295
3186
  var ALIASES = {
3296
3187
  meters: 'meter',
3297
3188
  inches: 'inch',
@@ -3369,6 +3260,8 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3369
3260
  watts: 'watt',
3370
3261
  joules: 'joule',
3371
3262
  amperes: 'ampere',
3263
+ amps: 'ampere',
3264
+ amp: 'ampere',
3372
3265
  coulombs: 'coulomb',
3373
3266
  volts: 'volt',
3374
3267
  ohms: 'ohm',
@@ -3380,48 +3273,39 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3380
3273
  bit: 'bits',
3381
3274
  byte: 'bytes'
3382
3275
  };
3276
+
3383
3277
  /**
3384
3278
  * Calculate the values for the angle units.
3385
3279
  * Value is calculated as number or BigNumber depending on the configuration
3386
3280
  * @param {{number: 'number' | 'BigNumber'}} config
3387
3281
  */
3388
-
3389
3282
  function calculateAngleValues(config) {
3390
3283
  if (config.number === 'BigNumber') {
3391
3284
  var pi = createPi(_BigNumber);
3392
3285
  UNITS.rad.value = new _BigNumber(1);
3393
3286
  UNITS.deg.value = pi.div(180); // 2 * pi / 360
3394
-
3395
3287
  UNITS.grad.value = pi.div(200); // 2 * pi / 400
3396
-
3397
3288
  UNITS.cycle.value = pi.times(2); // 2 * pi
3398
-
3399
3289
  UNITS.arcsec.value = pi.div(648000); // 2 * pi / 360 / 3600
3400
-
3401
3290
  UNITS.arcmin.value = pi.div(10800); // 2 * pi / 360 / 60
3402
3291
  } else {
3403
3292
  // number
3404
3293
  UNITS.rad.value = 1;
3405
3294
  UNITS.deg.value = Math.PI / 180; // 2 * pi / 360
3406
-
3407
3295
  UNITS.grad.value = Math.PI / 200; // 2 * pi / 400
3408
-
3409
3296
  UNITS.cycle.value = Math.PI * 2; // 2 * pi
3410
-
3411
3297
  UNITS.arcsec.value = Math.PI / 648000; // 2 * pi / 360 / 3600
3412
-
3413
3298
  UNITS.arcmin.value = Math.PI / 10800; // 2 * pi / 360 / 60
3414
- } // copy to the full names of the angles
3415
-
3299
+ }
3416
3300
 
3301
+ // copy to the full names of the angles
3417
3302
  UNITS.radian.value = UNITS.rad.value;
3418
3303
  UNITS.degree.value = UNITS.deg.value;
3419
3304
  UNITS.gradian.value = UNITS.grad.value;
3420
- } // apply the angle values now
3421
-
3305
+ }
3422
3306
 
3307
+ // apply the angle values now
3423
3308
  calculateAngleValues(config);
3424
-
3425
3309
  if (on) {
3426
3310
  // recalculate the values on change of configuration
3427
3311
  on('config', function (curr, prev) {
@@ -3430,13 +3314,12 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3430
3314
  }
3431
3315
  });
3432
3316
  }
3317
+
3433
3318
  /**
3434
3319
  * A unit system is a set of dimensionally independent base units plus a set of derived units, formed by multiplication and division of the base units, that are by convention used with the unit system.
3435
3320
  * A user perhaps could issue a command to select a preferred unit system, or use the default (see below).
3436
3321
  * Auto unit system: The default unit system is updated on the fly anytime a unit is parsed. The corresponding unit in the default unit system is updated, so that answers are given in the same units the user supplies.
3437
3322
  */
3438
-
3439
-
3440
3323
  var UNIT_SYSTEMS = {
3441
3324
  si: {
3442
3325
  // Base units
@@ -3534,8 +3417,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3534
3417
  prefix: PREFIXES.SHORT['']
3535
3418
  }
3536
3419
  }
3537
- }; // Clone to create the other unit systems
3420
+ };
3538
3421
 
3422
+ // Clone to create the other unit systems
3539
3423
  UNIT_SYSTEMS.cgs = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
3540
3424
  UNIT_SYSTEMS.cgs.LENGTH = {
3541
3425
  unit: UNITS.m,
@@ -3552,7 +3436,8 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3552
3436
  UNIT_SYSTEMS.cgs.ENERGY = {
3553
3437
  unit: UNITS.erg,
3554
3438
  prefix: PREFIXES.NONE['']
3555
- }; // there are wholly 4 unique cgs systems for electricity and magnetism,
3439
+ };
3440
+ // there are wholly 4 unique cgs systems for electricity and magnetism,
3556
3441
  // so let's not worry about it unless somebody complains
3557
3442
 
3558
3443
  UNIT_SYSTEMS.us = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
@@ -3583,17 +3468,20 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3583
3468
  UNIT_SYSTEMS.us.PRESSURE = {
3584
3469
  unit: UNITS.psi,
3585
3470
  prefix: PREFIXES.NONE['']
3586
- }; // Add additional unit systems here.
3587
- // Choose a unit system to seed the auto unit system.
3471
+ };
3588
3472
 
3589
- UNIT_SYSTEMS.auto = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si)); // Set the current unit system
3473
+ // Add additional unit systems here.
3590
3474
 
3475
+ // Choose a unit system to seed the auto unit system.
3476
+ UNIT_SYSTEMS.auto = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
3477
+
3478
+ // Set the current unit system
3591
3479
  var currentUnitSystem = UNIT_SYSTEMS.auto;
3480
+
3592
3481
  /**
3593
3482
  * Set a unit system for formatting derived units.
3594
3483
  * @param {string} [name] The name of the unit system.
3595
3484
  */
3596
-
3597
3485
  Unit.setUnitSystem = function (name) {
3598
3486
  if (hasOwnProperty(UNIT_SYSTEMS, name)) {
3599
3487
  currentUnitSystem = UNIT_SYSTEMS[name];
@@ -3601,12 +3489,11 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3601
3489
  throw new Error('Unit system ' + name + ' does not exist. Choices are: ' + Object.keys(UNIT_SYSTEMS).join(', '));
3602
3490
  }
3603
3491
  };
3492
+
3604
3493
  /**
3605
3494
  * Return the current unit system.
3606
3495
  * @return {string} The current unit system.
3607
3496
  */
3608
-
3609
-
3610
3497
  Unit.getUnitSystem = function () {
3611
3498
  for (var _key in UNIT_SYSTEMS) {
3612
3499
  if (hasOwnProperty(UNIT_SYSTEMS, _key)) {
@@ -3616,14 +3503,14 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3616
3503
  }
3617
3504
  }
3618
3505
  };
3506
+
3619
3507
  /**
3620
3508
  * Converters to convert from number to an other numeric type like BigNumber
3621
3509
  * or Fraction
3622
3510
  */
3623
-
3624
-
3625
3511
  Unit.typeConverters = {
3626
3512
  BigNumber: function BigNumber(x) {
3513
+ if (x !== null && x !== void 0 && x.isFraction) return new _BigNumber(x.n).div(x.d).times(x.s);
3627
3514
  return new _BigNumber(x + ''); // stringify to prevent constructor error
3628
3515
  },
3629
3516
  Fraction: function Fraction(x) {
@@ -3633,9 +3520,26 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3633
3520
  return x;
3634
3521
  },
3635
3522
  number: function number(x) {
3523
+ if (x !== null && x !== void 0 && x.isFraction) return _number(x);
3636
3524
  return x;
3637
3525
  }
3638
3526
  };
3527
+
3528
+ /**
3529
+ * Retrieve the right converter function corresponding with this unit's
3530
+ * value
3531
+ *
3532
+ * @memberof Unit
3533
+ * @return {Function}
3534
+ */
3535
+ Unit.prototype._numberConverter = function () {
3536
+ var convert = Unit.typeConverters[this.valueType()];
3537
+ if (convert) {
3538
+ return convert;
3539
+ }
3540
+ throw new TypeError('Unsupported Unit value type "' + this.valueType() + '"');
3541
+ };
3542
+
3639
3543
  /**
3640
3544
  * Retrieve the right convertor function corresponding with the type
3641
3545
  * of provided exampleValue.
@@ -3644,63 +3548,56 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3644
3548
  * In case of an unknown type,
3645
3549
  * @return {Function}
3646
3550
  */
3647
-
3648
3551
  Unit._getNumberConverter = function (type) {
3649
3552
  if (!Unit.typeConverters[type]) {
3650
3553
  throw new TypeError('Unsupported type "' + type + '"');
3651
3554
  }
3652
-
3653
3555
  return Unit.typeConverters[type];
3654
- }; // Add dimensions to each built-in unit
3655
-
3556
+ };
3656
3557
 
3558
+ // Add dimensions to each built-in unit
3657
3559
  for (var _key2 in UNITS) {
3658
3560
  if (hasOwnProperty(UNITS, _key2)) {
3659
3561
  var unit = UNITS[_key2];
3660
3562
  unit.dimensions = unit.base.dimensions;
3661
3563
  }
3662
- } // Create aliases
3663
-
3564
+ }
3664
3565
 
3566
+ // Create aliases
3665
3567
  for (var _name2 in ALIASES) {
3666
3568
  if (hasOwnProperty(ALIASES, _name2)) {
3667
3569
  var _unit2 = UNITS[ALIASES[_name2]];
3668
3570
  var alias = {};
3669
-
3670
3571
  for (var _key3 in _unit2) {
3671
3572
  if (hasOwnProperty(_unit2, _key3)) {
3672
3573
  alias[_key3] = _unit2[_key3];
3673
3574
  }
3674
3575
  }
3675
-
3676
3576
  alias.name = _name2;
3677
3577
  UNITS[_name2] = alias;
3678
3578
  }
3679
3579
  }
3580
+
3680
3581
  /**
3681
3582
  * Checks if a character is a valid latin letter (upper or lower case).
3682
3583
  * Note that this function can be overridden, for example to allow support of other alphabets.
3683
3584
  * @param {string} c Tested character
3684
3585
  */
3685
-
3686
-
3687
3586
  Unit.isValidAlpha = function isValidAlpha(c) {
3688
3587
  return /^[a-zA-Z]$/.test(c);
3689
3588
  };
3690
-
3691
3589
  function assertUnitNameIsValid(name) {
3692
3590
  for (var i = 0; i < name.length; i++) {
3693
3591
  c = name.charAt(i);
3694
-
3695
3592
  if (i === 0 && !Unit.isValidAlpha(c)) {
3696
3593
  throw new Error('Invalid unit name (must begin with alpha character): "' + name + '"');
3697
3594
  }
3698
-
3699
3595
  if (i > 0 && !(Unit.isValidAlpha(c) || isDigit(c))) {
3700
3596
  throw new Error('Invalid unit name (only alphanumeric characters are allowed): "' + name + '"');
3701
3597
  }
3702
3598
  }
3703
3599
  }
3600
+
3704
3601
  /**
3705
3602
  * Wrapper around createUnitSingle.
3706
3603
  * Example:
@@ -3719,39 +3616,35 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3719
3616
  * @param {object} obj Object map. Each key becomes a unit which is defined by its value.
3720
3617
  * @param {object} options
3721
3618
  */
3722
-
3723
-
3724
3619
  Unit.createUnit = function (obj, options) {
3725
3620
  if (typeof obj !== 'object') {
3726
3621
  throw new TypeError("createUnit expects first parameter to be of type 'Object'");
3727
- } // Remove all units and aliases we are overriding
3728
-
3622
+ }
3729
3623
 
3624
+ // Remove all units and aliases we are overriding
3730
3625
  if (options && options.override) {
3731
3626
  for (var _key4 in obj) {
3732
3627
  if (hasOwnProperty(obj, _key4)) {
3733
3628
  Unit.deleteUnit(_key4);
3734
3629
  }
3735
-
3736
3630
  if (obj[_key4].aliases) {
3737
3631
  for (var i = 0; i < obj[_key4].aliases.length; i++) {
3738
3632
  Unit.deleteUnit(obj[_key4].aliases[i]);
3739
3633
  }
3740
3634
  }
3741
3635
  }
3742
- } // TODO: traverse multiple times until all units have been added
3743
-
3636
+ }
3744
3637
 
3638
+ // TODO: traverse multiple times until all units have been added
3745
3639
  var lastUnit;
3746
-
3747
3640
  for (var _key5 in obj) {
3748
3641
  if (hasOwnProperty(obj, _key5)) {
3749
3642
  lastUnit = Unit.createUnitSingle(_key5, obj[_key5]);
3750
3643
  }
3751
3644
  }
3752
-
3753
3645
  return lastUnit;
3754
3646
  };
3647
+
3755
3648
  /**
3756
3649
  * Create a user-defined unit and register it with the Unit type.
3757
3650
  * Example:
@@ -3773,39 +3666,30 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3773
3666
  * base unit, the name of the newly create base unit. Otherwise, this property
3774
3667
  * has no effect.
3775
3668
  *
3776
- * @param {Object} options (optional) An object containing any of the following
3777
- * properties:
3778
- * - override {boolean} Whether this unit should be allowed to override existing
3779
- * units.
3780
- *
3781
3669
  * @return {Unit}
3782
3670
  */
3783
-
3784
-
3785
- Unit.createUnitSingle = function (name, obj, options) {
3671
+ Unit.createUnitSingle = function (name, obj) {
3786
3672
  if (typeof obj === 'undefined' || obj === null) {
3787
3673
  obj = {};
3788
3674
  }
3789
-
3790
3675
  if (typeof name !== 'string') {
3791
3676
  throw new TypeError("createUnitSingle expects first parameter to be of type 'string'");
3792
- } // Check collisions with existing units
3793
-
3677
+ }
3794
3678
 
3679
+ // Check collisions with existing units
3795
3680
  if (hasOwnProperty(UNITS, name)) {
3796
3681
  throw new Error('Cannot create unit "' + name + '": a unit with that name already exists');
3797
- } // TODO: Validate name for collisions with other built-in functions (like abs or cos, for example), and for acceptable variable names. For example, '42' is probably not a valid unit. Nor is '%', since it is also an operator.
3682
+ }
3798
3683
 
3684
+ // TODO: Validate name for collisions with other built-in functions (like abs or cos, for example), and for acceptable variable names. For example, '42' is probably not a valid unit. Nor is '%', since it is also an operator.
3799
3685
 
3800
3686
  assertUnitNameIsValid(name);
3801
3687
  var defUnit = null; // The Unit from which the new unit will be created.
3802
-
3803
3688
  var aliases = [];
3804
3689
  var offset = 0;
3805
3690
  var definition;
3806
3691
  var prefixes;
3807
3692
  var baseName;
3808
-
3809
3693
  if (obj && obj.type === 'Unit') {
3810
3694
  defUnit = obj.clone();
3811
3695
  } else if (typeof obj === 'string') {
@@ -3817,14 +3701,12 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3817
3701
  prefixes = obj.prefixes;
3818
3702
  offset = obj.offset;
3819
3703
  baseName = obj.baseName;
3820
-
3821
3704
  if (obj.aliases) {
3822
3705
  aliases = obj.aliases.valueOf(); // aliases could be a Matrix, so convert to Array
3823
3706
  }
3824
3707
  } else {
3825
3708
  throw new TypeError('Cannot create unit "' + name + '" from "' + obj.toString() + '": expecting "string" or "Unit" or "Object"');
3826
3709
  }
3827
-
3828
3710
  if (aliases) {
3829
3711
  for (var i = 0; i < aliases.length; i++) {
3830
3712
  if (hasOwnProperty(UNITS, aliases[i])) {
@@ -3832,7 +3714,6 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3832
3714
  }
3833
3715
  }
3834
3716
  }
3835
-
3836
3717
  if (definition && typeof definition === 'string' && !defUnit) {
3837
3718
  try {
3838
3719
  defUnit = Unit.parse(definition, {
@@ -3845,54 +3726,48 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3845
3726
  } else if (definition && definition.type === 'Unit') {
3846
3727
  defUnit = definition.clone();
3847
3728
  }
3848
-
3849
3729
  aliases = aliases || [];
3850
3730
  offset = offset || 0;
3851
-
3852
3731
  if (prefixes && prefixes.toUpperCase) {
3853
3732
  prefixes = PREFIXES[prefixes.toUpperCase()] || PREFIXES.NONE;
3854
3733
  } else {
3855
3734
  prefixes = PREFIXES.NONE;
3856
- } // If defUnit is null, it is because the user did not
3857
- // specify a defintion. So create a new base dimension.
3858
-
3735
+ }
3859
3736
 
3737
+ // If defUnit is null, it is because the user did not
3738
+ // specify a defintion. So create a new base dimension.
3860
3739
  var newUnit = {};
3861
-
3862
3740
  if (!defUnit) {
3863
3741
  // Add a new base dimension
3864
3742
  baseName = baseName || name + '_STUFF'; // foo --> foo_STUFF, or the essence of foo
3865
-
3866
3743
  if (BASE_DIMENSIONS.indexOf(baseName) >= 0) {
3867
3744
  throw new Error('Cannot create new base unit "' + name + '": a base unit with that name already exists (and cannot be overridden)');
3868
3745
  }
3746
+ BASE_DIMENSIONS.push(baseName);
3869
3747
 
3870
- BASE_DIMENSIONS.push(baseName); // Push 0 onto existing base units
3871
-
3748
+ // Push 0 onto existing base units
3872
3749
  for (var b in BASE_UNITS) {
3873
3750
  if (hasOwnProperty(BASE_UNITS, b)) {
3874
3751
  BASE_UNITS[b].dimensions[BASE_DIMENSIONS.length - 1] = 0;
3875
3752
  }
3876
- } // Add the new base unit
3877
-
3753
+ }
3878
3754
 
3755
+ // Add the new base unit
3879
3756
  var newBaseUnit = {
3880
3757
  dimensions: []
3881
3758
  };
3882
-
3883
3759
  for (var _i6 = 0; _i6 < BASE_DIMENSIONS.length; _i6++) {
3884
3760
  newBaseUnit.dimensions[_i6] = 0;
3885
3761
  }
3886
-
3887
3762
  newBaseUnit.dimensions[BASE_DIMENSIONS.length - 1] = 1;
3888
3763
  newBaseUnit.key = baseName;
3889
3764
  BASE_UNITS[baseName] = newBaseUnit;
3890
3765
  newUnit = {
3891
- name: name,
3766
+ name,
3892
3767
  value: 1,
3893
3768
  dimensions: BASE_UNITS[baseName].dimensions.slice(0),
3894
- prefixes: prefixes,
3895
- offset: offset,
3769
+ prefixes,
3770
+ offset,
3896
3771
  base: BASE_UNITS[baseName]
3897
3772
  };
3898
3773
  currentUnitSystem[baseName] = {
@@ -3901,26 +3776,24 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3901
3776
  };
3902
3777
  } else {
3903
3778
  newUnit = {
3904
- name: name,
3779
+ name,
3905
3780
  value: defUnit.value,
3906
3781
  dimensions: defUnit.dimensions.slice(0),
3907
- prefixes: prefixes,
3908
- offset: offset
3909
- }; // Create a new base if no matching base exists
3782
+ prefixes,
3783
+ offset
3784
+ };
3910
3785
 
3786
+ // Create a new base if no matching base exists
3911
3787
  var anyMatch = false;
3912
-
3913
3788
  for (var _i7 in BASE_UNITS) {
3914
3789
  if (hasOwnProperty(BASE_UNITS, _i7)) {
3915
3790
  var match = true;
3916
-
3917
3791
  for (var j = 0; j < BASE_DIMENSIONS.length; j++) {
3918
3792
  if (Math.abs((newUnit.dimensions[j] || 0) - (BASE_UNITS[_i7].dimensions[j] || 0)) > 1e-12) {
3919
3793
  match = false;
3920
3794
  break;
3921
3795
  }
3922
3796
  }
3923
-
3924
3797
  if (match) {
3925
3798
  anyMatch = true;
3926
3799
  newUnit.base = BASE_UNITS[_i7];
@@ -3928,11 +3801,9 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3928
3801
  }
3929
3802
  }
3930
3803
  }
3931
-
3932
3804
  if (!anyMatch) {
3933
3805
  baseName = baseName || name + '_STUFF'; // foo --> foo_STUFF, or the essence of foo
3934
3806
  // Add the new base unit
3935
-
3936
3807
  var _newBaseUnit = {
3937
3808
  dimensions: defUnit.dimensions.slice(0)
3938
3809
  };
@@ -3945,31 +3816,28 @@ export var createUnitClass = /* #__PURE__ */factory(name, dependencies, (_ref) =
3945
3816
  newUnit.base = BASE_UNITS[baseName];
3946
3817
  }
3947
3818
  }
3948
-
3949
3819
  Unit.UNITS[name] = newUnit;
3950
-
3951
3820
  for (var _i8 = 0; _i8 < aliases.length; _i8++) {
3952
3821
  var aliasName = aliases[_i8];
3953
3822
  var _alias = {};
3954
-
3955
3823
  for (var _key6 in newUnit) {
3956
3824
  if (hasOwnProperty(newUnit, _key6)) {
3957
3825
  _alias[_key6] = newUnit[_key6];
3958
3826
  }
3959
3827
  }
3960
-
3961
3828
  _alias.name = aliasName;
3962
3829
  Unit.UNITS[aliasName] = _alias;
3963
3830
  }
3964
-
3831
+ // delete the memoization cache, since adding a new unit to the array
3832
+ // invalidates all old results
3833
+ delete _findUnit.cache;
3965
3834
  return new Unit(null, name);
3966
3835
  };
3967
-
3968
3836
  Unit.deleteUnit = function (name) {
3969
3837
  delete Unit.UNITS[name];
3970
- }; // expose arrays with prefixes, dimensions, units, systems
3971
-
3838
+ };
3972
3839
 
3840
+ // expose arrays with prefixes, dimensions, units, systems
3973
3841
  Unit.PREFIXES = PREFIXES;
3974
3842
  Unit.BASE_DIMENSIONS = BASE_DIMENSIONS;
3975
3843
  Unit.BASE_UNITS = BASE_UNITS;