nerdamer 1.1.13 → 2.0.0-rc.2

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 (387) hide show
  1. package/BREAKING_CHANGES.md +244 -5
  2. package/LICENSE.md +184 -0
  3. package/README.md +232 -318
  4. package/dist/bundle.js +2 -0
  5. package/dist/bundle.js.LICENSE.txt +7 -0
  6. package/dist/parser.js +2 -0
  7. package/dist/parser.js.LICENSE.txt +7 -0
  8. package/docs-data/parser-functions.json +2248 -0
  9. package/index.d.ts +10 -426
  10. package/output/algebra/adapters.d.ts +3 -0
  11. package/output/algebra/adapters.js +11 -0
  12. package/output/algebra/algorithms/arith.d.ts +84 -0
  13. package/output/algebra/algorithms/arith.js +324 -0
  14. package/output/algebra/algorithms/groebnerBase.d.ts +161 -0
  15. package/output/algebra/algorithms/groebnerBase.js +929 -0
  16. package/output/algebra/dispatch.d.ts +1 -0
  17. package/output/algebra/dispatch.js +25 -0
  18. package/output/algebra/factor/factor.d.ts +77 -0
  19. package/output/algebra/factor/factor.js +245 -0
  20. package/output/algebra/gcd/gcd.d.ts +30 -0
  21. package/output/algebra/gcd/gcd.js +95 -0
  22. package/output/algebra/groebner.d.ts +21 -0
  23. package/output/algebra/groebner.js +36 -0
  24. package/output/algebra/partfrac.d.ts +19 -0
  25. package/output/algebra/partfrac.js +365 -0
  26. package/output/algebra/polynomial/ModularSparsePolynomial.d.ts +131 -0
  27. package/output/algebra/polynomial/ModularSparsePolynomial.js +378 -0
  28. package/output/algebra/polynomial/ModularSparsePolynomialFactor.d.ts +40 -0
  29. package/output/algebra/polynomial/ModularSparsePolynomialFactor.js +661 -0
  30. package/output/algebra/polynomial/SparsePolynomialFactor.d.ts +64 -0
  31. package/output/algebra/polynomial/SparsePolynomialFactor.js +492 -0
  32. package/output/algebra/polynomial/SparsePolynomialGcd.d.ts +29 -0
  33. package/output/algebra/polynomial/SparsePolynomialGcd.js +259 -0
  34. package/output/algebra/polynomial/SparsePolynomialMultivariateFactor.d.ts +82 -0
  35. package/output/algebra/polynomial/SparsePolynomialMultivariateFactor.js +604 -0
  36. package/output/algebra/polynomial/modularGcd.d.ts +40 -0
  37. package/output/algebra/polynomial/modularGcd.js +365 -0
  38. package/output/algebra/polynomialize.d.ts +20 -0
  39. package/output/algebra/polynomialize.js +26 -0
  40. package/output/algebra/simplify/complexsimp.d.ts +7 -0
  41. package/output/algebra/simplify/complexsimp.js +24 -0
  42. package/output/algebra/simplify/factorCommon.d.ts +13 -0
  43. package/output/algebra/simplify/factorCommon.js +136 -0
  44. package/output/algebra/simplify/funcsimp.d.ts +26 -0
  45. package/output/algebra/simplify/funcsimp.js +633 -0
  46. package/output/algebra/simplify/invtrigrewrite.d.ts +10 -0
  47. package/output/algebra/simplify/invtrigrewrite.js +96 -0
  48. package/output/algebra/simplify/ratsimp.d.ts +21 -0
  49. package/output/algebra/simplify/ratsimp.js +140 -0
  50. package/output/algebra/simplify/simplify.d.ts +25 -0
  51. package/output/algebra/simplify/simplify.js +237 -0
  52. package/output/algebra/simplify/trigreduce.d.ts +38 -0
  53. package/output/algebra/simplify/trigreduce.js +424 -0
  54. package/output/algebra/simplify/trigrewrite.d.ts +17 -0
  55. package/output/algebra/simplify/trigrewrite.js +156 -0
  56. package/output/algebra/simplify/trigsimp.d.ts +11 -0
  57. package/output/algebra/simplify/trigsimp.js +369 -0
  58. package/output/algebra/simplify/utils.d.ts +32 -0
  59. package/output/algebra/simplify/utils.js +56 -0
  60. package/output/algebra/utils.d.ts +32 -0
  61. package/output/algebra/utils.js +48 -0
  62. package/output/api/advanced.d.ts +8 -0
  63. package/output/api/advanced.js +18 -0
  64. package/output/api/algebra.d.ts +17 -0
  65. package/output/api/algebra.js +35 -0
  66. package/output/api/assumptions.d.ts +4 -0
  67. package/output/api/assumptions.js +11 -0
  68. package/output/api/calculus.d.ts +10 -0
  69. package/output/api/calculus.js +22 -0
  70. package/output/api/core.d.ts +17 -0
  71. package/output/api/core.js +41 -0
  72. package/output/api/debug.d.ts +16 -0
  73. package/output/api/debug.js +23 -0
  74. package/output/api/languages/deu.d.ts +3 -0
  75. package/output/api/languages/deu.js +266 -0
  76. package/output/api/languages/fra.d.ts +3 -0
  77. package/output/api/languages/fra.js +266 -0
  78. package/output/api/languages/ita.d.ts +3 -0
  79. package/output/api/languages/ita.js +266 -0
  80. package/output/api/languages/nld.d.ts +3 -0
  81. package/output/api/languages/nld.js +266 -0
  82. package/output/api/languages/por.d.ts +3 -0
  83. package/output/api/languages/por.js +266 -0
  84. package/output/api/languages/spa.d.ts +3 -0
  85. package/output/api/languages/spa.js +266 -0
  86. package/output/api/parser.d.ts +93 -0
  87. package/output/api/parser.js +18 -0
  88. package/output/api/solve.d.ts +10 -0
  89. package/output/api/solve.js +17 -0
  90. package/output/api/structures.d.ts +10 -0
  91. package/output/api/structures.js +23 -0
  92. package/output/calculus/adapters.d.ts +8 -0
  93. package/output/calculus/adapters.js +41 -0
  94. package/output/calculus/derivative/diff.d.ts +30 -0
  95. package/output/calculus/derivative/diff.js +241 -0
  96. package/output/calculus/dispatch.d.ts +1 -0
  97. package/output/calculus/dispatch.js +25 -0
  98. package/output/calculus/fresnel.d.ts +16 -0
  99. package/output/calculus/fresnel.js +39 -0
  100. package/output/calculus/integrate/byParts.d.ts +18 -0
  101. package/output/calculus/integrate/byParts.js +339 -0
  102. package/output/calculus/integrate/bySubstitution.d.ts +135 -0
  103. package/output/calculus/integrate/bySubstitution.js +411 -0
  104. package/output/calculus/integrate/integrate.d.ts +38 -0
  105. package/output/calculus/integrate/integrate.js +652 -0
  106. package/output/calculus/integrate/integrationTable.d.ts +2 -0
  107. package/output/calculus/integrate/integrationTable.js +914 -0
  108. package/output/calculus/integrate/utils.d.ts +28 -0
  109. package/output/calculus/integrate/utils.js +96 -0
  110. package/output/calculus/laplace/ilaplace.d.ts +31 -0
  111. package/output/calculus/laplace/ilaplace.js +192 -0
  112. package/output/calculus/laplace/ilaplaceTable.d.ts +2 -0
  113. package/output/calculus/laplace/ilaplaceTable.js +200 -0
  114. package/output/calculus/laplace/laplace.d.ts +22 -0
  115. package/output/calculus/laplace/laplace.js +109 -0
  116. package/output/calculus/laplace/laplaceTable.d.ts +2 -0
  117. package/output/calculus/laplace/laplaceTable.js +187 -0
  118. package/output/calculus/limit/limit.d.ts +35 -0
  119. package/output/calculus/limit/limit.js +1183 -0
  120. package/output/calculus/limit/limitsTable.d.ts +2 -0
  121. package/output/calculus/limit/limitsTable.js +7 -0
  122. package/output/core/Settings.d.ts +32 -0
  123. package/output/core/Settings.js +68 -0
  124. package/output/core/classes/assumption/Assumption.d.ts +218 -0
  125. package/output/core/classes/assumption/Assumption.js +609 -0
  126. package/output/core/classes/assumption/assertiveFunctions.d.ts +6 -0
  127. package/output/core/classes/assumption/assertiveFunctions.js +64 -0
  128. package/output/core/classes/assumption/assume.d.ts +90 -0
  129. package/output/core/classes/assumption/assume.js +145 -0
  130. package/output/core/classes/assumption/dispatch.d.ts +1 -0
  131. package/output/core/classes/assumption/dispatch.js +11 -0
  132. package/output/core/classes/collection/Collection.d.ts +107 -0
  133. package/output/core/classes/collection/Collection.js +240 -0
  134. package/output/core/classes/complex/Complex.d.ts +109 -0
  135. package/output/core/classes/complex/Complex.js +153 -0
  136. package/output/core/classes/decimalSet/DecimalSet.d.ts +226 -0
  137. package/output/core/classes/decimalSet/DecimalSet.js +454 -0
  138. package/output/core/classes/dictionary/Dictionary.d.ts +102 -0
  139. package/output/core/classes/dictionary/Dictionary.js +216 -0
  140. package/output/core/classes/equation/Equation.d.ts +256 -0
  141. package/output/core/classes/equation/Equation.js +350 -0
  142. package/output/core/classes/expression/CoeffObject.d.ts +100 -0
  143. package/output/core/classes/expression/CoeffObject.js +197 -0
  144. package/output/core/classes/expression/Expression.d.ts +1691 -0
  145. package/output/core/classes/expression/Expression.js +2381 -0
  146. package/output/core/classes/expression/analysis.d.ts +25 -0
  147. package/output/core/classes/expression/analysis.js +218 -0
  148. package/output/core/classes/expression/collect.d.ts +9 -0
  149. package/output/core/classes/expression/collect.js +49 -0
  150. package/output/core/classes/expression/format.d.ts +54 -0
  151. package/output/core/classes/expression/format.js +340 -0
  152. package/output/core/classes/expression/products.d.ts +23 -0
  153. package/output/core/classes/expression/products.js +115 -0
  154. package/output/core/classes/expression/shortcuts.d.ts +35 -0
  155. package/output/core/classes/expression/shortcuts.js +129 -0
  156. package/output/core/classes/expression/traversal.d.ts +31 -0
  157. package/output/core/classes/expression/traversal.js +216 -0
  158. package/output/core/classes/expression/trig.d.ts +25 -0
  159. package/output/core/classes/expression/trig.js +40 -0
  160. package/output/core/classes/expression/utils.d.ts +61 -0
  161. package/output/core/classes/expression/utils.js +235 -0
  162. package/output/core/classes/lookupTable/LookupTable.d.ts +12 -0
  163. package/output/core/classes/lookupTable/LookupTable.js +55 -0
  164. package/output/core/classes/matrix/Matrix.d.ts +227 -0
  165. package/output/core/classes/matrix/Matrix.js +901 -0
  166. package/output/core/classes/matrix/Sylvester.d.ts +11 -0
  167. package/output/core/classes/matrix/Sylvester.js +54 -0
  168. package/output/core/classes/matrix/dispatch.d.ts +1 -0
  169. package/output/core/classes/matrix/dispatch.js +19 -0
  170. package/output/core/classes/matrix/functions.d.ts +28 -0
  171. package/output/core/classes/matrix/functions.js +57 -0
  172. package/output/core/classes/matrix/utils.d.ts +9 -0
  173. package/output/core/classes/matrix/utils.js +22 -0
  174. package/output/core/classes/parser/Parser.d.ts +493 -0
  175. package/output/core/classes/parser/Parser.js +1863 -0
  176. package/output/core/classes/parser/Token.d.ts +58 -0
  177. package/output/core/classes/parser/Token.js +137 -0
  178. package/output/core/classes/parser/constants.d.ts +162 -0
  179. package/output/core/classes/parser/constants.js +229 -0
  180. package/output/core/classes/parser/controlFlowSignals.d.ts +38 -0
  181. package/output/core/classes/parser/controlFlowSignals.js +60 -0
  182. package/output/core/classes/parser/helpers.d.ts +21 -0
  183. package/output/core/classes/parser/helpers.js +42 -0
  184. package/output/core/classes/parser/operations/add.d.ts +15 -0
  185. package/output/core/classes/parser/operations/add.js +236 -0
  186. package/output/core/classes/parser/operations/comma.d.ts +7 -0
  187. package/output/core/classes/parser/operations/comma.js +11 -0
  188. package/output/core/classes/parser/operations/compare.d.ts +21 -0
  189. package/output/core/classes/parser/operations/compare.js +474 -0
  190. package/output/core/classes/parser/operations/divide.d.ts +2 -0
  191. package/output/core/classes/parser/operations/divide.js +72 -0
  192. package/output/core/classes/parser/operations/functions.d.ts +46 -0
  193. package/output/core/classes/parser/operations/functions.js +438 -0
  194. package/output/core/classes/parser/operations/multiply.d.ts +11 -0
  195. package/output/core/classes/parser/operations/multiply.js +328 -0
  196. package/output/core/classes/parser/operations/power.d.ts +48 -0
  197. package/output/core/classes/parser/operations/power.js +673 -0
  198. package/output/core/classes/parser/operations/subtract.d.ts +3 -0
  199. package/output/core/classes/parser/operations/subtract.js +36 -0
  200. package/output/core/classes/parser/preprocess.d.ts +7 -0
  201. package/output/core/classes/parser/preprocess.js +246 -0
  202. package/output/core/classes/parser/scripting/controlFlow.d.ts +23 -0
  203. package/output/core/classes/parser/scripting/controlFlow.js +279 -0
  204. package/output/core/classes/parser/scripting/deferred.d.ts +4 -0
  205. package/output/core/classes/parser/scripting/deferred.js +65 -0
  206. package/output/core/classes/parser/scripting/dispatch.d.ts +1 -0
  207. package/output/core/classes/parser/scripting/dispatch.js +62 -0
  208. package/output/core/classes/parser/scripting/evaluate.d.ts +23 -0
  209. package/output/core/classes/parser/scripting/evaluate.js +128 -0
  210. package/output/core/classes/parser/scripting/functions.d.ts +14 -0
  211. package/output/core/classes/parser/scripting/functions.js +59 -0
  212. package/output/core/classes/parser/scripting/scope.d.ts +8 -0
  213. package/output/core/classes/parser/scripting/scope.js +132 -0
  214. package/output/core/classes/parser/types.d.ts +130 -0
  215. package/output/core/classes/parser/types.js +2 -0
  216. package/output/core/classes/parser/wrappers/IndexedReference.d.ts +31 -0
  217. package/output/core/classes/parser/wrappers/IndexedReference.js +68 -0
  218. package/output/core/classes/parser/wrappers/KeyValuePair.d.ts +24 -0
  219. package/output/core/classes/parser/wrappers/KeyValuePair.js +51 -0
  220. package/output/core/classes/polynomial/Polynomial.d.ts +504 -0
  221. package/output/core/classes/polynomial/Polynomial.js +1195 -0
  222. package/output/core/classes/polynomial/SparsePolynomial.d.ts +221 -0
  223. package/output/core/classes/polynomial/SparsePolynomial.js +824 -0
  224. package/output/core/classes/polynomial/SparsePolynomialAdapter.d.ts +56 -0
  225. package/output/core/classes/polynomial/SparsePolynomialAdapter.js +241 -0
  226. package/output/core/classes/polynomial/Term.d.ts +222 -0
  227. package/output/core/classes/polynomial/Term.js +430 -0
  228. package/output/core/classes/polynomial/adapters.d.ts +18 -0
  229. package/output/core/classes/polynomial/adapters.js +33 -0
  230. package/output/core/classes/polynomial/dispatch.d.ts +1 -0
  231. package/output/core/classes/polynomial/dispatch.js +14 -0
  232. package/output/core/classes/polynomial/functions.d.ts +77 -0
  233. package/output/core/classes/polynomial/functions.js +189 -0
  234. package/output/core/classes/polynomial/utils.d.ts +62 -0
  235. package/output/core/classes/polynomial/utils.js +207 -0
  236. package/output/core/classes/rational/Rational.d.ts +501 -0
  237. package/output/core/classes/rational/Rational.js +829 -0
  238. package/output/core/classes/seq/SEQ.d.ts +13 -0
  239. package/output/core/classes/seq/SEQ.js +137 -0
  240. package/output/core/classes/valuesSet/ValuesSet.d.ts +187 -0
  241. package/output/core/classes/valuesSet/ValuesSet.js +399 -0
  242. package/output/core/classes/vector/Vector.d.ts +222 -0
  243. package/output/core/classes/vector/Vector.js +501 -0
  244. package/output/core/classes/vector/dispatch.d.ts +1 -0
  245. package/output/core/classes/vector/dispatch.js +11 -0
  246. package/output/core/classes/vector/functions.d.ts +28 -0
  247. package/output/core/classes/vector/functions.js +47 -0
  248. package/output/core/common/classes/MathematicalAggregate.d.ts +53 -0
  249. package/output/core/common/classes/MathematicalAggregate.js +149 -0
  250. package/output/core/common/classes/Scope.d.ts +62 -0
  251. package/output/core/common/classes/Scope.js +122 -0
  252. package/output/core/common/classes/StructuredEntity.d.ts +55 -0
  253. package/output/core/common/classes/StructuredEntity.js +151 -0
  254. package/output/core/common/common.d.ts +62 -0
  255. package/output/core/common/common.js +74 -0
  256. package/output/core/common/functions/functions.d.ts +14 -0
  257. package/output/core/common/functions/functions.js +33 -0
  258. package/output/core/common/functions/structuredEntityUtils.d.ts +27 -0
  259. package/output/core/common/functions/structuredEntityUtils.js +40 -0
  260. package/output/core/converters/BaseConverter.d.ts +97 -0
  261. package/output/core/converters/BaseConverter.js +405 -0
  262. package/output/core/converters/Converter.d.ts +111 -0
  263. package/output/core/converters/Converter.js +806 -0
  264. package/output/core/converters/Pattern.d.ts +71 -0
  265. package/output/core/converters/Pattern.js +302 -0
  266. package/output/core/dispatch.d.ts +52 -0
  267. package/output/core/dispatch.js +26 -0
  268. package/output/core/errors.d.ts +316 -0
  269. package/output/core/errors.js +349 -0
  270. package/output/core/fullFunctions.d.ts +7 -0
  271. package/output/core/fullFunctions.js +31 -0
  272. package/output/core/functions/bigint/bigint.d.ts +133 -0
  273. package/output/core/functions/bigint/bigint.js +444 -0
  274. package/output/core/functions/bigint/primeFactor.d.ts +51 -0
  275. package/output/core/functions/bigint/primeFactor.js +267 -0
  276. package/output/core/functions/bigint/primes.d.ts +1 -0
  277. package/output/core/functions/bigint/primes.js +11 -0
  278. package/output/core/functions/build/definitions.d.ts +12 -0
  279. package/output/core/functions/build/definitions.js +139 -0
  280. package/output/core/functions/build/index.d.ts +32 -0
  281. package/output/core/functions/build/index.js +136 -0
  282. package/output/core/functions/complex.d.ts +90 -0
  283. package/output/core/functions/complex.dispatch.d.ts +1 -0
  284. package/output/core/functions/complex.dispatch.js +16 -0
  285. package/output/core/functions/complex.js +482 -0
  286. package/output/core/functions/decimal.d.ts +24 -0
  287. package/output/core/functions/decimal.js +665 -0
  288. package/output/core/functions/expand/expand.d.ts +42 -0
  289. package/output/core/functions/expand/expand.js +376 -0
  290. package/output/core/functions/fresnelNumeric.d.ts +12 -0
  291. package/output/core/functions/fresnelNumeric.js +123 -0
  292. package/output/core/functions/numeric.d.ts +140 -0
  293. package/output/core/functions/numeric.js +790 -0
  294. package/output/core/functions/rationalNormalization.d.ts +11 -0
  295. package/output/core/functions/rationalNormalization.js +117 -0
  296. package/output/core/functions/setFunction.d.ts +19 -0
  297. package/output/core/functions/setFunction.js +75 -0
  298. package/output/core/functions/string.d.ts +26 -0
  299. package/output/core/functions/string.js +102 -0
  300. package/output/core/functions/subst.d.ts +90 -0
  301. package/output/core/functions/subst.js +506 -0
  302. package/output/core/functions/utils.d.ts +24 -0
  303. package/output/core/functions/utils.js +51 -0
  304. package/output/core/parserFunctions.d.ts +7 -0
  305. package/output/core/parserFunctions.js +25 -0
  306. package/output/core/types.d.ts +48 -0
  307. package/output/core/types.js +2 -0
  308. package/output/index.d.ts +359 -0
  309. package/output/index.js +739 -0
  310. package/output/math/defint/defint.d.ts +18 -0
  311. package/output/math/defint/defint.js +60 -0
  312. package/output/math/defint/defintDecimal.d.ts +37 -0
  313. package/output/math/defint/defintDecimal.js +321 -0
  314. package/output/math/defint/defintNative.d.ts +57 -0
  315. package/output/math/defint/defintNative.js +281 -0
  316. package/output/math/dispatch.d.ts +1 -0
  317. package/output/math/dispatch.js +101 -0
  318. package/output/math/geometry.d.ts +12 -0
  319. package/output/math/geometry.js +55 -0
  320. package/output/math/math.d.ts +695 -0
  321. package/output/math/math.js +1955 -0
  322. package/output/math/trig.d.ts +518 -0
  323. package/output/math/trig.js +1444 -0
  324. package/output/math/trunc.d.ts +19 -0
  325. package/output/math/trunc.js +36 -0
  326. package/output/math/utils.d.ts +66 -0
  327. package/output/math/utils.js +219 -0
  328. package/output/solve/classes/DecimalMatrix.d.ts +17 -0
  329. package/output/solve/classes/DecimalMatrix.js +86 -0
  330. package/output/solve/classes/FunctionSolver.d.ts +135 -0
  331. package/output/solve/classes/FunctionSolver.js +433 -0
  332. package/output/solve/classes/MultivariateSolver.d.ts +84 -0
  333. package/output/solve/classes/MultivariateSolver.js +240 -0
  334. package/output/solve/classes/PolynomialSolver.d.ts +104 -0
  335. package/output/solve/classes/PolynomialSolver.js +492 -0
  336. package/output/solve/classes/SolutionSet.d.ts +172 -0
  337. package/output/solve/classes/SolutionSet.js +434 -0
  338. package/output/solve/classes/Solver.d.ts +17 -0
  339. package/output/solve/classes/Solver.js +132 -0
  340. package/output/solve/classes/SymbolicSolver.d.ts +74 -0
  341. package/output/solve/classes/SymbolicSolver.js +601 -0
  342. package/output/solve/dispatch.d.ts +1 -0
  343. package/output/solve/dispatch.js +13 -0
  344. package/output/solve/linsolve.d.ts +53 -0
  345. package/output/solve/linsolve.js +233 -0
  346. package/output/solve/solve.d.ts +44 -0
  347. package/output/solve/solve.js +368 -0
  348. package/output/solve/solveSystem.d.ts +31 -0
  349. package/output/solve/solveSystem.js +266 -0
  350. package/output/solve/utils.d.ts +10 -0
  351. package/output/solve/utils.js +58 -0
  352. package/output/utils/array.d.ts +42 -0
  353. package/output/utils/array.js +98 -0
  354. package/output/utils/debug.d.ts +131 -0
  355. package/output/utils/debug.js +296 -0
  356. package/output/utils/decimal.d.ts +3 -0
  357. package/output/utils/decimal.js +16 -0
  358. package/output/utils/numeric.d.ts +14 -0
  359. package/output/utils/numeric.js +51 -0
  360. package/output/utils/object.d.ts +26 -0
  361. package/output/utils/object.js +56 -0
  362. package/package.json +178 -57
  363. package/.travis.yml +0 -3
  364. package/Algebra.js +0 -4568
  365. package/CODE_OF_CONDUCT.md +0 -46
  366. package/CONTRIBUTING.md +0 -14
  367. package/Calculus.js +0 -2675
  368. package/Extra.js +0 -622
  369. package/Solve.js +0 -1783
  370. package/all.js +0 -16
  371. package/all.min.js +0 -1
  372. package/gulpfile.js +0 -16
  373. package/index.html +0 -158
  374. package/license.txt +0 -19
  375. package/nerdamer.core.js +0 -12510
  376. package/spec/LaTeX.spec.js +0 -302
  377. package/spec/TeXConvert.spec.js +0 -8
  378. package/spec/algebra.spec.js +0 -287
  379. package/spec/basic_parser.spec.js +0 -134
  380. package/spec/build.spec.js +0 -131
  381. package/spec/calculus.spec.js +0 -183
  382. package/spec/core.spec.js +0 -2970
  383. package/spec/extra.spec.js +0 -54
  384. package/spec/solve.spec.js +0 -126
  385. package/spec/support/jasmine.json +0 -11
  386. package/spec/support/utils.js +0 -42
  387. package/spec/text.spec.js +0 -132
@@ -0,0 +1,58 @@
1
+ import { TOKEN } from './constants';
2
+ import type { Operator } from '../../common/common';
3
+ export declare const ALLOWED_CHARACTERS: string[];
4
+ export declare const operatorArray: string[];
5
+ export declare let operatorRegex: RegExp;
6
+ /** Refreshes tokenizer operator symbols after the shared operator registry changes. */
7
+ export declare function refreshOperatorSymbols(): void;
8
+ export declare const bracketRegex: RegExp;
9
+ export declare const variableRegex: RegExp;
10
+ export declare const digitRegex: RegExp;
11
+ export declare const dotOrDigitRegex: RegExp;
12
+ export interface TokenBuffer {
13
+ tokenType: string;
14
+ chars: string[];
15
+ inputString: string;
16
+ scientificNumber: boolean;
17
+ last(): string | undefined;
18
+ next(at: number): string;
19
+ prev(at: number): string;
20
+ is(tokenType: string): boolean;
21
+ }
22
+ export declare class Token {
23
+ static readonly BRACKET = "BKT";
24
+ static readonly CHARACTER = "CHR";
25
+ static readonly FUNCTION = "FUN";
26
+ static readonly NUMBER = "NUM";
27
+ static readonly OPERATOR = "OPR";
28
+ static readonly PREFIX = "PFX";
29
+ static readonly SPACE = "SPC";
30
+ static readonly UNDEFINED = "UND";
31
+ static readonly VARIABLE = "VAR";
32
+ dataType: typeof TOKEN;
33
+ position: number;
34
+ /** Operator metadata selected from syntax when one source token has multiple roles. */
35
+ resolvedOperator?: Operator;
36
+ type?: string;
37
+ value: string;
38
+ constructor(value: string | number | Token, type: string, position: number);
39
+ static getCharType(ch: string, at: number, buffer: TokenBuffer): "BKT" | "CHR" | "NUM" | "OPR" | "SPC" | "VAR";
40
+ static isToken(obj: unknown): obj is Token;
41
+ /**
42
+ * Helper function for creating an operator token
43
+ *
44
+ * @param value
45
+ * @returns
46
+ */
47
+ static O(value: string): Token;
48
+ /**
49
+ * Helper function for creating an variable token
50
+ *
51
+ * @param value
52
+ * @returns
53
+ */
54
+ static V(value: string): Token;
55
+ is(type: string): boolean;
56
+ text(): string;
57
+ toString(): string;
58
+ }
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Token = exports.dotOrDigitRegex = exports.digitRegex = exports.variableRegex = exports.bracketRegex = exports.operatorRegex = exports.operatorArray = exports.ALLOWED_CHARACTERS = void 0;
4
+ exports.refreshOperatorSymbols = refreshOperatorSymbols;
5
+ const common_1 = require("../../common/common");
6
+ const functions_1 = require("../../common/functions/functions");
7
+ const constants_1 = require("./constants");
8
+ // Additional characters allowed in the parser which haven't already been defined
9
+ exports.ALLOWED_CHARACTERS = [];
10
+ exports.operatorArray = (0, functions_1.getOperatorSymbolArray)();
11
+ exports.operatorRegex = new RegExp(`[${exports.operatorArray.join('')}]`);
12
+ /** Refreshes tokenizer operator symbols after the shared operator registry changes. */
13
+ function refreshOperatorSymbols() {
14
+ exports.operatorArray.splice(0, exports.operatorArray.length, ...(0, functions_1.getOperatorSymbolArray)());
15
+ exports.operatorRegex = new RegExp(`[${exports.operatorArray.join('')}]`);
16
+ }
17
+ exports.bracketRegex = new RegExp(`[${Object.keys(common_1.brackets).join('\\')}]`);
18
+ exports.variableRegex = /[a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ∞]/i;
19
+ exports.digitRegex = /\d/;
20
+ exports.dotOrDigitRegex = /\d|\./;
21
+ class Token {
22
+ static BRACKET = 'BKT';
23
+ static CHARACTER = 'CHR';
24
+ static FUNCTION = 'FUN';
25
+ static NUMBER = 'NUM';
26
+ // args?: any;
27
+ static OPERATOR = 'OPR';
28
+ static PREFIX = 'PFX';
29
+ static SPACE = 'SPC';
30
+ static UNDEFINED = 'UND';
31
+ static VARIABLE = 'VAR';
32
+ dataType;
33
+ position;
34
+ /** Operator metadata selected from syntax when one source token has multiple roles. */
35
+ resolvedOperator;
36
+ type;
37
+ value;
38
+ constructor(value, type, position) {
39
+ this.dataType = constants_1.TOKEN;
40
+ // Where was start of the token found
41
+ this.position = position;
42
+ // What type of token is it
43
+ this.type = type;
44
+ // The actual contents
45
+ this.value = String(value);
46
+ }
47
+ static getCharType(ch, at, buffer) {
48
+ // If it's a number.
49
+ if (exports.digitRegex.test(ch)) {
50
+ // If the number or underscore comes after a variable then it belongs to the variable
51
+ if (buffer.tokenType === Token.VARIABLE) {
52
+ return Token.VARIABLE;
53
+ }
54
+ return Token.NUMBER;
55
+ }
56
+ else if (ch === constants_1.SPACE) {
57
+ return Token.SPACE;
58
+ }
59
+ // It's a decimal and belongs to a number.
60
+ else if (ch === constants_1.DOT) {
61
+ // If the "." comes after a variable then we make it an operator to allow for dot notation at some point
62
+ if (buffer.tokenType === Token.VARIABLE) {
63
+ return Token.OPERATOR;
64
+ }
65
+ return Token.NUMBER;
66
+ }
67
+ // Scientific numbers
68
+ else if ((ch === 'e' || ch === 'E') && buffer.tokenType === Token.NUMBER) {
69
+ const prev = buffer.prev(at);
70
+ const next = buffer.next(at);
71
+ if (next === constants_1.PLUS ||
72
+ next === constants_1.MINUS ||
73
+ (exports.dotOrDigitRegex.test(prev) && exports.digitRegex.test(next))) {
74
+ buffer.scientificNumber = true;
75
+ return Token.NUMBER;
76
+ }
77
+ return Token.VARIABLE;
78
+ }
79
+ // If it's a letter.
80
+ else if (exports.variableRegex.test(ch) || exports.ALLOWED_CHARACTERS.includes(ch)) {
81
+ return Token.VARIABLE;
82
+ }
83
+ // It's a bracket
84
+ else if (exports.bracketRegex.test(ch)) {
85
+ return Token.BRACKET;
86
+ }
87
+ // It's an operator
88
+ else if (exports.operatorRegex.test(ch)) {
89
+ const last = buffer.last();
90
+ // Bypass the + and - for scientific numbers
91
+ if (buffer.tokenType === Token.NUMBER &&
92
+ (ch === constants_1.PLUS || ch === constants_1.MINUS) &&
93
+ (last === 'e' || last === 'E')) {
94
+ return Token.NUMBER;
95
+ }
96
+ return Token.OPERATOR;
97
+ }
98
+ // All else
99
+ else {
100
+ return Token.CHARACTER;
101
+ }
102
+ }
103
+ static isToken(obj) {
104
+ return (0, common_1.isNerdamerNativeType)(obj, constants_1.TOKEN);
105
+ }
106
+ /**
107
+ * Helper function for creating an operator token
108
+ *
109
+ * @param value
110
+ * @returns
111
+ */
112
+ static O(value) {
113
+ return new Token(value, Token.OPERATOR, -1);
114
+ }
115
+ /**
116
+ * Helper function for creating an variable token
117
+ *
118
+ * @param value
119
+ * @returns
120
+ */
121
+ static V(value) {
122
+ return new Token(value, Token.VARIABLE, -1);
123
+ }
124
+ is(type) {
125
+ return this.type === type;
126
+ }
127
+ text() {
128
+ return this.value;
129
+ }
130
+ toString() {
131
+ if (this.type === Token.PREFIX) {
132
+ return '`' + this.value;
133
+ }
134
+ return this.value;
135
+ }
136
+ }
137
+ exports.Token = Token;
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Some helper constants
3
+ */
4
+ export declare const MINUS = "-";
5
+ export declare const PLUS = "+";
6
+ export declare const MULTIPLY = "*";
7
+ export declare const DIVIDE = "/";
8
+ export declare const DOT = ".";
9
+ export declare const COMMA = ",";
10
+ export declare const ASSIGN = ":";
11
+ export declare const SPACE = " ";
12
+ export declare const BLANK = "";
13
+ export declare const NEWLINE = "\n";
14
+ export declare const TAB = "\t";
15
+ export declare const LINEFEED = "\f";
16
+ export declare const RETURN = "\r";
17
+ export declare const OPEN_PAREN = "(";
18
+ export declare const CLOSE_PAREN = ")";
19
+ export declare const WRAP = "";
20
+ export declare const TOKEN = "Token";
21
+ export declare const INDEXED_REFERENCE = "INDEXED_REF";
22
+ export declare const KEY_VALUE_PAIR = "KEY_VALUE_PAIR";
23
+ export declare const RATIONAL = "RAT";
24
+ export declare const SCOPE = "SCP";
25
+ export declare const EXPRESSION = "EXP";
26
+ export declare const COLLECTION = "COL";
27
+ export declare const VECTOR = "VEC";
28
+ export declare const MATRIX = "MAT";
29
+ export declare const EQUATION = "EQN";
30
+ export declare const POLYNOMIAL = "POL";
31
+ export declare const TERM = "TRM";
32
+ export declare const GFPOLY = "GFP";
33
+ export declare const SET = "SET";
34
+ export declare const SOLUTIONS_SET = "SOL";
35
+ export declare const DICTIONARY = "DIC";
36
+ export declare const ASSUMPTION = "ASSUMPTION";
37
+ export declare const dataTypes: {
38
+ [key: string]: string;
39
+ };
40
+ /**
41
+ * The base types supported by the parser. All other types are a form of these
42
+ */
43
+ export declare const EXPRESSION_TYPES: {
44
+ NUM: number;
45
+ VAR: number;
46
+ EXP: number;
47
+ FUN: number;
48
+ GRP: number;
49
+ PRD: number;
50
+ SUM: number;
51
+ INF: number;
52
+ VEC: number;
53
+ MAT: number;
54
+ };
55
+ /**
56
+ * The ranking used when evaluating types
57
+ */
58
+ export declare const RANK: {
59
+ [key: string]: number;
60
+ };
61
+ export declare const E = "e";
62
+ export declare const PI_NAME = "pi";
63
+ export declare const PI_SYMBOL = "\u03C0";
64
+ export declare const DEFAULT_IMAGINARY = "i";
65
+ export declare const INDEX_VARIABLE = "_n";
66
+ export declare const ALL_SYMBOL = "all";
67
+ export declare const ALIASES: Record<string, string>;
68
+ export declare const PI: string[];
69
+ export declare const INFINITY: string[];
70
+ export declare const PARSER_CONSTANTS: {
71
+ pi: () => string;
72
+ π: () => string;
73
+ e: () => string;
74
+ };
75
+ export declare const SYMBOLIC_ACCESSOR = "__accessor__";
76
+ export declare const FACTORIAL = "fact";
77
+ export declare const DOUBLE_FACTORIAL = "dfact";
78
+ export declare const FIB = "fib";
79
+ export declare const SQRT = "sqrt";
80
+ export declare const ABS = "abs";
81
+ export declare const MOD = "mod";
82
+ export declare const GAMMA = "gamma";
83
+ export declare const DIRAC = "delta";
84
+ export declare const HEAVISIDE = "heaviside";
85
+ export declare const LOG = "log";
86
+ export declare const SGN = "sign";
87
+ export declare const CSGN = "csgn";
88
+ export declare const CBRT = "cbrt";
89
+ export declare const CEIL = "ceil";
90
+ export declare const CHI = "Chi";
91
+ export declare const CI = "Ci";
92
+ export declare const CONJUGATE = "conjugate";
93
+ export declare const CONTAINS = "contains";
94
+ export declare const CONTENT = "content";
95
+ export declare const COUNT = "count";
96
+ export declare const CROSS = "cross";
97
+ export declare const DEFINT = "defint";
98
+ export declare const DEG = "deg";
99
+ export declare const DIFF = "diff";
100
+ export declare const DOT_PRODUCT = "dot";
101
+ export declare const EI = "Ei";
102
+ export declare const ERF = "erf";
103
+ export declare const FACTOR = "factor";
104
+ export declare const PFACTOR = "pfactor";
105
+ export declare const PFACTORD = "pfactord";
106
+ export declare const FLOOR = "floor";
107
+ export declare const FRESNEL_C = "C";
108
+ export declare const FRESNEL_S = "S";
109
+ export declare const GCD = "gcd";
110
+ export declare const ILAPLACE = "ilaplace";
111
+ export declare const IMAGPART = "imagpart";
112
+ export declare const IMATRIX = "imatrix";
113
+ export declare const INTEGRATE = "integrate";
114
+ export declare const ISPRIME = "isprime";
115
+ export declare const LAPLACE = "laplace";
116
+ export declare const LI = "Li";
117
+ export declare const LIMIT = "limit";
118
+ export declare const LN = "ln";
119
+ export declare const MAX = "max";
120
+ export declare const MIN = "min";
121
+ export declare const NTHROOT = "nthroot";
122
+ export declare const PRODUCT_FUNCTION = "product";
123
+ export declare const REALPART = "realpart";
124
+ export declare const ROUND = "round";
125
+ export declare const SIZE = "size";
126
+ export declare const TRUNC = "trunc";
127
+ export declare const SHI = "Shi";
128
+ export declare const SI = "Si";
129
+ export declare const SINC = "sinc";
130
+ export declare const SUM_FUNCTION = "sum";
131
+ export declare const TRIG_FUNCTION_NAMES: {
132
+ COS: string;
133
+ SIN: string;
134
+ TAN: string;
135
+ SEC: string;
136
+ CSC: string;
137
+ COT: string;
138
+ ACOS: string;
139
+ ASIN: string;
140
+ ATAN: string;
141
+ ASEC: string;
142
+ ACSC: string;
143
+ ACOT: string;
144
+ ATAN2: string;
145
+ SINH: string;
146
+ COSH: string;
147
+ TANH: string;
148
+ SECH: string;
149
+ CSCH: string;
150
+ COTH: string;
151
+ ACOSH: string;
152
+ ASINH: string;
153
+ ATANH: string;
154
+ ASECH: string;
155
+ ACSCH: string;
156
+ ACOTH: string;
157
+ };
158
+ export declare const COS: string, SIN: string, TAN: string, ASIN: string, ACOS: string, SEC: string, CSC: string, COT: string, ATAN: string, ASEC: string, ACSC: string, ACOT: string, ATAN2: string, SINH: string, COSH: string, TANH: string, SECH: string, CSCH: string, COTH: string, ACOSH: string, ASINH: string, ATANH: string, ASECH: string, ACSCH: string, ACOTH: string;
159
+ export declare const TRIG: string[];
160
+ export declare const INVERSE_TRIG: string[];
161
+ export declare const HYPERBOLIC_TRIG: string[];
162
+ export declare const INVERSE_HYPERBOLIC_TRIG: string[];
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.FIB = exports.DOUBLE_FACTORIAL = exports.FACTORIAL = exports.SYMBOLIC_ACCESSOR = exports.PARSER_CONSTANTS = exports.INFINITY = exports.PI = exports.ALIASES = exports.ALL_SYMBOL = exports.INDEX_VARIABLE = exports.DEFAULT_IMAGINARY = exports.PI_SYMBOL = exports.PI_NAME = exports.E = exports.RANK = exports.EXPRESSION_TYPES = exports.dataTypes = exports.ASSUMPTION = exports.DICTIONARY = exports.SOLUTIONS_SET = exports.SET = exports.GFPOLY = exports.TERM = exports.POLYNOMIAL = exports.EQUATION = exports.MATRIX = exports.VECTOR = exports.COLLECTION = exports.EXPRESSION = exports.SCOPE = exports.RATIONAL = exports.KEY_VALUE_PAIR = exports.INDEXED_REFERENCE = exports.TOKEN = exports.WRAP = exports.CLOSE_PAREN = exports.OPEN_PAREN = exports.RETURN = exports.LINEFEED = exports.TAB = exports.NEWLINE = exports.BLANK = exports.SPACE = exports.ASSIGN = exports.COMMA = exports.DOT = exports.DIVIDE = exports.MULTIPLY = exports.PLUS = exports.MINUS = void 0;
7
+ exports.SI = exports.SHI = exports.TRUNC = exports.SIZE = exports.ROUND = exports.REALPART = exports.PRODUCT_FUNCTION = exports.NTHROOT = exports.MIN = exports.MAX = exports.LN = exports.LIMIT = exports.LI = exports.LAPLACE = exports.ISPRIME = exports.INTEGRATE = exports.IMATRIX = exports.IMAGPART = exports.ILAPLACE = exports.GCD = exports.FRESNEL_S = exports.FRESNEL_C = exports.FLOOR = exports.PFACTORD = exports.PFACTOR = exports.FACTOR = exports.ERF = exports.EI = exports.DOT_PRODUCT = exports.DIFF = exports.DEG = exports.DEFINT = exports.CROSS = exports.COUNT = exports.CONTENT = exports.CONTAINS = exports.CONJUGATE = exports.CI = exports.CHI = exports.CEIL = exports.CBRT = exports.CSGN = exports.SGN = exports.LOG = exports.HEAVISIDE = exports.DIRAC = exports.GAMMA = exports.MOD = exports.ABS = exports.SQRT = void 0;
8
+ exports.INVERSE_HYPERBOLIC_TRIG = exports.HYPERBOLIC_TRIG = exports.INVERSE_TRIG = exports.TRIG = exports.ACOTH = exports.ACSCH = exports.ASECH = exports.ATANH = exports.ASINH = exports.ACOSH = exports.COTH = exports.CSCH = exports.SECH = exports.TANH = exports.COSH = exports.SINH = exports.ATAN2 = exports.ACOT = exports.ACSC = exports.ASEC = exports.ATAN = exports.COT = exports.CSC = exports.SEC = exports.ACOS = exports.ASIN = exports.TAN = exports.SIN = exports.COS = exports.TRIG_FUNCTION_NAMES = exports.SUM_FUNCTION = exports.SINC = void 0;
9
+ const decimal_js_1 = __importDefault(require("decimal.js"));
10
+ /**
11
+ * Some helper constants
12
+ */
13
+ exports.MINUS = '-';
14
+ exports.PLUS = '+';
15
+ exports.MULTIPLY = '*';
16
+ exports.DIVIDE = '/';
17
+ exports.DOT = '.';
18
+ exports.COMMA = ',';
19
+ exports.ASSIGN = ':';
20
+ exports.SPACE = ' ';
21
+ exports.BLANK = '';
22
+ exports.NEWLINE = '\n';
23
+ exports.TAB = '\t';
24
+ exports.LINEFEED = '\f';
25
+ exports.RETURN = '\r';
26
+ exports.OPEN_PAREN = '(';
27
+ exports.CLOSE_PAREN = ')';
28
+ exports.WRAP = '';
29
+ // Data types
30
+ // export const EXPRESSION = 'EX';
31
+ exports.TOKEN = 'Token';
32
+ exports.INDEXED_REFERENCE = 'INDEXED_REF';
33
+ exports.KEY_VALUE_PAIR = 'KEY_VALUE_PAIR';
34
+ exports.RATIONAL = 'RAT';
35
+ exports.SCOPE = 'SCP';
36
+ exports.EXPRESSION = 'EXP';
37
+ exports.COLLECTION = 'COL';
38
+ exports.VECTOR = 'VEC';
39
+ exports.MATRIX = 'MAT';
40
+ exports.EQUATION = 'EQN';
41
+ exports.POLYNOMIAL = 'POL';
42
+ exports.TERM = 'TRM';
43
+ exports.GFPOLY = 'GFP';
44
+ exports.SET = 'SET';
45
+ exports.SOLUTIONS_SET = 'SOL';
46
+ exports.DICTIONARY = 'DIC';
47
+ exports.ASSUMPTION = 'ASSUMPTION';
48
+ // The data type name
49
+ exports.dataTypes = {
50
+ [exports.TOKEN]: 'Token',
51
+ [exports.INDEXED_REFERENCE]: 'IndexedReference',
52
+ [exports.KEY_VALUE_PAIR]: 'KeyValuePair',
53
+ [exports.RATIONAL]: 'Rational',
54
+ [exports.SCOPE]: 'Scope',
55
+ [exports.EXPRESSION]: 'Expression',
56
+ [exports.COLLECTION]: 'Collection',
57
+ [exports.VECTOR]: 'Vector',
58
+ [exports.MATRIX]: 'Matrix',
59
+ [exports.EQUATION]: 'Equation',
60
+ [exports.POLYNOMIAL]: 'Polynomial',
61
+ [exports.TERM]: 'Term',
62
+ [exports.GFPOLY]: 'GFPolynomial',
63
+ [exports.SET]: 'ValuesSet',
64
+ [exports.SOLUTIONS_SET]: 'SolutionSet',
65
+ [exports.DICTIONARY]: 'Dictionary',
66
+ [exports.ASSUMPTION]: 'Assumption',
67
+ };
68
+ /**
69
+ * The base types supported by the parser. All other types are a form of these
70
+ */
71
+ exports.EXPRESSION_TYPES = {
72
+ // Numbers,
73
+ NUM: 6,
74
+ // Any variable e.g. x
75
+ VAR: 2,
76
+ // An exponential
77
+ EXP: 1,
78
+ // Any function
79
+ FUN: 3,
80
+ // Any type of the same variable
81
+ GRP: 4,
82
+ // Any expression with terms bound by multiplication or division
83
+ PRD: 7,
84
+ // Any expression bound by division or subtraction
85
+ SUM: 5,
86
+ // Infinity
87
+ INF: 8,
88
+ // Vectors
89
+ VEC: 9,
90
+ // Matrices
91
+ MAT: 10,
92
+ };
93
+ /**
94
+ * The ranking used when evaluating types
95
+ */
96
+ exports.RANK = {
97
+ // Numbers,
98
+ [exports.EXPRESSION_TYPES.NUM]: 1,
99
+ // Any variable e.g. x
100
+ [exports.EXPRESSION_TYPES.VAR]: 2,
101
+ // An exponential
102
+ [exports.EXPRESSION_TYPES.EXP]: 3,
103
+ // Any function
104
+ [exports.EXPRESSION_TYPES.FUN]: 4,
105
+ // Any type of the same variable
106
+ [exports.EXPRESSION_TYPES.GRP]: 5,
107
+ // Any expression with terms bound by multiplication or division
108
+ [exports.EXPRESSION_TYPES.PRD]: 6,
109
+ // Any expression bound by division or subtraction
110
+ [exports.EXPRESSION_TYPES.SUM]: 7,
111
+ // Infinity
112
+ [exports.EXPRESSION_TYPES.INF]: 8,
113
+ };
114
+ // Parser Constants
115
+ exports.E = 'e';
116
+ exports.PI_NAME = 'pi';
117
+ exports.PI_SYMBOL = 'π';
118
+ exports.DEFAULT_IMAGINARY = 'i';
119
+ exports.INDEX_VARIABLE = '_n';
120
+ exports.ALL_SYMBOL = 'all';
121
+ exports.ALIASES = {
122
+ [exports.PI_SYMBOL]: exports.PI_NAME,
123
+ '∞': 'Inf',
124
+ };
125
+ exports.PI = [exports.PI_NAME, exports.PI_SYMBOL];
126
+ exports.INFINITY = ['Inf', 'Infinity', '∞'];
127
+ // Parser Constants
128
+ exports.PARSER_CONSTANTS = {
129
+ [exports.PI_NAME]: () => {
130
+ return decimal_js_1.default.acos(-1).toString();
131
+ },
132
+ [exports.PI_SYMBOL]: () => {
133
+ return decimal_js_1.default.acos(-1).toString();
134
+ },
135
+ [exports.E]: () => {
136
+ return decimal_js_1.default.exp(1).toString();
137
+ },
138
+ };
139
+ // Functions
140
+ // Internal function name used to carry symbolic bracket access inside an Expression.
141
+ exports.SYMBOLIC_ACCESSOR = '__accessor__';
142
+ exports.FACTORIAL = 'fact';
143
+ exports.DOUBLE_FACTORIAL = 'dfact';
144
+ exports.FIB = 'fib';
145
+ exports.SQRT = 'sqrt';
146
+ exports.ABS = 'abs';
147
+ exports.MOD = 'mod';
148
+ exports.GAMMA = 'gamma';
149
+ exports.DIRAC = 'delta';
150
+ exports.HEAVISIDE = 'heaviside';
151
+ exports.LOG = 'log';
152
+ exports.SGN = 'sign';
153
+ exports.CSGN = 'csgn';
154
+ exports.CBRT = 'cbrt';
155
+ exports.CEIL = 'ceil';
156
+ exports.CHI = 'Chi';
157
+ exports.CI = 'Ci';
158
+ exports.CONJUGATE = 'conjugate';
159
+ exports.CONTAINS = 'contains';
160
+ exports.CONTENT = 'content';
161
+ exports.COUNT = 'count';
162
+ exports.CROSS = 'cross';
163
+ exports.DEFINT = 'defint';
164
+ exports.DEG = 'deg';
165
+ exports.DIFF = 'diff';
166
+ exports.DOT_PRODUCT = 'dot';
167
+ exports.EI = 'Ei';
168
+ exports.ERF = 'erf';
169
+ exports.FACTOR = 'factor';
170
+ exports.PFACTOR = 'pfactor';
171
+ exports.PFACTORD = 'pfactord';
172
+ exports.FLOOR = 'floor';
173
+ exports.FRESNEL_C = 'C';
174
+ exports.FRESNEL_S = 'S';
175
+ exports.GCD = 'gcd';
176
+ exports.ILAPLACE = 'ilaplace';
177
+ exports.IMAGPART = 'imagpart';
178
+ exports.IMATRIX = 'imatrix';
179
+ exports.INTEGRATE = 'integrate';
180
+ exports.ISPRIME = 'isprime';
181
+ exports.LAPLACE = 'laplace';
182
+ exports.LI = 'Li';
183
+ exports.LIMIT = 'limit';
184
+ exports.LN = 'ln';
185
+ exports.MAX = 'max';
186
+ exports.MIN = 'min';
187
+ exports.NTHROOT = 'nthroot';
188
+ exports.PRODUCT_FUNCTION = 'product';
189
+ exports.REALPART = 'realpart';
190
+ exports.ROUND = 'round';
191
+ exports.SIZE = 'size';
192
+ exports.TRUNC = 'trunc';
193
+ exports.SHI = 'Shi';
194
+ exports.SI = 'Si';
195
+ exports.SINC = 'sinc';
196
+ exports.SUM_FUNCTION = 'sum';
197
+ // Trigonometric functions
198
+ exports.TRIG_FUNCTION_NAMES = {
199
+ COS: 'cos',
200
+ SIN: 'sin',
201
+ TAN: 'tan',
202
+ SEC: 'sec',
203
+ CSC: 'csc',
204
+ COT: 'cot',
205
+ ACOS: 'acos',
206
+ ASIN: 'asin',
207
+ ATAN: 'atan',
208
+ ASEC: 'asec',
209
+ ACSC: 'acsc',
210
+ ACOT: 'acot',
211
+ ATAN2: 'atan2',
212
+ SINH: 'sinh',
213
+ COSH: 'cosh',
214
+ TANH: 'tanh',
215
+ SECH: 'sech',
216
+ CSCH: 'csch',
217
+ COTH: 'coth',
218
+ ACOSH: 'acosh',
219
+ ASINH: 'asinh',
220
+ ATANH: 'atanh',
221
+ ASECH: 'asech',
222
+ ACSCH: 'acsch',
223
+ ACOTH: 'acoth',
224
+ };
225
+ exports.COS = exports.TRIG_FUNCTION_NAMES.COS, exports.SIN = exports.TRIG_FUNCTION_NAMES.SIN, exports.TAN = exports.TRIG_FUNCTION_NAMES.TAN, exports.ASIN = exports.TRIG_FUNCTION_NAMES.ASIN, exports.ACOS = exports.TRIG_FUNCTION_NAMES.ACOS, exports.SEC = exports.TRIG_FUNCTION_NAMES.SEC, exports.CSC = exports.TRIG_FUNCTION_NAMES.CSC, exports.COT = exports.TRIG_FUNCTION_NAMES.COT, exports.ATAN = exports.TRIG_FUNCTION_NAMES.ATAN, exports.ASEC = exports.TRIG_FUNCTION_NAMES.ASEC, exports.ACSC = exports.TRIG_FUNCTION_NAMES.ACSC, exports.ACOT = exports.TRIG_FUNCTION_NAMES.ACOT, exports.ATAN2 = exports.TRIG_FUNCTION_NAMES.ATAN2, exports.SINH = exports.TRIG_FUNCTION_NAMES.SINH, exports.COSH = exports.TRIG_FUNCTION_NAMES.COSH, exports.TANH = exports.TRIG_FUNCTION_NAMES.TANH, exports.SECH = exports.TRIG_FUNCTION_NAMES.SECH, exports.CSCH = exports.TRIG_FUNCTION_NAMES.CSCH, exports.COTH = exports.TRIG_FUNCTION_NAMES.COTH, exports.ACOSH = exports.TRIG_FUNCTION_NAMES.ACOSH, exports.ASINH = exports.TRIG_FUNCTION_NAMES.ASINH, exports.ATANH = exports.TRIG_FUNCTION_NAMES.ATANH, exports.ASECH = exports.TRIG_FUNCTION_NAMES.ASECH, exports.ACSCH = exports.TRIG_FUNCTION_NAMES.ACSCH, exports.ACOTH = exports.TRIG_FUNCTION_NAMES.ACOTH;
226
+ exports.TRIG = [exports.COS, exports.SIN, exports.TAN, exports.SEC, exports.CSC, exports.COT];
227
+ exports.INVERSE_TRIG = [exports.ACOS, exports.ASIN, exports.ATAN, exports.ASEC, exports.ACSC, exports.ACOT];
228
+ exports.HYPERBOLIC_TRIG = [exports.COSH, exports.SINH, exports.TANH, exports.SECH, exports.CSCH, exports.COTH];
229
+ exports.INVERSE_HYPERBOLIC_TRIG = [exports.ACOSH, exports.ASINH, exports.ATANH, exports.ASECH, exports.ACSCH, exports.ACOTH];
@@ -0,0 +1,38 @@
1
+ import type { ParserEntity } from '../../types';
2
+ export declare const RETURN_SIGNAL = "RETURN_SIGNAL";
3
+ export declare const BREAK_SIGNAL = "BREAK_SIGNAL";
4
+ export declare const CONTINUE_SIGNAL = "CONTINUE_SIGNAL";
5
+ export declare const NULL_SIGNAL = "NULL_SIGNAL";
6
+ /**
7
+ * Internal signals used to unwind late-bound parser evaluation.
8
+ *
9
+ * Deferred scripting expressions can execute after their surrounding syntax has
10
+ * already been parsed, so return, loop control, and no-result state must travel
11
+ * to the evaluation boundary that knows how to consume them.
12
+ *
13
+ * The signals live at the parser level rather than under scripting because both
14
+ * Parser and the scripting implementation need to recognize them. Keeping this
15
+ * module dependency-light avoids a Parser -> scripting -> Parser import cycle.
16
+ * These are evaluation mechanics, not parser result values.
17
+ */
18
+ export declare abstract class ControlFlowSignal extends Error {
19
+ constructor();
20
+ }
21
+ export declare class ReturnSignal extends ControlFlowSignal {
22
+ readonly value: ParserEntity;
23
+ readonly dataType: typeof RETURN_SIGNAL;
24
+ constructor(value: ParserEntity);
25
+ static isReturnSignal(obj: unknown): obj is ReturnSignal;
26
+ }
27
+ export declare class BreakSignal extends ControlFlowSignal {
28
+ readonly dataType: typeof BREAK_SIGNAL;
29
+ static isBreakSignal(obj: unknown): obj is BreakSignal;
30
+ }
31
+ export declare class ContinueSignal extends ControlFlowSignal {
32
+ readonly dataType: typeof CONTINUE_SIGNAL;
33
+ static isContinueSignal(obj: unknown): obj is ContinueSignal;
34
+ }
35
+ export declare class NullSignal extends ControlFlowSignal {
36
+ readonly dataType: typeof NULL_SIGNAL;
37
+ static isNullSignal(obj: unknown): obj is NullSignal;
38
+ }
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NullSignal = exports.ContinueSignal = exports.BreakSignal = exports.ReturnSignal = exports.ControlFlowSignal = exports.NULL_SIGNAL = exports.CONTINUE_SIGNAL = exports.BREAK_SIGNAL = exports.RETURN_SIGNAL = void 0;
4
+ const common_1 = require("../../common/common");
5
+ exports.RETURN_SIGNAL = 'RETURN_SIGNAL';
6
+ exports.BREAK_SIGNAL = 'BREAK_SIGNAL';
7
+ exports.CONTINUE_SIGNAL = 'CONTINUE_SIGNAL';
8
+ exports.NULL_SIGNAL = 'NULL_SIGNAL';
9
+ /**
10
+ * Internal signals used to unwind late-bound parser evaluation.
11
+ *
12
+ * Deferred scripting expressions can execute after their surrounding syntax has
13
+ * already been parsed, so return, loop control, and no-result state must travel
14
+ * to the evaluation boundary that knows how to consume them.
15
+ *
16
+ * The signals live at the parser level rather than under scripting because both
17
+ * Parser and the scripting implementation need to recognize them. Keeping this
18
+ * module dependency-light avoids a Parser -> scripting -> Parser import cycle.
19
+ * These are evaluation mechanics, not parser result values.
20
+ */
21
+ class ControlFlowSignal extends Error {
22
+ constructor() {
23
+ super();
24
+ this.name = new.target.name;
25
+ }
26
+ }
27
+ exports.ControlFlowSignal = ControlFlowSignal;
28
+ class ReturnSignal extends ControlFlowSignal {
29
+ value;
30
+ dataType = exports.RETURN_SIGNAL;
31
+ constructor(value) {
32
+ super();
33
+ this.value = value;
34
+ }
35
+ static isReturnSignal(obj) {
36
+ return (0, common_1.isNerdamerNativeType)(obj, exports.RETURN_SIGNAL);
37
+ }
38
+ }
39
+ exports.ReturnSignal = ReturnSignal;
40
+ class BreakSignal extends ControlFlowSignal {
41
+ dataType = exports.BREAK_SIGNAL;
42
+ static isBreakSignal(obj) {
43
+ return (0, common_1.isNerdamerNativeType)(obj, exports.BREAK_SIGNAL);
44
+ }
45
+ }
46
+ exports.BreakSignal = BreakSignal;
47
+ class ContinueSignal extends ControlFlowSignal {
48
+ dataType = exports.CONTINUE_SIGNAL;
49
+ static isContinueSignal(obj) {
50
+ return (0, common_1.isNerdamerNativeType)(obj, exports.CONTINUE_SIGNAL);
51
+ }
52
+ }
53
+ exports.ContinueSignal = ContinueSignal;
54
+ class NullSignal extends ControlFlowSignal {
55
+ dataType = exports.NULL_SIGNAL;
56
+ static isNullSignal(obj) {
57
+ return (0, common_1.isNerdamerNativeType)(obj, exports.NULL_SIGNAL);
58
+ }
59
+ }
60
+ exports.NullSignal = NullSignal;