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,56 +1,47 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
6
7
  exports.createUnitClass = void 0;
7
-
8
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
8
11
  var _is = require("../../utils/is.js");
9
-
10
12
  var _factory = require("../../utils/factory.js");
11
-
13
+ var _function = require("../../utils/function.js");
12
14
  var _string = require("../../utils/string.js");
13
-
14
15
  var _object = require("../../utils/object.js");
15
-
16
16
  var _constants = require("../../utils/bignumber/constants.js");
17
-
18
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
19
-
20
- 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); }
21
-
22
- 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; }
23
-
24
- 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; }
25
-
26
- 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; }
27
-
17
+ 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; }
18
+ 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) { (0, _defineProperty2["default"])(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; }
28
19
  var name = 'Unit';
29
- var dependencies = ['?on', 'config', 'addScalar', 'subtract', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
30
- var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
20
+ var dependencies = ['?on', 'config', 'addScalar', 'subtractScalar', 'multiplyScalar', 'divideScalar', 'pow', 'abs', 'fix', 'round', 'equal', 'isNumeric', 'format', 'number', 'Complex', 'BigNumber', 'Fraction'];
21
+ var createUnitClass = exports.createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, function (_ref) {
31
22
  var on = _ref.on,
32
- config = _ref.config,
33
- addScalar = _ref.addScalar,
34
- subtract = _ref.subtract,
35
- multiplyScalar = _ref.multiplyScalar,
36
- divideScalar = _ref.divideScalar,
37
- pow = _ref.pow,
38
- abs = _ref.abs,
39
- fix = _ref.fix,
40
- round = _ref.round,
41
- equal = _ref.equal,
42
- isNumeric = _ref.isNumeric,
43
- format = _ref.format,
44
- number = _ref.number,
45
- Complex = _ref.Complex,
46
- _BigNumber = _ref.BigNumber,
47
- _Fraction = _ref.Fraction;
48
- var toNumber = number;
23
+ config = _ref.config,
24
+ addScalar = _ref.addScalar,
25
+ subtractScalar = _ref.subtractScalar,
26
+ multiplyScalar = _ref.multiplyScalar,
27
+ divideScalar = _ref.divideScalar,
28
+ pow = _ref.pow,
29
+ abs = _ref.abs,
30
+ fix = _ref.fix,
31
+ round = _ref.round,
32
+ equal = _ref.equal,
33
+ isNumeric = _ref.isNumeric,
34
+ format = _ref.format,
35
+ _number = _ref.number,
36
+ Complex = _ref.Complex,
37
+ _BigNumber = _ref.BigNumber,
38
+ _Fraction = _ref.Fraction;
39
+ var toNumber = _number;
49
40
  /**
50
41
  * A unit can be constructed in the following ways:
51
42
  *
52
- * const a = new Unit(value, name)
53
- * const b = new Unit(null, name)
43
+ * const a = new Unit(value, valuelessUnit)
44
+ * const b = new Unit(null, valuelessUnit)
54
45
  * const c = Unit.parse(str)
55
46
  *
56
47
  * Example usage:
@@ -63,105 +54,95 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
63
54
  * @class Unit
64
55
  * @constructor Unit
65
56
  * @param {number | BigNumber | Fraction | Complex | boolean} [value] A value like 5.2
66
- * @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.
57
+ * @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like "cm"
67
58
  */
68
-
69
- function Unit(value, name) {
59
+ function Unit(value, valuelessUnit) {
70
60
  if (!(this instanceof Unit)) {
71
61
  throw new Error('Constructor must be called with the new operator');
72
62
  }
73
-
74
63
  if (!(value === null || value === undefined || isNumeric(value) || (0, _is.isComplex)(value))) {
75
64
  throw new TypeError('First parameter in Unit constructor must be number, BigNumber, Fraction, Complex, or undefined');
76
65
  }
77
-
78
- if (name !== undefined && (typeof name !== 'string' || name === '')) {
79
- throw new TypeError('Second parameter in Unit constructor must be a string');
80
- }
81
-
82
- if (name !== undefined) {
83
- var u = Unit.parse(name);
84
- this.units = u.units;
85
- this.dimensions = u.dimensions;
86
- } else {
87
- this.units = [{
88
- unit: UNIT_NONE,
89
- prefix: PREFIXES.NONE,
90
- // link to a list with supported prefixes
91
- power: 0
92
- }];
93
- this.dimensions = [];
94
-
95
- for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
96
- this.dimensions[i] = 0;
97
- }
98
- }
99
-
100
- this.value = value !== undefined && value !== null ? this._normalize(value) : null;
101
66
  this.fixPrefix = false; // if true, function format will not search for the
102
67
  // best prefix but leave it as initially provided.
103
68
  // fixPrefix is set true by the method Unit.to
104
- // The justification behind this is that if the constructor is explicitly called,
105
- // the caller wishes the units to be returned exactly as he supplied.
106
69
 
70
+ // The justification behind this is that if the constructor is explicitly called,
71
+ // the caller wishes the units to be returned exactly as supplied.
107
72
  this.skipAutomaticSimplification = true;
73
+ if (valuelessUnit === undefined) {
74
+ this.units = [];
75
+ this.dimensions = BASE_DIMENSIONS.map(function (x) {
76
+ return 0;
77
+ });
78
+ } else if (typeof valuelessUnit === 'string') {
79
+ var u = Unit.parse(valuelessUnit);
80
+ this.units = u.units;
81
+ this.dimensions = u.dimensions;
82
+ } else if ((0, _is.isUnit)(valuelessUnit) && valuelessUnit.value === null) {
83
+ // clone from valuelessUnit
84
+ this.fixPrefix = valuelessUnit.fixPrefix;
85
+ this.skipAutomaticSimplification = valuelessUnit.skipAutomaticSimplification;
86
+ this.dimensions = valuelessUnit.dimensions.slice(0);
87
+ this.units = valuelessUnit.units.map(function (u) {
88
+ return (0, _extends2["default"])({}, u);
89
+ });
90
+ } else {
91
+ throw new TypeError('Second parameter in Unit constructor must be a string or valueless Unit');
92
+ }
93
+ this.value = this._normalize(value);
108
94
  }
95
+
109
96
  /**
110
97
  * Attach type information
111
98
  */
112
-
113
-
99
+ Object.defineProperty(Unit, 'name', {
100
+ value: 'Unit'
101
+ });
102
+ Unit.prototype.constructor = Unit;
114
103
  Unit.prototype.type = 'Unit';
115
- Unit.prototype.isUnit = true; // private variables and functions for the Unit parser
104
+ Unit.prototype.isUnit = true;
116
105
 
106
+ // private variables and functions for the Unit parser
117
107
  var text, index, c;
118
-
119
108
  function skipWhitespace() {
120
109
  while (c === ' ' || c === '\t') {
121
110
  next();
122
111
  }
123
112
  }
124
-
125
113
  function isDigitDot(c) {
126
114
  return c >= '0' && c <= '9' || c === '.';
127
115
  }
128
-
129
116
  function isDigit(c) {
130
117
  return c >= '0' && c <= '9';
131
118
  }
132
-
133
119
  function next() {
134
120
  index++;
135
121
  c = text.charAt(index);
136
122
  }
137
-
138
123
  function revert(oldIndex) {
139
124
  index = oldIndex;
140
125
  c = text.charAt(index);
141
126
  }
142
-
143
127
  function parseNumber() {
144
128
  var number = '';
145
129
  var oldIndex = index;
146
-
147
130
  if (c === '+') {
148
131
  next();
149
132
  } else if (c === '-') {
150
133
  number += c;
151
134
  next();
152
135
  }
153
-
154
136
  if (!isDigitDot(c)) {
155
137
  // a + or - must be followed by a digit
156
138
  revert(oldIndex);
157
139
  return null;
158
- } // get number, can have a single dot
159
-
140
+ }
160
141
 
142
+ // get number, can have a single dot
161
143
  if (c === '.') {
162
144
  number += c;
163
145
  next();
164
-
165
146
  if (!isDigit(c)) {
166
147
  // this is no legal number, it is just a dot
167
148
  revert(oldIndex);
@@ -172,68 +153,62 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
172
153
  number += c;
173
154
  next();
174
155
  }
175
-
176
156
  if (c === '.') {
177
157
  number += c;
178
158
  next();
179
159
  }
180
160
  }
181
-
182
161
  while (isDigit(c)) {
183
162
  number += c;
184
163
  next();
185
- } // check for exponential notation like "2.3e-4" or "1.23e50"
186
-
164
+ }
187
165
 
166
+ // check for exponential notation like "2.3e-4" or "1.23e50"
188
167
  if (c === 'E' || c === 'e') {
189
168
  // 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"
169
+
190
170
  var tentativeNumber = '';
191
171
  var tentativeIndex = index;
192
172
  tentativeNumber += c;
193
173
  next();
194
-
195
174
  if (c === '+' || c === '-') {
196
175
  tentativeNumber += c;
197
176
  next();
198
- } // Scientific notation MUST be followed by an exponent (otherwise we assume it is not scientific notation)
199
-
177
+ }
200
178
 
179
+ // Scientific notation MUST be followed by an exponent (otherwise we assume it is not scientific notation)
201
180
  if (!isDigit(c)) {
202
181
  // The e or E must belong to something else, so return the number without the e or E.
203
182
  revert(tentativeIndex);
204
183
  return number;
205
- } // We can now safely say that this is scientific notation.
206
-
184
+ }
207
185
 
186
+ // We can now safely say that this is scientific notation.
208
187
  number = number + tentativeNumber;
209
-
210
188
  while (isDigit(c)) {
211
189
  number += c;
212
190
  next();
213
191
  }
214
192
  }
215
-
216
193
  return number;
217
194
  }
218
-
219
195
  function parseUnit() {
220
- var unitName = ''; // Alphanumeric characters only; matches [a-zA-Z0-9]
196
+ var unitName = '';
221
197
 
198
+ // Alphanumeric characters only; matches [a-zA-Z0-9]
222
199
  while (isDigit(c) || Unit.isValidAlpha(c)) {
223
200
  unitName += c;
224
201
  next();
225
- } // Must begin with [a-zA-Z]
226
-
202
+ }
227
203
 
204
+ // Must begin with [a-zA-Z]
228
205
  var firstC = unitName.charAt(0);
229
-
230
206
  if (Unit.isValidAlpha(firstC)) {
231
207
  return unitName;
232
208
  } else {
233
209
  return null;
234
210
  }
235
211
  }
236
-
237
212
  function parseCharacter(toFind) {
238
213
  if (c === toFind) {
239
214
  next();
@@ -242,6 +217,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
242
217
  return null;
243
218
  }
244
219
  }
220
+
245
221
  /**
246
222
  * Parse a string into a unit. The value of the unit is parsed as number,
247
223
  * BigNumber, or Fraction depending on the math.js config setting `number`.
@@ -252,24 +228,23 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
252
228
  * @param {string} str A string like "5.2 inch", "4e2 cm/s^2"
253
229
  * @return {Unit} unit
254
230
  */
255
-
256
-
257
231
  Unit.parse = function (str, options) {
258
232
  options = options || {};
259
233
  text = str;
260
234
  index = -1;
261
235
  c = '';
262
-
263
236
  if (typeof text !== 'string') {
264
237
  throw new TypeError('Invalid argument in Unit.parse, string expected');
265
238
  }
266
-
267
239
  var unit = new Unit();
268
240
  unit.units = [];
269
241
  var powerMultiplierCurrent = 1;
270
- var expectingUnit = false; // A unit should follow this pattern:
242
+ var expectingUnit = false;
243
+
244
+ // A unit should follow this pattern:
271
245
  // [number] ...[ [*/] unit[^number] ]
272
246
  // unit[^number] ... [ [*/] unit[^number] ]
247
+
273
248
  // Rules:
274
249
  // number is any floating point number.
275
250
  // 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!
@@ -281,11 +256,11 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
281
256
  // 4erg
282
257
 
283
258
  next();
284
- skipWhitespace(); // Optional number at the start of the string
259
+ skipWhitespace();
285
260
 
261
+ // Optional number at the start of the string
286
262
  var valueStr = parseNumber();
287
263
  var value = null;
288
-
289
264
  if (valueStr) {
290
265
  if (config.number === 'BigNumber') {
291
266
  value = new _BigNumber(valueStr);
@@ -300,10 +275,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
300
275
  // number
301
276
  value = parseFloat(valueStr);
302
277
  }
303
-
304
278
  skipWhitespace(); // Whitespace is not required here
305
- // handle multiplication or division right after the value, like '1/s'
306
279
 
280
+ // handle multiplication or division right after the value, like '1/s'
307
281
  if (parseCharacter('*')) {
308
282
  powerMultiplierCurrent = 1;
309
283
  expectingUnit = true;
@@ -311,93 +285,83 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
311
285
  powerMultiplierCurrent = -1;
312
286
  expectingUnit = true;
313
287
  }
314
- } // Stack to keep track of powerMultipliers applied to each parentheses group
315
-
288
+ }
316
289
 
317
- var powerMultiplierStack = []; // Running product of all elements in powerMultiplierStack
290
+ // Stack to keep track of powerMultipliers applied to each parentheses group
291
+ var powerMultiplierStack = [];
318
292
 
293
+ // Running product of all elements in powerMultiplierStack
319
294
  var powerMultiplierStackProduct = 1;
320
-
321
295
  while (true) {
322
- skipWhitespace(); // Check for and consume opening parentheses, pushing powerMultiplierCurrent to the stack
323
- // A '(' will always appear directly before a unit.
296
+ skipWhitespace();
324
297
 
298
+ // Check for and consume opening parentheses, pushing powerMultiplierCurrent to the stack
299
+ // A '(' will always appear directly before a unit.
325
300
  while (c === '(') {
326
301
  powerMultiplierStack.push(powerMultiplierCurrent);
327
302
  powerMultiplierStackProduct *= powerMultiplierCurrent;
328
303
  powerMultiplierCurrent = 1;
329
304
  next();
330
305
  skipWhitespace();
331
- } // Is there something here?
332
-
306
+ }
333
307
 
308
+ // Is there something here?
334
309
  var uStr = void 0;
335
-
336
310
  if (c) {
337
311
  var oldC = c;
338
312
  uStr = parseUnit();
339
-
340
313
  if (uStr === null) {
341
314
  throw new SyntaxError('Unexpected "' + oldC + '" in "' + text + '" at index ' + index.toString());
342
315
  }
343
316
  } else {
344
317
  // End of input.
345
318
  break;
346
- } // Verify the unit exists and get the prefix (if any)
347
-
319
+ }
348
320
 
321
+ // Verify the unit exists and get the prefix (if any)
349
322
  var res = _findUnit(uStr);
350
-
351
323
  if (res === null) {
352
324
  // Unit not found.
353
325
  throw new SyntaxError('Unit "' + uStr + '" not found.');
354
326
  }
355
-
356
- var power = powerMultiplierCurrent * powerMultiplierStackProduct; // Is there a "^ number"?
357
-
327
+ var power = powerMultiplierCurrent * powerMultiplierStackProduct;
328
+ // Is there a "^ number"?
358
329
  skipWhitespace();
359
-
360
330
  if (parseCharacter('^')) {
361
331
  skipWhitespace();
362
332
  var p = parseNumber();
363
-
364
333
  if (p === null) {
365
334
  // No valid number found for the power!
366
335
  throw new SyntaxError('In "' + str + '", "^" must be followed by a floating-point number');
367
336
  }
368
-
369
337
  power *= p;
370
- } // Add the unit to the list
371
-
338
+ }
372
339
 
340
+ // Add the unit to the list
373
341
  unit.units.push({
374
342
  unit: res.unit,
375
343
  prefix: res.prefix,
376
344
  power: power
377
345
  });
378
-
379
346
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
380
347
  unit.dimensions[i] += (res.unit.dimensions[i] || 0) * power;
381
- } // Check for and consume closing parentheses, popping from the stack.
382
- // A ')' will always follow a unit.
383
-
348
+ }
384
349
 
350
+ // Check for and consume closing parentheses, popping from the stack.
351
+ // A ')' will always follow a unit.
385
352
  skipWhitespace();
386
-
387
353
  while (c === ')') {
388
354
  if (powerMultiplierStack.length === 0) {
389
355
  throw new SyntaxError('Unmatched ")" in "' + text + '" at index ' + index.toString());
390
356
  }
391
-
392
357
  powerMultiplierStackProduct /= powerMultiplierStack.pop();
393
358
  next();
394
359
  skipWhitespace();
395
- } // "*" and "/" should mean we are expecting something to come next.
396
- // Is there a forward slash? If so, negate powerMultiplierCurrent. The next unit or paren group is in the denominator.
397
-
360
+ }
398
361
 
362
+ // "*" and "/" should mean we are expecting something to come next.
363
+ // Is there a forward slash? If so, negate powerMultiplierCurrent. The next unit or paren group is in the denominator.
399
364
  expectingUnit = false;
400
-
401
365
  if (parseCharacter('*')) {
402
366
  // explicit multiplication
403
367
  powerMultiplierCurrent = 1;
@@ -409,9 +373,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
409
373
  } else {
410
374
  // implicit multiplication
411
375
  powerMultiplierCurrent = 1;
412
- } // Replace the unit into the auto unit system
413
-
376
+ }
414
377
 
378
+ // Replace the unit into the auto unit system
415
379
  if (res.unit.base) {
416
380
  var baseDim = res.unit.base.key;
417
381
  UNIT_SYSTEMS.auto[baseDim] = {
@@ -419,40 +383,37 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
419
383
  prefix: res.prefix
420
384
  };
421
385
  }
422
- } // Has the string been entirely consumed?
423
-
386
+ }
424
387
 
388
+ // Has the string been entirely consumed?
425
389
  skipWhitespace();
426
-
427
390
  if (c) {
428
391
  throw new SyntaxError('Could not parse: "' + str + '"');
429
- } // Is there a trailing slash?
430
-
392
+ }
431
393
 
394
+ // Is there a trailing slash?
432
395
  if (expectingUnit) {
433
396
  throw new SyntaxError('Trailing characters: "' + str + '"');
434
- } // Is the parentheses stack empty?
435
-
397
+ }
436
398
 
399
+ // Is the parentheses stack empty?
437
400
  if (powerMultiplierStack.length !== 0) {
438
401
  throw new SyntaxError('Unmatched "(" in "' + text + '"');
439
- } // Are there any units at all?
440
-
402
+ }
441
403
 
404
+ // Are there any units at all?
442
405
  if (unit.units.length === 0 && !options.allowNoUnits) {
443
406
  throw new SyntaxError('"' + str + '" contains no units');
444
407
  }
445
-
446
408
  unit.value = value !== undefined ? unit._normalize(value) : null;
447
409
  return unit;
448
410
  };
411
+
449
412
  /**
450
413
  * create a copy of this unit
451
414
  * @memberof Unit
452
415
  * @return {Unit} Returns a cloned version of the unit
453
416
  */
454
-
455
-
456
417
  Unit.prototype.clone = function () {
457
418
  var unit = new Unit();
458
419
  unit.fixPrefix = this.fixPrefix;
@@ -460,33 +421,39 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
460
421
  unit.value = (0, _object.clone)(this.value);
461
422
  unit.dimensions = this.dimensions.slice(0);
462
423
  unit.units = [];
463
-
464
424
  for (var i = 0; i < this.units.length; i++) {
465
425
  unit.units[i] = {};
466
-
467
426
  for (var p in this.units[i]) {
468
427
  if ((0, _object.hasOwnProperty)(this.units[i], p)) {
469
428
  unit.units[i][p] = this.units[i][p];
470
429
  }
471
430
  }
472
431
  }
473
-
474
432
  return unit;
475
433
  };
434
+
435
+ /**
436
+ * Return the type of the value of this unit
437
+ *
438
+ * @memberof Unit
439
+ * @ return {string} type of the value of the unit
440
+ */
441
+ Unit.prototype.valueType = function () {
442
+ return (0, _is.typeOf)(this.value);
443
+ };
444
+
476
445
  /**
477
446
  * Return whether the unit is derived (such as m/s, or cm^2, but not N)
478
447
  * @memberof Unit
479
448
  * @return {boolean} True if the unit is derived
480
449
  */
481
-
482
-
483
450
  Unit.prototype._isDerived = function () {
484
451
  if (this.units.length === 0) {
485
452
  return false;
486
453
  }
487
-
488
454
  return this.units.length > 1 || Math.abs(this.units[0].power - 1.0) > 1e-15;
489
455
  };
456
+
490
457
  /**
491
458
  * Normalize a value, based on its currently set unit(s)
492
459
  * @memberof Unit
@@ -494,38 +461,22 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
494
461
  * @return {number | BigNumber | Fraction | boolean} normalized value
495
462
  * @private
496
463
  */
497
-
498
-
499
464
  Unit.prototype._normalize = function (value) {
500
- var unitValue, unitOffset, unitPower, unitPrefixValue;
501
- var convert;
502
-
503
465
  if (value === null || value === undefined || this.units.length === 0) {
504
466
  return value;
505
- } else if (this._isDerived()) {
506
- // This is a derived unit, so do not apply offsets.
507
- // For example, with J kg^-1 degC^-1 you would NOT want to apply the offset.
508
- var res = value;
509
- convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
510
-
511
- for (var i = 0; i < this.units.length; i++) {
512
- unitValue = convert(this.units[i].unit.value);
513
- unitPrefixValue = convert(this.units[i].prefix.value);
514
- unitPower = convert(this.units[i].power);
515
- res = multiplyScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
516
- }
517
-
518
- return res;
519
- } else {
520
- // This is a single unit of power 1, like kg or degC
521
- convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
467
+ }
468
+ var res = value;
469
+ var convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
522
470
 
523
- unitValue = convert(this.units[0].unit.value);
524
- unitOffset = convert(this.units[0].unit.offset);
525
- unitPrefixValue = convert(this.units[0].prefix.value);
526
- return multiplyScalar(addScalar(value, unitOffset), multiplyScalar(unitValue, unitPrefixValue));
471
+ for (var i = 0; i < this.units.length; i++) {
472
+ var unitValue = convert(this.units[i].unit.value);
473
+ var unitPrefixValue = convert(this.units[i].prefix.value);
474
+ var unitPower = convert(this.units[i].power);
475
+ res = multiplyScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
527
476
  }
477
+ return res;
528
478
  };
479
+
529
480
  /**
530
481
  * Denormalize a value, based on its currently set unit(s)
531
482
  * @memberof Unit
@@ -534,44 +485,22 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
534
485
  * @return {number} denormalized value
535
486
  * @private
536
487
  */
537
-
538
-
539
488
  Unit.prototype._denormalize = function (value, prefixValue) {
540
- var unitValue, unitOffset, unitPower, unitPrefixValue;
541
- var convert;
542
-
543
489
  if (value === null || value === undefined || this.units.length === 0) {
544
490
  return value;
545
- } else if (this._isDerived()) {
546
- // This is a derived unit, so do not apply offsets.
547
- // For example, with J kg^-1 degC^-1 you would NOT want to apply the offset.
548
- // 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.
549
- var res = value;
550
- convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
551
-
552
- for (var i = 0; i < this.units.length; i++) {
553
- unitValue = convert(this.units[i].unit.value);
554
- unitPrefixValue = convert(this.units[i].prefix.value);
555
- unitPower = convert(this.units[i].power);
556
- res = divideScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
557
- }
558
-
559
- return res;
560
- } else {
561
- // This is a single unit of power 1, like kg or degC
562
- convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
563
-
564
- unitValue = convert(this.units[0].unit.value);
565
- unitPrefixValue = convert(this.units[0].prefix.value);
566
- unitOffset = convert(this.units[0].unit.offset);
491
+ }
492
+ var res = value;
493
+ var convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
567
494
 
568
- if (prefixValue === undefined || prefixValue === null) {
569
- return subtract(divideScalar(divideScalar(value, unitValue), unitPrefixValue), unitOffset);
570
- } else {
571
- return subtract(divideScalar(divideScalar(value, unitValue), prefixValue), unitOffset);
572
- }
495
+ for (var i = 0; i < this.units.length; i++) {
496
+ var unitValue = convert(this.units[i].unit.value);
497
+ var unitPrefixValue = convert(this.units[i].prefix.value);
498
+ var unitPower = convert(this.units[i].power);
499
+ res = divideScalar(res, pow(multiplyScalar(unitValue, unitPrefixValue), unitPower));
573
500
  }
501
+ return res;
574
502
  };
503
+
575
504
  /**
576
505
  * Find a unit from a string
577
506
  * @memberof Unit
@@ -580,9 +509,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
580
509
  * prefix is returned. Else, null is returned.
581
510
  * @private
582
511
  */
583
-
584
-
585
- function _findUnit(str) {
512
+ var _findUnit = (0, _function.memoize)(function (str) {
586
513
  // 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.
587
514
  if ((0, _object.hasOwnProperty)(UNITS, str)) {
588
515
  var unit = UNITS[str];
@@ -592,16 +519,13 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
592
519
  prefix: prefix
593
520
  };
594
521
  }
595
-
596
522
  for (var _name in UNITS) {
597
523
  if ((0, _object.hasOwnProperty)(UNITS, _name)) {
598
524
  if ((0, _string.endsWith)(str, _name)) {
599
525
  var _unit = UNITS[_name];
600
526
  var prefixLen = str.length - _name.length;
601
527
  var prefixName = str.substring(0, prefixLen);
602
-
603
528
  var _prefix = (0, _object.hasOwnProperty)(_unit.prefixes, prefixName) ? _unit.prefixes[prefixName] : undefined;
604
-
605
529
  if (_prefix !== undefined) {
606
530
  // store unit, prefix, and value
607
531
  return {
@@ -612,9 +536,14 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
612
536
  }
613
537
  }
614
538
  }
615
-
616
539
  return null;
617
- }
540
+ }, {
541
+ hasher: function hasher(args) {
542
+ return args[0];
543
+ },
544
+ limit: 100
545
+ });
546
+
618
547
  /**
619
548
  * Test if the given expression is a unit.
620
549
  * The unit can have a prefix but cannot have a value.
@@ -623,37 +552,33 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
623
552
  * The unit can have prefix, like "cm"
624
553
  * @return {boolean} true if the given string is a unit
625
554
  */
626
-
627
-
628
555
  Unit.isValuelessUnit = function (name) {
629
556
  return _findUnit(name) !== null;
630
557
  };
558
+
631
559
  /**
632
560
  * check if this unit has given base unit
633
561
  * If this unit is a derived unit, this will ALWAYS return false, since by definition base units are not derived.
634
562
  * @memberof Unit
635
563
  * @param {BASE_UNITS | string | undefined} base
636
564
  */
637
-
638
-
639
565
  Unit.prototype.hasBase = function (base) {
640
566
  if (typeof base === 'string') {
641
567
  base = BASE_UNITS[base];
642
568
  }
643
-
644
569
  if (!base) {
645
570
  return false;
646
- } // All dimensions must be the same
647
-
571
+ }
648
572
 
573
+ // All dimensions must be the same
649
574
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
650
575
  if (Math.abs((this.dimensions[i] || 0) - (base.dimensions[i] || 0)) > 1e-12) {
651
576
  return false;
652
577
  }
653
578
  }
654
-
655
579
  return true;
656
580
  };
581
+
657
582
  /**
658
583
  * Check if this unit has a base or bases equal to another base or bases
659
584
  * For derived units, the exponent on each base also must match
@@ -661,8 +586,6 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
661
586
  * @param {Unit} other
662
587
  * @return {boolean} true if equal base
663
588
  */
664
-
665
-
666
589
  Unit.prototype.equalBase = function (other) {
667
590
  // All dimensions must be the same
668
591
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
@@ -670,45 +593,41 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
670
593
  return false;
671
594
  }
672
595
  }
673
-
674
596
  return true;
675
597
  };
598
+
676
599
  /**
677
600
  * Check if this unit equals another unit
678
601
  * @memberof Unit
679
602
  * @param {Unit} other
680
603
  * @return {boolean} true if both units are equal
681
604
  */
682
-
683
-
684
605
  Unit.prototype.equals = function (other) {
685
606
  return this.equalBase(other) && equal(this.value, other.value);
686
607
  };
608
+
687
609
  /**
688
- * Multiply this unit with another one
610
+ * Multiply this unit with another one or with a scalar
689
611
  * @memberof Unit
690
612
  * @param {Unit} other
691
613
  * @return {Unit} product of this unit and the other unit
692
614
  */
693
-
694
-
695
- Unit.prototype.multiply = function (other) {
615
+ Unit.prototype.multiply = function (_other) {
696
616
  var res = this.clone();
697
-
617
+ var other = (0, _is.isUnit)(_other) ? _other : new Unit(_other);
698
618
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
699
619
  // Dimensions arrays may be of different lengths. Default to 0.
700
620
  res.dimensions[i] = (this.dimensions[i] || 0) + (other.dimensions[i] || 0);
701
- } // Append other's units list onto res
702
-
621
+ }
703
622
 
623
+ // Append other's units list onto res
704
624
  for (var _i = 0; _i < other.units.length; _i++) {
705
625
  // Make a shallow copy of every unit
706
626
  var inverted = _objectSpread({}, other.units[_i]);
707
-
708
627
  res.units.push(inverted);
709
- } // If at least one operand has a value, then the result should also have a value
710
-
628
+ }
711
629
 
630
+ // If at least one operand has a value, then the result should also have a value
712
631
  if (this.value !== null || other.value !== null) {
713
632
  var valThis = this.value === null ? this._normalize(1) : this.value;
714
633
  var valOther = other.value === null ? other._normalize(1) : other.value;
@@ -716,37 +635,47 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
716
635
  } else {
717
636
  res.value = null;
718
637
  }
719
-
720
- res.skipAutomaticSimplification = false;
638
+ if ((0, _is.isUnit)(_other)) {
639
+ res.skipAutomaticSimplification = false;
640
+ }
721
641
  return getNumericIfUnitless(res);
722
642
  };
643
+
644
+ /**
645
+ * Divide a number by this unit
646
+ *
647
+ * @memberof Unit
648
+ * @param {numeric} numerator
649
+ * @param {unit} result of dividing numerator by this unit
650
+ */
651
+ Unit.prototype.divideInto = function (numerator) {
652
+ return new Unit(numerator).divide(this);
653
+ };
654
+
723
655
  /**
724
656
  * Divide this unit by another one
725
657
  * @memberof Unit
726
- * @param {Unit} other
658
+ * @param {Unit | numeric} other
727
659
  * @return {Unit} result of dividing this unit by the other unit
728
660
  */
729
-
730
-
731
- Unit.prototype.divide = function (other) {
661
+ Unit.prototype.divide = function (_other) {
732
662
  var res = this.clone();
733
-
663
+ var other = (0, _is.isUnit)(_other) ? _other : new Unit(_other);
734
664
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
735
665
  // Dimensions arrays may be of different lengths. Default to 0.
736
666
  res.dimensions[i] = (this.dimensions[i] || 0) - (other.dimensions[i] || 0);
737
- } // Invert and append other's units list onto res
738
-
667
+ }
739
668
 
669
+ // Invert and append other's units list onto res
740
670
  for (var _i2 = 0; _i2 < other.units.length; _i2++) {
741
671
  // Make a shallow copy of every unit
742
672
  var inverted = _objectSpread(_objectSpread({}, other.units[_i2]), {}, {
743
673
  power: -other.units[_i2].power
744
674
  });
745
-
746
675
  res.units.push(inverted);
747
- } // If at least one operand has a value, the result should have a value
748
-
676
+ }
749
677
 
678
+ // If at least one operand has a value, the result should have a value
750
679
  if (this.value !== null || other.value !== null) {
751
680
  var valThis = this.value === null ? this._normalize(1) : this.value;
752
681
  var valOther = other.value === null ? other._normalize(1) : other.value;
@@ -754,33 +683,33 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
754
683
  } else {
755
684
  res.value = null;
756
685
  }
757
-
758
- res.skipAutomaticSimplification = false;
686
+ if ((0, _is.isUnit)(_other)) {
687
+ res.skipAutomaticSimplification = false;
688
+ }
759
689
  return getNumericIfUnitless(res);
760
690
  };
691
+
761
692
  /**
762
693
  * Calculate the power of a unit
763
694
  * @memberof Unit
764
695
  * @param {number | Fraction | BigNumber} p
765
696
  * @returns {Unit} The result: this^p
766
697
  */
767
-
768
-
769
698
  Unit.prototype.pow = function (p) {
770
699
  var res = this.clone();
771
-
772
700
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
773
701
  // Dimensions arrays may be of different lengths. Default to 0.
774
702
  res.dimensions[i] = (this.dimensions[i] || 0) * p;
775
- } // Adjust the power of each unit in the list
776
-
703
+ }
777
704
 
705
+ // Adjust the power of each unit in the list
778
706
  for (var _i3 = 0; _i3 < res.units.length; _i3++) {
779
707
  res.units[_i3].power *= p;
780
708
  }
781
-
782
709
  if (res.value !== null) {
783
- res.value = pow(res.value, p); // only allow numeric output, we don't want to return a Complex number
710
+ res.value = pow(res.value, p);
711
+
712
+ // only allow numeric output, we don't want to return a Complex number
784
713
  // if (!isNumeric(res.value)) {
785
714
  // res.value = NaN
786
715
  // }
@@ -788,17 +717,15 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
788
717
  } else {
789
718
  res.value = null;
790
719
  }
791
-
792
720
  res.skipAutomaticSimplification = false;
793
721
  return getNumericIfUnitless(res);
794
722
  };
723
+
795
724
  /**
796
725
  * Return the numeric value of this unit if it is dimensionless, has a value, and config.predictable == false; or the original unit otherwise
797
726
  * @param {Unit} unit
798
727
  * @returns {number | Fraction | BigNumber | Unit} The numeric value of the unit if conditions are met, or the original unit otherwise
799
728
  */
800
-
801
-
802
729
  function getNumericIfUnitless(unit) {
803
730
  if (unit.equalBase(BASE_UNITS.NONE) && unit.value !== null && !config.predictable) {
804
731
  return unit.value;
@@ -806,74 +733,78 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
806
733
  return unit;
807
734
  }
808
735
  }
736
+
809
737
  /**
810
738
  * Calculate the absolute value of a unit
811
739
  * @memberof Unit
812
740
  * @param {number | Fraction | BigNumber} x
813
741
  * @returns {Unit} The result: |x|, absolute value of x
814
742
  */
815
-
816
-
817
743
  Unit.prototype.abs = function () {
818
- // This gives correct, but unexpected, results for units with an offset.
819
- // For example, abs(-283.15 degC) = -263.15 degC !!!
820
744
  var ret = this.clone();
821
- ret.value = ret.value !== null ? abs(ret.value) : null;
822
-
745
+ if (ret.value !== null) {
746
+ if (ret._isDerived() || ret.units[0].unit.offset === 0) {
747
+ ret.value = abs(ret.value);
748
+ } else {
749
+ // To give the correct, but unexpected, results for units with an offset.
750
+ // For example, abs(-283.15 degC) = -263.15 degC !!!
751
+ // We must take the offset into consideration here
752
+ var convert = ret._numberConverter(); // convert to Fraction or BigNumber if needed
753
+ var unitValue = convert(ret.units[0].unit.value);
754
+ var nominalOffset = convert(ret.units[0].unit.offset);
755
+ var unitOffset = multiplyScalar(unitValue, nominalOffset);
756
+ ret.value = subtractScalar(abs(addScalar(ret.value, unitOffset)), unitOffset);
757
+ }
758
+ }
823
759
  for (var i in ret.units) {
824
760
  if (ret.units[i].unit.name === 'VA' || ret.units[i].unit.name === 'VAR') {
825
761
  ret.units[i].unit = UNITS.W;
826
762
  }
827
763
  }
828
-
829
764
  return ret;
830
765
  };
766
+
831
767
  /**
832
768
  * Convert the unit to a specific unit name.
833
769
  * @memberof Unit
834
770
  * @param {string | Unit} valuelessUnit A unit without value. Can have prefix, like "cm"
835
771
  * @returns {Unit} Returns a clone of the unit with a fixed prefix and unit.
836
772
  */
837
-
838
-
839
773
  Unit.prototype.to = function (valuelessUnit) {
840
- var other;
841
774
  var value = this.value === null ? this._normalize(1) : this.value;
842
-
775
+ var other;
843
776
  if (typeof valuelessUnit === 'string') {
844
- // other = new Unit(null, valuelessUnit)
845
777
  other = Unit.parse(valuelessUnit);
846
-
847
- if (!this.equalBase(other)) {
848
- throw new Error("Units do not match ('".concat(other.toString(), "' != '").concat(this.toString(), "')"));
849
- }
850
-
851
- if (other.value !== null) {
852
- throw new Error('Cannot convert to a unit with a value');
853
- }
854
-
855
- other.value = (0, _object.clone)(value);
856
- other.fixPrefix = true;
857
- other.skipAutomaticSimplification = true;
858
- return other;
859
778
  } else if ((0, _is.isUnit)(valuelessUnit)) {
860
- if (!this.equalBase(valuelessUnit)) {
861
- throw new Error("Units do not match ('".concat(valuelessUnit.toString(), "' != '").concat(this.toString(), "')"));
862
- }
863
-
864
- if (valuelessUnit.value !== null) {
865
- throw new Error('Cannot convert to a unit with a value');
866
- }
867
-
868
779
  other = valuelessUnit.clone();
869
- other.value = (0, _object.clone)(value);
870
- other.fixPrefix = true;
871
- other.skipAutomaticSimplification = true;
872
- return other;
873
780
  } else {
874
781
  throw new Error('String or Unit expected as parameter');
875
782
  }
783
+ if (!this.equalBase(other)) {
784
+ throw new Error("Units do not match ('".concat(other.toString(), "' != '").concat(this.toString(), "')"));
785
+ }
786
+ if (other.value !== null) {
787
+ throw new Error('Cannot convert to a unit with a value');
788
+ }
789
+ if (this.value === null || this._isDerived() || this.units[0].unit.offset === other.units[0].unit.offset) {
790
+ other.value = (0, _object.clone)(value);
791
+ } else {
792
+ /* Need to adjust value by difference in offset to convert */
793
+ var convert = Unit._getNumberConverter((0, _is.typeOf)(value)); // convert to Fraction or BigNumber if needed
794
+
795
+ var thisUnitValue = this.units[0].unit.value;
796
+ var thisNominalOffset = this.units[0].unit.offset;
797
+ var thisUnitOffset = multiplyScalar(thisUnitValue, thisNominalOffset);
798
+ var otherUnitValue = other.units[0].unit.value;
799
+ var otherNominalOffset = other.units[0].unit.offset;
800
+ var otherUnitOffset = multiplyScalar(otherUnitValue, otherNominalOffset);
801
+ other.value = addScalar(value, convert(subtractScalar(thisUnitOffset, otherUnitOffset)));
802
+ }
803
+ other.fixPrefix = true;
804
+ other.skipAutomaticSimplification = true;
805
+ return other;
876
806
  };
807
+
877
808
  /**
878
809
  * Return the value of the unit when represented with given valueless unit
879
810
  * @memberof Unit
@@ -881,53 +812,46 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
881
812
  * @return {number} Returns the unit value as number.
882
813
  */
883
814
  // TODO: deprecate Unit.toNumber? It's always better to use toNumeric
884
-
885
-
886
815
  Unit.prototype.toNumber = function (valuelessUnit) {
887
816
  return toNumber(this.toNumeric(valuelessUnit));
888
817
  };
818
+
889
819
  /**
890
820
  * Return the value of the unit in the original numeric type
891
821
  * @memberof Unit
892
822
  * @param {string | Unit} valuelessUnit For example 'cm' or 'inch'
893
823
  * @return {number | BigNumber | Fraction} Returns the unit value
894
824
  */
895
-
896
-
897
825
  Unit.prototype.toNumeric = function (valuelessUnit) {
898
826
  var other;
899
-
900
827
  if (valuelessUnit) {
901
828
  // Allow getting the numeric value without converting to a different unit
902
829
  other = this.to(valuelessUnit);
903
830
  } else {
904
831
  other = this.clone();
905
832
  }
906
-
907
833
  if (other._isDerived() || other.units.length === 0) {
908
834
  return other._denormalize(other.value);
909
835
  } else {
910
836
  return other._denormalize(other.value, other.units[0].prefix.value);
911
837
  }
912
838
  };
839
+
913
840
  /**
914
841
  * Get a string representation of the unit.
915
842
  * @memberof Unit
916
843
  * @return {string}
917
844
  */
918
-
919
-
920
845
  Unit.prototype.toString = function () {
921
846
  return this.format();
922
847
  };
848
+
923
849
  /**
924
850
  * Get a JSON representation of the unit
925
851
  * @memberof Unit
926
852
  * @returns {Object} Returns a JSON object structured as:
927
853
  * `{"mathjs": "Unit", "value": 2, "unit": "cm", "fixPrefix": false}`
928
854
  */
929
-
930
-
931
855
  Unit.prototype.toJSON = function () {
932
856
  return {
933
857
  mathjs: 'Unit',
@@ -936,6 +860,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
936
860
  fixPrefix: this.fixPrefix
937
861
  };
938
862
  };
863
+
939
864
  /**
940
865
  * Instantiate a Unit from a JSON object
941
866
  * @memberof Unit
@@ -943,32 +868,29 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
943
868
  * `{"mathjs": "Unit", "value": 2, "unit": "cm", "fixPrefix": false}`
944
869
  * @return {Unit}
945
870
  */
946
-
947
-
948
871
  Unit.fromJSON = function (json) {
949
872
  var unit = new Unit(json.value, json.unit);
950
873
  unit.fixPrefix = json.fixPrefix || false;
951
874
  return unit;
952
875
  };
876
+
953
877
  /**
954
878
  * Returns the string representation of the unit.
955
879
  * @memberof Unit
956
880
  * @return {string}
957
881
  */
958
-
959
-
960
882
  Unit.prototype.valueOf = Unit.prototype.toString;
883
+
961
884
  /**
962
885
  * Simplify this Unit's unit list and return a new Unit with the simplified list.
963
886
  * The returned Unit will contain a list of the "best" units for formatting.
964
887
  */
965
-
966
888
  Unit.prototype.simplify = function () {
967
889
  var ret = this.clone();
968
- var proposedUnitList = []; // Search for a matching base
890
+ var proposedUnitList = [];
969
891
 
892
+ // Search for a matching base
970
893
  var matchingBase;
971
-
972
894
  for (var key in currentUnitSystem) {
973
895
  if ((0, _object.hasOwnProperty)(currentUnitSystem, key)) {
974
896
  if (ret.hasBase(BASE_UNITS[key])) {
@@ -977,19 +899,16 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
977
899
  }
978
900
  }
979
901
  }
980
-
981
902
  if (matchingBase === 'NONE') {
982
903
  ret.units = [];
983
904
  } else {
984
905
  var matchingUnit;
985
-
986
906
  if (matchingBase) {
987
907
  // Does the unit system have a matching unit?
988
908
  if ((0, _object.hasOwnProperty)(currentUnitSystem, matchingBase)) {
989
909
  matchingUnit = currentUnitSystem[matchingBase];
990
910
  }
991
911
  }
992
-
993
912
  if (matchingUnit) {
994
913
  ret.units = [{
995
914
  unit: matchingUnit.unit,
@@ -1001,10 +920,8 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1001
920
  // 5 (kg m^2) / (s^3 mol)
1002
921
  // Build an representation from the base units of the current unit system
1003
922
  var missingBaseDim = false;
1004
-
1005
923
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
1006
924
  var baseDim = BASE_DIMENSIONS[i];
1007
-
1008
925
  if (Math.abs(ret.dimensions[i] || 0) > 1e-12) {
1009
926
  if ((0, _object.hasOwnProperty)(currentUnitSystem, baseDim)) {
1010
927
  proposedUnitList.push({
@@ -1016,32 +933,30 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1016
933
  missingBaseDim = true;
1017
934
  }
1018
935
  }
1019
- } // Is the proposed unit list "simpler" than the existing one?
1020
-
936
+ }
1021
937
 
938
+ // Is the proposed unit list "simpler" than the existing one?
1022
939
  if (proposedUnitList.length < ret.units.length && !missingBaseDim) {
1023
940
  // Replace this unit list with the proposed list
1024
941
  ret.units = proposedUnitList;
1025
942
  }
1026
943
  }
1027
944
  }
1028
-
1029
945
  return ret;
1030
946
  };
947
+
1031
948
  /**
1032
949
  * Returns a new Unit in the SI system with the same value as this one
1033
950
  */
1034
-
1035
-
1036
951
  Unit.prototype.toSI = function () {
1037
952
  var ret = this.clone();
1038
- var proposedUnitList = []; // Multiple units or units with powers are formatted like this:
953
+ var proposedUnitList = [];
954
+
955
+ // Multiple units or units with powers are formatted like this:
1039
956
  // 5 (kg m^2) / (s^3 mol)
1040
957
  // Build an representation from the base units of the SI unit system
1041
-
1042
958
  for (var i = 0; i < BASE_DIMENSIONS.length; i++) {
1043
959
  var baseDim = BASE_DIMENSIONS[i];
1044
-
1045
960
  if (Math.abs(ret.dimensions[i] || 0) > 1e-12) {
1046
961
  if ((0, _object.hasOwnProperty)(UNIT_SYSTEMS.si, baseDim)) {
1047
962
  proposedUnitList.push({
@@ -1053,32 +968,29 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1053
968
  throw new Error('Cannot express custom unit ' + baseDim + ' in SI units');
1054
969
  }
1055
970
  }
1056
- } // Replace this unit list with the proposed list
1057
-
971
+ }
1058
972
 
973
+ // Replace this unit list with the proposed list
1059
974
  ret.units = proposedUnitList;
1060
975
  ret.fixPrefix = true;
1061
976
  ret.skipAutomaticSimplification = true;
1062
977
  return ret;
1063
978
  };
979
+
1064
980
  /**
1065
981
  * Get a string representation of the units of this Unit, without the value. The unit list is formatted as-is without first being simplified.
1066
982
  * @memberof Unit
1067
983
  * @return {string}
1068
984
  */
1069
-
1070
-
1071
985
  Unit.prototype.formatUnits = function () {
1072
986
  var strNum = '';
1073
987
  var strDen = '';
1074
988
  var nNum = 0;
1075
989
  var nDen = 0;
1076
-
1077
990
  for (var i = 0; i < this.units.length; i++) {
1078
991
  if (this.units[i].power > 0) {
1079
992
  nNum++;
1080
993
  strNum += ' ' + this.units[i].prefix.name + this.units[i].unit.name;
1081
-
1082
994
  if (Math.abs(this.units[i].power - 1.0) > 1e-15) {
1083
995
  strNum += '^' + this.units[i].power;
1084
996
  }
@@ -1086,13 +998,11 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1086
998
  nDen++;
1087
999
  }
1088
1000
  }
1089
-
1090
1001
  if (nDen > 0) {
1091
1002
  for (var _i4 = 0; _i4 < this.units.length; _i4++) {
1092
1003
  if (this.units[_i4].power < 0) {
1093
1004
  if (nNum > 0) {
1094
1005
  strDen += ' ' + this.units[_i4].prefix.name + this.units[_i4].unit.name;
1095
-
1096
1006
  if (Math.abs(this.units[_i4].power + 1.0) > 1e-15) {
1097
1007
  strDen += '^' + -this.units[_i4].power;
1098
1008
  }
@@ -1102,29 +1012,26 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1102
1012
  }
1103
1013
  }
1104
1014
  }
1105
- } // Remove leading " "
1106
-
1107
-
1015
+ }
1016
+ // Remove leading " "
1108
1017
  strNum = strNum.substr(1);
1109
- strDen = strDen.substr(1); // Add parans for better copy/paste back into evaluate, for example, or for better pretty print formatting
1018
+ strDen = strDen.substr(1);
1110
1019
 
1020
+ // Add parans for better copy/paste back into evaluate, for example, or for better pretty print formatting
1111
1021
  if (nNum > 1 && nDen > 0) {
1112
1022
  strNum = '(' + strNum + ')';
1113
1023
  }
1114
-
1115
1024
  if (nDen > 1 && nNum > 0) {
1116
1025
  strDen = '(' + strDen + ')';
1117
1026
  }
1118
-
1119
1027
  var str = strNum;
1120
-
1121
1028
  if (nNum > 0 && nDen > 0) {
1122
1029
  str += ' / ';
1123
1030
  }
1124
-
1125
1031
  str += strDen;
1126
1032
  return str;
1127
1033
  };
1034
+
1128
1035
  /**
1129
1036
  * Get a string representation of the Unit, with optional formatting options.
1130
1037
  * @memberof Unit
@@ -1134,20 +1041,17 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1134
1041
  * options.
1135
1042
  * @return {string}
1136
1043
  */
1137
-
1138
-
1139
1044
  Unit.prototype.format = function (options) {
1140
1045
  // Simplfy the unit list, unless it is valueless or was created directly in the
1141
1046
  // constructor or as the result of to or toSI
1142
- 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.
1047
+ var simp = this.skipAutomaticSimplification || this.value === null ? this.clone() : this.simplify();
1143
1048
 
1049
+ // 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.
1144
1050
  var isImaginary = false;
1145
-
1146
1051
  if (typeof simp.value !== 'undefined' && simp.value !== null && (0, _is.isComplex)(simp.value)) {
1147
1052
  // TODO: Make this better, for example, use relative magnitude of re and im rather than absolute
1148
1053
  isImaginary = Math.abs(simp.value.re) < 1e-14;
1149
1054
  }
1150
-
1151
1055
  for (var i in simp.units) {
1152
1056
  if ((0, _object.hasOwnProperty)(simp.units, i)) {
1153
1057
  if (simp.units[i].unit) {
@@ -1158,10 +1062,10 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1158
1062
  }
1159
1063
  }
1160
1064
  }
1161
- } // Now apply the best prefix
1162
- // Units must have only one unit and not have the fixPrefix flag set
1163
-
1065
+ }
1164
1066
 
1067
+ // Now apply the best prefix
1068
+ // Units must have only one unit and not have the fixPrefix flag set
1165
1069
  if (simp.units.length === 1 && !simp.fixPrefix) {
1166
1070
  // Units must have integer powers, otherwise the prefix will change the
1167
1071
  // outputted value by not-an-integer-power-of-ten
@@ -1170,69 +1074,57 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1170
1074
  simp.units[0].prefix = simp._bestPrefix();
1171
1075
  }
1172
1076
  }
1173
-
1174
1077
  var value = simp._denormalize(simp.value);
1175
-
1176
1078
  var str = simp.value !== null ? format(value, options || {}) : '';
1177
1079
  var unitStr = simp.formatUnits();
1178
-
1179
1080
  if (simp.value && (0, _is.isComplex)(simp.value)) {
1180
1081
  str = '(' + str + ')'; // Surround complex values with ( ) to enable better parsing
1181
1082
  }
1182
-
1183
1083
  if (unitStr.length > 0 && str.length > 0) {
1184
1084
  str += ' ';
1185
1085
  }
1186
-
1187
1086
  str += unitStr;
1188
1087
  return str;
1189
1088
  };
1089
+
1190
1090
  /**
1191
1091
  * Calculate the best prefix using current value.
1192
1092
  * @memberof Unit
1193
1093
  * @returns {Object} prefix
1194
1094
  * @private
1195
1095
  */
1196
-
1197
-
1198
1096
  Unit.prototype._bestPrefix = function () {
1199
1097
  if (this.units.length !== 1) {
1200
1098
  throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');
1201
1099
  }
1202
-
1203
1100
  if (Math.abs(this.units[0].power - Math.round(this.units[0].power)) >= 1e-14) {
1204
1101
  throw new Error('Can only compute the best prefix for single units with integer powers, like kg, s^2, N^-1, and so forth!');
1205
- } // find the best prefix value (resulting in the value of which
1102
+ }
1103
+
1104
+ // find the best prefix value (resulting in the value of which
1206
1105
  // the absolute value of the log10 is closest to zero,
1207
1106
  // though with a little offset of 1.2 for nicer values: you get a
1208
1107
  // sequence 1mm 100mm 500mm 0.6m 1m 10m 100m 500m 0.6km 1km ...
1108
+
1209
1109
  // Note: the units value can be any numeric type, but to find the best
1210
1110
  // prefix it's enough to work with limited precision of a regular number
1211
1111
  // Update: using mathjs abs since we also allow complex numbers
1212
-
1213
-
1214
1112
  var absValue = this.value !== null ? abs(this.value) : 0;
1215
1113
  var absUnitValue = abs(this.units[0].unit.value);
1216
1114
  var bestPrefix = this.units[0].prefix;
1217
-
1218
1115
  if (absValue === 0) {
1219
1116
  return bestPrefix;
1220
1117
  }
1221
-
1222
1118
  var power = this.units[0].power;
1223
1119
  var bestDiff = Math.log(absValue / Math.pow(bestPrefix.value * absUnitValue, power)) / Math.LN10 - 1.2;
1224
1120
  if (bestDiff > -2.200001 && bestDiff < 1.800001) return bestPrefix; // Allow the original prefix
1225
-
1226
1121
  bestDiff = Math.abs(bestDiff);
1227
1122
  var prefixes = this.units[0].unit.prefixes;
1228
-
1229
1123
  for (var p in prefixes) {
1230
1124
  if ((0, _object.hasOwnProperty)(prefixes, p)) {
1231
1125
  var prefix = prefixes[p];
1232
-
1233
1126
  if (prefix.scientific) {
1234
1127
  var diff = Math.abs(Math.log(absValue / Math.pow(prefix.value * absUnitValue, power)) / Math.LN10 - 1.2);
1235
-
1236
1128
  if (diff < bestDiff || diff === bestDiff && prefix.name.length < bestPrefix.name.length) {
1237
1129
  // choose the prefix with the smallest diff, or if equal, choose the one
1238
1130
  // with the shortest name (can happen with SHORTLONG for example)
@@ -1242,9 +1134,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1242
1134
  }
1243
1135
  }
1244
1136
  }
1245
-
1246
1137
  return bestPrefix;
1247
1138
  };
1139
+
1248
1140
  /**
1249
1141
  * Returns an array of units whose sum is equal to this unit
1250
1142
  * @memberof Unit
@@ -1258,53 +1150,46 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1258
1150
  *
1259
1151
  * @return {Array} An array of units.
1260
1152
  */
1261
-
1262
-
1263
1153
  Unit.prototype.splitUnit = function (parts) {
1264
1154
  var x = this.clone();
1265
1155
  var ret = [];
1266
-
1267
1156
  for (var i = 0; i < parts.length; i++) {
1268
1157
  // Convert x to the requested unit
1269
1158
  x = x.to(parts[i]);
1270
- if (i === parts.length - 1) break; // Get the numeric value of this unit
1159
+ if (i === parts.length - 1) break;
1271
1160
 
1272
- var xNumeric = x.toNumeric(); // Check to see if xNumeric is nearly equal to an integer,
1273
- // since fix can incorrectly round down if there is round-off error
1161
+ // Get the numeric value of this unit
1162
+ var xNumeric = x.toNumeric();
1274
1163
 
1164
+ // Check to see if xNumeric is nearly equal to an integer,
1165
+ // since fix can incorrectly round down if there is round-off error
1275
1166
  var xRounded = round(xNumeric);
1276
1167
  var xFixed = void 0;
1277
1168
  var isNearlyEqual = equal(xRounded, xNumeric);
1278
-
1279
1169
  if (isNearlyEqual) {
1280
1170
  xFixed = xRounded;
1281
1171
  } else {
1282
1172
  xFixed = fix(x.toNumeric());
1283
1173
  }
1284
-
1285
1174
  var y = new Unit(xFixed, parts[i].toString());
1286
1175
  ret.push(y);
1287
- x = subtract(x, y);
1288
- } // This little bit fixes a bug where the remainder should be 0 but is a little bit off.
1176
+ x = subtractScalar(x, y);
1177
+ }
1178
+
1179
+ // This little bit fixes a bug where the remainder should be 0 but is a little bit off.
1289
1180
  // But instead of comparing x, the remainder, with zero--we will compare the sum of
1290
1181
  // all the parts so far with the original value. If they are nearly equal,
1291
1182
  // we set the remainder to 0.
1292
-
1293
-
1294
1183
  var testSum = 0;
1295
-
1296
1184
  for (var _i5 = 0; _i5 < ret.length; _i5++) {
1297
1185
  testSum = addScalar(testSum, ret[_i5].value);
1298
1186
  }
1299
-
1300
1187
  if (equal(testSum, this.value)) {
1301
1188
  x.value = 0;
1302
1189
  }
1303
-
1304
1190
  ret.push(x);
1305
1191
  return ret;
1306
1192
  };
1307
-
1308
1193
  var PREFIXES = {
1309
1194
  NONE: {
1310
1195
  '': {
@@ -1942,9 +1827,10 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
1942
1827
  }
1943
1828
  }
1944
1829
  };
1945
- PREFIXES.SHORTLONG = _extends({}, PREFIXES.SHORT, PREFIXES.LONG);
1946
- PREFIXES.BINARY_SHORT = _extends({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
1947
- PREFIXES.BINARY_LONG = _extends({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
1830
+ PREFIXES.SHORTLONG = (0, _extends2["default"])({}, PREFIXES.SHORT, PREFIXES.LONG);
1831
+ PREFIXES.BINARY_SHORT = (0, _extends2["default"])({}, PREFIXES.BINARY_SHORT_SI, PREFIXES.BINARY_SHORT_IEC);
1832
+ PREFIXES.BINARY_LONG = (0, _extends2["default"])({}, PREFIXES.BINARY_LONG_SI, PREFIXES.BINARY_LONG_IEC);
1833
+
1948
1834
  /* Internally, each unit is represented by a value and a dimension array. The elements of the dimensions array have the following meaning:
1949
1835
  * Index Dimension
1950
1836
  * ----- ---------
@@ -2039,13 +1925,11 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2039
1925
  dimensions: [0, 0, 0, 0, 0, 0, 0, 0, 1]
2040
1926
  }
2041
1927
  };
2042
-
2043
1928
  for (var key in BASE_UNITS) {
2044
1929
  if ((0, _object.hasOwnProperty)(BASE_UNITS, key)) {
2045
1930
  BASE_UNITS[key].key = key;
2046
1931
  }
2047
1932
  }
2048
-
2049
1933
  var BASE_UNIT_NONE = {};
2050
1934
  var UNIT_NONE = {
2051
1935
  name: '',
@@ -2185,6 +2069,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2185
2069
  offset: 0
2186
2070
  },
2187
2071
  // 1/1000 inch
2072
+
2188
2073
  // Surface
2189
2074
  m2: {
2190
2075
  name: 'm2',
@@ -2265,6 +2150,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2265
2150
  offset: 0
2266
2151
  },
2267
2152
  // 10000 m2
2153
+
2268
2154
  // Volume
2269
2155
  m3: {
2270
2156
  name: 'm3',
@@ -2353,6 +2239,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2353
2239
  offset: 0
2354
2240
  },
2355
2241
  // 0.05 mL = 5e-8 m3
2242
+
2356
2243
  // Liquid volume
2357
2244
  minim: {
2358
2245
  name: 'minim',
@@ -2450,6 +2337,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2450
2337
  offset: 0
2451
2338
  },
2452
2339
  // 238.4810 L
2340
+
2453
2341
  // {name: 'min', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.00000006161152, offset: 0}, // 0.06161152 mL // min is already in use as minute
2454
2342
  fldr: {
2455
2343
  name: 'fldr',
@@ -2524,6 +2412,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2524
2412
  },
2525
2413
  // 158.9873 L
2526
2414
  // {name: 'hogshead', base: BASE_UNITS.VOLUME, prefixes: PREFIXES.NONE, value: 0.2384810, offset: 0}, // 238.4810 L // TODO: hh?
2415
+
2527
2416
  // Mass
2528
2417
  g: {
2529
2418
  name: 'g',
@@ -2858,62 +2747,62 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2858
2747
  },
2859
2748
  // Temperature
2860
2749
  // K(C) = °C + 273.15
2861
- // K(F) = (°F + 459.67) / 1.8
2862
- // K(R) = °R / 1.8
2750
+ // K(F) = (°F + 459.67) * (5 / 9)
2751
+ // K(R) = °R * (5 / 9)
2863
2752
  K: {
2864
2753
  name: 'K',
2865
2754
  base: BASE_UNITS.TEMPERATURE,
2866
- prefixes: PREFIXES.NONE,
2755
+ prefixes: PREFIXES.SHORT,
2867
2756
  value: 1,
2868
2757
  offset: 0
2869
2758
  },
2870
2759
  degC: {
2871
2760
  name: 'degC',
2872
2761
  base: BASE_UNITS.TEMPERATURE,
2873
- prefixes: PREFIXES.NONE,
2762
+ prefixes: PREFIXES.SHORT,
2874
2763
  value: 1,
2875
2764
  offset: 273.15
2876
2765
  },
2877
2766
  degF: {
2878
2767
  name: 'degF',
2879
2768
  base: BASE_UNITS.TEMPERATURE,
2880
- prefixes: PREFIXES.NONE,
2881
- value: 1 / 1.8,
2769
+ prefixes: PREFIXES.SHORT,
2770
+ value: new _Fraction(5, 9),
2882
2771
  offset: 459.67
2883
2772
  },
2884
2773
  degR: {
2885
2774
  name: 'degR',
2886
2775
  base: BASE_UNITS.TEMPERATURE,
2887
- prefixes: PREFIXES.NONE,
2888
- value: 1 / 1.8,
2776
+ prefixes: PREFIXES.SHORT,
2777
+ value: new _Fraction(5, 9),
2889
2778
  offset: 0
2890
2779
  },
2891
2780
  kelvin: {
2892
2781
  name: 'kelvin',
2893
2782
  base: BASE_UNITS.TEMPERATURE,
2894
- prefixes: PREFIXES.NONE,
2783
+ prefixes: PREFIXES.LONG,
2895
2784
  value: 1,
2896
2785
  offset: 0
2897
2786
  },
2898
2787
  celsius: {
2899
2788
  name: 'celsius',
2900
2789
  base: BASE_UNITS.TEMPERATURE,
2901
- prefixes: PREFIXES.NONE,
2790
+ prefixes: PREFIXES.LONG,
2902
2791
  value: 1,
2903
2792
  offset: 273.15
2904
2793
  },
2905
2794
  fahrenheit: {
2906
2795
  name: 'fahrenheit',
2907
2796
  base: BASE_UNITS.TEMPERATURE,
2908
- prefixes: PREFIXES.NONE,
2909
- value: 1 / 1.8,
2797
+ prefixes: PREFIXES.LONG,
2798
+ value: new _Fraction(5, 9),
2910
2799
  offset: 459.67
2911
2800
  },
2912
2801
  rankine: {
2913
2802
  name: 'rankine',
2914
2803
  base: BASE_UNITS.TEMPERATURE,
2915
- prefixes: PREFIXES.NONE,
2916
- value: 1 / 1.8,
2804
+ prefixes: PREFIXES.LONG,
2805
+ value: new _Fraction(5, 9),
2917
2806
  offset: 0
2918
2807
  },
2919
2808
  // amount of substance
@@ -2949,6 +2838,7 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
2949
2838
  // TODO: units STERADIAN
2950
2839
  // {name: 'sr', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
2951
2840
  // {name: 'steradian', base: BASE_UNITS.STERADIAN, prefixes: PREFIXES.NONE, value: 1, offset: 0},
2841
+
2952
2842
  // Force
2953
2843
  N: {
2954
2844
  name: 'N',
@@ -3017,14 +2907,15 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3017
2907
  joule: {
3018
2908
  name: 'joule',
3019
2909
  base: BASE_UNITS.ENERGY,
3020
- prefixes: PREFIXES.SHORT,
2910
+ prefixes: PREFIXES.LONG,
3021
2911
  value: 1,
3022
2912
  offset: 0
3023
2913
  },
3024
2914
  erg: {
3025
2915
  name: 'erg',
3026
2916
  base: BASE_UNITS.ENERGY,
3027
- prefixes: PREFIXES.NONE,
2917
+ prefixes: PREFIXES.SHORTLONG,
2918
+ // Both kiloerg and kerg are acceptable
3028
2919
  value: 1e-7,
3029
2920
  offset: 0
3030
2921
  },
@@ -3204,7 +3095,6 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3204
3095
  value: 1,
3205
3096
  offset: 0
3206
3097
  },
3207
-
3208
3098
  /*
3209
3099
  * Unicode breaks in browsers if charset is not specified
3210
3100
  Ω: {
@@ -3304,8 +3194,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3304
3194
  value: 8,
3305
3195
  offset: 0
3306
3196
  }
3307
- }; // aliases (formerly plurals)
3197
+ };
3308
3198
 
3199
+ // aliases (formerly plurals)
3309
3200
  var ALIASES = {
3310
3201
  meters: 'meter',
3311
3202
  inches: 'inch',
@@ -3383,6 +3274,8 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3383
3274
  watts: 'watt',
3384
3275
  joules: 'joule',
3385
3276
  amperes: 'ampere',
3277
+ amps: 'ampere',
3278
+ amp: 'ampere',
3386
3279
  coulombs: 'coulomb',
3387
3280
  volts: 'volt',
3388
3281
  ohms: 'ohm',
@@ -3394,48 +3287,39 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3394
3287
  bit: 'bits',
3395
3288
  "byte": 'bytes'
3396
3289
  };
3290
+
3397
3291
  /**
3398
3292
  * Calculate the values for the angle units.
3399
3293
  * Value is calculated as number or BigNumber depending on the configuration
3400
3294
  * @param {{number: 'number' | 'BigNumber'}} config
3401
3295
  */
3402
-
3403
3296
  function calculateAngleValues(config) {
3404
3297
  if (config.number === 'BigNumber') {
3405
3298
  var pi = (0, _constants.createBigNumberPi)(_BigNumber);
3406
3299
  UNITS.rad.value = new _BigNumber(1);
3407
3300
  UNITS.deg.value = pi.div(180); // 2 * pi / 360
3408
-
3409
3301
  UNITS.grad.value = pi.div(200); // 2 * pi / 400
3410
-
3411
3302
  UNITS.cycle.value = pi.times(2); // 2 * pi
3412
-
3413
3303
  UNITS.arcsec.value = pi.div(648000); // 2 * pi / 360 / 3600
3414
-
3415
3304
  UNITS.arcmin.value = pi.div(10800); // 2 * pi / 360 / 60
3416
3305
  } else {
3417
3306
  // number
3418
3307
  UNITS.rad.value = 1;
3419
3308
  UNITS.deg.value = Math.PI / 180; // 2 * pi / 360
3420
-
3421
3309
  UNITS.grad.value = Math.PI / 200; // 2 * pi / 400
3422
-
3423
3310
  UNITS.cycle.value = Math.PI * 2; // 2 * pi
3424
-
3425
3311
  UNITS.arcsec.value = Math.PI / 648000; // 2 * pi / 360 / 3600
3426
-
3427
3312
  UNITS.arcmin.value = Math.PI / 10800; // 2 * pi / 360 / 60
3428
- } // copy to the full names of the angles
3429
-
3313
+ }
3430
3314
 
3315
+ // copy to the full names of the angles
3431
3316
  UNITS.radian.value = UNITS.rad.value;
3432
3317
  UNITS.degree.value = UNITS.deg.value;
3433
3318
  UNITS.gradian.value = UNITS.grad.value;
3434
- } // apply the angle values now
3435
-
3319
+ }
3436
3320
 
3321
+ // apply the angle values now
3437
3322
  calculateAngleValues(config);
3438
-
3439
3323
  if (on) {
3440
3324
  // recalculate the values on change of configuration
3441
3325
  on('config', function (curr, prev) {
@@ -3444,13 +3328,12 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3444
3328
  }
3445
3329
  });
3446
3330
  }
3331
+
3447
3332
  /**
3448
3333
  * 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.
3449
3334
  * A user perhaps could issue a command to select a preferred unit system, or use the default (see below).
3450
3335
  * 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.
3451
3336
  */
3452
-
3453
-
3454
3337
  var UNIT_SYSTEMS = {
3455
3338
  si: {
3456
3339
  // Base units
@@ -3548,8 +3431,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3548
3431
  prefix: PREFIXES.SHORT['']
3549
3432
  }
3550
3433
  }
3551
- }; // Clone to create the other unit systems
3434
+ };
3552
3435
 
3436
+ // Clone to create the other unit systems
3553
3437
  UNIT_SYSTEMS.cgs = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
3554
3438
  UNIT_SYSTEMS.cgs.LENGTH = {
3555
3439
  unit: UNITS.m,
@@ -3566,7 +3450,8 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3566
3450
  UNIT_SYSTEMS.cgs.ENERGY = {
3567
3451
  unit: UNITS.erg,
3568
3452
  prefix: PREFIXES.NONE['']
3569
- }; // there are wholly 4 unique cgs systems for electricity and magnetism,
3453
+ };
3454
+ // there are wholly 4 unique cgs systems for electricity and magnetism,
3570
3455
  // so let's not worry about it unless somebody complains
3571
3456
 
3572
3457
  UNIT_SYSTEMS.us = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
@@ -3597,17 +3482,20 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3597
3482
  UNIT_SYSTEMS.us.PRESSURE = {
3598
3483
  unit: UNITS.psi,
3599
3484
  prefix: PREFIXES.NONE['']
3600
- }; // Add additional unit systems here.
3601
- // Choose a unit system to seed the auto unit system.
3485
+ };
3602
3486
 
3603
- UNIT_SYSTEMS.auto = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si)); // Set the current unit system
3487
+ // Add additional unit systems here.
3604
3488
 
3489
+ // Choose a unit system to seed the auto unit system.
3490
+ UNIT_SYSTEMS.auto = JSON.parse(JSON.stringify(UNIT_SYSTEMS.si));
3491
+
3492
+ // Set the current unit system
3605
3493
  var currentUnitSystem = UNIT_SYSTEMS.auto;
3494
+
3606
3495
  /**
3607
3496
  * Set a unit system for formatting derived units.
3608
3497
  * @param {string} [name] The name of the unit system.
3609
3498
  */
3610
-
3611
3499
  Unit.setUnitSystem = function (name) {
3612
3500
  if ((0, _object.hasOwnProperty)(UNIT_SYSTEMS, name)) {
3613
3501
  currentUnitSystem = UNIT_SYSTEMS[name];
@@ -3615,12 +3503,11 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3615
3503
  throw new Error('Unit system ' + name + ' does not exist. Choices are: ' + Object.keys(UNIT_SYSTEMS).join(', '));
3616
3504
  }
3617
3505
  };
3506
+
3618
3507
  /**
3619
3508
  * Return the current unit system.
3620
3509
  * @return {string} The current unit system.
3621
3510
  */
3622
-
3623
-
3624
3511
  Unit.getUnitSystem = function () {
3625
3512
  for (var _key in UNIT_SYSTEMS) {
3626
3513
  if ((0, _object.hasOwnProperty)(UNIT_SYSTEMS, _key)) {
@@ -3630,14 +3517,14 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3630
3517
  }
3631
3518
  }
3632
3519
  };
3520
+
3633
3521
  /**
3634
3522
  * Converters to convert from number to an other numeric type like BigNumber
3635
3523
  * or Fraction
3636
3524
  */
3637
-
3638
-
3639
3525
  Unit.typeConverters = {
3640
3526
  BigNumber: function BigNumber(x) {
3527
+ if (x !== null && x !== void 0 && x.isFraction) return new _BigNumber(x.n).div(x.d).times(x.s);
3641
3528
  return new _BigNumber(x + ''); // stringify to prevent constructor error
3642
3529
  },
3643
3530
  Fraction: function Fraction(x) {
@@ -3647,9 +3534,26 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3647
3534
  return x;
3648
3535
  },
3649
3536
  number: function number(x) {
3537
+ if (x !== null && x !== void 0 && x.isFraction) return _number(x);
3650
3538
  return x;
3651
3539
  }
3652
3540
  };
3541
+
3542
+ /**
3543
+ * Retrieve the right converter function corresponding with this unit's
3544
+ * value
3545
+ *
3546
+ * @memberof Unit
3547
+ * @return {Function}
3548
+ */
3549
+ Unit.prototype._numberConverter = function () {
3550
+ var convert = Unit.typeConverters[this.valueType()];
3551
+ if (convert) {
3552
+ return convert;
3553
+ }
3554
+ throw new TypeError('Unsupported Unit value type "' + this.valueType() + '"');
3555
+ };
3556
+
3653
3557
  /**
3654
3558
  * Retrieve the right convertor function corresponding with the type
3655
3559
  * of provided exampleValue.
@@ -3658,63 +3562,56 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3658
3562
  * In case of an unknown type,
3659
3563
  * @return {Function}
3660
3564
  */
3661
-
3662
3565
  Unit._getNumberConverter = function (type) {
3663
3566
  if (!Unit.typeConverters[type]) {
3664
3567
  throw new TypeError('Unsupported type "' + type + '"');
3665
3568
  }
3666
-
3667
3569
  return Unit.typeConverters[type];
3668
- }; // Add dimensions to each built-in unit
3669
-
3570
+ };
3670
3571
 
3572
+ // Add dimensions to each built-in unit
3671
3573
  for (var _key2 in UNITS) {
3672
3574
  if ((0, _object.hasOwnProperty)(UNITS, _key2)) {
3673
3575
  var unit = UNITS[_key2];
3674
3576
  unit.dimensions = unit.base.dimensions;
3675
3577
  }
3676
- } // Create aliases
3677
-
3578
+ }
3678
3579
 
3580
+ // Create aliases
3679
3581
  for (var _name2 in ALIASES) {
3680
3582
  if ((0, _object.hasOwnProperty)(ALIASES, _name2)) {
3681
3583
  var _unit2 = UNITS[ALIASES[_name2]];
3682
3584
  var alias = {};
3683
-
3684
3585
  for (var _key3 in _unit2) {
3685
3586
  if ((0, _object.hasOwnProperty)(_unit2, _key3)) {
3686
3587
  alias[_key3] = _unit2[_key3];
3687
3588
  }
3688
3589
  }
3689
-
3690
3590
  alias.name = _name2;
3691
3591
  UNITS[_name2] = alias;
3692
3592
  }
3693
3593
  }
3594
+
3694
3595
  /**
3695
3596
  * Checks if a character is a valid latin letter (upper or lower case).
3696
3597
  * Note that this function can be overridden, for example to allow support of other alphabets.
3697
3598
  * @param {string} c Tested character
3698
3599
  */
3699
-
3700
-
3701
3600
  Unit.isValidAlpha = function isValidAlpha(c) {
3702
3601
  return /^[a-zA-Z]$/.test(c);
3703
3602
  };
3704
-
3705
3603
  function assertUnitNameIsValid(name) {
3706
3604
  for (var i = 0; i < name.length; i++) {
3707
3605
  c = name.charAt(i);
3708
-
3709
3606
  if (i === 0 && !Unit.isValidAlpha(c)) {
3710
3607
  throw new Error('Invalid unit name (must begin with alpha character): "' + name + '"');
3711
3608
  }
3712
-
3713
3609
  if (i > 0 && !(Unit.isValidAlpha(c) || isDigit(c))) {
3714
3610
  throw new Error('Invalid unit name (only alphanumeric characters are allowed): "' + name + '"');
3715
3611
  }
3716
3612
  }
3717
3613
  }
3614
+
3718
3615
  /**
3719
3616
  * Wrapper around createUnitSingle.
3720
3617
  * Example:
@@ -3733,39 +3630,35 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3733
3630
  * @param {object} obj Object map. Each key becomes a unit which is defined by its value.
3734
3631
  * @param {object} options
3735
3632
  */
3736
-
3737
-
3738
3633
  Unit.createUnit = function (obj, options) {
3739
- if (_typeof(obj) !== 'object') {
3634
+ if ((0, _typeof2["default"])(obj) !== 'object') {
3740
3635
  throw new TypeError("createUnit expects first parameter to be of type 'Object'");
3741
- } // Remove all units and aliases we are overriding
3742
-
3636
+ }
3743
3637
 
3638
+ // Remove all units and aliases we are overriding
3744
3639
  if (options && options.override) {
3745
3640
  for (var _key4 in obj) {
3746
3641
  if ((0, _object.hasOwnProperty)(obj, _key4)) {
3747
3642
  Unit.deleteUnit(_key4);
3748
3643
  }
3749
-
3750
3644
  if (obj[_key4].aliases) {
3751
3645
  for (var i = 0; i < obj[_key4].aliases.length; i++) {
3752
3646
  Unit.deleteUnit(obj[_key4].aliases[i]);
3753
3647
  }
3754
3648
  }
3755
3649
  }
3756
- } // TODO: traverse multiple times until all units have been added
3757
-
3650
+ }
3758
3651
 
3652
+ // TODO: traverse multiple times until all units have been added
3759
3653
  var lastUnit;
3760
-
3761
3654
  for (var _key5 in obj) {
3762
3655
  if ((0, _object.hasOwnProperty)(obj, _key5)) {
3763
3656
  lastUnit = Unit.createUnitSingle(_key5, obj[_key5]);
3764
3657
  }
3765
3658
  }
3766
-
3767
3659
  return lastUnit;
3768
3660
  };
3661
+
3769
3662
  /**
3770
3663
  * Create a user-defined unit and register it with the Unit type.
3771
3664
  * Example:
@@ -3787,58 +3680,47 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3787
3680
  * base unit, the name of the newly create base unit. Otherwise, this property
3788
3681
  * has no effect.
3789
3682
  *
3790
- * @param {Object} options (optional) An object containing any of the following
3791
- * properties:
3792
- * - override {boolean} Whether this unit should be allowed to override existing
3793
- * units.
3794
- *
3795
3683
  * @return {Unit}
3796
3684
  */
3797
-
3798
-
3799
- Unit.createUnitSingle = function (name, obj, options) {
3685
+ Unit.createUnitSingle = function (name, obj) {
3800
3686
  if (typeof obj === 'undefined' || obj === null) {
3801
3687
  obj = {};
3802
3688
  }
3803
-
3804
3689
  if (typeof name !== 'string') {
3805
3690
  throw new TypeError("createUnitSingle expects first parameter to be of type 'string'");
3806
- } // Check collisions with existing units
3807
-
3691
+ }
3808
3692
 
3693
+ // Check collisions with existing units
3809
3694
  if ((0, _object.hasOwnProperty)(UNITS, name)) {
3810
3695
  throw new Error('Cannot create unit "' + name + '": a unit with that name already exists');
3811
- } // 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.
3696
+ }
3812
3697
 
3698
+ // 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.
3813
3699
 
3814
3700
  assertUnitNameIsValid(name);
3815
3701
  var defUnit = null; // The Unit from which the new unit will be created.
3816
-
3817
3702
  var aliases = [];
3818
3703
  var offset = 0;
3819
3704
  var definition;
3820
3705
  var prefixes;
3821
3706
  var baseName;
3822
-
3823
3707
  if (obj && obj.type === 'Unit') {
3824
3708
  defUnit = obj.clone();
3825
3709
  } else if (typeof obj === 'string') {
3826
3710
  if (obj !== '') {
3827
3711
  definition = obj;
3828
3712
  }
3829
- } else if (_typeof(obj) === 'object') {
3713
+ } else if ((0, _typeof2["default"])(obj) === 'object') {
3830
3714
  definition = obj.definition;
3831
3715
  prefixes = obj.prefixes;
3832
3716
  offset = obj.offset;
3833
3717
  baseName = obj.baseName;
3834
-
3835
3718
  if (obj.aliases) {
3836
3719
  aliases = obj.aliases.valueOf(); // aliases could be a Matrix, so convert to Array
3837
3720
  }
3838
3721
  } else {
3839
3722
  throw new TypeError('Cannot create unit "' + name + '" from "' + obj.toString() + '": expecting "string" or "Unit" or "Object"');
3840
3723
  }
3841
-
3842
3724
  if (aliases) {
3843
3725
  for (var i = 0; i < aliases.length; i++) {
3844
3726
  if ((0, _object.hasOwnProperty)(UNITS, aliases[i])) {
@@ -3846,7 +3728,6 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3846
3728
  }
3847
3729
  }
3848
3730
  }
3849
-
3850
3731
  if (definition && typeof definition === 'string' && !defUnit) {
3851
3732
  try {
3852
3733
  defUnit = Unit.parse(definition, {
@@ -3859,45 +3740,39 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3859
3740
  } else if (definition && definition.type === 'Unit') {
3860
3741
  defUnit = definition.clone();
3861
3742
  }
3862
-
3863
3743
  aliases = aliases || [];
3864
3744
  offset = offset || 0;
3865
-
3866
3745
  if (prefixes && prefixes.toUpperCase) {
3867
3746
  prefixes = PREFIXES[prefixes.toUpperCase()] || PREFIXES.NONE;
3868
3747
  } else {
3869
3748
  prefixes = PREFIXES.NONE;
3870
- } // If defUnit is null, it is because the user did not
3871
- // specify a defintion. So create a new base dimension.
3872
-
3749
+ }
3873
3750
 
3751
+ // If defUnit is null, it is because the user did not
3752
+ // specify a defintion. So create a new base dimension.
3874
3753
  var newUnit = {};
3875
-
3876
3754
  if (!defUnit) {
3877
3755
  // Add a new base dimension
3878
3756
  baseName = baseName || name + '_STUFF'; // foo --> foo_STUFF, or the essence of foo
3879
-
3880
3757
  if (BASE_DIMENSIONS.indexOf(baseName) >= 0) {
3881
3758
  throw new Error('Cannot create new base unit "' + name + '": a base unit with that name already exists (and cannot be overridden)');
3882
3759
  }
3760
+ BASE_DIMENSIONS.push(baseName);
3883
3761
 
3884
- BASE_DIMENSIONS.push(baseName); // Push 0 onto existing base units
3885
-
3762
+ // Push 0 onto existing base units
3886
3763
  for (var b in BASE_UNITS) {
3887
3764
  if ((0, _object.hasOwnProperty)(BASE_UNITS, b)) {
3888
3765
  BASE_UNITS[b].dimensions[BASE_DIMENSIONS.length - 1] = 0;
3889
3766
  }
3890
- } // Add the new base unit
3891
-
3767
+ }
3892
3768
 
3769
+ // Add the new base unit
3893
3770
  var newBaseUnit = {
3894
3771
  dimensions: []
3895
3772
  };
3896
-
3897
3773
  for (var _i6 = 0; _i6 < BASE_DIMENSIONS.length; _i6++) {
3898
3774
  newBaseUnit.dimensions[_i6] = 0;
3899
3775
  }
3900
-
3901
3776
  newBaseUnit.dimensions[BASE_DIMENSIONS.length - 1] = 1;
3902
3777
  newBaseUnit.key = baseName;
3903
3778
  BASE_UNITS[baseName] = newBaseUnit;
@@ -3920,21 +3795,19 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3920
3795
  dimensions: defUnit.dimensions.slice(0),
3921
3796
  prefixes: prefixes,
3922
3797
  offset: offset
3923
- }; // Create a new base if no matching base exists
3798
+ };
3924
3799
 
3800
+ // Create a new base if no matching base exists
3925
3801
  var anyMatch = false;
3926
-
3927
3802
  for (var _i7 in BASE_UNITS) {
3928
3803
  if ((0, _object.hasOwnProperty)(BASE_UNITS, _i7)) {
3929
3804
  var match = true;
3930
-
3931
3805
  for (var j = 0; j < BASE_DIMENSIONS.length; j++) {
3932
3806
  if (Math.abs((newUnit.dimensions[j] || 0) - (BASE_UNITS[_i7].dimensions[j] || 0)) > 1e-12) {
3933
3807
  match = false;
3934
3808
  break;
3935
3809
  }
3936
3810
  }
3937
-
3938
3811
  if (match) {
3939
3812
  anyMatch = true;
3940
3813
  newUnit.base = BASE_UNITS[_i7];
@@ -3942,11 +3815,9 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3942
3815
  }
3943
3816
  }
3944
3817
  }
3945
-
3946
3818
  if (!anyMatch) {
3947
3819
  baseName = baseName || name + '_STUFF'; // foo --> foo_STUFF, or the essence of foo
3948
3820
  // Add the new base unit
3949
-
3950
3821
  var _newBaseUnit = {
3951
3822
  dimensions: defUnit.dimensions.slice(0)
3952
3823
  };
@@ -3959,31 +3830,28 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3959
3830
  newUnit.base = BASE_UNITS[baseName];
3960
3831
  }
3961
3832
  }
3962
-
3963
3833
  Unit.UNITS[name] = newUnit;
3964
-
3965
3834
  for (var _i8 = 0; _i8 < aliases.length; _i8++) {
3966
3835
  var aliasName = aliases[_i8];
3967
3836
  var _alias = {};
3968
-
3969
3837
  for (var _key6 in newUnit) {
3970
3838
  if ((0, _object.hasOwnProperty)(newUnit, _key6)) {
3971
3839
  _alias[_key6] = newUnit[_key6];
3972
3840
  }
3973
3841
  }
3974
-
3975
3842
  _alias.name = aliasName;
3976
3843
  Unit.UNITS[aliasName] = _alias;
3977
3844
  }
3978
-
3845
+ // delete the memoization cache, since adding a new unit to the array
3846
+ // invalidates all old results
3847
+ delete _findUnit.cache;
3979
3848
  return new Unit(null, name);
3980
3849
  };
3981
-
3982
3850
  Unit.deleteUnit = function (name) {
3983
3851
  delete Unit.UNITS[name];
3984
- }; // expose arrays with prefixes, dimensions, units, systems
3985
-
3852
+ };
3986
3853
 
3854
+ // expose arrays with prefixes, dimensions, units, systems
3987
3855
  Unit.PREFIXES = PREFIXES;
3988
3856
  Unit.BASE_DIMENSIONS = BASE_DIMENSIONS;
3989
3857
  Unit.BASE_UNITS = BASE_UNITS;
@@ -3992,5 +3860,4 @@ var createUnitClass = /* #__PURE__ */(0, _factory.factory)(name, dependencies, f
3992
3860
  return Unit;
3993
3861
  }, {
3994
3862
  isClass: true
3995
- });
3996
- exports.createUnitClass = createUnitClass;
3863
+ });