@cortex-js/compute-engine 0.55.5 → 0.56.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 +912 -770
  2. package/dist/compile.min.esm.js +300 -523
  3. package/dist/compile.min.umd.cjs +301 -524
  4. package/dist/compile.umd.cjs +912 -770
  5. package/dist/compute-engine.esm.js +1517 -902
  6. package/dist/compute-engine.min.esm.js +300 -522
  7. package/dist/compute-engine.min.umd.cjs +300 -522
  8. package/dist/compute-engine.umd.cjs +1517 -902
  9. package/dist/core.esm.js +1516 -901
  10. package/dist/core.min.esm.js +299 -521
  11. package/dist/core.min.umd.cjs +299 -521
  12. package/dist/core.umd.cjs +1516 -901
  13. package/dist/interval.esm.js +268 -63
  14. package/dist/interval.min.esm.js +7 -7
  15. package/dist/interval.min.umd.cjs +7 -7
  16. package/dist/interval.umd.cjs +268 -63
  17. package/dist/latex-syntax.esm.js +371 -77
  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 +371 -77
  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 +4 -2
  26. package/dist/numerics.min.esm.js +3 -3
  27. package/dist/numerics.min.umd.cjs +3 -3
  28. package/dist/numerics.umd.cjs +4 -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 +2 -2
  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 +15 -58
  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 +25 -3
  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 +23 -3
  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 +4 -3
  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 +10 -0
  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 +9 -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 +4 -2
  169. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  170. package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -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 +1 -1
  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/rationals.d.ts +1 -1
  212. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  213. package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
  214. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  215. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  216. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  217. package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
  218. package/dist/types/compute-engine/oeis.d.ts +1 -1
  219. package/dist/types/compute-engine/sequence.d.ts +1 -1
  220. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  221. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  222. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  223. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  224. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  225. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  226. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  227. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  228. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
  229. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
  230. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  231. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  232. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  233. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  234. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  235. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  236. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  237. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  238. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  239. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  240. package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
  241. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  242. package/dist/types/compute-engine/types-engine.d.ts +6 -2
  243. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  244. package/dist/types/compute-engine/types-expression.d.ts +1 -1
  245. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
  246. package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
  247. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  248. package/dist/types/compute-engine/types.d.ts +1 -1
  249. package/dist/types/compute-engine.d.ts +2 -3
  250. package/dist/types/core.d.ts +1 -1
  251. package/dist/types/interval.d.ts +1 -1
  252. package/dist/types/latex-syntax.d.ts +2 -2
  253. package/dist/types/math-json/symbols.d.ts +1 -1
  254. package/dist/types/math-json/types.d.ts +1 -1
  255. package/dist/types/math-json/utils.d.ts +1 -1
  256. package/dist/types/math-json.d.ts +2 -2
  257. package/dist/types/numerics.d.ts +1 -1
  258. package/package.json +2 -2
  259. 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.56.0 */
2
2
 
3
3
  // src/compute-engine/interval/util.ts
4
4
  function ok(value) {
@@ -3119,6 +3119,7 @@ var SCALAR_TYPES = [
3119
3119
  ];
3120
3120
  var VALUE_TYPES = [
3121
3121
  "value",
3122
+ "color",
3122
3123
  ...COLLECTION_TYPES,
3123
3124
  ...SCALAR_TYPES
3124
3125
  ];
@@ -4770,6 +4771,7 @@ var PRIMITIVE_SUBTYPES = {
4770
4771
  symbol: [],
4771
4772
  boolean: [],
4772
4773
  string: [],
4774
+ color: [],
4773
4775
  expression: EXPRESSION_TYPES
4774
4776
  };
4775
4777
  function isPrimitiveSubtype(lhs, rhs) {
@@ -6984,10 +6986,6 @@ var DEFINITIONS_CORE = [
6984
6986
  // Lagrange notation
6985
6987
  {
6986
6988
  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
6989
  serialize: (serializer, expr) => {
6992
6990
  const degree = machineValue(operand(expr, 2)) ?? 1;
6993
6991
  const base = serializer.serialize(operand(expr, 1));
@@ -8025,14 +8023,18 @@ var DEFINITIONS_SETS = [
8025
8023
  return ["Complement", lhs];
8026
8024
  }
8027
8025
  // precedence: 240,
8028
- // @todo: serialize for the multiple argument case
8029
8026
  },
8030
8027
  {
8031
8028
  name: "Complement",
8032
8029
  latexTrigger: ["^", "<{>", "\\complement", "<}>"],
8033
- kind: "postfix"
8030
+ kind: "postfix",
8034
8031
  // precedence: 240,
8035
- // @todo: serialize for the multiple argument case
8032
+ serialize: (serializer, expr) => {
8033
+ return joinLatex([
8034
+ serializer.serialize(operand(expr, 1)),
8035
+ "^\\complement"
8036
+ ]);
8037
+ }
8036
8038
  },
8037
8039
  {
8038
8040
  name: "Intersection",
@@ -8119,7 +8121,6 @@ var DEFINITIONS_SETS = [
8119
8121
  // commands like \rbrack a, b \rbrack which are unambiguous.
8120
8122
  {
8121
8123
  name: "Multiple",
8122
- // @todo: parse
8123
8124
  serialize: serializeSet
8124
8125
  },
8125
8126
  {
@@ -8128,14 +8129,28 @@ var DEFINITIONS_SETS = [
8128
8129
  kind: "infix",
8129
8130
  precedence: 350
8130
8131
  },
8132
+ // \mid as a separator/operator (used in set-builder notation: {x \mid x > 0})
8133
+ // Low precedence so it binds loosely — everything on each side is parsed first
8134
+ {
8135
+ name: "Divides",
8136
+ latexTrigger: ["\\mid"],
8137
+ kind: "infix",
8138
+ precedence: 160
8139
+ },
8131
8140
  {
8132
8141
  name: "Set",
8133
8142
  kind: "matchfix",
8134
8143
  openTrigger: "{",
8135
8144
  closeTrigger: "}",
8136
- // @todo: the set syntax can also include conditions...
8137
8145
  parse: (_parser, body) => {
8138
8146
  if (isEmptySequence(body)) return "EmptySet";
8147
+ const h = operator(body);
8148
+ if (h === "Divides" || h === "Colon") {
8149
+ const expr = operand(body, 1);
8150
+ const condition = operand(body, 2);
8151
+ if (expr !== null && condition !== null)
8152
+ return ["Set", expr, ["Condition", condition]];
8153
+ }
8139
8154
  if (operator(body) == "Delimiter" && stringValue(operand(body, 2)) === ",") {
8140
8155
  body = operand(body, 1);
8141
8156
  }
@@ -8143,6 +8158,17 @@ var DEFINITIONS_SETS = [
8143
8158
  return ["Set", ...operands(body)];
8144
8159
  },
8145
8160
  serialize: (serializer, expr) => {
8161
+ if (nops(expr) === 2 && operator(operand(expr, 2)) === "Condition") {
8162
+ const condition = operand(expr, 2);
8163
+ return joinLatex([
8164
+ "\\lbrace",
8165
+ serializer.serialize(operand(expr, 1)),
8166
+ "\\mid",
8167
+ // Serialize the inner expression of the Condition wrapper
8168
+ serializer.serialize(operand(condition, 1)),
8169
+ "\\rbrace"
8170
+ ]);
8171
+ }
8146
8172
  return joinLatex([
8147
8173
  "\\lbrace",
8148
8174
  operands(expr).map((x) => serializer.serialize(x)).join(", "),
@@ -8309,23 +8335,6 @@ function serializeSet(serializer, expr) {
8309
8335
  if (expr === null) return "";
8310
8336
  const h = operator(expr);
8311
8337
  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
8338
  if (h === "Multiple") {
8330
8339
  }
8331
8340
  if (h === "Range") {
@@ -9443,11 +9452,13 @@ var DEFINITIONS_ARITHMETIC = [
9443
9452
  if (!parser.match("_")) return null;
9444
9453
  const base = parser.parseGroup();
9445
9454
  if (operator(base) !== "To") return null;
9446
- const expr = parser.parseArguments("implicit");
9455
+ const expr = parser.parseExpression({
9456
+ minPrec: MULTIPLICATION_PRECEDENCE
9457
+ });
9447
9458
  if (!expr) return null;
9448
9459
  return [
9449
9460
  "Limit",
9450
- ["Function", expr[0], operand(base, 1)],
9461
+ ["Function", expr, operand(base, 1)],
9451
9462
  operand(base, 2)
9452
9463
  ];
9453
9464
  },
@@ -9528,6 +9539,8 @@ var DEFINITIONS_ARITHMETIC = [
9528
9539
  precedence: DIVISION_PRECEDENCE,
9529
9540
  parse: "Mod"
9530
9541
  },
9542
+ // Function-style alias: `\operatorname{mod}(a, b)`
9543
+ { latexTrigger: "\\operatorname{mod}", parse: "Mod" },
9531
9544
  {
9532
9545
  latexTrigger: "\\pmod",
9533
9546
  kind: "prefix",
@@ -9768,6 +9781,13 @@ var DEFINITIONS_ARITHMETIC = [
9768
9781
  const rhs = serializer.wrap(operand(expr, 2), ADDITION_PRECEDENCE + 3);
9769
9782
  return joinLatex([lhs, "-", rhs]);
9770
9783
  }
9784
+ },
9785
+ // Euclidean distance between two points (tuples of numbers).
9786
+ {
9787
+ name: "Distance",
9788
+ latexTrigger: ["\\operatorname{distance}"],
9789
+ kind: "function",
9790
+ serialize: (serializer, expr) => "\\operatorname{distance}" + serializer.wrapArguments(expr)
9771
9791
  }
9772
9792
  ];
9773
9793
  function getIndexAssignment(expr, upper) {
@@ -11192,7 +11212,9 @@ var DEFINITIONS_STATISTICS = [
11192
11212
  if (!expr || !symbol(expr)) return null;
11193
11213
  return ["Mean", expr];
11194
11214
  }
11195
- }
11215
+ },
11216
+ // Function-style alias: `\operatorname{var}(...)`
11217
+ { latexTrigger: "\\operatorname{var}", parse: "Variance" }
11196
11218
  ];
11197
11219
 
11198
11220
  // src/compute-engine/numerics/unit-data.ts
@@ -11651,12 +11673,52 @@ var DEFINITIONS_UNITS = [
11651
11673
  ];
11652
11674
 
11653
11675
  // src/compute-engine/latex-syntax/dictionary/definitions-other.ts
11676
+ var TEX_UNITS = [
11677
+ "pt",
11678
+ "em",
11679
+ "mu",
11680
+ "ex",
11681
+ "mm",
11682
+ "cm",
11683
+ "in",
11684
+ "bp",
11685
+ "sp",
11686
+ "dd",
11687
+ "cc",
11688
+ "pc",
11689
+ "nc",
11690
+ "nd"
11691
+ ];
11692
+ function skipTexDimension(parser) {
11693
+ parser.skipSpace();
11694
+ if (parser.peek === "-" || parser.peek === "+") parser.nextToken();
11695
+ while (/^[\d.]$/.test(parser.peek)) parser.nextToken();
11696
+ for (const unit of TEX_UNITS) {
11697
+ if (parser.matchAll([...unit])) return;
11698
+ }
11699
+ }
11654
11700
  function parseSingleArg(cmd) {
11655
11701
  return (parser) => {
11656
11702
  const arg = parser.parseGroup();
11657
11703
  return arg === null ? [cmd] : [cmd, arg];
11658
11704
  };
11659
11705
  }
11706
+ function parseMathStyleSwitch(mathStyle) {
11707
+ return (parser) => {
11708
+ const body = parser.parseExpression();
11709
+ if (body !== null && !isEmptySequence(body))
11710
+ return ["Annotated", body, { dict: { mathStyle } }];
11711
+ return "Nothing";
11712
+ };
11713
+ }
11714
+ function parseSizeSwitch(size) {
11715
+ return (parser) => {
11716
+ const body = parser.parseExpression();
11717
+ if (body !== null && !isEmptySequence(body))
11718
+ return ["Annotated", body, { dict: { size } }];
11719
+ return "Nothing";
11720
+ };
11721
+ }
11660
11722
  var DEFINITIONS_OTHERS = [
11661
11723
  {
11662
11724
  name: "Overscript",
@@ -11896,80 +11958,71 @@ var DEFINITIONS_OTHERS = [
11896
11958
  },
11897
11959
  {
11898
11960
  latexTrigger: ["\\displaystyle"],
11899
- parse: () => "Nothing"
11900
- // @todo: parse as ['Annotated'...]
11961
+ parse: parseMathStyleSwitch("normal")
11901
11962
  },
11902
11963
  {
11903
11964
  latexTrigger: ["\\textstyle"],
11904
- parse: () => "Nothing"
11905
- // @todo: parse as ['Annotated'...]
11965
+ parse: parseMathStyleSwitch("compact")
11906
11966
  },
11907
11967
  {
11908
11968
  latexTrigger: ["\\scriptstyle"],
11909
- parse: () => "Nothing"
11910
- // @todo: parse as ['Annotated'...]
11969
+ parse: parseMathStyleSwitch("script")
11911
11970
  },
11912
11971
  {
11913
11972
  latexTrigger: ["\\scriptscriptstyle"],
11914
- parse: () => "Nothing"
11915
- // @todo: parse as ['Annotated'...]
11973
+ parse: parseMathStyleSwitch("scriptscript")
11916
11974
  },
11917
11975
  {
11918
11976
  latexTrigger: ["\\color"],
11919
11977
  parse: (parser) => {
11920
- parser.parseGroup();
11978
+ const color = parser.parseStringGroup();
11979
+ if (color !== null) {
11980
+ const body = parser.parseExpression();
11981
+ if (body !== null && !isEmptySequence(body))
11982
+ return ["Annotated", body, { dict: { color } }];
11983
+ }
11921
11984
  return "Nothing";
11922
11985
  }
11923
11986
  },
11924
11987
  {
11925
11988
  latexTrigger: ["\\tiny"],
11926
- parse: () => "Nothing"
11927
- // @todo: parse as ['Annotated'...]
11989
+ parse: parseSizeSwitch(1)
11928
11990
  },
11929
11991
  {
11930
11992
  latexTrigger: ["\\scriptsize"],
11931
- parse: () => "Nothing"
11932
- // @todo: parse as ['Annotated'...]
11993
+ parse: parseSizeSwitch(2)
11933
11994
  },
11934
11995
  {
11935
11996
  latexTrigger: ["\\footnotesize"],
11936
- parse: () => "Nothing"
11937
- // @todo: parse as ['Annotated'...]
11997
+ parse: parseSizeSwitch(3)
11938
11998
  },
11939
11999
  {
11940
12000
  latexTrigger: ["\\small"],
11941
- parse: () => "Nothing"
11942
- // @todo: parse as ['Annotated'...]
12001
+ parse: parseSizeSwitch(4)
11943
12002
  },
11944
12003
  {
11945
12004
  latexTrigger: ["\\normalsize"],
11946
- parse: () => "Nothing"
11947
- // @todo: parse as ['Annotated'...]
12005
+ parse: parseSizeSwitch(5)
11948
12006
  },
11949
12007
  {
11950
12008
  latexTrigger: ["\\large"],
11951
- parse: () => "Nothing"
11952
- // @todo: parse as ['Annotated'...]
12009
+ parse: parseSizeSwitch(6)
11953
12010
  },
11954
12011
  {
11955
12012
  latexTrigger: ["\\Large"],
11956
- parse: () => "Nothing"
11957
- // @todo: parse as ['Annotated'...]
12013
+ parse: parseSizeSwitch(7)
11958
12014
  },
11959
12015
  {
11960
12016
  latexTrigger: ["\\LARGE"],
11961
- parse: () => "Nothing"
11962
- // @todo: parse as ['Annotated'...]
12017
+ parse: parseSizeSwitch(8)
11963
12018
  },
11964
12019
  {
11965
12020
  latexTrigger: ["\\huge"],
11966
- parse: () => "Nothing"
11967
- // @todo: parse as ['Annotated'...]
12021
+ parse: parseSizeSwitch(9)
11968
12022
  },
11969
12023
  {
11970
12024
  latexTrigger: ["\\Huge"],
11971
- parse: () => "Nothing"
11972
- // @todo: parse as ['Annotated'...]
12025
+ parse: parseSizeSwitch(10)
11973
12026
  },
11974
12027
  {
11975
12028
  name: "Annotated",
@@ -11981,6 +12034,10 @@ var DEFINITIONS_OTHERS = [
11981
12034
  result = joinLatex(["{\\displaystyle", result, "}"]);
11982
12035
  else if (dict.dict.mathStyle === "compact")
11983
12036
  result = joinLatex(["{\\textstyle", result, "}"]);
12037
+ else if (dict.dict.mathStyle === "script")
12038
+ result = joinLatex(["{\\scriptstyle", result, "}"]);
12039
+ else if (dict.dict.mathStyle === "scriptscript")
12040
+ result = joinLatex(["{\\scriptscriptstyle", result, "}"]);
11984
12041
  const v = dict.dict.size;
11985
12042
  if (v !== null && v >= 1 && v <= 10) {
11986
12043
  result = joinLatex([
@@ -12068,6 +12125,28 @@ var DEFINITIONS_OTHERS = [
12068
12125
  latexTrigger: ["\\enspace"],
12069
12126
  parse: () => ["HorizontalSpacing", 9]
12070
12127
  },
12128
+ {
12129
+ latexTrigger: ["\\hspace"],
12130
+ parse: (parser) => {
12131
+ if (parser.peek === "*") parser.nextToken();
12132
+ parser.parseStringGroup();
12133
+ return ["HorizontalSpacing", 0];
12134
+ }
12135
+ },
12136
+ {
12137
+ latexTrigger: ["\\hskip"],
12138
+ parse: (parser) => {
12139
+ skipTexDimension(parser);
12140
+ return ["HorizontalSpacing", 0];
12141
+ }
12142
+ },
12143
+ {
12144
+ latexTrigger: ["\\kern"],
12145
+ parse: (parser) => {
12146
+ skipTexDimension(parser);
12147
+ return ["HorizontalSpacing", 0];
12148
+ }
12149
+ },
12071
12150
  {
12072
12151
  latexTrigger: ["\\phantom"],
12073
12152
  parse: (parser) => {
@@ -12118,7 +12197,17 @@ var DEFINITIONS_OTHERS = [
12118
12197
  // `["HorizontalSpacing", expr, 'op'|'bin'|rel]` -> indicate a spacing around and expression, i.e. `\mathbin{x}`, etc...
12119
12198
  serialize: (serializer, expr) => {
12120
12199
  if (operand(expr, 2) !== null) {
12121
- return serializer.serialize(operand(expr, 1));
12200
+ const cls = stringValue(operand(expr, 2));
12201
+ const inner = serializer.serialize(operand(expr, 1));
12202
+ if (cls === "bin") return `\\mathbin{${inner}}`;
12203
+ if (cls === "op") return `\\mathop{${inner}}`;
12204
+ if (cls === "rel") return `\\mathrel{${inner}}`;
12205
+ if (cls === "ord") return `\\mathord{${inner}}`;
12206
+ if (cls === "open") return `\\mathopen{${inner}}`;
12207
+ if (cls === "close") return `\\mathclose{${inner}}`;
12208
+ if (cls === "punct") return `\\mathpunct{${inner}}`;
12209
+ if (cls === "inner") return `\\mathinner{${inner}}`;
12210
+ return inner;
12122
12211
  }
12123
12212
  const v = machineValue(operand(expr, 1));
12124
12213
  if (v === null) return "";
@@ -12133,7 +12222,7 @@ var DEFINITIONS_OTHERS = [
12133
12222
  36: "\\qquad"
12134
12223
  }[v] ?? "";
12135
12224
  }
12136
- }
12225
+ },
12137
12226
  // if (
12138
12227
  // [
12139
12228
  // '\\!',
@@ -12157,6 +12246,121 @@ var DEFINITIONS_OTHERS = [
12157
12246
  // name: '',
12158
12247
  // trigger: '\\check',
12159
12248
  // },
12249
+ // ---------------------------------------------------------------------------
12250
+ // Function-style aliases for collection / random operators that some
12251
+ // notations write in lowercase (e.g. `\operatorname{shuffle}(L)`).
12252
+ // The capitalized library entries already exist; these are pure parse
12253
+ // aliases so the lowercase names don't land in `unsupported-operator`.
12254
+ // ---------------------------------------------------------------------------
12255
+ { latexTrigger: "\\operatorname{random}", parse: "Random" },
12256
+ { latexTrigger: "\\operatorname{shuffle}", parse: "Shuffle" },
12257
+ { latexTrigger: "\\operatorname{repeat}", parse: "Repeat" },
12258
+ { latexTrigger: "\\operatorname{join}", parse: "Join" },
12259
+ // ---------------------------------------------------------------------------
12260
+ // Geometric primitive heads. Registered as known typed heads so consumers
12261
+ // can branch on the operator name; CE itself doesn't render them. The
12262
+ // library entries (with no evaluator) live in `library/core.ts`.
12263
+ // ---------------------------------------------------------------------------
12264
+ {
12265
+ name: "Triangle",
12266
+ latexTrigger: ["\\operatorname{triangle}"],
12267
+ kind: "function",
12268
+ serialize: (serializer, expr) => "\\operatorname{triangle}" + serializer.wrapArguments(expr)
12269
+ },
12270
+ // Desmos's geometric `vector(p1, p2)` — a directed segment between two
12271
+ // points. Routed to a dedicated head (not the existing column-vector
12272
+ // `Vector`, which has a narrower `(number+) -> vector` signature).
12273
+ {
12274
+ name: "GeometricVector",
12275
+ latexTrigger: ["\\operatorname{vector}"],
12276
+ kind: "function",
12277
+ serialize: (serializer, expr) => "\\operatorname{vector}" + serializer.wrapArguments(expr)
12278
+ },
12279
+ {
12280
+ name: "Sphere",
12281
+ latexTrigger: ["\\operatorname{sphere}"],
12282
+ kind: "function",
12283
+ serialize: (serializer, expr) => "\\operatorname{sphere}" + serializer.wrapArguments(expr)
12284
+ },
12285
+ {
12286
+ name: "Segment",
12287
+ latexTrigger: ["\\operatorname{segment}"],
12288
+ kind: "function",
12289
+ serialize: (serializer, expr) => "\\operatorname{segment}" + serializer.wrapArguments(expr)
12290
+ }
12291
+ ];
12292
+
12293
+ // src/compute-engine/latex-syntax/dictionary/definitions-colors.ts
12294
+ var DEFINITIONS_COLORS = [
12295
+ // Color constructors (one per colorspace, preserves space on evaluation)
12296
+ {
12297
+ name: "Rgb",
12298
+ latexTrigger: ["\\operatorname{rgb}"],
12299
+ kind: "function",
12300
+ serialize: (serializer, expr) => "\\operatorname{rgb}" + serializer.wrapArguments(expr)
12301
+ },
12302
+ {
12303
+ name: "Hsv",
12304
+ latexTrigger: ["\\operatorname{hsv}"],
12305
+ kind: "function",
12306
+ serialize: (serializer, expr) => "\\operatorname{hsv}" + serializer.wrapArguments(expr)
12307
+ },
12308
+ {
12309
+ name: "Hsl",
12310
+ latexTrigger: ["\\operatorname{hsl}"],
12311
+ kind: "function",
12312
+ serialize: (serializer, expr) => "\\operatorname{hsl}" + serializer.wrapArguments(expr)
12313
+ },
12314
+ {
12315
+ name: "Oklab",
12316
+ latexTrigger: ["\\operatorname{oklab}"],
12317
+ kind: "function",
12318
+ serialize: (serializer, expr) => "\\operatorname{oklab}" + serializer.wrapArguments(expr)
12319
+ },
12320
+ {
12321
+ name: "Oklch",
12322
+ latexTrigger: ["\\operatorname{oklch}"],
12323
+ kind: "function",
12324
+ serialize: (serializer, expr) => "\\operatorname{oklch}" + serializer.wrapArguments(expr)
12325
+ },
12326
+ // Conversion functions (color → color in the named space)
12327
+ {
12328
+ name: "AsRgb",
12329
+ latexTrigger: ["\\operatorname{asRgb}"],
12330
+ kind: "function",
12331
+ serialize: (serializer, expr) => "\\operatorname{asRgb}" + serializer.wrapArguments(expr)
12332
+ },
12333
+ {
12334
+ name: "AsHsv",
12335
+ latexTrigger: ["\\operatorname{asHsv}"],
12336
+ kind: "function",
12337
+ serialize: (serializer, expr) => "\\operatorname{asHsv}" + serializer.wrapArguments(expr)
12338
+ },
12339
+ {
12340
+ name: "AsHsl",
12341
+ latexTrigger: ["\\operatorname{asHsl}"],
12342
+ kind: "function",
12343
+ serialize: (serializer, expr) => "\\operatorname{asHsl}" + serializer.wrapArguments(expr)
12344
+ },
12345
+ {
12346
+ name: "AsOklab",
12347
+ latexTrigger: ["\\operatorname{asOklab}"],
12348
+ kind: "function",
12349
+ serialize: (serializer, expr) => "\\operatorname{asOklab}" + serializer.wrapArguments(expr)
12350
+ },
12351
+ {
12352
+ name: "AsOklch",
12353
+ latexTrigger: ["\\operatorname{asOklch}"],
12354
+ kind: "function",
12355
+ serialize: (serializer, expr) => "\\operatorname{asOklch}" + serializer.wrapArguments(expr)
12356
+ },
12357
+ // Perceptual difference (returns a scalar in [0, ~1])
12358
+ {
12359
+ name: "ColorDelta",
12360
+ latexTrigger: ["\\operatorname{colorDelta}"],
12361
+ kind: "function",
12362
+ serialize: (serializer, expr) => "\\operatorname{colorDelta}" + serializer.wrapArguments(expr)
12363
+ }
12160
12364
  ];
12161
12365
 
12162
12366
  // src/compute-engine/latex-syntax/dictionary/default-dictionary.ts
@@ -12187,7 +12391,8 @@ var LATEX_DICTIONARY = [
12187
12391
  ...DEFINITIONS_STATISTICS,
12188
12392
  ...DEFINITIONS_UNITS,
12189
12393
  ...DEFINITIONS_OTHERS,
12190
- ...DEFINITIONS_PHYSICS
12394
+ ...DEFINITIONS_PHYSICS,
12395
+ ...DEFINITIONS_COLORS
12191
12396
  ];
12192
12397
 
12193
12398
  // src/math-json/symbols.ts
@@ -13329,7 +13534,7 @@ var IntervalArithmetic = {
13329
13534
  };
13330
13535
 
13331
13536
  // src/interval.ts
13332
- var version = "0.55.5";
13537
+ var version = "0.56.0";
13333
13538
  export {
13334
13539
  IntervalArithmetic,
13335
13540
  _mul,