@cortex-js/compute-engine 0.56.0 → 0.58.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (259) hide show
  1. package/dist/compile.esm.js +1137 -92
  2. package/dist/compile.min.esm.js +261 -61
  3. package/dist/compile.min.umd.cjs +262 -62
  4. package/dist/compile.umd.cjs +1137 -92
  5. package/dist/compute-engine.esm.js +1751 -176
  6. package/dist/compute-engine.min.esm.js +273 -73
  7. package/dist/compute-engine.min.umd.cjs +272 -72
  8. package/dist/compute-engine.umd.cjs +1751 -176
  9. package/dist/core.esm.js +1750 -175
  10. package/dist/core.min.esm.js +271 -71
  11. package/dist/core.min.umd.cjs +271 -71
  12. package/dist/core.umd.cjs +1750 -175
  13. package/dist/interval.esm.js +357 -28
  14. package/dist/interval.min.esm.js +6 -6
  15. package/dist/interval.min.umd.cjs +6 -6
  16. package/dist/interval.umd.cjs +357 -28
  17. package/dist/latex-syntax.esm.js +398 -28
  18. package/dist/latex-syntax.min.esm.js +6 -6
  19. package/dist/latex-syntax.min.umd.cjs +6 -6
  20. package/dist/latex-syntax.umd.cjs +398 -28
  21. package/dist/math-json.esm.js +2 -2
  22. package/dist/math-json.min.esm.js +2 -2
  23. package/dist/math-json.min.umd.cjs +2 -2
  24. package/dist/math-json.umd.cjs +2 -2
  25. package/dist/numerics.esm.js +38 -3
  26. package/dist/numerics.min.esm.js +3 -3
  27. package/dist/numerics.min.umd.cjs +4 -4
  28. package/dist/numerics.umd.cjs +38 -3
  29. package/dist/types/big-decimal/big-decimal.d.ts +1 -1
  30. package/dist/types/big-decimal/index.d.ts +1 -1
  31. package/dist/types/big-decimal/transcendentals.d.ts +1 -1
  32. package/dist/types/big-decimal/utils.d.ts +1 -1
  33. package/dist/types/common/ansi-codes.d.ts +1 -1
  34. package/dist/types/common/configuration-change.d.ts +1 -1
  35. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  36. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  37. package/dist/types/common/interruptible.d.ts +1 -1
  38. package/dist/types/common/one-of.d.ts +1 -1
  39. package/dist/types/common/signals.d.ts +1 -1
  40. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  41. package/dist/types/common/type/boxed-type.d.ts +1 -1
  42. package/dist/types/common/type/lexer.d.ts +1 -1
  43. package/dist/types/common/type/parse.d.ts +1 -1
  44. package/dist/types/common/type/parser.d.ts +1 -1
  45. package/dist/types/common/type/primitive.d.ts +1 -1
  46. package/dist/types/common/type/reduce.d.ts +1 -1
  47. package/dist/types/common/type/serialize.d.ts +1 -1
  48. package/dist/types/common/type/subtype.d.ts +1 -1
  49. package/dist/types/common/type/type-builder.d.ts +1 -1
  50. package/dist/types/common/type/types.d.ts +1 -1
  51. package/dist/types/common/type/utils.d.ts +1 -1
  52. package/dist/types/common/utils.d.ts +1 -1
  53. package/dist/types/compile.d.ts +1 -1
  54. package/dist/types/compute-engine/assume.d.ts +1 -1
  55. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +8 -1
  56. package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
  57. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
  58. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
  59. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
  60. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
  61. package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
  62. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  63. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
  64. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  65. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +7 -1
  66. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  67. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  68. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
  69. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
  70. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
  71. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  72. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
  73. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
  74. package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
  75. package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
  76. package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
  77. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  78. package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
  79. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
  80. package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
  81. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +22 -10
  82. package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
  83. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
  84. package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
  85. package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
  86. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
  87. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  88. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
  89. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
  90. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
  91. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
  92. package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
  93. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  94. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
  95. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
  96. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
  97. package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
  98. package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
  99. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
  100. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
  101. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  102. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  103. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  104. package/dist/types/compute-engine/compilation/base-compiler.d.ts +62 -6
  105. package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
  106. package/dist/types/compute-engine/compilation/constant-folding.d.ts +1 -1
  107. package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
  108. package/dist/types/compute-engine/compilation/gpu-target.d.ts +44 -1
  109. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
  110. package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
  111. package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
  112. package/dist/types/compute-engine/compilation/types.d.ts +1 -1
  113. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
  114. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  115. package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
  116. package/dist/types/compute-engine/engine-cache.d.ts +1 -1
  117. package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
  118. package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
  119. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
  120. package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
  121. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
  122. package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
  123. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
  124. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
  125. package/dist/types/compute-engine/engine-runtime-state.d.ts +4 -1
  126. package/dist/types/compute-engine/engine-scope.d.ts +1 -1
  127. package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
  128. package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
  129. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
  130. package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
  131. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
  132. package/dist/types/compute-engine/free-functions.d.ts +1 -1
  133. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  134. package/dist/types/compute-engine/global-types.d.ts +1 -1
  135. package/dist/types/compute-engine/index.d.ts +18 -2
  136. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  137. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  138. package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
  139. package/dist/types/compute-engine/interval/index.d.ts +1 -1
  140. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  141. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  142. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  143. package/dist/types/compute-engine/latex-syntax/dictionary/default-dictionary.d.ts +1 -1
  144. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  145. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  146. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  147. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-colors.d.ts +1 -1
  148. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  149. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  150. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  151. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  152. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  153. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  154. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  155. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  156. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  157. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  158. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
  159. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  160. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
  161. package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
  162. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
  163. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  164. package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
  165. package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
  166. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  167. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  168. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  169. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  170. package/dist/types/compute-engine/latex-syntax/types.d.ts +40 -1
  171. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  172. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  173. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  174. package/dist/types/compute-engine/library/collections.d.ts +5 -3
  175. package/dist/types/compute-engine/library/colors.d.ts +1 -1
  176. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  177. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  178. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  179. package/dist/types/compute-engine/library/core.d.ts +1 -1
  180. package/dist/types/compute-engine/library/fractals.d.ts +1 -1
  181. package/dist/types/compute-engine/library/library.d.ts +1 -1
  182. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  183. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  184. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  185. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  186. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  187. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
  188. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  189. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  190. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  191. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  192. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  193. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  194. package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
  195. package/dist/types/compute-engine/library/units.d.ts +1 -1
  196. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  197. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  198. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
  199. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  200. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  201. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  202. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  203. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  204. package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
  205. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  206. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  207. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  208. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  209. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  210. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  211. package/dist/types/compute-engine/numerics/random.d.ts +23 -0
  212. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  213. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  214. package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
  215. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  216. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  217. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  218. package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
  219. package/dist/types/compute-engine/oeis.d.ts +1 -1
  220. package/dist/types/compute-engine/sequence.d.ts +1 -1
  221. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  222. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  223. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  224. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  225. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  226. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  227. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  228. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  229. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
  230. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
  231. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  232. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  233. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  234. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  235. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  236. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  237. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  238. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  239. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  240. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  241. package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
  242. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  243. package/dist/types/compute-engine/types-engine.d.ts +51 -1
  244. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  245. package/dist/types/compute-engine/types-expression.d.ts +69 -1
  246. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
  247. package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
  248. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  249. package/dist/types/compute-engine/types.d.ts +1 -1
  250. package/dist/types/compute-engine.d.ts +1 -1
  251. package/dist/types/core.d.ts +1 -1
  252. package/dist/types/interval.d.ts +1 -1
  253. package/dist/types/latex-syntax.d.ts +2 -2
  254. package/dist/types/math-json/symbols.d.ts +1 -1
  255. package/dist/types/math-json/types.d.ts +1 -1
  256. package/dist/types/math-json/utils.d.ts +1 -1
  257. package/dist/types/math-json.d.ts +2 -2
  258. package/dist/types/numerics.d.ts +1 -1
  259. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  type ComplexResult = {
3
3
  re: number;
4
4
  im: number;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  /** Assuming x in an expression in radians, convert to current angular unit. */
3
3
  export declare function radiansToAngle(x: Expression | undefined): Expression | undefined;
4
4
  export declare function evalTrig(name: string, op: Expression | undefined): Expression | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { NumericValue } from '../numeric-value/types';
3
3
  /** Preferred guard for runtime expressions. */
4
4
  export declare function isExpression(x: unknown): x is Expression;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { Type } from '../../common/type/types';
3
3
  import { NumericValue } from '../numeric-value/types';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { Expression, IComputeEngine as ComputeEngine } from '../global-types';
3
3
  /**
4
4
  * Check that the number of arguments is as expected.
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  /** If a collection has fewer than this many elements, eagerly evaluate it.
3
3
  *
4
4
  * For example, evaluate the Union of two sets with 10 elements each will
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { CompileTarget, TargetSource } from './types';
3
3
  /**
4
4
  * Base compiler class containing language-agnostic compilation logic
@@ -17,14 +17,70 @@ export declare class BaseCompiler {
17
17
  */
18
18
  private static compileBlock;
19
19
  /**
20
- * Compile a Loop expression with Element(index, Range(lo, hi)) indexing.
21
- * Generates: (() => { for (let i = lo; i <= hi; i++) { body } })()
20
+ * Compile a Loop expression.
22
21
  *
23
- * The loop counter is always a raw number. For targets that wrap numeric
24
- * values (e.g. interval-js wraps with `_IA.point()`), references to the
25
- * loop index inside the body are wrapped via `target.number`.
22
+ * Two forms are supported:
23
+ *
24
+ * 1. **Imperative / single-Element form** (existing behaviour):
25
+ * `Loop(body, Element(i, Range(lo, hi)))`
26
+ * Generates a raw `for (let i = lo; i <= hi; i++) { body }` loop wrapped
27
+ * in an IIFE. The loop counter is always a plain number. For targets
28
+ * that wrap numeric values (e.g. interval-js uses `_IA.point()`),
29
+ * references to the loop index inside the body are re-wrapped via
30
+ * `target.number`. `break` / `continue` / `return` are preserved.
31
+ *
32
+ * 2. **Comprehension / variadic-Element form** (new):
33
+ * `Loop(body, Element(x, coll1), Element(y, coll2), …)`
34
+ * When two or more `Element` clauses are present — or when the single
35
+ * Element's collection is not a `Range` — the loop is compiled as a
36
+ * comprehension that collects results into an array. Each clause
37
+ * produces a `for (const name of collection)` loop, nested
38
+ * outermost-to-innermost, and the innermost body pushes into `result`.
39
+ *
40
+ * Example output (JS):
41
+ * ```js
42
+ * (() => { const result = [];
43
+ * for (const x of [1,2]) { for (const y of [3,4]) { result.push(body); } }
44
+ * return result; })()
45
+ * ```
46
+ *
47
+ * GLSL: multi-Element comprehension is not trivially representable in
48
+ * GLSL (no dynamic arrays, no push). A compile-time error is thrown.
49
+ * TODO(E3-GLSL): support GLSL multi-Element via a pre-declared fixed-size
50
+ * array or by unrolling when bounds are known at compile time.
51
+ *
52
+ * Known issue (imperative form): the IIFE generated by form (1) has no
53
+ * `return` statement, so `Loop(body, Element(i, Range(lo, hi)))` compiled
54
+ * to JS evaluates to `undefined` at runtime, while CE evaluation returns a
55
+ * `List` of body values. See `test/compute-engine/a1-c1-compile-parity.test.ts`
56
+ * ("Loop compiles in JS") for the verify-only test that locks in the
57
+ * current behavior.
26
58
  */
27
59
  private static compileForLoop;
60
+ /**
61
+ * Returns `true` when the given collection expression is a `Range` whose
62
+ * runtime semantics match the legacy imperative for-loop shape
63
+ * `for (let i = lo; i <= hi; i++)`.
64
+ *
65
+ * Concretely: integer-ascending bounds and step omitted-or-1. When bounds
66
+ * are not statically numeric we accept the Range (the historical
67
+ * behaviour) — runtime mismatch in the descending-unknown-bounds case is
68
+ * left as a known limitation; callers can force the iterable path by
69
+ * supplying an explicit step.
70
+ */
71
+ private static isLegacyCompatibleRange;
72
+ /**
73
+ * Compile a `Range(lo, hi)` or `Range(lo, hi, step)` expression into a JS
74
+ * iterable expression. Mirrors the runtime semantics in
75
+ * `library/collections.ts` Range:
76
+ * count = step === 0 ? 0 : max(0, floor((hi - lo) / step) + 1)
77
+ * element = lo + step * k (0-indexed)
78
+ * Default step is 1 when omitted. Bounds and step may be fractional.
79
+ *
80
+ * Only used from the comprehension path in `compileForLoop`.
81
+ * Caller must have already verified `isFunction(rangeExpr, 'Range')`.
82
+ */
83
+ private static compileRangeIterable;
28
84
  /**
29
85
  * Compile a loop body expression as statements (not wrapped in IIFE).
30
86
  * Handles Break, Continue, Return as statements, and If as if-else when
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { Expression, JSSource } from '../global-types';
3
3
  import type { CompileTarget, CompilationResult } from './types';
4
4
  type CompileExpressionOptions<T extends string = string> = {
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Constant folding utilities for GPU compilation.
3
3
  *
4
4
  * These helpers allow compilation handlers to detect compile-time constants,
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { CompiledFunctions } from './types';
3
3
  import { GPUShaderTarget } from './gpu-target';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { CompileTarget, CompiledOperators, CompiledFunctions, LanguageTarget, CompilationOptions, CompilationResult } from './types';
3
3
  /**
4
4
  * GPU shader operators shared by GLSL and WGSL.
@@ -120,6 +120,49 @@ export declare const GPU_FRACTAL_PREAMBLE_GLSL = "\nfloat _fractal_mandelbrot(ve
120
120
  * Fractal preamble (WGSL syntax).
121
121
  */
122
122
  export declare const GPU_FRACTAL_PREAMBLE_WGSL = "\nfn _fractal_mandelbrot(c: vec2f, maxIter: i32) -> f32 {\n var z = vec2f(0.0, 0.0);\n for (var i: i32 = 0; i < maxIter; i++) {\n z = vec2f(z.x*z.x - z.y*z.y + c.x, 2.0*z.x*z.y + c.y);\n if (dot(z, z) > 4.0) {\n return clamp((f32(i) - log2(log2(dot(z, z))) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n }\n return 1.0;\n}\n\nfn _fractal_julia(z_in: vec2f, c: vec2f, maxIter: i32) -> f32 {\n var z = z_in;\n for (var i: i32 = 0; i < maxIter; i++) {\n z = vec2f(z.x*z.x - z.y*z.y + c.x, 2.0*z.x*z.y + c.y);\n if (dot(z, z) > 4.0) {\n return clamp((f32(i) - log2(log2(dot(z, z))) + 4.0) / f32(maxIter), 0.0, 1.0);\n }\n }\n return 1.0;\n}\n";
123
+ /**
124
+ * GPU GCD preamble (GLSL syntax).
125
+ * Euclidean algorithm over floats; works for integer-valued inputs.
126
+ */
127
+ export declare const GPU_GCD_PREAMBLE_GLSL = "\nfloat _gpu_gcd(float a, float b) {\n a = abs(a); b = abs(b);\n for (int i = 0; i < 32; i++) {\n if (b < 0.5) break;\n float t = mod(a, b);\n a = b;\n b = t;\n }\n return a;\n}\n";
128
+ /**
129
+ * GPU GCD preamble (WGSL syntax).
130
+ */
131
+ export declare const GPU_GCD_PREAMBLE_WGSL = "\nfn _gpu_gcd(a_in: f32, b_in: f32) -> f32 {\n var a = abs(a_in); var b = abs(b_in);\n for (var i: i32 = 0; i < 32; i++) {\n if (b < 0.5) { break; }\n let t = a % b;\n a = b;\n b = t;\n }\n return a;\n}\n";
132
+ /**
133
+ * GPU Random preamble (GLSL syntax).
134
+ *
135
+ * Deterministic pseudorandom in [0, 1) from a float seed.
136
+ * Standard fract-sin hash; reproducible across runs for the same seed.
137
+ * Note: this hash exhibits visible banding near seed ≈ kπ for integer k.
138
+ * For high-quality shader random, callers should use a more robust hash
139
+ * (e.g. PCG or xxHash) and pre-seed it appropriately.
140
+ */
141
+ export declare const GPU_RANDOM_PREAMBLE_GLSL = "\n// Deterministic pseudorandom in [0, 1) from a float seed.\n// Standard fract-sin hash; reproducible across runs for the same seed.\n// Note: this hash exhibits visible banding near seed \u2248 k\u03C0 for integer k.\n// For high-quality shader random, callers should use a more robust hash\n// (e.g. PCG or xxHash) and pre-seed it appropriately.\nfloat _gpu_random(float seed) {\n return fract(sin(seed * 12.9898) * 43758.5453);\n}\n";
142
+ /**
143
+ * GPU Random preamble (WGSL syntax).
144
+ *
145
+ * Deterministic pseudorandom in [0, 1) from a float seed.
146
+ * Standard fract-sin hash; reproducible across runs for the same seed.
147
+ * Note: this hash exhibits visible banding near seed ≈ kπ for integer k.
148
+ * For high-quality shader random, callers should use a more robust hash
149
+ * (e.g. PCG or xxHash) and pre-seed it appropriately.
150
+ */
151
+ export declare const GPU_RANDOM_PREAMBLE_WGSL = "\n// Deterministic pseudorandom in [0, 1) from a float seed.\n// Standard fract-sin hash; reproducible across runs for the same seed.\n// Note: this hash exhibits visible banding near seed \u2248 k\u03C0 for integer k.\n// For high-quality shader random, callers should use a more robust hash\n// (e.g. PCG or xxHash) and pre-seed it appropriately.\nfn _gpu_random(seed: f32) -> f32 {\n return fract(sin(seed * 12.9898) * 43758.5453);\n}\n";
152
+ /**
153
+ * GPU Median preamble (GLSL syntax).
154
+ *
155
+ * One function per supported list size (2..8) using sorting networks.
156
+ * Each function takes N float arguments and returns the median via a
157
+ * Batcher odd-even merge sort encoded entirely as min/max calls.
158
+ */
159
+ export declare const GPU_MEDIAN_PREAMBLE_GLSL = "\nfloat _gpu_median_2(float a, float b) {\n return (a + b) * 0.5;\n}\nfloat _gpu_median_3(float a, float b, float c) {\n return max(min(a, b), min(max(a, b), c));\n}\nfloat _gpu_median_4(float a, float b, float c, float d) {\n float lo = max(min(a, b), min(c, d));\n float hi = min(max(a, b), max(c, d));\n return (lo + hi) * 0.5;\n}\nfloat _gpu_median_5(float a, float b, float c, float d, float e) {\n // 9-comparator Bose-Nelson sort; v2 holds the median.\n float t; float v0=a,v1=b,v2=c,v3=d,v4=e;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v0,v3); v3=max(v0,v3); v0=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v4); v4=max(v1,v4); v1=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n return v2;\n}\nfloat _gpu_median_6(float a, float b, float c, float d, float e, float f) {\n float t; float v0=a,v1=b,v2=c,v3=d,v4=e,v5=f;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v4,v5); v5=max(v4,v5); v4=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v0,v4); v4=max(v0,v4); v0=t;\n t=min(v1,v5); v5=max(v1,v5); v1=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n t=min(v3,v5); v5=max(v3,v5); v3=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n return (v2 + v3) * 0.5;\n}\nfloat _gpu_median_7(float a, float b, float c, float d, float e, float f, float g) {\n float t; float v0=a,v1=b,v2=c,v3=d,v4=e,v5=f,v6=g;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v4,v5); v5=max(v4,v5); v4=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v4,v6); v6=max(v4,v6); v4=t;\n t=min(v0,v4); v4=max(v0,v4); v0=t;\n t=min(v1,v5); v5=max(v1,v5); v1=t;\n t=min(v2,v6); v6=max(v2,v6); v2=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n t=min(v3,v5); v5=max(v3,v5); v3=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n return v3;\n}\nfloat _gpu_median_8(float a, float b, float c, float d, float e, float f, float g, float h) {\n float t; float v0=a,v1=b,v2=c,v3=d,v4=e,v5=f,v6=g,v7=h;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v4,v5); v5=max(v4,v5); v4=t;\n t=min(v6,v7); v7=max(v6,v7); v6=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v4,v6); v6=max(v4,v6); v4=t;\n t=min(v5,v7); v7=max(v5,v7); v5=t;\n t=min(v0,v4); v4=max(v0,v4); v0=t;\n t=min(v1,v5); v5=max(v1,v5); v1=t;\n t=min(v2,v6); v6=max(v2,v6); v2=t;\n t=min(v3,v7); v7=max(v3,v7); v3=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n t=min(v5,v6); v6=max(v5,v6); v5=t;\n t=min(v3,v5); v5=max(v3,v5); v3=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n return (v3 + v4) * 0.5;\n}\n";
160
+ /**
161
+ * GPU Median preamble (WGSL syntax).
162
+ *
163
+ * Same sorting-network logic as the GLSL version with WGSL syntax.
164
+ */
165
+ export declare const GPU_MEDIAN_PREAMBLE_WGSL = "\nfn _gpu_median_2(a: f32, b: f32) -> f32 {\n return (a + b) * 0.5;\n}\nfn _gpu_median_3(a: f32, b: f32, c: f32) -> f32 {\n return max(min(a, b), min(max(a, b), c));\n}\nfn _gpu_median_4(a: f32, b: f32, c: f32, d: f32) -> f32 {\n let lo = max(min(a, b), min(c, d));\n let hi = min(max(a, b), max(c, d));\n return (lo + hi) * 0.5;\n}\nfn _gpu_median_5(a: f32, b: f32, c: f32, d: f32, e: f32) -> f32 {\n // 9-comparator Bose-Nelson sort; v2 holds the median.\n var v0=a; var v1=b; var v2=c; var v3=d; var v4=e; var t: f32;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v0,v3); v3=max(v0,v3); v0=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v4); v4=max(v1,v4); v1=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n return v2;\n}\nfn _gpu_median_6(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32) -> f32 {\n var v0=a; var v1=b; var v2=c; var v3=d; var v4=e; var v5=f; var t: f32;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v4,v5); v5=max(v4,v5); v4=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v0,v4); v4=max(v0,v4); v0=t;\n t=min(v1,v5); v5=max(v1,v5); v1=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n t=min(v3,v5); v5=max(v3,v5); v3=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n return (v2 + v3) * 0.5;\n}\nfn _gpu_median_7(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32) -> f32 {\n var v0=a; var v1=b; var v2=c; var v3=d; var v4=e; var v5=f; var v6=g; var t: f32;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v4,v5); v5=max(v4,v5); v4=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v4,v6); v6=max(v4,v6); v4=t;\n t=min(v0,v4); v4=max(v0,v4); v0=t;\n t=min(v1,v5); v5=max(v1,v5); v1=t;\n t=min(v2,v6); v6=max(v2,v6); v2=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n t=min(v3,v5); v5=max(v3,v5); v3=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n return v3;\n}\nfn _gpu_median_8(a: f32, b: f32, c: f32, d: f32, e: f32, f: f32, g: f32, h: f32) -> f32 {\n var v0=a; var v1=b; var v2=c; var v3=d; var v4=e; var v5=f; var v6=g; var v7=h; var t: f32;\n t=min(v0,v1); v1=max(v0,v1); v0=t;\n t=min(v2,v3); v3=max(v2,v3); v2=t;\n t=min(v4,v5); v5=max(v4,v5); v4=t;\n t=min(v6,v7); v7=max(v6,v7); v6=t;\n t=min(v0,v2); v2=max(v0,v2); v0=t;\n t=min(v1,v3); v3=max(v1,v3); v1=t;\n t=min(v4,v6); v6=max(v4,v6); v4=t;\n t=min(v5,v7); v7=max(v5,v7); v5=t;\n t=min(v0,v4); v4=max(v0,v4); v0=t;\n t=min(v1,v5); v5=max(v1,v5); v1=t;\n t=min(v2,v6); v6=max(v2,v6); v2=t;\n t=min(v3,v7); v7=max(v3,v7); v3=t;\n t=min(v1,v2); v2=max(v1,v2); v1=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n t=min(v5,v6); v6=max(v5,v6); v5=t;\n t=min(v3,v5); v5=max(v3,v5); v3=t;\n t=min(v2,v4); v4=max(v2,v4); v2=t;\n t=min(v3,v4); v4=max(v3,v4); v3=t;\n return (v3 + v4) * 0.5;\n}\n";
123
166
  /**
124
167
  * GPU color space conversion preamble (GLSL syntax).
125
168
  *
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * JavaScript interval arithmetic compilation target
3
3
  *
4
4
  * Compiles mathematical expressions to JavaScript code using interval arithmetic
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { chop, factorial, factorial2, gcd, lcm, limit } from '../numerics/numeric';
3
3
  import { gamma, gammaln, erf, erfc, erfInv, beta, digamma, trigamma, polygamma, zeta, lambertW, besselJ, besselY, besselI, besselK, airyAi, airyBi, fresnelS, fresnelC, sinc } from '../numerics/special-functions';
4
4
  import { choose } from '../boxed-expression/expand';
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { CompileTarget, CompiledOperators, CompiledFunctions, LanguageTarget, CompilationOptions, CompilationResult } from './types';
3
3
  /**
4
4
  * Python/NumPy language target implementation
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  /**
3
3
  * Source code in the target language
4
4
  */
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { CompiledFunctions } from './types';
3
3
  import { GPUShaderTarget } from './gpu-target';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  /**
3
3
  * The default cost function, used to determine if a new expression is simpler
4
4
  * than the old one.
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { MathJsonSymbol } from '../math-json/types';
3
3
  export declare function ask(ce: IComputeEngine, pattern: Expression): BoxedSubstitution[];
4
4
  export declare function verify(ce: IComputeEngine, query: Expression): boolean | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  private _entries;
3
3
  getOrBuild<T>(cacheName: string, build: () => T, purge?: (t: T) => T | undefined): T;
4
4
  invalidate(cacheName: string): void;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export type CommonSymbolTable = {
3
3
  [symbol: string]: null | Expression;
4
4
  };
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { LanguageTarget } from './compilation/types';
3
3
  /**
4
4
  * Internal registry for compilation targets.
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  type ResetHooks = {
3
3
  refreshNumericConstants: () => void;
4
4
  resetCommonSymbols: () => void;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { BoxedType } from '../common/type/boxed-type';
3
3
  import type { MathJsonSymbol } from '../math-json/types';
4
4
  import type { ValueDefinition, OperatorDefinition, AssignValue, Expression, BoxedDefinition, SymbolDefinition, IComputeEngine, Scope } from './global-types';
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { BigDecimal } from '../big-decimal';
3
3
  import type { MathJsonNumberObject, MathJsonSymbol } from '../math-json/types';
4
4
  import { NumericValue } from './numeric-value/types';
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { LanguageTarget, CompilationOptions } from './compilation/types';
3
3
  export declare function assertCompilationTargetName(name: unknown): string;
4
4
  export declare function assertLibraryName(name: unknown): string;
@@ -1,3 +1,3 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare function resolveBootstrapLibraries(libraries?: readonly (string | LibraryDefinition)[]): LibraryDefinition[];
3
3
  export declare function loadLibraryDefinitions(engine: ComputeEngine, libraries: readonly LibraryDefinition[]): void;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { AngularUnit } from './types-definitions';
3
3
  export declare class EngineNumericConfiguration {
4
4
  private _precision;
@@ -1,7 +1,8 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  private _timeLimit;
3
3
  private _iterationLimit;
4
4
  private _recursionLimit;
5
+ private _maxCollectionSize;
5
6
  private _deadline;
6
7
  private _isVerifying;
7
8
  get timeLimit(): number;
@@ -10,6 +11,8 @@
10
11
  set iterationLimit(value: number);
11
12
  get recursionLimit(): number;
12
13
  set recursionLimit(value: number);
14
+ get maxCollectionSize(): number;
15
+ set maxCollectionSize(value: number);
13
16
  get deadline(): number | undefined;
14
17
  set deadline(value: number | undefined);
15
18
  get timeRemaining(): number;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare function pushScope(ce: IComputeEngine, scope?: Scope, name?: string): void;
3
3
  export declare function popScope(ce: IComputeEngine): void;
4
4
  export declare function pushEvalContext(ce: IComputeEngine, scope: Scope, name?: string): void;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare function declareSequence(ce: IComputeEngine, name: string, def: SequenceDefinition): IComputeEngine;
3
3
  export declare function getSequenceStatus(ce: IComputeEngine, name: string): SequenceStatus;
4
4
  export declare function getSequence(ce: IComputeEngine, name: string): SequenceInfo | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  /**
3
3
  * Internal holder for simplification rules and their cache-staleness marker.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { Expression, IComputeEngine as ComputeEngine, LibraryDefinition } from './global-types';
3
3
  export type CommonNumberBindings = {
4
4
  Zero: Expression;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  type ResolverScope = {
3
3
  parent: ResolverScope | null;
4
4
  types?: Record<string, TypeReference>;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { BoxedType } from '../common/type/boxed-type';
3
3
  import type { Expression, Metadata, ExpressionInput } from './global-types';
4
4
  type ValidationHost = {
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { Type, TypeString } from '../common/type/types';
3
3
  import type { LatexString, ParseLatexOptions } from './latex-syntax/types';
4
4
  import { compile as compileExpr } from './compilation/compile-expression';
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { BoxedDefinition, Expression, IComputeEngine as ComputeEngine, Scope } from './global-types';
3
3
  /***
4
4
  * ### THEORY OF OPERATIONS
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export type * from './types-serialization';
3
3
  export type { ValueDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, OperatorDefinition, BaseDefinition, SimplifyOptions, SymbolDefinition, SymbolDefinitions, LibraryDefinition, AngularUnit, Sign, BaseCollectionHandlers, IndexedCollectionHandlers, CollectionHandlers, TaggedValueDefinition, TaggedOperatorDefinition, BoxedDefinition, BoxedBaseDefinition, BoxedValueDefinition, OperatorDefinitionFlags, BoxedOperatorDefinition, } from './types-definitions';
4
4
  export type * from './types-evaluation';
@@ -1,11 +1,11 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { BigDecimal } from '../big-decimal';
3
3
  import { Type, TypeResolver, TypeString } from '../common/type/types';
4
4
  import { BoxedType } from '../common/type/boxed-type';
5
5
  import type { OneOf } from '../common/one-of';
6
6
  import type { ConfigurationChangeListener } from '../common/configuration-change';
7
7
  import type { MathJsonExpression, MathJsonSymbol, MathJsonNumberObject } from '../math-json/types';
8
- import type { ValueDefinition, OperatorDefinition, AngularUnit, AssignValue, AssumeResult, Expression, BoxedRule, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, Metadata, Rule, Scope, EvalContext, ExpressionInput, IComputeEngine, ILatexSyntax, BoxedDefinition, SymbolDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, LibraryDefinition } from './global-types';
8
+ import type { ValueDefinition, OperatorDefinition, AngularUnit, AssignValue, AssumeResult, Expression, BoxedRule, BoxedRuleSet, BoxedSubstitution, CanonicalOptions, Metadata, Rule, Scope, EvalContext, ExpressionInput, IComputeEngine, ILatexSyntax, BoxedDefinition, SymbolDefinition, SequenceDefinition, SequenceStatus, SequenceInfo, OEISSequenceInfo, OEISOptions, LibraryDefinition, OperatorInfo, SymbolInfo } from './global-types';
9
9
  import type { LibraryCategory, ParseLatexOptions, SerializeLatexOptions } from './latex-syntax/types';
10
10
  import type { BigNum, Rational } from './numerics/types';
11
11
  import { ExactNumericValueData, NumericValue, NumericValueData } from './numeric-value/types';
@@ -259,6 +259,19 @@ export declare class ComputeEngine implements IComputeEngine {
259
259
  */
260
260
  get recursionLimit(): number;
261
261
  set recursionLimit(t: number);
262
+ /** Maximum number of elements a collection may have when materialized
263
+ * (converted from a lazy form to a `List`). Default: 10,000.
264
+ *
265
+ * When a materialization would exceed this size, the operation leaves
266
+ * the expression in its lazy form. Consumers can detect oversize
267
+ * collections via the symbolic form's `count`.
268
+ *
269
+ * Set to `Infinity` (or `0` / a negative number) to disable the cap.
270
+ *
271
+ * @experimental
272
+ */
273
+ get maxCollectionSize(): number;
274
+ set maxCollectionSize(t: number);
262
275
  /**
263
276
  * Flag to prevent infinite recursion in the verify/ask/equality checking cycle.
264
277
  *
@@ -437,6 +450,9 @@ export declare class ComputeEngine implements IComputeEngine {
437
450
  * lexical scope and going up the scope chain.
438
451
  */
439
452
  lookupDefinition(id: MathJsonSymbol): undefined | BoxedDefinition;
453
+ normalizeIdentifier(latex: string): string;
454
+ operatorInfo(head: string): OperatorInfo | undefined;
455
+ symbolInfo(name: string): SymbolInfo | undefined;
440
456
  /**
441
457
  * Associate a new definition to a symbol in the current context.
442
458
  *
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Basic interval arithmetic operations
3
3
  *
4
4
  * @module interval/arithmetic
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Comparison and conditional interval operations
3
3
  *
4
4
  * @module interval/comparison
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Elementary interval functions (sqrt, pow, exp, ln, abs, floor, ceil, min, max, mod)
3
3
  *
4
4
  * @module interval/elementary
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Interval arithmetic library for reliable function evaluation
3
3
  *
4
4
  * This module provides interval versions of mathematical operations
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Trigonometric interval functions
3
3
  *
4
4
  * @module interval/trigonometric
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Interval arithmetic types for reliable function evaluation
3
3
  *
4
4
  * @module interval/types
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Utility functions for interval arithmetic
3
3
  *
4
4
  * @module interval/util
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * Default LaTeX dictionary assembly.
3
3
  *
4
4
  * This file imports all individual domain dictionaries and assembles them
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_ALGEBRA: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_ARITHMETIC: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_CALCULUS: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  /**
3
3
  * LaTeX dictionary for color constructors and conversions.
4
4
  *
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_COMPLEX: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_CORE: LatexDictionary;
3
3
  export declare const DELIMITERS_SHORTHAND: {
4
4
  '(': string;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_LINEAR_ALGEBRA: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import type { MathJsonExpression } from '../../../math-json';
3
3
  export declare const DEFINITIONS_LOGIC: LatexDictionary;
4
4
  export declare function parseQuantifier(kind: 'NotForAll' | 'NotExists' | 'ForAll' | 'Exists' | 'ExistsUnique'): (parser: Parser, terminator: Readonly<Terminator>) => MathJsonExpression | null;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_OTHERS: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_INEQUALITIES: LatexDictionaryEntry[];
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_SETS: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_STATISTICS: LatexDictionary;
@@ -1,3 +1,3 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const SYMBOLS: [string, string, number][];
3
3
  export declare const DEFINITIONS_SYMBOLS: LatexDictionary;
@@ -1,2 +1,2 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  export declare const DEFINITIONS_TRIGONOMETRY: LatexDictionary;
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  * LaTeX dictionary entries for parsing and serializing physical quantities
3
3
  * with units.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.56.0 */
1
+ /* 0.58.0 */
2
2
  import { LatexDictionaryEntry } from '../types';
3
3
  export type { CommonEntry, IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry, IndexedMatchfixEntry, IndexedInfixEntry, IndexedPrefixEntry, IndexedPostfixEntry, IndexedEnvironmentEntry, IndexedLatexDictionaryEntry, IndexedLatexDictionary, } from './indexed-types';
4
4
  import type { IndexedSymbolEntry, IndexedExpressionEntry, IndexedFunctionEntry, IndexedMatchfixEntry, IndexedInfixEntry, IndexedPostfixEntry, IndexedEnvironmentEntry, IndexedLatexDictionaryEntry, IndexedLatexDictionary } from './indexed-types';