@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
- /** Interval 0.55.5 */
1
+ /** Interval 0.56.0 */
2
2
  (function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Interval = {}));})(this, (function (exports) { 'use strict';
3
3
  var Interval = (() => {
4
4
  var __defProp = Object.defineProperty;
@@ -3238,6 +3238,7 @@ var Interval = (() => {
3238
3238
  ];
3239
3239
  var VALUE_TYPES = [
3240
3240
  "value",
3241
+ "color",
3241
3242
  ...COLLECTION_TYPES,
3242
3243
  ...SCALAR_TYPES
3243
3244
  ];
@@ -4889,6 +4890,7 @@ var Interval = (() => {
4889
4890
  symbol: [],
4890
4891
  boolean: [],
4891
4892
  string: [],
4893
+ color: [],
4892
4894
  expression: EXPRESSION_TYPES
4893
4895
  };
4894
4896
  function isPrimitiveSubtype(lhs, rhs) {
@@ -7103,10 +7105,6 @@ var Interval = (() => {
7103
7105
  // Lagrange notation
7104
7106
  {
7105
7107
  name: "Derivative",
7106
- // @todo: Leibniz notation: {% latex " \\frac{d^n}{dx^n} f(x)" %}
7107
- // @todo: Euler modified notation: This notation is used by Mathematica. The Euler notation uses `D` instead of
7108
- // `\partial`: `\partial_{x} f`, `\partial_{x,y} f`
7109
- // Newton notation (\dot{v}, \ddot{v}) is implemented below
7110
7108
  serialize: (serializer, expr) => {
7111
7109
  const degree = machineValue(operand(expr, 2)) ?? 1;
7112
7110
  const base = serializer.serialize(operand(expr, 1));
@@ -8144,14 +8142,18 @@ var Interval = (() => {
8144
8142
  return ["Complement", lhs];
8145
8143
  }
8146
8144
  // precedence: 240,
8147
- // @todo: serialize for the multiple argument case
8148
8145
  },
8149
8146
  {
8150
8147
  name: "Complement",
8151
8148
  latexTrigger: ["^", "<{>", "\\complement", "<}>"],
8152
- kind: "postfix"
8149
+ kind: "postfix",
8153
8150
  // precedence: 240,
8154
- // @todo: serialize for the multiple argument case
8151
+ serialize: (serializer, expr) => {
8152
+ return joinLatex([
8153
+ serializer.serialize(operand(expr, 1)),
8154
+ "^\\complement"
8155
+ ]);
8156
+ }
8155
8157
  },
8156
8158
  {
8157
8159
  name: "Intersection",
@@ -8238,7 +8240,6 @@ var Interval = (() => {
8238
8240
  // commands like \rbrack a, b \rbrack which are unambiguous.
8239
8241
  {
8240
8242
  name: "Multiple",
8241
- // @todo: parse
8242
8243
  serialize: serializeSet
8243
8244
  },
8244
8245
  {
@@ -8247,14 +8248,28 @@ var Interval = (() => {
8247
8248
  kind: "infix",
8248
8249
  precedence: 350
8249
8250
  },
8251
+ // \mid as a separator/operator (used in set-builder notation: {x \mid x > 0})
8252
+ // Low precedence so it binds loosely — everything on each side is parsed first
8253
+ {
8254
+ name: "Divides",
8255
+ latexTrigger: ["\\mid"],
8256
+ kind: "infix",
8257
+ precedence: 160
8258
+ },
8250
8259
  {
8251
8260
  name: "Set",
8252
8261
  kind: "matchfix",
8253
8262
  openTrigger: "{",
8254
8263
  closeTrigger: "}",
8255
- // @todo: the set syntax can also include conditions...
8256
8264
  parse: (_parser, body) => {
8257
8265
  if (isEmptySequence(body)) return "EmptySet";
8266
+ const h = operator(body);
8267
+ if (h === "Divides" || h === "Colon") {
8268
+ const expr = operand(body, 1);
8269
+ const condition = operand(body, 2);
8270
+ if (expr !== null && condition !== null)
8271
+ return ["Set", expr, ["Condition", condition]];
8272
+ }
8258
8273
  if (operator(body) == "Delimiter" && stringValue(operand(body, 2)) === ",") {
8259
8274
  body = operand(body, 1);
8260
8275
  }
@@ -8262,6 +8277,17 @@ var Interval = (() => {
8262
8277
  return ["Set", ...operands(body)];
8263
8278
  },
8264
8279
  serialize: (serializer, expr) => {
8280
+ if (nops(expr) === 2 && operator(operand(expr, 2)) === "Condition") {
8281
+ const condition = operand(expr, 2);
8282
+ return joinLatex([
8283
+ "\\lbrace",
8284
+ serializer.serialize(operand(expr, 1)),
8285
+ "\\mid",
8286
+ // Serialize the inner expression of the Condition wrapper
8287
+ serializer.serialize(operand(condition, 1)),
8288
+ "\\rbrace"
8289
+ ]);
8290
+ }
8265
8291
  return joinLatex([
8266
8292
  "\\lbrace",
8267
8293
  operands(expr).map((x) => serializer.serialize(x)).join(", "),
@@ -8428,23 +8454,6 @@ var Interval = (() => {
8428
8454
  if (expr === null) return "";
8429
8455
  const h = operator(expr);
8430
8456
  if (!h) return "";
8431
- if (h === "Set") {
8432
- if (nops(expr) === 0) return "\\emptyset";
8433
- if (nops(expr) === 2 && operator(operand(expr, 2)) === "Condition") {
8434
- return joinLatex([
8435
- "\\left\\lbrace",
8436
- serializer.serialize(operand(expr, 1)),
8437
- "\\middle\\mid",
8438
- serializer.serialize(operand(expr, 2)),
8439
- "\\right\\rbrace"
8440
- ]);
8441
- }
8442
- return joinLatex([
8443
- "\\left\\lbrace",
8444
- ...operands(expr).map((x) => serializer.serialize(x) + " ,"),
8445
- "\\right\\rbrace"
8446
- ]);
8447
- }
8448
8457
  if (h === "Multiple") {
8449
8458
  }
8450
8459
  if (h === "Range") {
@@ -9562,11 +9571,13 @@ var Interval = (() => {
9562
9571
  if (!parser.match("_")) return null;
9563
9572
  const base = parser.parseGroup();
9564
9573
  if (operator(base) !== "To") return null;
9565
- const expr = parser.parseArguments("implicit");
9574
+ const expr = parser.parseExpression({
9575
+ minPrec: MULTIPLICATION_PRECEDENCE
9576
+ });
9566
9577
  if (!expr) return null;
9567
9578
  return [
9568
9579
  "Limit",
9569
- ["Function", expr[0], operand(base, 1)],
9580
+ ["Function", expr, operand(base, 1)],
9570
9581
  operand(base, 2)
9571
9582
  ];
9572
9583
  },
@@ -9647,6 +9658,8 @@ var Interval = (() => {
9647
9658
  precedence: DIVISION_PRECEDENCE,
9648
9659
  parse: "Mod"
9649
9660
  },
9661
+ // Function-style alias: `\operatorname{mod}(a, b)`
9662
+ { latexTrigger: "\\operatorname{mod}", parse: "Mod" },
9650
9663
  {
9651
9664
  latexTrigger: "\\pmod",
9652
9665
  kind: "prefix",
@@ -9887,6 +9900,13 @@ var Interval = (() => {
9887
9900
  const rhs = serializer.wrap(operand(expr, 2), ADDITION_PRECEDENCE + 3);
9888
9901
  return joinLatex([lhs, "-", rhs]);
9889
9902
  }
9903
+ },
9904
+ // Euclidean distance between two points (tuples of numbers).
9905
+ {
9906
+ name: "Distance",
9907
+ latexTrigger: ["\\operatorname{distance}"],
9908
+ kind: "function",
9909
+ serialize: (serializer, expr) => "\\operatorname{distance}" + serializer.wrapArguments(expr)
9890
9910
  }
9891
9911
  ];
9892
9912
  function getIndexAssignment(expr, upper) {
@@ -11311,7 +11331,9 @@ var Interval = (() => {
11311
11331
  if (!expr || !symbol(expr)) return null;
11312
11332
  return ["Mean", expr];
11313
11333
  }
11314
- }
11334
+ },
11335
+ // Function-style alias: `\operatorname{var}(...)`
11336
+ { latexTrigger: "\\operatorname{var}", parse: "Variance" }
11315
11337
  ];
11316
11338
 
11317
11339
  // src/compute-engine/numerics/unit-data.ts
@@ -11770,12 +11792,52 @@ var Interval = (() => {
11770
11792
  ];
11771
11793
 
11772
11794
  // src/compute-engine/latex-syntax/dictionary/definitions-other.ts
11795
+ var TEX_UNITS = [
11796
+ "pt",
11797
+ "em",
11798
+ "mu",
11799
+ "ex",
11800
+ "mm",
11801
+ "cm",
11802
+ "in",
11803
+ "bp",
11804
+ "sp",
11805
+ "dd",
11806
+ "cc",
11807
+ "pc",
11808
+ "nc",
11809
+ "nd"
11810
+ ];
11811
+ function skipTexDimension(parser) {
11812
+ parser.skipSpace();
11813
+ if (parser.peek === "-" || parser.peek === "+") parser.nextToken();
11814
+ while (/^[\d.]$/.test(parser.peek)) parser.nextToken();
11815
+ for (const unit of TEX_UNITS) {
11816
+ if (parser.matchAll([...unit])) return;
11817
+ }
11818
+ }
11773
11819
  function parseSingleArg(cmd) {
11774
11820
  return (parser) => {
11775
11821
  const arg = parser.parseGroup();
11776
11822
  return arg === null ? [cmd] : [cmd, arg];
11777
11823
  };
11778
11824
  }
11825
+ function parseMathStyleSwitch(mathStyle) {
11826
+ return (parser) => {
11827
+ const body = parser.parseExpression();
11828
+ if (body !== null && !isEmptySequence(body))
11829
+ return ["Annotated", body, { dict: { mathStyle } }];
11830
+ return "Nothing";
11831
+ };
11832
+ }
11833
+ function parseSizeSwitch(size) {
11834
+ return (parser) => {
11835
+ const body = parser.parseExpression();
11836
+ if (body !== null && !isEmptySequence(body))
11837
+ return ["Annotated", body, { dict: { size } }];
11838
+ return "Nothing";
11839
+ };
11840
+ }
11779
11841
  var DEFINITIONS_OTHERS = [
11780
11842
  {
11781
11843
  name: "Overscript",
@@ -12015,80 +12077,71 @@ var Interval = (() => {
12015
12077
  },
12016
12078
  {
12017
12079
  latexTrigger: ["\\displaystyle"],
12018
- parse: () => "Nothing"
12019
- // @todo: parse as ['Annotated'...]
12080
+ parse: parseMathStyleSwitch("normal")
12020
12081
  },
12021
12082
  {
12022
12083
  latexTrigger: ["\\textstyle"],
12023
- parse: () => "Nothing"
12024
- // @todo: parse as ['Annotated'...]
12084
+ parse: parseMathStyleSwitch("compact")
12025
12085
  },
12026
12086
  {
12027
12087
  latexTrigger: ["\\scriptstyle"],
12028
- parse: () => "Nothing"
12029
- // @todo: parse as ['Annotated'...]
12088
+ parse: parseMathStyleSwitch("script")
12030
12089
  },
12031
12090
  {
12032
12091
  latexTrigger: ["\\scriptscriptstyle"],
12033
- parse: () => "Nothing"
12034
- // @todo: parse as ['Annotated'...]
12092
+ parse: parseMathStyleSwitch("scriptscript")
12035
12093
  },
12036
12094
  {
12037
12095
  latexTrigger: ["\\color"],
12038
12096
  parse: (parser) => {
12039
- parser.parseGroup();
12097
+ const color = parser.parseStringGroup();
12098
+ if (color !== null) {
12099
+ const body = parser.parseExpression();
12100
+ if (body !== null && !isEmptySequence(body))
12101
+ return ["Annotated", body, { dict: { color } }];
12102
+ }
12040
12103
  return "Nothing";
12041
12104
  }
12042
12105
  },
12043
12106
  {
12044
12107
  latexTrigger: ["\\tiny"],
12045
- parse: () => "Nothing"
12046
- // @todo: parse as ['Annotated'...]
12108
+ parse: parseSizeSwitch(1)
12047
12109
  },
12048
12110
  {
12049
12111
  latexTrigger: ["\\scriptsize"],
12050
- parse: () => "Nothing"
12051
- // @todo: parse as ['Annotated'...]
12112
+ parse: parseSizeSwitch(2)
12052
12113
  },
12053
12114
  {
12054
12115
  latexTrigger: ["\\footnotesize"],
12055
- parse: () => "Nothing"
12056
- // @todo: parse as ['Annotated'...]
12116
+ parse: parseSizeSwitch(3)
12057
12117
  },
12058
12118
  {
12059
12119
  latexTrigger: ["\\small"],
12060
- parse: () => "Nothing"
12061
- // @todo: parse as ['Annotated'...]
12120
+ parse: parseSizeSwitch(4)
12062
12121
  },
12063
12122
  {
12064
12123
  latexTrigger: ["\\normalsize"],
12065
- parse: () => "Nothing"
12066
- // @todo: parse as ['Annotated'...]
12124
+ parse: parseSizeSwitch(5)
12067
12125
  },
12068
12126
  {
12069
12127
  latexTrigger: ["\\large"],
12070
- parse: () => "Nothing"
12071
- // @todo: parse as ['Annotated'...]
12128
+ parse: parseSizeSwitch(6)
12072
12129
  },
12073
12130
  {
12074
12131
  latexTrigger: ["\\Large"],
12075
- parse: () => "Nothing"
12076
- // @todo: parse as ['Annotated'...]
12132
+ parse: parseSizeSwitch(7)
12077
12133
  },
12078
12134
  {
12079
12135
  latexTrigger: ["\\LARGE"],
12080
- parse: () => "Nothing"
12081
- // @todo: parse as ['Annotated'...]
12136
+ parse: parseSizeSwitch(8)
12082
12137
  },
12083
12138
  {
12084
12139
  latexTrigger: ["\\huge"],
12085
- parse: () => "Nothing"
12086
- // @todo: parse as ['Annotated'...]
12140
+ parse: parseSizeSwitch(9)
12087
12141
  },
12088
12142
  {
12089
12143
  latexTrigger: ["\\Huge"],
12090
- parse: () => "Nothing"
12091
- // @todo: parse as ['Annotated'...]
12144
+ parse: parseSizeSwitch(10)
12092
12145
  },
12093
12146
  {
12094
12147
  name: "Annotated",
@@ -12100,6 +12153,10 @@ var Interval = (() => {
12100
12153
  result = joinLatex(["{\\displaystyle", result, "}"]);
12101
12154
  else if (dict.dict.mathStyle === "compact")
12102
12155
  result = joinLatex(["{\\textstyle", result, "}"]);
12156
+ else if (dict.dict.mathStyle === "script")
12157
+ result = joinLatex(["{\\scriptstyle", result, "}"]);
12158
+ else if (dict.dict.mathStyle === "scriptscript")
12159
+ result = joinLatex(["{\\scriptscriptstyle", result, "}"]);
12103
12160
  const v = dict.dict.size;
12104
12161
  if (v !== null && v >= 1 && v <= 10) {
12105
12162
  result = joinLatex([
@@ -12187,6 +12244,28 @@ var Interval = (() => {
12187
12244
  latexTrigger: ["\\enspace"],
12188
12245
  parse: () => ["HorizontalSpacing", 9]
12189
12246
  },
12247
+ {
12248
+ latexTrigger: ["\\hspace"],
12249
+ parse: (parser) => {
12250
+ if (parser.peek === "*") parser.nextToken();
12251
+ parser.parseStringGroup();
12252
+ return ["HorizontalSpacing", 0];
12253
+ }
12254
+ },
12255
+ {
12256
+ latexTrigger: ["\\hskip"],
12257
+ parse: (parser) => {
12258
+ skipTexDimension(parser);
12259
+ return ["HorizontalSpacing", 0];
12260
+ }
12261
+ },
12262
+ {
12263
+ latexTrigger: ["\\kern"],
12264
+ parse: (parser) => {
12265
+ skipTexDimension(parser);
12266
+ return ["HorizontalSpacing", 0];
12267
+ }
12268
+ },
12190
12269
  {
12191
12270
  latexTrigger: ["\\phantom"],
12192
12271
  parse: (parser) => {
@@ -12237,7 +12316,17 @@ var Interval = (() => {
12237
12316
  // `["HorizontalSpacing", expr, 'op'|'bin'|rel]` -> indicate a spacing around and expression, i.e. `\mathbin{x}`, etc...
12238
12317
  serialize: (serializer, expr) => {
12239
12318
  if (operand(expr, 2) !== null) {
12240
- return serializer.serialize(operand(expr, 1));
12319
+ const cls = stringValue(operand(expr, 2));
12320
+ const inner = serializer.serialize(operand(expr, 1));
12321
+ if (cls === "bin") return `\\mathbin{${inner}}`;
12322
+ if (cls === "op") return `\\mathop{${inner}}`;
12323
+ if (cls === "rel") return `\\mathrel{${inner}}`;
12324
+ if (cls === "ord") return `\\mathord{${inner}}`;
12325
+ if (cls === "open") return `\\mathopen{${inner}}`;
12326
+ if (cls === "close") return `\\mathclose{${inner}}`;
12327
+ if (cls === "punct") return `\\mathpunct{${inner}}`;
12328
+ if (cls === "inner") return `\\mathinner{${inner}}`;
12329
+ return inner;
12241
12330
  }
12242
12331
  const v = machineValue(operand(expr, 1));
12243
12332
  if (v === null) return "";
@@ -12252,7 +12341,7 @@ var Interval = (() => {
12252
12341
  36: "\\qquad"
12253
12342
  }[v] ?? "";
12254
12343
  }
12255
- }
12344
+ },
12256
12345
  // if (
12257
12346
  // [
12258
12347
  // '\\!',
@@ -12276,6 +12365,121 @@ var Interval = (() => {
12276
12365
  // name: '',
12277
12366
  // trigger: '\\check',
12278
12367
  // },
12368
+ // ---------------------------------------------------------------------------
12369
+ // Function-style aliases for collection / random operators that some
12370
+ // notations write in lowercase (e.g. `\operatorname{shuffle}(L)`).
12371
+ // The capitalized library entries already exist; these are pure parse
12372
+ // aliases so the lowercase names don't land in `unsupported-operator`.
12373
+ // ---------------------------------------------------------------------------
12374
+ { latexTrigger: "\\operatorname{random}", parse: "Random" },
12375
+ { latexTrigger: "\\operatorname{shuffle}", parse: "Shuffle" },
12376
+ { latexTrigger: "\\operatorname{repeat}", parse: "Repeat" },
12377
+ { latexTrigger: "\\operatorname{join}", parse: "Join" },
12378
+ // ---------------------------------------------------------------------------
12379
+ // Geometric primitive heads. Registered as known typed heads so consumers
12380
+ // can branch on the operator name; CE itself doesn't render them. The
12381
+ // library entries (with no evaluator) live in `library/core.ts`.
12382
+ // ---------------------------------------------------------------------------
12383
+ {
12384
+ name: "Triangle",
12385
+ latexTrigger: ["\\operatorname{triangle}"],
12386
+ kind: "function",
12387
+ serialize: (serializer, expr) => "\\operatorname{triangle}" + serializer.wrapArguments(expr)
12388
+ },
12389
+ // Desmos's geometric `vector(p1, p2)` — a directed segment between two
12390
+ // points. Routed to a dedicated head (not the existing column-vector
12391
+ // `Vector`, which has a narrower `(number+) -> vector` signature).
12392
+ {
12393
+ name: "GeometricVector",
12394
+ latexTrigger: ["\\operatorname{vector}"],
12395
+ kind: "function",
12396
+ serialize: (serializer, expr) => "\\operatorname{vector}" + serializer.wrapArguments(expr)
12397
+ },
12398
+ {
12399
+ name: "Sphere",
12400
+ latexTrigger: ["\\operatorname{sphere}"],
12401
+ kind: "function",
12402
+ serialize: (serializer, expr) => "\\operatorname{sphere}" + serializer.wrapArguments(expr)
12403
+ },
12404
+ {
12405
+ name: "Segment",
12406
+ latexTrigger: ["\\operatorname{segment}"],
12407
+ kind: "function",
12408
+ serialize: (serializer, expr) => "\\operatorname{segment}" + serializer.wrapArguments(expr)
12409
+ }
12410
+ ];
12411
+
12412
+ // src/compute-engine/latex-syntax/dictionary/definitions-colors.ts
12413
+ var DEFINITIONS_COLORS = [
12414
+ // Color constructors (one per colorspace, preserves space on evaluation)
12415
+ {
12416
+ name: "Rgb",
12417
+ latexTrigger: ["\\operatorname{rgb}"],
12418
+ kind: "function",
12419
+ serialize: (serializer, expr) => "\\operatorname{rgb}" + serializer.wrapArguments(expr)
12420
+ },
12421
+ {
12422
+ name: "Hsv",
12423
+ latexTrigger: ["\\operatorname{hsv}"],
12424
+ kind: "function",
12425
+ serialize: (serializer, expr) => "\\operatorname{hsv}" + serializer.wrapArguments(expr)
12426
+ },
12427
+ {
12428
+ name: "Hsl",
12429
+ latexTrigger: ["\\operatorname{hsl}"],
12430
+ kind: "function",
12431
+ serialize: (serializer, expr) => "\\operatorname{hsl}" + serializer.wrapArguments(expr)
12432
+ },
12433
+ {
12434
+ name: "Oklab",
12435
+ latexTrigger: ["\\operatorname{oklab}"],
12436
+ kind: "function",
12437
+ serialize: (serializer, expr) => "\\operatorname{oklab}" + serializer.wrapArguments(expr)
12438
+ },
12439
+ {
12440
+ name: "Oklch",
12441
+ latexTrigger: ["\\operatorname{oklch}"],
12442
+ kind: "function",
12443
+ serialize: (serializer, expr) => "\\operatorname{oklch}" + serializer.wrapArguments(expr)
12444
+ },
12445
+ // Conversion functions (color → color in the named space)
12446
+ {
12447
+ name: "AsRgb",
12448
+ latexTrigger: ["\\operatorname{asRgb}"],
12449
+ kind: "function",
12450
+ serialize: (serializer, expr) => "\\operatorname{asRgb}" + serializer.wrapArguments(expr)
12451
+ },
12452
+ {
12453
+ name: "AsHsv",
12454
+ latexTrigger: ["\\operatorname{asHsv}"],
12455
+ kind: "function",
12456
+ serialize: (serializer, expr) => "\\operatorname{asHsv}" + serializer.wrapArguments(expr)
12457
+ },
12458
+ {
12459
+ name: "AsHsl",
12460
+ latexTrigger: ["\\operatorname{asHsl}"],
12461
+ kind: "function",
12462
+ serialize: (serializer, expr) => "\\operatorname{asHsl}" + serializer.wrapArguments(expr)
12463
+ },
12464
+ {
12465
+ name: "AsOklab",
12466
+ latexTrigger: ["\\operatorname{asOklab}"],
12467
+ kind: "function",
12468
+ serialize: (serializer, expr) => "\\operatorname{asOklab}" + serializer.wrapArguments(expr)
12469
+ },
12470
+ {
12471
+ name: "AsOklch",
12472
+ latexTrigger: ["\\operatorname{asOklch}"],
12473
+ kind: "function",
12474
+ serialize: (serializer, expr) => "\\operatorname{asOklch}" + serializer.wrapArguments(expr)
12475
+ },
12476
+ // Perceptual difference (returns a scalar in [0, ~1])
12477
+ {
12478
+ name: "ColorDelta",
12479
+ latexTrigger: ["\\operatorname{colorDelta}"],
12480
+ kind: "function",
12481
+ serialize: (serializer, expr) => "\\operatorname{colorDelta}" + serializer.wrapArguments(expr)
12482
+ }
12279
12483
  ];
12280
12484
 
12281
12485
  // src/compute-engine/latex-syntax/dictionary/default-dictionary.ts
@@ -12306,7 +12510,8 @@ var Interval = (() => {
12306
12510
  ...DEFINITIONS_STATISTICS,
12307
12511
  ...DEFINITIONS_UNITS,
12308
12512
  ...DEFINITIONS_OTHERS,
12309
- ...DEFINITIONS_PHYSICS
12513
+ ...DEFINITIONS_PHYSICS,
12514
+ ...DEFINITIONS_COLORS
12310
12515
  ];
12311
12516
 
12312
12517
  // src/math-json/symbols.ts
@@ -13448,7 +13653,7 @@ var Interval = (() => {
13448
13653
  };
13449
13654
 
13450
13655
  // src/interval.ts
13451
- var version = "0.55.5";
13656
+ var version = "0.56.0";
13452
13657
  return __toCommonJS(interval_exports);
13453
13658
  })();
13454
13659
  /*! Bundled license information: