@cortex-js/compute-engine 0.55.5 → 0.55.6

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 (258) hide show
  1. package/dist/compile.esm.js +138 -633
  2. package/dist/compile.min.esm.js +71 -493
  3. package/dist/compile.min.umd.cjs +71 -493
  4. package/dist/compile.umd.cjs +138 -633
  5. package/dist/compute-engine.esm.js +227 -651
  6. package/dist/compute-engine.min.esm.js +68 -489
  7. package/dist/compute-engine.min.umd.cjs +68 -489
  8. package/dist/compute-engine.umd.cjs +227 -651
  9. package/dist/core.esm.js +226 -650
  10. package/dist/core.min.esm.js +66 -487
  11. package/dist/core.min.umd.cjs +67 -488
  12. package/dist/core.umd.cjs +226 -650
  13. package/dist/interval.esm.js +136 -60
  14. package/dist/interval.min.esm.js +7 -7
  15. package/dist/interval.min.umd.cjs +7 -7
  16. package/dist/interval.umd.cjs +136 -60
  17. package/dist/latex-syntax.esm.js +219 -74
  18. package/dist/latex-syntax.min.esm.js +7 -6
  19. package/dist/latex-syntax.min.umd.cjs +7 -6
  20. package/dist/latex-syntax.umd.cjs +219 -74
  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 +2 -2
  26. package/dist/numerics.min.esm.js +2 -2
  27. package/dist/numerics.min.umd.cjs +2 -2
  28. package/dist/numerics.umd.cjs +2 -2
  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 +1 -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 +1 -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 +1 -1
  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 +1 -1
  105. package/dist/types/compute-engine/compilation/compile-expression.d.ts +2 -3
  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 +1 -54
  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 -67
  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 +1 -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 +2 -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-complex.d.ts +1 -1
  148. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  149. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  150. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  151. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  152. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  153. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  154. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  155. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  156. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  157. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
  158. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  159. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
  160. package/dist/types/compute-engine/latex-syntax/latex-syntax.d.ts +1 -1
  161. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
  162. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  163. package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
  164. package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
  165. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  166. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  167. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +4 -2
  168. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  169. package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
  170. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  171. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  172. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  173. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  174. package/dist/types/compute-engine/library/colors.d.ts +1 -1
  175. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  176. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  177. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  178. package/dist/types/compute-engine/library/core.d.ts +1 -1
  179. package/dist/types/compute-engine/library/fractals.d.ts +1 -1
  180. package/dist/types/compute-engine/library/library.d.ts +1 -1
  181. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  182. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  183. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  184. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  185. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  186. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
  187. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  188. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  189. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  190. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  191. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  192. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  193. package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
  194. package/dist/types/compute-engine/library/units.d.ts +1 -1
  195. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  196. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  197. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
  198. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  199. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  200. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  201. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  202. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  203. package/dist/types/compute-engine/numerics/linear-algebra.d.ts +1 -1
  204. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  205. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  206. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  207. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  208. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  209. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  210. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  211. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  212. package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
  213. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  214. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  215. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  216. package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
  217. package/dist/types/compute-engine/oeis.d.ts +1 -1
  218. package/dist/types/compute-engine/sequence.d.ts +1 -1
  219. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  220. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  221. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  222. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  223. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  224. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  225. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  226. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  227. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
  228. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
  229. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  230. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  231. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  232. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  233. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  234. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  235. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  236. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  237. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  238. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  239. package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
  240. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  241. package/dist/types/compute-engine/types-engine.d.ts +1 -1
  242. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  243. package/dist/types/compute-engine/types-expression.d.ts +1 -1
  244. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
  245. package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
  246. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  247. package/dist/types/compute-engine/types.d.ts +1 -1
  248. package/dist/types/compute-engine.d.ts +2 -2
  249. package/dist/types/core.d.ts +1 -1
  250. package/dist/types/interval.d.ts +1 -1
  251. package/dist/types/latex-syntax.d.ts +2 -2
  252. package/dist/types/math-json/symbols.d.ts +1 -1
  253. package/dist/types/math-json/types.d.ts +1 -1
  254. package/dist/types/math-json/utils.d.ts +1 -1
  255. package/dist/types/math-json.d.ts +2 -2
  256. package/dist/types/numerics.d.ts +1 -1
  257. package/package.json +1 -1
  258. package/dist/types/compute-engine/compilation/fractal-orbit.d.ts +0 -19
@@ -1,4 +1,4 @@
1
- /** Compute Engine 0.55.5 */
1
+ /** Compute Engine 0.55.6 */
2
2
 
3
3
  // src/compute-engine/interval/util.ts
4
4
  function ok(value) {
@@ -6984,10 +6984,6 @@ var DEFINITIONS_CORE = [
6984
6984
  // Lagrange notation
6985
6985
  {
6986
6986
  name: "Derivative",
6987
- // @todo: Leibniz notation: {% latex " \\frac{d^n}{dx^n} f(x)" %}
6988
- // @todo: Euler modified notation: This notation is used by Mathematica. The Euler notation uses `D` instead of
6989
- // `\partial`: `\partial_{x} f`, `\partial_{x,y} f`
6990
- // Newton notation (\dot{v}, \ddot{v}) is implemented below
6991
6987
  serialize: (serializer, expr) => {
6992
6988
  const degree = machineValue(operand(expr, 2)) ?? 1;
6993
6989
  const base = serializer.serialize(operand(expr, 1));
@@ -8025,14 +8021,18 @@ var DEFINITIONS_SETS = [
8025
8021
  return ["Complement", lhs];
8026
8022
  }
8027
8023
  // precedence: 240,
8028
- // @todo: serialize for the multiple argument case
8029
8024
  },
8030
8025
  {
8031
8026
  name: "Complement",
8032
8027
  latexTrigger: ["^", "<{>", "\\complement", "<}>"],
8033
- kind: "postfix"
8028
+ kind: "postfix",
8034
8029
  // precedence: 240,
8035
- // @todo: serialize for the multiple argument case
8030
+ serialize: (serializer, expr) => {
8031
+ return joinLatex([
8032
+ serializer.serialize(operand(expr, 1)),
8033
+ "^\\complement"
8034
+ ]);
8035
+ }
8036
8036
  },
8037
8037
  {
8038
8038
  name: "Intersection",
@@ -8119,7 +8119,6 @@ var DEFINITIONS_SETS = [
8119
8119
  // commands like \rbrack a, b \rbrack which are unambiguous.
8120
8120
  {
8121
8121
  name: "Multiple",
8122
- // @todo: parse
8123
8122
  serialize: serializeSet
8124
8123
  },
8125
8124
  {
@@ -8128,14 +8127,28 @@ var DEFINITIONS_SETS = [
8128
8127
  kind: "infix",
8129
8128
  precedence: 350
8130
8129
  },
8130
+ // \mid as a separator/operator (used in set-builder notation: {x \mid x > 0})
8131
+ // Low precedence so it binds loosely — everything on each side is parsed first
8132
+ {
8133
+ name: "Divides",
8134
+ latexTrigger: ["\\mid"],
8135
+ kind: "infix",
8136
+ precedence: 160
8137
+ },
8131
8138
  {
8132
8139
  name: "Set",
8133
8140
  kind: "matchfix",
8134
8141
  openTrigger: "{",
8135
8142
  closeTrigger: "}",
8136
- // @todo: the set syntax can also include conditions...
8137
8143
  parse: (_parser, body) => {
8138
8144
  if (isEmptySequence(body)) return "EmptySet";
8145
+ const h = operator(body);
8146
+ if (h === "Divides" || h === "Colon") {
8147
+ const expr = operand(body, 1);
8148
+ const condition = operand(body, 2);
8149
+ if (expr !== null && condition !== null)
8150
+ return ["Set", expr, ["Condition", condition]];
8151
+ }
8139
8152
  if (operator(body) == "Delimiter" && stringValue(operand(body, 2)) === ",") {
8140
8153
  body = operand(body, 1);
8141
8154
  }
@@ -8143,6 +8156,17 @@ var DEFINITIONS_SETS = [
8143
8156
  return ["Set", ...operands(body)];
8144
8157
  },
8145
8158
  serialize: (serializer, expr) => {
8159
+ if (nops(expr) === 2 && operator(operand(expr, 2)) === "Condition") {
8160
+ const condition = operand(expr, 2);
8161
+ return joinLatex([
8162
+ "\\lbrace",
8163
+ serializer.serialize(operand(expr, 1)),
8164
+ "\\mid",
8165
+ // Serialize the inner expression of the Condition wrapper
8166
+ serializer.serialize(operand(condition, 1)),
8167
+ "\\rbrace"
8168
+ ]);
8169
+ }
8146
8170
  return joinLatex([
8147
8171
  "\\lbrace",
8148
8172
  operands(expr).map((x) => serializer.serialize(x)).join(", "),
@@ -8309,23 +8333,6 @@ function serializeSet(serializer, expr) {
8309
8333
  if (expr === null) return "";
8310
8334
  const h = operator(expr);
8311
8335
  if (!h) return "";
8312
- if (h === "Set") {
8313
- if (nops(expr) === 0) return "\\emptyset";
8314
- if (nops(expr) === 2 && operator(operand(expr, 2)) === "Condition") {
8315
- return joinLatex([
8316
- "\\left\\lbrace",
8317
- serializer.serialize(operand(expr, 1)),
8318
- "\\middle\\mid",
8319
- serializer.serialize(operand(expr, 2)),
8320
- "\\right\\rbrace"
8321
- ]);
8322
- }
8323
- return joinLatex([
8324
- "\\left\\lbrace",
8325
- ...operands(expr).map((x) => serializer.serialize(x) + " ,"),
8326
- "\\right\\rbrace"
8327
- ]);
8328
- }
8329
8336
  if (h === "Multiple") {
8330
8337
  }
8331
8338
  if (h === "Range") {
@@ -9443,11 +9450,13 @@ var DEFINITIONS_ARITHMETIC = [
9443
9450
  if (!parser.match("_")) return null;
9444
9451
  const base = parser.parseGroup();
9445
9452
  if (operator(base) !== "To") return null;
9446
- const expr = parser.parseArguments("implicit");
9453
+ const expr = parser.parseExpression({
9454
+ minPrec: MULTIPLICATION_PRECEDENCE
9455
+ });
9447
9456
  if (!expr) return null;
9448
9457
  return [
9449
9458
  "Limit",
9450
- ["Function", expr[0], operand(base, 1)],
9459
+ ["Function", expr, operand(base, 1)],
9451
9460
  operand(base, 2)
9452
9461
  ];
9453
9462
  },
@@ -11651,12 +11660,52 @@ var DEFINITIONS_UNITS = [
11651
11660
  ];
11652
11661
 
11653
11662
  // src/compute-engine/latex-syntax/dictionary/definitions-other.ts
11663
+ var TEX_UNITS = [
11664
+ "pt",
11665
+ "em",
11666
+ "mu",
11667
+ "ex",
11668
+ "mm",
11669
+ "cm",
11670
+ "in",
11671
+ "bp",
11672
+ "sp",
11673
+ "dd",
11674
+ "cc",
11675
+ "pc",
11676
+ "nc",
11677
+ "nd"
11678
+ ];
11679
+ function skipTexDimension(parser) {
11680
+ parser.skipSpace();
11681
+ if (parser.peek === "-" || parser.peek === "+") parser.nextToken();
11682
+ while (/^[\d.]$/.test(parser.peek)) parser.nextToken();
11683
+ for (const unit of TEX_UNITS) {
11684
+ if (parser.matchAll([...unit])) return;
11685
+ }
11686
+ }
11654
11687
  function parseSingleArg(cmd) {
11655
11688
  return (parser) => {
11656
11689
  const arg = parser.parseGroup();
11657
11690
  return arg === null ? [cmd] : [cmd, arg];
11658
11691
  };
11659
11692
  }
11693
+ function parseMathStyleSwitch(mathStyle) {
11694
+ return (parser) => {
11695
+ const body = parser.parseExpression();
11696
+ if (body !== null && !isEmptySequence(body))
11697
+ return ["Annotated", body, { dict: { mathStyle } }];
11698
+ return "Nothing";
11699
+ };
11700
+ }
11701
+ function parseSizeSwitch(size) {
11702
+ return (parser) => {
11703
+ const body = parser.parseExpression();
11704
+ if (body !== null && !isEmptySequence(body))
11705
+ return ["Annotated", body, { dict: { size } }];
11706
+ return "Nothing";
11707
+ };
11708
+ }
11660
11709
  var DEFINITIONS_OTHERS = [
11661
11710
  {
11662
11711
  name: "Overscript",
@@ -11896,80 +11945,71 @@ var DEFINITIONS_OTHERS = [
11896
11945
  },
11897
11946
  {
11898
11947
  latexTrigger: ["\\displaystyle"],
11899
- parse: () => "Nothing"
11900
- // @todo: parse as ['Annotated'...]
11948
+ parse: parseMathStyleSwitch("normal")
11901
11949
  },
11902
11950
  {
11903
11951
  latexTrigger: ["\\textstyle"],
11904
- parse: () => "Nothing"
11905
- // @todo: parse as ['Annotated'...]
11952
+ parse: parseMathStyleSwitch("compact")
11906
11953
  },
11907
11954
  {
11908
11955
  latexTrigger: ["\\scriptstyle"],
11909
- parse: () => "Nothing"
11910
- // @todo: parse as ['Annotated'...]
11956
+ parse: parseMathStyleSwitch("script")
11911
11957
  },
11912
11958
  {
11913
11959
  latexTrigger: ["\\scriptscriptstyle"],
11914
- parse: () => "Nothing"
11915
- // @todo: parse as ['Annotated'...]
11960
+ parse: parseMathStyleSwitch("scriptscript")
11916
11961
  },
11917
11962
  {
11918
11963
  latexTrigger: ["\\color"],
11919
11964
  parse: (parser) => {
11920
- parser.parseGroup();
11965
+ const color = parser.parseStringGroup();
11966
+ if (color !== null) {
11967
+ const body = parser.parseExpression();
11968
+ if (body !== null && !isEmptySequence(body))
11969
+ return ["Annotated", body, { dict: { color } }];
11970
+ }
11921
11971
  return "Nothing";
11922
11972
  }
11923
11973
  },
11924
11974
  {
11925
11975
  latexTrigger: ["\\tiny"],
11926
- parse: () => "Nothing"
11927
- // @todo: parse as ['Annotated'...]
11976
+ parse: parseSizeSwitch(1)
11928
11977
  },
11929
11978
  {
11930
11979
  latexTrigger: ["\\scriptsize"],
11931
- parse: () => "Nothing"
11932
- // @todo: parse as ['Annotated'...]
11980
+ parse: parseSizeSwitch(2)
11933
11981
  },
11934
11982
  {
11935
11983
  latexTrigger: ["\\footnotesize"],
11936
- parse: () => "Nothing"
11937
- // @todo: parse as ['Annotated'...]
11984
+ parse: parseSizeSwitch(3)
11938
11985
  },
11939
11986
  {
11940
11987
  latexTrigger: ["\\small"],
11941
- parse: () => "Nothing"
11942
- // @todo: parse as ['Annotated'...]
11988
+ parse: parseSizeSwitch(4)
11943
11989
  },
11944
11990
  {
11945
11991
  latexTrigger: ["\\normalsize"],
11946
- parse: () => "Nothing"
11947
- // @todo: parse as ['Annotated'...]
11992
+ parse: parseSizeSwitch(5)
11948
11993
  },
11949
11994
  {
11950
11995
  latexTrigger: ["\\large"],
11951
- parse: () => "Nothing"
11952
- // @todo: parse as ['Annotated'...]
11996
+ parse: parseSizeSwitch(6)
11953
11997
  },
11954
11998
  {
11955
11999
  latexTrigger: ["\\Large"],
11956
- parse: () => "Nothing"
11957
- // @todo: parse as ['Annotated'...]
12000
+ parse: parseSizeSwitch(7)
11958
12001
  },
11959
12002
  {
11960
12003
  latexTrigger: ["\\LARGE"],
11961
- parse: () => "Nothing"
11962
- // @todo: parse as ['Annotated'...]
12004
+ parse: parseSizeSwitch(8)
11963
12005
  },
11964
12006
  {
11965
12007
  latexTrigger: ["\\huge"],
11966
- parse: () => "Nothing"
11967
- // @todo: parse as ['Annotated'...]
12008
+ parse: parseSizeSwitch(9)
11968
12009
  },
11969
12010
  {
11970
12011
  latexTrigger: ["\\Huge"],
11971
- parse: () => "Nothing"
11972
- // @todo: parse as ['Annotated'...]
12012
+ parse: parseSizeSwitch(10)
11973
12013
  },
11974
12014
  {
11975
12015
  name: "Annotated",
@@ -11981,6 +12021,10 @@ var DEFINITIONS_OTHERS = [
11981
12021
  result = joinLatex(["{\\displaystyle", result, "}"]);
11982
12022
  else if (dict.dict.mathStyle === "compact")
11983
12023
  result = joinLatex(["{\\textstyle", result, "}"]);
12024
+ else if (dict.dict.mathStyle === "script")
12025
+ result = joinLatex(["{\\scriptstyle", result, "}"]);
12026
+ else if (dict.dict.mathStyle === "scriptscript")
12027
+ result = joinLatex(["{\\scriptscriptstyle", result, "}"]);
11984
12028
  const v = dict.dict.size;
11985
12029
  if (v !== null && v >= 1 && v <= 10) {
11986
12030
  result = joinLatex([
@@ -12068,6 +12112,28 @@ var DEFINITIONS_OTHERS = [
12068
12112
  latexTrigger: ["\\enspace"],
12069
12113
  parse: () => ["HorizontalSpacing", 9]
12070
12114
  },
12115
+ {
12116
+ latexTrigger: ["\\hspace"],
12117
+ parse: (parser) => {
12118
+ if (parser.peek === "*") parser.nextToken();
12119
+ parser.parseStringGroup();
12120
+ return ["HorizontalSpacing", 0];
12121
+ }
12122
+ },
12123
+ {
12124
+ latexTrigger: ["\\hskip"],
12125
+ parse: (parser) => {
12126
+ skipTexDimension(parser);
12127
+ return ["HorizontalSpacing", 0];
12128
+ }
12129
+ },
12130
+ {
12131
+ latexTrigger: ["\\kern"],
12132
+ parse: (parser) => {
12133
+ skipTexDimension(parser);
12134
+ return ["HorizontalSpacing", 0];
12135
+ }
12136
+ },
12071
12137
  {
12072
12138
  latexTrigger: ["\\phantom"],
12073
12139
  parse: (parser) => {
@@ -12118,7 +12184,17 @@ var DEFINITIONS_OTHERS = [
12118
12184
  // `["HorizontalSpacing", expr, 'op'|'bin'|rel]` -> indicate a spacing around and expression, i.e. `\mathbin{x}`, etc...
12119
12185
  serialize: (serializer, expr) => {
12120
12186
  if (operand(expr, 2) !== null) {
12121
- return serializer.serialize(operand(expr, 1));
12187
+ const cls = stringValue(operand(expr, 2));
12188
+ const inner = serializer.serialize(operand(expr, 1));
12189
+ if (cls === "bin") return `\\mathbin{${inner}}`;
12190
+ if (cls === "op") return `\\mathop{${inner}}`;
12191
+ if (cls === "rel") return `\\mathrel{${inner}}`;
12192
+ if (cls === "ord") return `\\mathord{${inner}}`;
12193
+ if (cls === "open") return `\\mathopen{${inner}}`;
12194
+ if (cls === "close") return `\\mathclose{${inner}}`;
12195
+ if (cls === "punct") return `\\mathpunct{${inner}}`;
12196
+ if (cls === "inner") return `\\mathinner{${inner}}`;
12197
+ return inner;
12122
12198
  }
12123
12199
  const v = machineValue(operand(expr, 1));
12124
12200
  if (v === null) return "";
@@ -13329,7 +13405,7 @@ var IntervalArithmetic = {
13329
13405
  };
13330
13406
 
13331
13407
  // src/interval.ts
13332
- var version = "0.55.5";
13408
+ var version = "0.55.6";
13333
13409
  export {
13334
13410
  IntervalArithmetic,
13335
13411
  _mul,