@cortex-js/compute-engine 0.54.0 → 0.54.1

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 (226) hide show
  1. package/dist/compute-engine.esm.js +3 -3
  2. package/dist/compute-engine.min.esm.js +2 -2
  3. package/dist/compute-engine.min.umd.cjs +2 -2
  4. package/dist/compute-engine.umd.cjs +3 -3
  5. package/dist/math-json.esm.js +2 -2
  6. package/dist/math-json.min.esm.js +2 -2
  7. package/dist/math-json.min.umd.cjs +2 -2
  8. package/dist/math-json.umd.cjs +2 -2
  9. package/dist/types/common/ansi-codes.d.ts +1 -1
  10. package/dist/types/common/configuration-change.d.ts +1 -1
  11. package/dist/types/common/fuzzy-string-match.d.ts +1 -1
  12. package/dist/types/common/grapheme-splitter.d.ts +1 -1
  13. package/dist/types/common/interruptible.d.ts +1 -1
  14. package/dist/types/common/one-of.d.ts +1 -1
  15. package/dist/types/common/signals.d.ts +1 -1
  16. package/dist/types/common/type/ast-nodes.d.ts +1 -1
  17. package/dist/types/common/type/boxed-type.d.ts +1 -1
  18. package/dist/types/common/type/lexer.d.ts +1 -1
  19. package/dist/types/common/type/parse.d.ts +1 -1
  20. package/dist/types/common/type/parser.d.ts +1 -1
  21. package/dist/types/common/type/primitive.d.ts +1 -1
  22. package/dist/types/common/type/reduce.d.ts +1 -1
  23. package/dist/types/common/type/serialize.d.ts +1 -1
  24. package/dist/types/common/type/subtype.d.ts +1 -1
  25. package/dist/types/common/type/type-builder.d.ts +1 -1
  26. package/dist/types/common/type/types.d.ts +1 -1
  27. package/dist/types/common/type/utils.d.ts +1 -1
  28. package/dist/types/common/utils.d.ts +1 -1
  29. package/dist/types/compute-engine/assume.d.ts +1 -1
  30. package/dist/types/compute-engine/boxed-expression/abstract-boxed-expression.d.ts +1 -1
  31. package/dist/types/compute-engine/boxed-expression/apply.d.ts +1 -1
  32. package/dist/types/compute-engine/boxed-expression/arithmetic-add.d.ts +1 -1
  33. package/dist/types/compute-engine/boxed-expression/arithmetic-mul-div.d.ts +1 -1
  34. package/dist/types/compute-engine/boxed-expression/arithmetic-power.d.ts +1 -1
  35. package/dist/types/compute-engine/boxed-expression/ascii-math.d.ts +1 -1
  36. package/dist/types/compute-engine/boxed-expression/box.d.ts +1 -1
  37. package/dist/types/compute-engine/boxed-expression/boxed-dictionary.d.ts +1 -1
  38. package/dist/types/compute-engine/boxed-expression/boxed-function.d.ts +1 -1
  39. package/dist/types/compute-engine/boxed-expression/boxed-number.d.ts +1 -1
  40. package/dist/types/compute-engine/boxed-expression/boxed-operator-definition.d.ts +1 -1
  41. package/dist/types/compute-engine/boxed-expression/boxed-patterns.d.ts +1 -1
  42. package/dist/types/compute-engine/boxed-expression/boxed-string.d.ts +1 -1
  43. package/dist/types/compute-engine/boxed-expression/boxed-symbol.d.ts +1 -1
  44. package/dist/types/compute-engine/boxed-expression/boxed-tensor.d.ts +1 -1
  45. package/dist/types/compute-engine/boxed-expression/boxed-value-definition.d.ts +1 -1
  46. package/dist/types/compute-engine/boxed-expression/cache.d.ts +1 -1
  47. package/dist/types/compute-engine/boxed-expression/canonical-utils.d.ts +1 -1
  48. package/dist/types/compute-engine/boxed-expression/canonical.d.ts +1 -1
  49. package/dist/types/compute-engine/boxed-expression/compare.d.ts +1 -1
  50. package/dist/types/compute-engine/boxed-expression/constants.d.ts +1 -1
  51. package/dist/types/compute-engine/boxed-expression/expand.d.ts +1 -1
  52. package/dist/types/compute-engine/boxed-expression/expression-map.d.ts +1 -1
  53. package/dist/types/compute-engine/boxed-expression/factor.d.ts +1 -1
  54. package/dist/types/compute-engine/boxed-expression/flatten.d.ts +1 -1
  55. package/dist/types/compute-engine/boxed-expression/hold.d.ts +1 -1
  56. package/dist/types/compute-engine/boxed-expression/inequality-bounds.d.ts +1 -1
  57. package/dist/types/compute-engine/boxed-expression/init-lazy-refs.d.ts +1 -1
  58. package/dist/types/compute-engine/boxed-expression/invisible-operator.d.ts +1 -1
  59. package/dist/types/compute-engine/boxed-expression/match.d.ts +1 -1
  60. package/dist/types/compute-engine/boxed-expression/negate.d.ts +1 -1
  61. package/dist/types/compute-engine/boxed-expression/numerics.d.ts +1 -1
  62. package/dist/types/compute-engine/boxed-expression/order.d.ts +1 -1
  63. package/dist/types/compute-engine/boxed-expression/pattern-utils.d.ts +1 -1
  64. package/dist/types/compute-engine/boxed-expression/polynomial-degree.d.ts +1 -1
  65. package/dist/types/compute-engine/boxed-expression/polynomials.d.ts +1 -1
  66. package/dist/types/compute-engine/boxed-expression/predicates.d.ts +1 -1
  67. package/dist/types/compute-engine/boxed-expression/rules.d.ts +1 -1
  68. package/dist/types/compute-engine/boxed-expression/serialize.d.ts +1 -1
  69. package/dist/types/compute-engine/boxed-expression/sgn.d.ts +1 -1
  70. package/dist/types/compute-engine/boxed-expression/simplify.d.ts +1 -1
  71. package/dist/types/compute-engine/boxed-expression/solve-linear-system.d.ts +1 -1
  72. package/dist/types/compute-engine/boxed-expression/solve.d.ts +1 -1
  73. package/dist/types/compute-engine/boxed-expression/stochastic-equal.d.ts +1 -1
  74. package/dist/types/compute-engine/boxed-expression/trigonometry.d.ts +1 -1
  75. package/dist/types/compute-engine/boxed-expression/type-guards.d.ts +1 -1
  76. package/dist/types/compute-engine/boxed-expression/utils.d.ts +1 -1
  77. package/dist/types/compute-engine/boxed-expression/validate.d.ts +1 -1
  78. package/dist/types/compute-engine/collection-utils.d.ts +1 -1
  79. package/dist/types/compute-engine/compilation/base-compiler.d.ts +1 -1
  80. package/dist/types/compute-engine/compilation/compile-expression.d.ts +1 -1
  81. package/dist/types/compute-engine/compilation/glsl-target.d.ts +1 -1
  82. package/dist/types/compute-engine/compilation/gpu-target.d.ts +1 -1
  83. package/dist/types/compute-engine/compilation/interval-javascript-target.d.ts +1 -1
  84. package/dist/types/compute-engine/compilation/javascript-target.d.ts +1 -1
  85. package/dist/types/compute-engine/compilation/python-target.d.ts +1 -1
  86. package/dist/types/compute-engine/compilation/types.d.ts +1 -1
  87. package/dist/types/compute-engine/compilation/wgsl-target.d.ts +1 -1
  88. package/dist/types/compute-engine/cost-function.d.ts +1 -1
  89. package/dist/types/compute-engine/engine-assumptions.d.ts +1 -1
  90. package/dist/types/compute-engine/engine-cache.d.ts +1 -1
  91. package/dist/types/compute-engine/engine-common-symbols.d.ts +1 -1
  92. package/dist/types/compute-engine/engine-compilation-targets.d.ts +1 -1
  93. package/dist/types/compute-engine/engine-configuration-lifecycle.d.ts +1 -1
  94. package/dist/types/compute-engine/engine-declarations.d.ts +1 -1
  95. package/dist/types/compute-engine/engine-expression-entrypoints.d.ts +1 -1
  96. package/dist/types/compute-engine/engine-extension-contracts.d.ts +1 -1
  97. package/dist/types/compute-engine/engine-latex-dictionary-state.d.ts +1 -1
  98. package/dist/types/compute-engine/engine-library-bootstrap.d.ts +1 -1
  99. package/dist/types/compute-engine/engine-numeric-configuration.d.ts +1 -1
  100. package/dist/types/compute-engine/engine-parse-entrypoint.d.ts +1 -1
  101. package/dist/types/compute-engine/engine-runtime-state.d.ts +1 -1
  102. package/dist/types/compute-engine/engine-scope.d.ts +1 -1
  103. package/dist/types/compute-engine/engine-sequences.d.ts +1 -1
  104. package/dist/types/compute-engine/engine-simplification-rules.d.ts +1 -1
  105. package/dist/types/compute-engine/engine-startup-coordinator.d.ts +1 -1
  106. package/dist/types/compute-engine/engine-type-resolver.d.ts +1 -1
  107. package/dist/types/compute-engine/engine-validation-entrypoints.d.ts +1 -1
  108. package/dist/types/compute-engine/free-functions.d.ts +1 -1
  109. package/dist/types/compute-engine/function-utils.d.ts +1 -1
  110. package/dist/types/compute-engine/global-types.d.ts +1 -1
  111. package/dist/types/compute-engine/index.d.ts +1 -1
  112. package/dist/types/compute-engine/interval/arithmetic.d.ts +1 -1
  113. package/dist/types/compute-engine/interval/comparison.d.ts +1 -1
  114. package/dist/types/compute-engine/interval/elementary.d.ts +1 -1
  115. package/dist/types/compute-engine/interval/index.d.ts +1 -1
  116. package/dist/types/compute-engine/interval/trigonometric.d.ts +1 -1
  117. package/dist/types/compute-engine/interval/types.d.ts +1 -1
  118. package/dist/types/compute-engine/interval/util.d.ts +1 -1
  119. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-algebra.d.ts +1 -1
  120. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-arithmetic.d.ts +1 -1
  121. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-calculus.d.ts +1 -1
  122. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-complex.d.ts +1 -1
  123. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-core.d.ts +1 -1
  124. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-linear-algebra.d.ts +1 -1
  125. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-logic.d.ts +1 -1
  126. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-other.d.ts +1 -1
  127. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-relational-operators.d.ts +1 -1
  128. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-sets.d.ts +1 -1
  129. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-statistics.d.ts +1 -1
  130. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-symbols.d.ts +1 -1
  131. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-trigonometry.d.ts +1 -1
  132. package/dist/types/compute-engine/latex-syntax/dictionary/definitions-units.d.ts +1 -1
  133. package/dist/types/compute-engine/latex-syntax/dictionary/definitions.d.ts +1 -1
  134. package/dist/types/compute-engine/latex-syntax/dictionary/indexed-types.d.ts +1 -1
  135. package/dist/types/compute-engine/latex-syntax/parse-number.d.ts +1 -1
  136. package/dist/types/compute-engine/latex-syntax/parse-symbol.d.ts +1 -1
  137. package/dist/types/compute-engine/latex-syntax/parse.d.ts +1 -1
  138. package/dist/types/compute-engine/latex-syntax/serialize-dms.d.ts +1 -1
  139. package/dist/types/compute-engine/latex-syntax/serialize-number.d.ts +1 -1
  140. package/dist/types/compute-engine/latex-syntax/serializer-style.d.ts +1 -1
  141. package/dist/types/compute-engine/latex-syntax/serializer.d.ts +1 -1
  142. package/dist/types/compute-engine/latex-syntax/tokenizer.d.ts +1 -1
  143. package/dist/types/compute-engine/latex-syntax/types.d.ts +1 -1
  144. package/dist/types/compute-engine/latex-syntax/utils.d.ts +1 -1
  145. package/dist/types/compute-engine/library/arithmetic.d.ts +1 -1
  146. package/dist/types/compute-engine/library/calculus.d.ts +1 -1
  147. package/dist/types/compute-engine/library/collections.d.ts +1 -1
  148. package/dist/types/compute-engine/library/colors.d.ts +1 -1
  149. package/dist/types/compute-engine/library/combinatorics.d.ts +1 -1
  150. package/dist/types/compute-engine/library/complex.d.ts +1 -1
  151. package/dist/types/compute-engine/library/control-structures.d.ts +1 -1
  152. package/dist/types/compute-engine/library/core.d.ts +1 -1
  153. package/dist/types/compute-engine/library/fractals.d.ts +1 -1
  154. package/dist/types/compute-engine/library/library.d.ts +1 -1
  155. package/dist/types/compute-engine/library/linear-algebra.d.ts +1 -1
  156. package/dist/types/compute-engine/library/logic-analysis.d.ts +1 -1
  157. package/dist/types/compute-engine/library/logic.d.ts +1 -1
  158. package/dist/types/compute-engine/library/number-theory.d.ts +1 -1
  159. package/dist/types/compute-engine/library/polynomials.d.ts +1 -1
  160. package/dist/types/compute-engine/library/quantity-arithmetic.d.ts +1 -1
  161. package/dist/types/compute-engine/library/random-expression.d.ts +1 -1
  162. package/dist/types/compute-engine/library/relational-operator.d.ts +1 -1
  163. package/dist/types/compute-engine/library/sets.d.ts +1 -1
  164. package/dist/types/compute-engine/library/statistics.d.ts +1 -1
  165. package/dist/types/compute-engine/library/trigonometry.d.ts +1 -1
  166. package/dist/types/compute-engine/library/type-handlers.d.ts +1 -1
  167. package/dist/types/compute-engine/library/unit-data.d.ts +1 -1
  168. package/dist/types/compute-engine/library/units.d.ts +1 -1
  169. package/dist/types/compute-engine/library/utils.d.ts +1 -1
  170. package/dist/types/compute-engine/numeric-value/big-numeric-value.d.ts +1 -1
  171. package/dist/types/compute-engine/numeric-value/exact-numeric-value.d.ts +1 -1
  172. package/dist/types/compute-engine/numeric-value/machine-numeric-value.d.ts +1 -1
  173. package/dist/types/compute-engine/numeric-value/types.d.ts +1 -1
  174. package/dist/types/compute-engine/numerics/bigint.d.ts +1 -1
  175. package/dist/types/compute-engine/numerics/expression.d.ts +1 -1
  176. package/dist/types/compute-engine/numerics/interval.d.ts +1 -1
  177. package/dist/types/compute-engine/numerics/monte-carlo.d.ts +1 -1
  178. package/dist/types/compute-engine/numerics/numeric-bigint.d.ts +1 -1
  179. package/dist/types/compute-engine/numerics/numeric-bignum.d.ts +1 -1
  180. package/dist/types/compute-engine/numerics/numeric-complex.d.ts +1 -1
  181. package/dist/types/compute-engine/numerics/numeric.d.ts +1 -1
  182. package/dist/types/compute-engine/numerics/primes.d.ts +1 -1
  183. package/dist/types/compute-engine/numerics/rationals.d.ts +1 -1
  184. package/dist/types/compute-engine/numerics/richardson.d.ts +1 -1
  185. package/dist/types/compute-engine/numerics/special-functions.d.ts +1 -1
  186. package/dist/types/compute-engine/numerics/statistics.d.ts +1 -1
  187. package/dist/types/compute-engine/numerics/strings.d.ts +1 -1
  188. package/dist/types/compute-engine/numerics/types.d.ts +1 -1
  189. package/dist/types/compute-engine/numerics/unit-data.d.ts +1 -1
  190. package/dist/types/compute-engine/oeis.d.ts +1 -1
  191. package/dist/types/compute-engine/sequence.d.ts +1 -1
  192. package/dist/types/compute-engine/symbolic/antiderivative.d.ts +1 -1
  193. package/dist/types/compute-engine/symbolic/derivative.d.ts +1 -1
  194. package/dist/types/compute-engine/symbolic/distribute.d.ts +1 -1
  195. package/dist/types/compute-engine/symbolic/fu-cost.d.ts +1 -1
  196. package/dist/types/compute-engine/symbolic/fu-transforms.d.ts +1 -1
  197. package/dist/types/compute-engine/symbolic/fu.d.ts +1 -1
  198. package/dist/types/compute-engine/symbolic/logic-utils.d.ts +1 -1
  199. package/dist/types/compute-engine/symbolic/simplify-abs.d.ts +1 -1
  200. package/dist/types/compute-engine/symbolic/simplify-divide.d.ts +1 -1
  201. package/dist/types/compute-engine/symbolic/simplify-factorial.d.ts +1 -1
  202. package/dist/types/compute-engine/symbolic/simplify-hyperbolic.d.ts +1 -1
  203. package/dist/types/compute-engine/symbolic/simplify-infinity.d.ts +1 -1
  204. package/dist/types/compute-engine/symbolic/simplify-log.d.ts +1 -1
  205. package/dist/types/compute-engine/symbolic/simplify-logic.d.ts +1 -1
  206. package/dist/types/compute-engine/symbolic/simplify-power.d.ts +1 -1
  207. package/dist/types/compute-engine/symbolic/simplify-product.d.ts +1 -1
  208. package/dist/types/compute-engine/symbolic/simplify-rules.d.ts +1 -1
  209. package/dist/types/compute-engine/symbolic/simplify-sum.d.ts +1 -1
  210. package/dist/types/compute-engine/symbolic/simplify-trig.d.ts +1 -1
  211. package/dist/types/compute-engine/tensor/tensor-fields.d.ts +1 -1
  212. package/dist/types/compute-engine/tensor/tensors.d.ts +1 -1
  213. package/dist/types/compute-engine/types-definitions.d.ts +1 -1
  214. package/dist/types/compute-engine/types-engine.d.ts +1 -1
  215. package/dist/types/compute-engine/types-evaluation.d.ts +1 -1
  216. package/dist/types/compute-engine/types-expression.d.ts +1 -1
  217. package/dist/types/compute-engine/types-kernel-evaluation.d.ts +1 -1
  218. package/dist/types/compute-engine/types-kernel-serialization.d.ts +1 -1
  219. package/dist/types/compute-engine/types-serialization.d.ts +1 -1
  220. package/dist/types/compute-engine/types.d.ts +1 -1
  221. package/dist/types/compute-engine.d.ts +1 -1
  222. package/dist/types/math-json/symbols.d.ts +1 -1
  223. package/dist/types/math-json/types.d.ts +1 -1
  224. package/dist/types/math-json/utils.d.ts +1 -1
  225. package/dist/types/math-json.d.ts +2 -2
  226. package/package.json +3 -3
@@ -1,4 +1,4 @@
1
- /** Compute Engine 0.54.0 */
1
+ /** Compute Engine 0.54.1 */
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.ComputeEngine = {}));})(this, (function (exports) { 'use strict';
3
3
  var ComputeEngine=(()=>{var Hl=Object.defineProperty;var zE=Object.getOwnPropertyDescriptor;var UE=Object.getOwnPropertyNames;var jE=Object.prototype.hasOwnProperty;var GE=(e,n)=>{for(var t in n)Hl(e,t,{get:n[t],enumerable:!0})},ZE=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of UE(n))!jE.call(e,r)&&r!==t&&Hl(e,r,{get:()=>n[r],enumerable:!(i=zE(n,r))||i.enumerable});return e};var HE=e=>ZE(Hl({},"__esModule",{value:!0}),e);var vw={};GE(vw,{BaseCompiler:()=>C,ComputeEngine:()=>Vr,GLSLTarget:()=>Fr,GPUShaderTarget:()=>Yi,IntervalJavaScriptTarget:()=>qr,JavaScriptTarget:()=>Lr,N:()=>nd,PythonTarget:()=>ba,WGSLTarget:()=>Yo,assign:()=>id,compile:()=>ud,declare:()=>td,evaluate:()=>ed,expand:()=>rd,expandAll:()=>sd,factor:()=>ad,getDefaultEngine:()=>er,isBoxedExpression:()=>og,isBoxedFunction:()=>ug,isBoxedNumber:()=>sg,isBoxedString:()=>lg,isBoxedSymbol:()=>ag,isBoxedTensor:()=>cg,isCollection:()=>pg,isDictionary:()=>fg,isExpression:()=>Pa,isFunction:()=>m,isIndexedCollection:()=>mg,isNumber:()=>E,isString:()=>q,isSymbol:()=>_,isTensor:()=>Mi,numericValue:()=>ce,parse:()=>Xm,simplify:()=>Km,solve:()=>od,version:()=>Ew});var bn=Math.cosh||function(e){return Math.abs(e)<1e-9?1-e:(Math.exp(e)+Math.exp(-e))*.5},et=Math.sinh||function(e){return Math.abs(e)<1e-9?e:(Math.exp(e)-Math.exp(-e))*.5},WE=function(e){var n=Math.PI/4;if(-n>e||e>n)return Math.cos(e)-1;var t=e*e;return t*(t*(t*(t*(t*(t*(t*(t/20922789888e3-1/87178291200)+1/479001600)-1/3628800)+1/40320)-1/720)+1/24)-1/2)},YE=function(e,n){var t=Math.abs(e),i=Math.abs(n);return t<3e3&&i<3e3?Math.sqrt(t*t+i*i):(t<i?(t=i,i=e/n):i=n/e,t*Math.sqrt(1+i*i))},Jr=function(){throw SyntaxError("Invalid Param")};function Wl(e,n){var t=Math.abs(e),i=Math.abs(n);return e===0?Math.log(i):n===0?Math.log(t):t<3e3&&i<3e3?Math.log(e*e+n*n)*.5:(e=e/2,n=n/2,.5*Math.log(e*e+n*n)+Math.LN2)}var QE=function(e,n){var t={re:0,im:0};if(e==null)t.re=t.im=0;else if(n!==void 0)t.re=e,t.im=n;else switch(typeof e){case"object":if("im"in e&&"re"in e)t.re=e.re,t.im=e.im;else if("abs"in e&&"arg"in e){if(!Number.isFinite(e.abs)&&Number.isFinite(e.arg))return z.INFINITY;t.re=e.abs*Math.cos(e.arg),t.im=e.abs*Math.sin(e.arg)}else if("r"in e&&"phi"in e){if(!Number.isFinite(e.r)&&Number.isFinite(e.phi))return z.INFINITY;t.re=e.r*Math.cos(e.phi),t.im=e.r*Math.sin(e.phi)}else e.length===2?(t.re=e[0],t.im=e[1]):Jr();break;case"string":t.im=t.re=0;var i=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,o=0;i===null&&Jr();for(var s=0;s<i.length;s++){var a=i[s];a===" "||a===" "||a===`
4
4
  `||(a==="+"?r++:a==="-"?o++:a==="i"||a==="I"?(r+o===0&&Jr(),i[s+1]!==" "&&!isNaN(Number(i[s+1]))?(t.im+=parseFloat((o%2?"-":"")+i[s+1]),s++):t.im+=parseFloat((o%2?"-":"")+"1"),r=o=0):((r+o===0||isNaN(Number(a)))&&Jr(),i[s+1]==="i"||i[s+1]==="I"?(t.im+=parseFloat((o%2?"-":"")+a),s++):t.re+=parseFloat((o%2?"-":"")+a),r=o=0))}r+o>0&&Jr();break;case"number":t.im=0,t.re=e;break;default:Jr()}return isNaN(t.re)||isNaN(t.im),t},z=class e{constructor(n,t){this.re=0,this.im=0;var i=QE(n,t);this.re=i.re,this.im=i.im}sign(){var n=this.abs();return new e(this.re/n,this.im/n)}add(n,t){var i=new e(n,t);return this.isInfinite()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:new e(this.re+i.re,this.im+i.im)}sub(n,t){var i=new e(n,t);return this.isInfinite()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:new e(this.re-i.re,this.im-i.im)}mul(n,t){var i=new e(n,t);return this.isInfinite()&&i.isZero()||this.isZero()&&i.isInfinite()?e.NAN:this.isInfinite()||i.isInfinite()?e.INFINITY:i.im===0&&this.im===0?new e(this.re*i.re,0):new e(this.re*i.re-this.im*i.im,this.re*i.im+this.im*i.re)}div(n,t){var i=new e(n,t);if(this.isZero()&&i.isZero()||this.isInfinite()&&i.isInfinite())return e.NAN;if(this.isInfinite()||i.isZero())return e.INFINITY;if(this.isZero()||i.isInfinite())return e.ZERO;n=this.re,t=this.im;var r=i.re,o=i.im,s,a;return o===0?new e(n/r,t/r):Math.abs(r)<Math.abs(o)?(a=r/o,s=r*a+o,new e((n*a+t)/s,(t*a-n)/s)):(a=o/r,s=o*a+r,new e((n+t*a)/s,(t-n*a)/s))}pow(n,t){var i=new e(n,t);if(n=this.re,t=this.im,i.isZero())return e.ONE;if(i.im===0){if(t===0&&n>0)return new e(Math.pow(n,i.re),0);if(n===0)switch((i.re%4+4)%4){case 0:return new e(Math.pow(t,i.re),0);case 1:return new e(0,Math.pow(t,i.re));case 2:return new e(-Math.pow(t,i.re),0);case 3:return new e(0,-Math.pow(t,i.re))}}if(n===0&&t===0&&i.re>0&&i.im>=0)return e.ZERO;var r=Math.atan2(t,n),o=Wl(n,t);return n=Math.exp(i.re*o-i.im*r),t=i.im*o+i.re*r,new e(n*Math.cos(t),n*Math.sin(t))}sqrt(){var n=this.re,t=this.im,i=this.abs(),r,o;if(n>=0){if(t===0)return new e(Math.sqrt(n),0);r=.5*Math.sqrt(2*(i+n))}else r=Math.abs(t)/Math.sqrt(2*(i-n));return n<=0?o=.5*Math.sqrt(2*(i-n)):o=Math.abs(t)/Math.sqrt(2*(i+n)),new e(r,t<0?-o:o)}exp(){var n=Math.exp(this.re);return this.im,new e(n*Math.cos(this.im),n*Math.sin(this.im))}expm1(){var n=this.re,t=this.im;return new e(Math.expm1(n)*Math.cos(t)+WE(t),Math.exp(n)*Math.sin(t))}log(){var n=this.re,t=this.im;return t===0&&n>0,new e(Wl(n,t),Math.atan2(t,n))}abs(){return YE(this.re,this.im)}arg(){return Math.atan2(this.im,this.re)}sin(){var n=this.re,t=this.im;return new e(Math.sin(n)*bn(t),Math.cos(n)*et(t))}cos(){var n=this.re,t=this.im;return new e(Math.cos(n)*bn(t),-Math.sin(n)*et(t))}tan(){var n=2*this.re,t=2*this.im,i=Math.cos(n)+bn(t);return new e(Math.sin(n)/i,et(t)/i)}cot(){var n=2*this.re,t=2*this.im,i=Math.cos(n)-bn(t);return new e(-Math.sin(n)/i,et(t)/i)}sec(){var n=this.re,t=this.im,i=.5*bn(2*t)+.5*Math.cos(2*n);return new e(Math.cos(n)*bn(t)/i,Math.sin(n)*et(t)/i)}csc(){var n=this.re,t=this.im,i=.5*bn(2*t)-.5*Math.cos(2*n);return new e(Math.sin(n)*bn(t)/i,-Math.cos(n)*et(t)/i)}asin(){var n=this.re,t=this.im,i=new e(t*t-n*n+1,-2*n*t).sqrt(),r=new e(i.re-t,i.im+n).log();return new e(r.im,-r.re)}acos(){var n=this.re,t=this.im,i=new e(t*t-n*n+1,-2*n*t).sqrt(),r=new e(i.re-t,i.im+n).log();return new e(Math.PI/2-r.im,r.re)}atan(){var n=this.re,t=this.im;if(n===0){if(t===1)return new e(0,1/0);if(t===-1)return new e(0,-1/0)}var i=n*n+(1-t)*(1-t),r=new e((1-t*t-n*n)/i,-2*n/i).log();return new e(-.5*r.im,.5*r.re)}acot(){var n=this.re,t=this.im;if(t===0)return new e(Math.atan2(1,n),0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).atan():new e(n!==0?n/0:0,t!==0?-t/0:0).atan()}asec(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(0,1/0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).acos():new e(n!==0?n/0:0,t!==0?-t/0:0).acos()}acsc(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(Math.PI/2,1/0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).asin():new e(n!==0?n/0:0,t!==0?-t/0:0).asin()}sinh(){var n=this.re,t=this.im;return new e(et(n)*Math.cos(t),bn(n)*Math.sin(t))}cosh(){var n=this.re,t=this.im;return new e(bn(n)*Math.cos(t),et(n)*Math.sin(t))}tanh(){var n=2*this.re,t=2*this.im,i=bn(n)+Math.cos(t);return new e(et(n)/i,Math.sin(t)/i)}coth(){var n=2*this.re,t=2*this.im,i=bn(n)-Math.cos(t);return new e(et(n)/i,-Math.sin(t)/i)}csch(){var n=this.re,t=this.im,i=Math.cos(2*t)-bn(2*n);return new e(-2*et(n)*Math.cos(t)/i,2*bn(n)*Math.sin(t)/i)}sech(){var n=this.re,t=this.im,i=Math.cos(2*t)+bn(2*n);return new e(2*bn(n)*Math.cos(t)/i,-2*et(n)*Math.sin(t)/i)}asinh(){var n=this.im;this.im=-this.re,this.re=n;var t=this.asin();return this.re=-this.im,this.im=n,n=t.re,t.re=-t.im,t.im=n,t}acosh(){var n=this.acos();if(n.im<=0){var t=n.re;n.re=-n.im,n.im=t}else{var t=n.im;n.im=-n.re,n.re=t}return n}atanh(){var n=this.re,t=this.im,i=n>1&&t===0,r=1-n,o=1+n,s=r*r+t*t,a=s!==0?new e((o*r-t*t)/s,(t*r+o*t)/s):new e(n!==-1?n/0:0,t!==0?t/0:0),u=a.re;return a.re=Wl(a.re,a.im)/2,a.im=Math.atan2(a.im,u)/2,i&&(a.im=-a.im),a}acoth(){var n=this.re,t=this.im;if(n===0&&t===0)return new e(0,Math.PI/2);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).atanh():new e(n!==0?n/0:0,t!==0?-t/0:0).atanh()}acsch(){var n=this.re,t=this.im;if(t===0)return new e(n!==0?Math.log(n+Math.sqrt(n*n+1)):1/0,0);var i=n*n+t*t;return i!==0?new e(n/i,-t/i).asinh():new e(n!==0?n/0:0,t!==0?-t/0:0).asinh()}asech(){var n=this.re,t=this.im;if(this.isZero())return e.INFINITY;var i=n*n+t*t;return i!==0?new e(n/i,-t/i).acosh():new e(n!==0?n/0:0,t!==0?-t/0:0).acosh()}inverse(){if(this.isZero())return e.INFINITY;if(this.isInfinite())return e.ZERO;var n=this.re,t=this.im,i=n*n+t*t;return new e(n/i,-t/i)}conjugate(){return new e(this.re,-this.im)}neg(){return new e(-this.re,-this.im)}ceil(n){return n=Math.pow(10,n||0),new e(Math.ceil(this.re*n)/n,Math.ceil(this.im*n)/n)}floor(n){return n=Math.pow(10,n||0),new e(Math.floor(this.re*n)/n,Math.floor(this.im*n)/n)}round(n){return n=Math.pow(10,n||0),new e(Math.round(this.re*n)/n,Math.round(this.im*n)/n)}equals(n,t){var i=new e(n,t);return Math.abs(i.re-this.re)<=e.EPSILON&&Math.abs(i.im-this.im)<=e.EPSILON}clone(){return new e(this.re,this.im)}toString(){var n=this.re,t=this.im,i="";return this.isNaN()?"NaN":this.isInfinite()?"Infinity":(Math.abs(n)<e.EPSILON&&(n=0),Math.abs(t)<e.EPSILON&&(t=0),t===0?i+n:(n!==0?(i+=n,i+=" ",t<0?(t=-t,i+="-"):i+="+",i+=" "):t<0&&(t=-t,i+="-"),t!==1&&(i+=t),i+"i"))}toVector(){return[this.re,this.im]}valueOf(){return this.im===0?this.re:null}isNaN(){return isNaN(this.re)||isNaN(this.im)}isZero(){return this.im===0&&this.re===0}isFinite(){return isFinite(this.re)&&isFinite(this.im)}isInfinite(){return!(this.isNaN()||this.isFinite())}};z.ZERO=new z(0,0);z.ONE=new z(1,0);z.I=new z(0,1);z.PI=new z(Math.PI,0);z.E=new z(Math.E,0);z.INFINITY=new z(1/0,1/0);z.NAN=new z(NaN,NaN);z.EPSILON=1e-15;var zr=9e15,Ti=1e9,Yl="0123456789abcdef",va="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",_a="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Ql={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-zr,maxE:zr,crypto:!1},vd,Wt,te=!0,Sa="[DecimalError] ",Si=Sa+"Invalid argument: ",_d=Sa+"Precision limit exceeded",Nd=Sa+"crypto unavailable",Sd="[object Decimal]",yn=Math.floor,tn=Math.pow,XE=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,KE=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,ev=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Td=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,gt=1e7,X=7,nv=9007199254740991,tv=va.length-1,Xl=_a.length-1,R={toStringTag:Sd};R.absoluteValue=R.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),H(e)};R.ceil=function(){return H(new this.constructor(this),this.e+1,2)};R.clampedTo=R.clamp=function(e,n){var t,i=this,r=i.constructor;if(e=new r(e),n=new r(n),!e.s||!n.s)return new r(NaN);if(e.gt(n))throw Error(Si+n);return t=i.cmp(e),t<0?e:i.cmp(n)>0?n:new r(i)};R.comparedTo=R.cmp=function(e){var n,t,i,r,o=this,s=o.d,a=(e=new o.constructor(e)).d,u=o.s,l=e.s;if(!s||!a)return!u||!l?NaN:u!==l?u:s===a?0:!s^u<0?1:-1;if(!s[0]||!a[0])return s[0]?u:a[0]?-l:0;if(u!==l)return u;if(o.e!==e.e)return o.e>e.e^u<0?1:-1;for(i=s.length,r=a.length,n=0,t=i<r?i:r;n<t;++n)if(s[n]!==a[n])return s[n]>a[n]^u<0?1:-1;return i===r?0:i>r^u<0?1:-1};R.cosine=R.cos=function(){var e,n,t=this,i=t.constructor;return t.d?t.d[0]?(e=i.precision,n=i.rounding,i.precision=e+Math.max(t.e,t.sd())+X,i.rounding=1,t=iv(i,Cd(i,t)),i.precision=e,i.rounding=n,H(Wt==2||Wt==3?t.neg():t,e,n,!0)):new i(1):new i(NaN)};R.cubeRoot=R.cbrt=function(){var e,n,t,i,r,o,s,a,u,l,c=this,f=c.constructor;if(!c.isFinite()||c.isZero())return new f(c);for(te=!1,o=c.s*tn(c.s*c,1/3),!o||Math.abs(o)==1/0?(t=dn(c.d),e=c.e,(o=(e-t.length+1)%3)&&(t+=o==1||o==-2?"0":"00"),o=tn(t,1/3),e=yn((e+1)/3)-(e%3==(e<0?-1:2)),o==1/0?t="5e"+e:(t=o.toExponential(),t=t.slice(0,t.indexOf("e")+1)+e),i=new f(t),i.s=c.s):i=new f(o.toString()),s=(e=f.precision)+3;;)if(a=i,u=a.times(a).times(a),l=u.plus(c),i=Me(l.plus(c).times(a),l.plus(u),s+2,1),dn(a.d).slice(0,s)===(t=dn(i.d)).slice(0,s))if(t=t.slice(s-3,s+1),t=="9999"||!r&&t=="4999"){if(!r&&(H(a,e+1,0),a.times(a).times(a).eq(c))){i=a;break}s+=4,r=1}else{(!+t||!+t.slice(1)&&t.charAt(0)=="5")&&(H(i,e+1,1),n=!i.times(i).times(i).eq(c));break}return te=!0,H(i,e,f.rounding,n)};R.decimalPlaces=R.dp=function(){var e,n=this.d,t=NaN;if(n){if(e=n.length-1,t=(e-yn(this.e/X))*X,e=n[e],e)for(;e%10==0;e/=10)t--;t<0&&(t=0)}return t};R.dividedBy=R.div=function(e){return Me(this,new this.constructor(e))};R.dividedToIntegerBy=R.divToInt=function(e){var n=this,t=n.constructor;return H(Me(n,new t(e),0,1,1),t.precision,t.rounding)};R.equals=R.eq=function(e){return this.cmp(e)===0};R.floor=function(){return H(new this.constructor(this),this.e+1,3)};R.greaterThan=R.gt=function(e){return this.cmp(e)>0};R.greaterThanOrEqualTo=R.gte=function(e){var n=this.cmp(e);return n==1||n===0};R.hyperbolicCosine=R.cosh=function(){var e,n,t,i,r,o=this,s=o.constructor,a=new s(1);if(!o.isFinite())return new s(o.s?1/0:NaN);if(o.isZero())return a;t=s.precision,i=s.rounding,s.precision=t+Math.max(o.e,o.sd())+4,s.rounding=1,r=o.d.length,r<32?(e=Math.ceil(r/3),n=(1/Ia(4,e)).toString()):(e=16,n="2.3283064365386962890625e-10"),o=Ur(s,1,o.times(n),new s(1),!0);for(var u,l=e,c=new s(8);l--;)u=o.times(o),o=a.minus(u.times(c.minus(u.times(c))));return H(o,s.precision=t,s.rounding=i,!0)};R.hyperbolicSine=R.sinh=function(){var e,n,t,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(n=o.precision,t=o.rounding,o.precision=n+Math.max(r.e,r.sd())+4,o.rounding=1,i=r.d.length,i<3)r=Ur(o,2,r,r,!0);else{e=1.4*Math.sqrt(i),e=e>16?16:e|0,r=r.times(1/Ia(5,e)),r=Ur(o,2,r,r,!0);for(var s,a=new o(5),u=new o(16),l=new o(20);e--;)s=r.times(r),r=r.times(a.plus(s.times(u.times(s).plus(l))))}return o.precision=n,o.rounding=t,H(r,n,t,!0)};R.hyperbolicTangent=R.tanh=function(){var e,n,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(e=i.precision,n=i.rounding,i.precision=e+7,i.rounding=1,Me(t.sinh(),t.cosh(),i.precision=e,i.rounding=n)):new i(t.s)};R.inverseCosine=R.acos=function(){var e=this,n=e.constructor,t=e.abs().cmp(1),i=n.precision,r=n.rounding;return t!==-1?t===0?e.isNeg()?wt(n,i,r):new n(0):new n(NaN):e.isZero()?wt(n,i+4,r).times(.5):(n.precision=i+6,n.rounding=1,e=new n(1).minus(e).div(e.plus(1)).sqrt().atan(),n.precision=i,n.rounding=r,e.times(2))};R.inverseHyperbolicCosine=R.acosh=function(){var e,n,t=this,i=t.constructor;return t.lte(1)?new i(t.eq(1)?0:NaN):t.isFinite()?(e=i.precision,n=i.rounding,i.precision=e+Math.max(Math.abs(t.e),t.sd())+4,i.rounding=1,te=!1,t=t.times(t).minus(1).sqrt().plus(t),te=!0,i.precision=e,i.rounding=n,t.ln()):new i(t)};R.inverseHyperbolicSine=R.asinh=function(){var e,n,t=this,i=t.constructor;return!t.isFinite()||t.isZero()?new i(t):(e=i.precision,n=i.rounding,i.precision=e+2*Math.max(Math.abs(t.e),t.sd())+6,i.rounding=1,te=!1,t=t.times(t).plus(1).sqrt().plus(t),te=!0,i.precision=e,i.rounding=n,t.ln())};R.inverseHyperbolicTangent=R.atanh=function(){var e,n,t,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=o.precision,n=o.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?H(new o(r),e,n,!0):(o.precision=t=i-r.e,r=Me(r.plus(1),new o(1).minus(r),t+e,1),o.precision=e+4,o.rounding=1,r=r.ln(),o.precision=e,o.rounding=n,r.times(.5))):new o(NaN)};R.inverseSine=R.asin=function(){var e,n,t,i,r=this,o=r.constructor;return r.isZero()?new o(r):(n=r.abs().cmp(1),t=o.precision,i=o.rounding,n!==-1?n===0?(e=wt(o,t+4,i).times(.5),e.s=r.s,e):new o(NaN):(o.precision=t+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=t,o.rounding=i,r.times(2)))};R.inverseTangent=R.atan=function(){var e,n,t,i,r,o,s,a,u,l=this,c=l.constructor,f=c.precision,p=c.rounding;if(l.isFinite()){if(l.isZero())return new c(l);if(l.abs().eq(1)&&f+4<=Xl)return s=wt(c,f+4,p).times(.25),s.s=l.s,s}else{if(!l.s)return new c(NaN);if(f+4<=Xl)return s=wt(c,f+4,p).times(.5),s.s=l.s,s}for(c.precision=a=f+10,c.rounding=1,t=Math.min(28,a/X+2|0),e=t;e;--e)l=l.div(l.times(l).plus(1).sqrt().plus(1));for(te=!1,n=Math.ceil(a/X),i=1,u=l.times(l),s=new c(l),r=l;e!==-1;)if(r=r.times(u),o=s.minus(r.div(i+=2)),r=r.times(u),s=o.plus(r.div(i+=2)),s.d[n]!==void 0)for(e=n;s.d[e]===o.d[e]&&e--;);return t&&(s=s.times(2<<t-1)),te=!0,H(s,c.precision=f,c.rounding=p,!0)};R.isFinite=function(){return!!this.d};R.isInteger=R.isInt=function(){return!!this.d&&yn(this.e/X)>this.d.length-2};R.isNaN=function(){return!this.s};R.isNegative=R.isNeg=function(){return this.s<0};R.isPositive=R.isPos=function(){return this.s>0};R.isZero=function(){return!!this.d&&this.d[0]===0};R.lessThan=R.lt=function(e){return this.cmp(e)<0};R.lessThanOrEqualTo=R.lte=function(e){return this.cmp(e)<1};R.logarithm=R.log=function(e){var n,t,i,r,o,s,a,u,l=this,c=l.constructor,f=c.precision,p=c.rounding,d=5;if(e==null)e=new c(10),n=!0;else{if(e=new c(e),t=e.d,e.s<0||!t||!t[0]||e.eq(1))return new c(NaN);n=e.eq(10)}if(t=l.d,l.s<0||!t||!t[0]||l.eq(1))return new c(t&&!t[0]?-1/0:l.s!=1?NaN:t?0:1/0);if(n)if(t.length>1)o=!0;else{for(r=t[0];r%10===0;)r/=10;o=r!==1}if(te=!1,a=f+d,s=Ni(l,a),i=n?Na(c,a+10):Ni(e,a),u=Me(s,i,a,1),Ko(u.d,r=f,p))do if(a+=10,s=Ni(l,a),i=n?Na(c,a+10):Ni(e,a),u=Me(s,i,a,1),!o){+dn(u.d).slice(r+1,r+15)+1==1e14&&(u=H(u,f+1,0));break}while(Ko(u.d,r+=10,p));return te=!0,H(u,f,p)};R.minus=R.sub=function(e){var n,t,i,r,o,s,a,u,l,c,f,p,d=this,g=d.constructor;if(e=new g(e),!d.d||!e.d)return!d.s||!e.s?e=new g(NaN):d.d?e.s=-e.s:e=new g(e.d||d.s!==e.s?d:NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(l=d.d,p=e.d,a=g.precision,u=g.rounding,!l[0]||!p[0]){if(p[0])e.s=-e.s;else if(l[0])e=new g(d);else return new g(u===3?-0:0);return te?H(e,a,u):e}if(t=yn(e.e/X),c=yn(d.e/X),l=l.slice(),o=c-t,o){for(f=o<0,f?(n=l,o=-o,s=p.length):(n=p,t=c,s=l.length),i=Math.max(Math.ceil(a/X),s)+2,o>i&&(o=i,n.length=1),n.reverse(),i=o;i--;)n.push(0);n.reverse()}else{for(i=l.length,s=p.length,f=i<s,f&&(s=i),i=0;i<s;i++)if(l[i]!=p[i]){f=l[i]<p[i];break}o=0}for(f&&(n=l,l=p,p=n,e.s=-e.s),s=l.length,i=p.length-s;i>0;--i)l[s++]=0;for(i=p.length;i>o;){if(l[--i]<p[i]){for(r=i;r&&l[--r]===0;)l[r]=gt-1;--l[r],l[i]+=gt}l[i]-=p[i]}for(;l[--s]===0;)l.pop();for(;l[0]===0;l.shift())--t;return l[0]?(e.d=l,e.e=Ta(l,t),te?H(e,a,u):e):new g(u===3?-0:0)};R.modulo=R.mod=function(e){var n,t=this,i=t.constructor;return e=new i(e),!t.d||!e.s||e.d&&!e.d[0]?new i(NaN):!e.d||t.d&&!t.d[0]?H(new i(t),i.precision,i.rounding):(te=!1,i.modulo==9?(n=Me(t,e.abs(),0,3,1),n.s*=e.s):n=Me(t,e,0,i.modulo,1),n=n.times(e),te=!0,t.minus(n))};R.naturalExponential=R.exp=function(){return Kl(this)};R.naturalLogarithm=R.ln=function(){return Ni(this)};R.negated=R.neg=function(){var e=new this.constructor(this);return e.s=-e.s,H(e)};R.plus=R.add=function(e){var n,t,i,r,o,s,a,u,l,c,f=this,p=f.constructor;if(e=new p(e),!f.d||!e.d)return!f.s||!e.s?e=new p(NaN):f.d||(e=new p(e.d||f.s===e.s?f:NaN)),e;if(f.s!=e.s)return e.s=-e.s,f.minus(e);if(l=f.d,c=e.d,a=p.precision,u=p.rounding,!l[0]||!c[0])return c[0]||(e=new p(f)),te?H(e,a,u):e;if(o=yn(f.e/X),i=yn(e.e/X),l=l.slice(),r=o-i,r){for(r<0?(t=l,r=-r,s=c.length):(t=c,i=o,s=l.length),o=Math.ceil(a/X),s=o>s?o+1:s+1,r>s&&(r=s,t.length=1),t.reverse();r--;)t.push(0);t.reverse()}for(s=l.length,r=c.length,s-r<0&&(r=s,t=c,c=l,l=t),n=0;r;)n=(l[--r]=l[r]+c[r]+n)/gt|0,l[r]%=gt;for(n&&(l.unshift(n),++i),s=l.length;l[--s]==0;)l.pop();return e.d=l,e.e=Ta(l,i),te?H(e,a,u):e};R.precision=R.sd=function(e){var n,t=this;if(e!==void 0&&e!==!!e&&e!==1&&e!==0)throw Error(Si+e);return t.d?(n=Id(t.d),e&&t.e+1>n&&(n=t.e+1)):n=NaN,n};R.round=function(){var e=this,n=e.constructor;return H(new n(e),e.e+1,n.rounding)};R.sine=R.sin=function(){var e,n,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(e=i.precision,n=i.rounding,i.precision=e+Math.max(t.e,t.sd())+X,i.rounding=1,t=ov(i,Cd(i,t)),i.precision=e,i.rounding=n,H(Wt>2?t.neg():t,e,n,!0)):new i(NaN)};R.squareRoot=R.sqrt=function(){var e,n,t,i,r,o,s=this,a=s.d,u=s.e,l=s.s,c=s.constructor;if(l!==1||!a||!a[0])return new c(!l||l<0&&(!a||a[0])?NaN:a?s:1/0);for(te=!1,l=Math.sqrt(+s),l==0||l==1/0?(n=dn(a),(n.length+u)%2==0&&(n+="0"),l=Math.sqrt(n),u=yn((u+1)/2)-(u<0||u%2),l==1/0?n="5e"+u:(n=l.toExponential(),n=n.slice(0,n.indexOf("e")+1)+u),i=new c(n)):i=new c(l.toString()),t=(u=c.precision)+3;;)if(o=i,i=o.plus(Me(s,o,t+2,1)).times(.5),dn(o.d).slice(0,t)===(n=dn(i.d)).slice(0,t))if(n=n.slice(t-3,t+1),n=="9999"||!r&&n=="4999"){if(!r&&(H(o,u+1,0),o.times(o).eq(s))){i=o;break}t+=4,r=1}else{(!+n||!+n.slice(1)&&n.charAt(0)=="5")&&(H(i,u+1,1),e=!i.times(i).eq(s));break}return te=!0,H(i,u,c.rounding,e)};R.tangent=R.tan=function(){var e,n,t=this,i=t.constructor;return t.isFinite()?t.isZero()?new i(t):(e=i.precision,n=i.rounding,i.precision=e+10,i.rounding=1,t=t.sin(),t.s=1,t=Me(t,new i(1).minus(t.times(t)).sqrt(),e+10,0),i.precision=e,i.rounding=n,H(Wt==2||Wt==4?t.neg():t,e,n,!0)):new i(NaN)};R.times=R.mul=function(e){var n,t,i,r,o,s,a,u,l,c=this,f=c.constructor,p=c.d,d=(e=new f(e)).d;if(e.s*=c.s,!p||!p[0]||!d||!d[0])return new f(!e.s||p&&!p[0]&&!d||d&&!d[0]&&!p?NaN:!p||!d?e.s/0:e.s*0);for(t=yn(c.e/X)+yn(e.e/X),u=p.length,l=d.length,u<l&&(o=p,p=d,d=o,s=u,u=l,l=s),o=[],s=u+l,i=s;i--;)o.push(0);for(i=l;--i>=0;){for(n=0,r=u+i;r>i;)a=o[r]+d[i]*p[r-i-1]+n,o[r--]=a%gt|0,n=a/gt|0;o[r]=(o[r]+n)%gt|0}for(;!o[--s];)o.pop();return n?++t:o.shift(),e.d=o,e.e=Ta(o,t),te?H(e,f.precision,f.rounding):e};R.toBinary=function(e,n){return ec(this,2,e,n)};R.toDecimalPlaces=R.toDP=function(e,n){var t=this,i=t.constructor;return t=new i(t),e===void 0?t:(Pn(e,0,Ti),n===void 0?n=i.rounding:Pn(n,0,8),H(t,e+t.e+1,n))};R.toExponential=function(e,n){var t,i=this,r=i.constructor;return e===void 0?t=Mt(i,!0):(Pn(e,0,Ti),n===void 0?n=r.rounding:Pn(n,0,8),i=H(new r(i),e+1,n),t=Mt(i,!0,e+1)),i.isNeg()&&!i.isZero()?"-"+t:t};R.toFixed=function(e,n){var t,i,r=this,o=r.constructor;return e===void 0?t=Mt(r):(Pn(e,0,Ti),n===void 0?n=o.rounding:Pn(n,0,8),i=H(new o(r),e+r.e+1,n),t=Mt(i,!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+t:t};R.toFraction=function(e){var n,t,i,r,o,s,a,u,l,c,f,p,d=this,g=d.d,h=d.constructor;if(!g)return new h(d);if(l=t=new h(1),i=u=new h(0),n=new h(i),o=n.e=Id(g)-d.e-1,s=o%X,n.d[0]=tn(10,s<0?X+s:s),e==null)e=o>0?n:l;else{if(a=new h(e),!a.isInt()||a.lt(l))throw Error(Si+a);e=a.gt(n)?o>0?n:l:a}for(te=!1,a=new h(dn(g)),c=h.precision,h.precision=o=g.length*X*2;f=Me(a,n,0,1,1),r=t.plus(f.times(i)),r.cmp(e)!=1;)t=i,i=r,r=l,l=u.plus(f.times(r)),u=r,r=n,n=a.minus(f.times(r)),a=r;return r=Me(e.minus(t),i,0,1,1),u=u.plus(r.times(l)),t=t.plus(r.times(i)),u.s=l.s=d.s,p=Me(l,i,o,1).minus(d).abs().cmp(Me(u,t,o,1).minus(d).abs())<1?[l,i]:[u,t],h.precision=c,te=!0,p};R.toHexadecimal=R.toHex=function(e,n){return ec(this,16,e,n)};R.toNearest=function(e,n){var t=this,i=t.constructor;if(t=new i(t),e==null){if(!t.d)return t;e=new i(1),n=i.rounding}else{if(e=new i(e),n===void 0?n=i.rounding:Pn(n,0,8),!t.d)return e.s?t:e;if(!e.d)return e.s&&(e.s=t.s),e}return e.d[0]?(te=!1,t=Me(t,e,0,n,1).times(e),te=!0,H(t)):(e.s=t.s,t=e),t};R.toNumber=function(){return+this};R.toOctal=function(e,n){return ec(this,8,e,n)};R.toPower=R.pow=function(e){var n,t,i,r,o,s,a=this,u=a.constructor,l=+(e=new u(e));if(!a.d||!e.d||!a.d[0]||!e.d[0])return new u(tn(+a,l));if(a=new u(a),a.eq(1))return a;if(i=u.precision,o=u.rounding,e.eq(1))return H(a,i,o);if(n=yn(e.e/X),n>=e.d.length-1&&(t=l<0?-l:l)<=nv)return r=wd(u,a,t,i),e.s<0?new u(1).div(r):H(r,i,o);if(s=a.s,s<0){if(n<e.d.length-1)return new u(NaN);if((e.d[n]&1)==0&&(s=1),a.e==0&&a.d[0]==1&&a.d.length==1)return a.s=s,a}return t=tn(+a,l),n=t==0||!isFinite(t)?yn(l*(Math.log("0."+dn(a.d))/Math.LN10+a.e+1)):new u(t+"").e,n>u.maxE+1||n<u.minE-1?new u(n>0?s/0:0):(te=!1,u.rounding=a.s=1,t=Math.min(12,(n+"").length),r=Kl(e.times(Ni(a,i+t)),i),r.d&&(r=H(r,i+5,1),Ko(r.d,i,o)&&(n=i+10,r=H(Kl(e.times(Ni(a,n+t)),n),n+5,1),+dn(r.d).slice(i+1,i+15)+1==1e14&&(r=H(r,i+1,0)))),r.s=s,te=!0,u.rounding=o,H(r,i,o))};R.toPrecision=function(e,n){var t,i=this,r=i.constructor;return e===void 0?t=Mt(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(Pn(e,1,Ti),n===void 0?n=r.rounding:Pn(n,0,8),i=H(new r(i),e,n),t=Mt(i,e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+t:t};R.toSignificantDigits=R.toSD=function(e,n){var t=this,i=t.constructor;return e===void 0?(e=i.precision,n=i.rounding):(Pn(e,1,Ti),n===void 0?n=i.rounding:Pn(n,0,8)),H(new i(t),e,n)};R.toString=function(){var e=this,n=e.constructor,t=Mt(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()&&!e.isZero()?"-"+t:t};R.truncated=R.trunc=function(){return H(new this.constructor(this),this.e+1,1)};R.valueOf=R.toJSON=function(){var e=this,n=e.constructor,t=Mt(e,e.e<=n.toExpNeg||e.e>=n.toExpPos);return e.isNeg()?"-"+t:t};function dn(e){var n,t,i,r=e.length-1,o="",s=e[0];if(r>0){for(o+=s,n=1;n<r;n++)i=e[n]+"",t=X-i.length,t&&(o+=_i(t)),o+=i;s=e[n],i=s+"",t=X-i.length,t&&(o+=_i(t))}else if(s===0)return"0";for(;s%10===0;)s/=10;return o+s}function Pn(e,n,t){if(e!==~~e||e<n||e>t)throw Error(Si+e)}function Ko(e,n,t,i){var r,o,s,a;for(o=e[0];o>=10;o/=10)--n;return--n<0?(n+=X,r=0):(r=Math.ceil((n+1)/X),n%=X),o=tn(10,X-n),a=e[r]%o|0,i==null?n<3?(n==0?a=a/100|0:n==1&&(a=a/10|0),s=t<4&&a==99999||t>3&&a==49999||a==5e4||a==0):s=(t<4&&a+1==o||t>3&&a+1==o/2)&&(e[r+1]/o/100|0)==tn(10,n-2)-1||(a==o/2||a==0)&&(e[r+1]/o/100|0)==0:n<4?(n==0?a=a/1e3|0:n==1?a=a/100|0:n==2&&(a=a/10|0),s=(i||t<4)&&a==9999||!i&&t>3&&a==4999):s=((i||t<4)&&a+1==o||!i&&t>3&&a+1==o/2)&&(e[r+1]/o/1e3|0)==tn(10,n-3)-1,s}function xa(e,n,t){for(var i,r=[0],o,s=0,a=e.length;s<a;){for(o=r.length;o--;)r[o]*=n;for(r[0]+=Yl.indexOf(e.charAt(s++)),i=0;i<r.length;i++)r[i]>t-1&&(r[i+1]===void 0&&(r[i+1]=0),r[i+1]+=r[i]/t|0,r[i]%=t)}return r.reverse()}function iv(e,n){var t,i,r;if(n.isZero())return n;i=n.d.length,i<32?(t=Math.ceil(i/3),r=(1/Ia(4,t)).toString()):(t=16,r="2.3283064365386962890625e-10"),e.precision+=t,n=Ur(e,1,n.times(r),new e(1));for(var o=t;o--;){var s=n.times(n);n=s.times(s).minus(s).times(8).plus(1)}return e.precision-=t,n}var Me=(function(){function e(i,r,o){var s,a=0,u=i.length;for(i=i.slice();u--;)s=i[u]*r+a,i[u]=s%o|0,a=s/o|0;return a&&i.unshift(a),i}function n(i,r,o,s){var a,u;if(o!=s)u=o>s?1:-1;else for(a=u=0;a<o;a++)if(i[a]!=r[a]){u=i[a]>r[a]?1:-1;break}return u}function t(i,r,o,s){for(var a=0;o--;)i[o]-=a,a=i[o]<r[o]?1:0,i[o]=a*s+i[o]-r[o];for(;!i[0]&&i.length>1;)i.shift()}return function(i,r,o,s,a,u){var l,c,f,p,d,g,h,b,y,x,N,T,I,M,w,k,P,F,G,U,ge=i.constructor,he=i.s==r.s?1:-1,le=i.d,ee=r.d;if(!le||!le[0]||!ee||!ee[0])return new ge(!i.s||!r.s||(le?ee&&le[0]==ee[0]:!ee)?NaN:le&&le[0]==0||!ee?he*0:he/0);for(u?(d=1,c=i.e-r.e):(u=gt,d=X,c=yn(i.e/d)-yn(r.e/d)),G=ee.length,P=le.length,y=new ge(he),x=y.d=[],f=0;ee[f]==(le[f]||0);f++);if(ee[f]>(le[f]||0)&&c--,o==null?(M=o=ge.precision,s=ge.rounding):a?M=o+(i.e-r.e)+1:M=o,M<0)x.push(1),g=!0;else{if(M=M/d+2|0,f=0,G==1){for(p=0,ee=ee[0],M++;(f<P||p)&&M--;f++)w=p*u+(le[f]||0),x[f]=w/ee|0,p=w%ee|0;g=p||f<P}else{for(p=u/(ee[0]+1)|0,p>1&&(ee=e(ee,p,u),le=e(le,p,u),G=ee.length,P=le.length),k=G,N=le.slice(0,G),T=N.length;T<G;)N[T++]=0;U=ee.slice(),U.unshift(0),F=ee[0],ee[1]>=u/2&&++F;do p=0,l=n(ee,N,G,T),l<0?(I=N[0],G!=T&&(I=I*u+(N[1]||0)),p=I/F|0,p>1?(p>=u&&(p=u-1),h=e(ee,p,u),b=h.length,T=N.length,l=n(h,N,b,T),l==1&&(p--,t(h,G<b?U:ee,b,u))):(p==0&&(l=p=1),h=ee.slice()),b=h.length,b<T&&h.unshift(0),t(N,h,T,u),l==-1&&(T=N.length,l=n(ee,N,G,T),l<1&&(p++,t(N,G<T?U:ee,T,u))),T=N.length):l===0&&(p++,N=[0]),x[f++]=p,l&&N[0]?N[T++]=le[k]||0:(N=[le[k]],T=1);while((k++<P||N[0]!==void 0)&&M--);g=N[0]!==void 0}x[0]||x.shift()}if(d==1)y.e=c,vd=g;else{for(f=1,p=x[0];p>=10;p/=10)f++;y.e=f+c*d-1,H(y,a?o+y.e+1:o,s,g)}return y}})();function H(e,n,t,i){var r,o,s,a,u,l,c,f,p,d=e.constructor;e:if(n!=null){if(f=e.d,!f)return e;for(r=1,a=f[0];a>=10;a/=10)r++;if(o=n-r,o<0)o+=X,s=n,c=f[p=0],u=c/tn(10,r-s-1)%10|0;else if(p=Math.ceil((o+1)/X),a=f.length,p>=a)if(i){for(;a++<=p;)f.push(0);c=u=0,r=1,o%=X,s=o-X+1}else break e;else{for(c=a=f[p],r=1;a>=10;a/=10)r++;o%=X,s=o-X+r,u=s<0?0:c/tn(10,r-s-1)%10|0}if(i=i||n<0||f[p+1]!==void 0||(s<0?c:c%tn(10,r-s-1)),l=t<4?(u||i)&&(t==0||t==(e.s<0?3:2)):u>5||u==5&&(t==4||i||t==6&&(o>0?s>0?c/tn(10,r-s):0:f[p-1])%10&1||t==(e.s<0?8:7)),n<1||!f[0])return f.length=0,l?(n-=e.e+1,f[0]=tn(10,(X-n%X)%X),e.e=-n||0):f[0]=e.e=0,e;if(o==0?(f.length=p,a=1,p--):(f.length=p+1,a=tn(10,X-o),f[p]=s>0?(c/tn(10,r-s)%tn(10,s)|0)*a:0),l)for(;;)if(p==0){for(o=1,s=f[0];s>=10;s/=10)o++;for(s=f[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,f[0]==gt&&(f[0]=1));break}else{if(f[p]+=a,f[p]!=gt)break;f[p--]=0,a=1}for(o=f.length;f[--o]===0;)f.pop()}return te&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function Mt(e,n,t){if(!e.isFinite())return kd(e);var i,r=e.e,o=dn(e.d),s=o.length;return n?(t&&(i=t-s)>0?o=o.charAt(0)+"."+o.slice(1)+_i(i):s>1&&(o=o.charAt(0)+"."+o.slice(1)),o=o+(e.e<0?"e":"e+")+e.e):r<0?(o="0."+_i(-r-1)+o,t&&(i=t-s)>0&&(o+=_i(i))):r>=s?(o+=_i(r+1-s),t&&(i=t-r-1)>0&&(o=o+"."+_i(i))):((i=r+1)<s&&(o=o.slice(0,i)+"."+o.slice(i)),t&&(i=t-s)>0&&(r+1===s&&(o+="."),o+=_i(i))),o}function Ta(e,n){var t=e[0];for(n*=X;t>=10;t/=10)n++;return n}function Na(e,n,t){if(n>tv)throw te=!0,t&&(e.precision=t),Error(_d);return H(new e(va),n,1,!0)}function wt(e,n,t){if(n>Xl)throw Error(_d);return H(new e(_a),n,t,!0)}function Id(e){var n=e.length-1,t=n*X+1;if(n=e[n],n){for(;n%10==0;n/=10)t--;for(n=e[0];n>=10;n/=10)t++}return t}function _i(e){for(var n="";e--;)n+="0";return n}function wd(e,n,t,i){var r,o=new e(1),s=Math.ceil(i/X+4);for(te=!1;;){if(t%2&&(o=o.times(n),xd(o.d,s)&&(r=!0)),t=yn(t/2),t===0){t=o.d.length-1,r&&o.d[t]===0&&++o.d[t];break}n=n.times(n),xd(n.d,s)}return te=!0,o}function yd(e){return e.d[e.d.length-1]&1}function Md(e,n,t){for(var i,r,o=new e(n[0]),s=0;++s<n.length;){if(r=new e(n[s]),!r.s){o=r;break}i=o.cmp(r),(i===t||i===0&&o.s===t)&&(o=r)}return o}function Kl(e,n){var t,i,r,o,s,a,u,l=0,c=0,f=0,p=e.constructor,d=p.rounding,g=p.precision;if(!e.d||!e.d[0]||e.e>17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(n==null?(te=!1,u=g):u=n,a=new p(.03125);e.e>-2;)e=e.times(a),f+=5;for(i=Math.log(tn(2,f))/Math.LN10*2+5|0,u+=i,t=o=s=new p(1),p.precision=u;;){if(o=H(o.times(e),u,1),t=t.times(++c),a=s.plus(Me(o,t,u,1)),dn(a.d).slice(0,u)===dn(s.d).slice(0,u)){for(r=f;r--;)s=H(s.times(s),u,1);if(n==null)if(l<3&&Ko(s.d,u-i,d,l))p.precision=u+=10,t=o=a=new p(1),c=0,l++;else return H(s,p.precision=g,d,te=!0);else return p.precision=g,s}s=a}}function Ni(e,n){var t,i,r,o,s,a,u,l,c,f,p,d=1,g=10,h=e,b=h.d,y=h.constructor,x=y.rounding,N=y.precision;if(h.s<0||!b||!b[0]||!h.e&&b[0]==1&&b.length==1)return new y(b&&!b[0]?-1/0:h.s!=1?NaN:b?0:h);if(n==null?(te=!1,c=N):c=n,y.precision=c+=g,t=dn(b),i=t.charAt(0),Math.abs(o=h.e)<15e14){for(;i<7&&i!=1||i==1&&t.charAt(1)>3;)h=h.times(e),t=dn(h.d),i=t.charAt(0),d++;o=h.e,i>1?(h=new y("0."+t),o++):h=new y(i+"."+t.slice(1))}else return l=Na(y,c+2,N).times(o+""),h=Ni(new y(i+"."+t.slice(1)),c-g).plus(l),y.precision=N,n==null?H(h,N,x,te=!0):h;for(f=h,u=s=h=Me(h.minus(1),h.plus(1),c,1),p=H(h.times(h),c,1),r=3;;){if(s=H(s.times(p),c,1),l=u.plus(Me(s,new y(r),c,1)),dn(l.d).slice(0,c)===dn(u.d).slice(0,c))if(u=u.times(2),o!==0&&(u=u.plus(Na(y,c+2,N).times(o+""))),u=Me(u,new y(d),c,1),n==null)if(Ko(u.d,c-g,x,a))y.precision=c+=g,l=s=h=Me(f.minus(1),f.plus(1),c,1),p=H(h.times(h),c,1),r=a=1;else return H(u,y.precision=N,x,te=!0);else return y.precision=N,u;u=l,r+=2}}function kd(e){return String(e.s*e.s/0)}function Ea(e,n){var t,i,r;for((t=n.indexOf("."))>-1&&(n=n.replace(".","")),(i=n.search(/e/i))>0?(t<0&&(t=i),t+=+n.slice(i+1),n=n.substring(0,i)):t<0&&(t=n.length),i=0;n.charCodeAt(i)===48;i++);for(r=n.length;n.charCodeAt(r-1)===48;--r);if(n=n.slice(i,r),n){if(r-=i,e.e=t=t-i-1,e.d=[],i=(t+1)%X,t<0&&(i+=X),i<r){for(i&&e.d.push(+n.slice(0,i)),r-=X;i<r;)e.d.push(+n.slice(i,i+=X));n=n.slice(i),i=X-n.length}else i-=r;for(;i--;)n+="0";e.d.push(+n),te&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e<e.constructor.minE&&(e.e=0,e.d=[0]))}else e.e=0,e.d=[0];return e}function rv(e,n){var t,i,r,o,s,a,u,l,c;if(n.indexOf("_")>-1){if(n=n.replace(/(\d)_(?=\d)/g,"$1"),Td.test(n))return Ea(e,n)}else if(n==="Infinity"||n==="NaN")return+n||(e.s=NaN),e.e=NaN,e.d=null,e;if(KE.test(n))t=16,n=n.toLowerCase();else if(XE.test(n))t=2;else if(ev.test(n))t=8;else throw Error(Si+n);for(o=n.search(/p/i),o>0?(u=+n.slice(o+1),n=n.substring(2,o)):n=n.slice(2),o=n.indexOf("."),s=o>=0,i=e.constructor,s&&(n=n.replace(".",""),a=n.length,o=a-o,r=wd(i,new i(t),o,o*2)),l=xa(n,t,gt),c=l.length-1,o=c;l[o]===0;--o)l.pop();return o<0?new i(e.s*0):(e.e=Ta(l,c),e.d=l,te=!1,s&&(e=Me(e,r,a*4)),u&&(e=e.times(Math.abs(u)<54?tn(2,u):K.pow(2,u))),te=!0,e)}function ov(e,n){var t,i=n.d.length;if(i<3)return n.isZero()?n:Ur(e,2,n,n);t=1.4*Math.sqrt(i),t=t>16?16:t|0,n=n.times(1/Ia(5,t)),n=Ur(e,2,n,n);for(var r,o=new e(5),s=new e(16),a=new e(20);t--;)r=n.times(n),n=n.times(o.plus(r.times(s.times(r).minus(a))));return n}function Ur(e,n,t,i,r){var o,s,a,u,l=1,c=e.precision,f=Math.ceil(c/X);for(te=!1,u=t.times(t),a=new e(i);;){if(s=Me(a.times(u),new e(n++*n++),c,1),a=r?i.plus(s):i.minus(s),i=Me(s.times(u),new e(n++*n++),c,1),s=a.plus(i),s.d[f]!==void 0){for(o=f;s.d[o]===a.d[o]&&o--;);if(o==-1)break}o=a,a=i,i=s,s=o,l++}return te=!0,s.d.length=f+1,s}function Ia(e,n){for(var t=e;--n;)t*=e;return t}function Cd(e,n){var t,i=n.s<0,r=wt(e,e.precision,1),o=r.times(.5);if(n=n.abs(),n.lte(o))return Wt=i?4:1,n;if(t=n.divToInt(r),t.isZero())Wt=i?3:2;else{if(n=n.minus(t.times(r)),n.lte(o))return Wt=yd(t)?i?2:3:i?4:1,n;Wt=yd(t)?i?1:4:i?3:2}return n.minus(r).abs()}function ec(e,n,t,i){var r,o,s,a,u,l,c,f,p,d=e.constructor,g=t!==void 0;if(g?(Pn(t,1,Ti),i===void 0?i=d.rounding:Pn(i,0,8)):(t=d.precision,i=d.rounding),!e.isFinite())c=kd(e);else{for(c=Mt(e),s=c.indexOf("."),g?(r=2,n==16?t=t*4-3:n==8&&(t=t*3-2)):r=n,s>=0&&(c=c.replace(".",""),p=new d(1),p.e=c.length-s,p.d=xa(Mt(p),10,r),p.e=p.d.length),f=xa(c,10,r),o=u=f.length;f[--u]==0;)f.pop();if(!f[0])c=g?"0p+0":"0";else{if(s<0?o--:(e=new d(e),e.d=f,e.e=o,e=Me(e,p,t,i,0,r),f=e.d,o=e.e,l=vd),s=f[t],a=r/2,l=l||f[t+1]!==void 0,l=i<4?(s!==void 0||l)&&(i===0||i===(e.s<0?3:2)):s>a||s===a&&(i===4||l||i===6&&f[t-1]&1||i===(e.s<0?8:7)),f.length=t,l)for(;++f[--t]>r-1;)f[t]=0,t||(++o,f.unshift(1));for(u=f.length;!f[u-1];--u);for(s=0,c="";s<u;s++)c+=Yl.charAt(f[s]);if(g){if(u>1)if(n==16||n==8){for(s=n==16?4:3,--u;u%s;u++)c+="0";for(f=xa(c,r,n),u=f.length;!f[u-1];--u);for(s=1,c="1.";s<u;s++)c+=Yl.charAt(f[s])}else c=c.charAt(0)+"."+c.slice(1);c=c+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)c="0"+c;c="0."+c}else if(++o>u)for(o-=u;o--;)c+="0";else o<u&&(c=c.slice(0,o)+"."+c.slice(o))}c=(n==16?"0x":n==2?"0b":n==8?"0o":"")+c}return e.s<0?"-"+c:c}function xd(e,n){if(e.length>n)return e.length=n,!0}function sv(e){return new this(e).abs()}function av(e){return new this(e).acos()}function uv(e){return new this(e).acosh()}function lv(e,n){return new this(e).plus(n)}function cv(e){return new this(e).asin()}function fv(e){return new this(e).asinh()}function pv(e){return new this(e).atan()}function mv(e){return new this(e).atanh()}function dv(e,n){e=new this(e),n=new this(n);var t,i=this.precision,r=this.rounding,o=i+4;return!e.s||!n.s?t=new this(NaN):!e.d&&!n.d?(t=wt(this,o,1).times(n.s>0?.25:.75),t.s=e.s):!n.d||e.isZero()?(t=n.s<0?wt(this,i,r):new this(0),t.s=e.s):!e.d||n.isZero()?(t=wt(this,o,1).times(.5),t.s=e.s):n.s<0?(this.precision=o,this.rounding=1,t=this.atan(Me(e,n,o,1)),n=wt(this,o,1),this.precision=i,this.rounding=r,t=e.s<0?t.minus(n):t.plus(n)):t=this.atan(Me(e,n,o,1)),t}function gv(e){return new this(e).cbrt()}function hv(e){return H(e=new this(e),e.e+1,2)}function bv(e,n,t){return new this(e).clamp(n,t)}function yv(e){if(!e||typeof e!="object")throw Error(Sa+"Object expected");var n,t,i,r=e.defaults===!0,o=["precision",1,Ti,"rounding",0,8,"toExpNeg",-zr,0,"toExpPos",0,zr,"maxE",0,zr,"minE",-zr,0,"modulo",0,9];for(n=0;n<o.length;n+=3)if(t=o[n],r&&(this[t]=Ql[t]),(i=e[t])!==void 0)if(yn(i)===i&&i>=o[n+1]&&i<=o[n+2])this[t]=i;else throw Error(Si+t+": "+i);if(t="crypto",r&&(this[t]=Ql[t]),(i=e[t])!==void 0)if(i===!0||i===!1||i===0||i===1)if(i)if(typeof crypto<"u"&&crypto&&(crypto.getRandomValues||crypto.randomBytes))this[t]=!0;else throw Error(Nd);else this[t]=!1;else throw Error(Si+t+": "+i);return this}function xv(e){return new this(e).cos()}function Ev(e){return new this(e).cosh()}function Ad(e){var n,t,i;function r(o){var s,a,u,l=this;if(!(l instanceof r))return new r(o);if(l.constructor=r,Ed(o)){l.s=o.s,te?!o.d||o.e>r.maxE?(l.e=NaN,l.d=null):o.e<r.minE?(l.e=0,l.d=[0]):(l.e=o.e,l.d=o.d.slice()):(l.e=o.e,l.d=o.d?o.d.slice():o.d);return}if(u=typeof o,u==="number"){if(o===0){l.s=1/o<0?-1:1,l.e=0,l.d=[0];return}if(o<0?(o=-o,l.s=-1):l.s=1,o===~~o&&o<1e7){for(s=0,a=o;a>=10;a/=10)s++;te?s>r.maxE?(l.e=NaN,l.d=null):s<r.minE?(l.e=0,l.d=[0]):(l.e=s,l.d=[o]):(l.e=s,l.d=[o]);return}if(o*0!==0){o||(l.s=NaN),l.e=NaN,l.d=null;return}return Ea(l,o.toString())}if(u==="string")return(a=o.charCodeAt(0))===45?(o=o.slice(1),l.s=-1):(a===43&&(o=o.slice(1)),l.s=1),Td.test(o)?Ea(l,o):rv(l,o);if(u==="bigint")return o<0?(o=-o,l.s=-1):l.s=1,Ea(l,o.toString());throw Error(Si+o)}if(r.prototype=R,r.ROUND_UP=0,r.ROUND_DOWN=1,r.ROUND_CEIL=2,r.ROUND_FLOOR=3,r.ROUND_HALF_UP=4,r.ROUND_HALF_DOWN=5,r.ROUND_HALF_EVEN=6,r.ROUND_HALF_CEIL=7,r.ROUND_HALF_FLOOR=8,r.EUCLID=9,r.config=r.set=yv,r.clone=Ad,r.isDecimal=Ed,r.abs=sv,r.acos=av,r.acosh=uv,r.add=lv,r.asin=cv,r.asinh=fv,r.atan=pv,r.atanh=mv,r.atan2=dv,r.cbrt=gv,r.ceil=hv,r.clamp=bv,r.cos=xv,r.cosh=Ev,r.div=vv,r.exp=_v,r.floor=Nv,r.hypot=Sv,r.ln=Tv,r.log=Iv,r.log10=Mv,r.log2=wv,r.max=kv,r.min=Cv,r.mod=Av,r.mul=Rv,r.pow=Pv,r.random=Dv,r.round=$v,r.sign=Ov,r.sin=Lv,r.sinh=Fv,r.sqrt=qv,r.sub=Vv,r.sum=Bv,r.tan=Jv,r.tanh=zv,r.trunc=Uv,e===void 0&&(e={}),e&&e.defaults!==!0)for(i=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],n=0;n<i.length;)e.hasOwnProperty(t=i[n++])||(e[t]=this[t]);return r.config(e),r}function vv(e,n){return new this(e).div(n)}function _v(e){return new this(e).exp()}function Nv(e){return H(e=new this(e),e.e+1,3)}function Sv(){var e,n,t=new this(0);for(te=!1,e=0;e<arguments.length;)if(n=new this(arguments[e++]),n.d)t.d&&(t=t.plus(n.times(n)));else{if(n.s)return te=!0,new this(1/0);t=n}return te=!0,t.sqrt()}function Ed(e){return e instanceof K||e&&e.toStringTag===Sd||!1}function Tv(e){return new this(e).ln()}function Iv(e,n){return new this(e).log(n)}function wv(e){return new this(e).log(2)}function Mv(e){return new this(e).log(10)}function kv(){return Md(this,arguments,-1)}function Cv(){return Md(this,arguments,1)}function Av(e,n){return new this(e).mod(n)}function Rv(e,n){return new this(e).mul(n)}function Pv(e,n){return new this(e).pow(n)}function Dv(e){var n,t,i,r,o=0,s=new this(1),a=[];if(e===void 0?e=this.precision:Pn(e,1,Ti),i=Math.ceil(e/X),this.crypto)if(crypto.getRandomValues)for(n=crypto.getRandomValues(new Uint32Array(i));o<i;)r=n[o],r>=429e7?n[o]=crypto.getRandomValues(new Uint32Array(1))[0]:a[o++]=r%1e7;else if(crypto.randomBytes){for(n=crypto.randomBytes(i*=4);o<i;)r=n[o]+(n[o+1]<<8)+(n[o+2]<<16)+((n[o+3]&127)<<24),r>=214e7?crypto.randomBytes(4).copy(n,o):(a.push(r%1e7),o+=4);o=i/4}else throw Error(Nd);else for(;o<i;)a[o++]=Math.random()*1e7|0;for(i=a[--o],e%=X,i&&e&&(r=tn(10,X-e),a[o]=(i/r|0)*r);a[o]===0;o--)a.pop();if(o<0)t=0,a=[0];else{for(t=-1;a[0]===0;t-=X)a.shift();for(i=1,r=a[0];r>=10;r/=10)i++;i<X&&(t-=X-i)}return s.e=t,s.d=a,s}function $v(e){return H(e=new this(e),e.e+1,this.rounding)}function Ov(e){return e=new this(e),e.d?e.d[0]?e.s:0*e.s:e.s||NaN}function Lv(e){return new this(e).sin()}function Fv(e){return new this(e).sinh()}function qv(e){return new this(e).sqrt()}function Vv(e,n){return new this(e).sub(n)}function Bv(){var e=0,n=arguments,t=new this(n[e]);for(te=!1;t.s&&++e<n.length;)t=t.plus(n[e]);return te=!0,H(t,this.precision,this.rounding)}function Jv(e){return new this(e).tan()}function zv(e){return new this(e).tanh()}function Uv(e){return H(e=new this(e),e.e+1,1)}R[Symbol.for("nodejs.util.inspect.custom")]=R.toString;R[Symbol.toStringTag]="Decimal";var K=R.constructor=Ad(Ql);va=new K(va);_a=new K(_a);var Ii=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],nc=["indexed_collection","list","tuple"],wa=[...nc,"collection","set","record","dictionary"],Ma=["scalar",...Ii,"boolean","string"],tc=["value",...wa,...Ma],ic=["expression","symbol","function",...tc],Yt=["any","unknown","nothing","never","error",...ic];function Rd(e){return typeof e!="string"?!1:Yt.includes(e)}function Qt(e){return typeof e=="string"?Yt.includes(e):typeof e!="object"||!("kind"in e)?!1:e.kind==="signature"||e.kind==="union"||e.kind==="intersection"||e.kind==="negation"||e.kind==="tuple"||e.kind==="list"||e.kind==="record"||e.kind==="dictionary"||e.kind==="set"||e.kind==="function"||e.kind==="collection"||e.kind==="indexed_collection"||e.kind==="reference"}var Dd=3,$d=1,Od=2,jv=4,Gv=5,Zv=6,Hv=7,Wv=8,Yv=9,Qv=10,Xv=11;function _e(e,n=0){if(typeof e=="string")return e;let t="";switch(e.kind){case"value":typeof e.value=="string"?t=`"${e.value}"`:typeof e.value=="boolean"?t=e.value?"true":"false":t=e.value.toString();break;case"reference":t=e.name;break;case"negation":t=`!${_e(e.type,Dd)}`;break;case"union":t=e.types.map(u=>_e(u,$d)).join(" | ");break;case"intersection":t=e.types.map(u=>_e(u,Od)).join(" & ");break;case"expression":t=`expression<${Pd(e.operator)}>`;break;case"symbol":t=`symbol<${Pd(e.name)}>`;break;case"numeric":Number.isFinite(e.lower)&&Number.isFinite(e.upper)?t=`${e.type}<${e.lower}..${e.upper}>`:Number.isFinite(e.lower)?t=`${e.type}<${e.lower}..>`:Number.isFinite(e.upper)?t=`${e.type}<..${e.upper}>`:t=`${e.type}`;break;case"list":if(e.dimensions&&typeof e.elements=="string"&&Ii.includes(e.elements)){if(e.dimensions===void 0)e.elements==="number"&&(t="tensor");else if(e.dimensions.length===1)e.elements==="number"?e.dimensions[0]<0?t="vector":t=`vector<${e.dimensions[0]}>`:e.dimensions[0]<0?t=`vector<${_e(e.elements)}>`:t=`vector<${_e(e.elements)}^${e.dimensions[0]}>`;else if(e.dimensions.length===2){let u=e.dimensions;e.elements==="number"?u[0]<0&&u[1]<0?t="matrix":t=`matrix<${u[0]}x${u[1]}>`:u[0]<0&&u[1]<0?t=`matrix<${_e(e.elements)}>`:t=`matrix<${_e(e.elements)}^(${u[0]}x${u[1]})>`}}if(!t){let u=e.dimensions?e.dimensions.length===1?`^${e.dimensions[0].toString()}`:`^(${e.dimensions.join("x")})`:"";t=`list<${_e(e.elements)}${u}>`}break;case"record":t=`record<${Object.entries(e.elements).map(([u,l])=>`${u}: ${_e(l)}`).join(", ")}>`;break;case"dictionary":t=`dictionary<${_e(e.values)}>`;break;case"set":t=`set<${_e(e.elements)}>`;break;case"collection":t=`collection<${_e(e.elements)}>`;break;case"indexed_collection":t=`indexed_collection<${_e(e.elements)}>`;break;case"tuple":if(e.elements.length===0)t="tuple";else if(e.elements.length===1){let[u]=e.elements;t=`tuple<${jr(u)}>`}else t="tuple<"+e.elements.map(u=>jr(u)).join(", ")+">";break;case"signature":let r=e.args?e.args.map(u=>jr(u)).join(", "):"",o=e.optArgs?e.optArgs.map(u=>jr(u)+"?").join(", "):"",s=e.variadicArg?e.variadicMin===0?`${jr(e.variadicArg)}*`:`${jr(e.variadicArg)}+`:"";t=`(${[r,o,s].filter(u=>u).join(", ")}) -> ${_e(e.result)}`;break;default:t="error"}return n>0&&n>Kv(e.kind)?`(${t})`:t}function jr(e){return e.name?`${e.name}: ${_e(e.type)}`:_e(e.type)}function Pd(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`\`${e}\``}function Kv(e){switch(e){case"negation":return Dd;case"union":return $d;case"intersection":return Od;case"list":return jv;case"record":return Gv;case"dictionary":return Zv;case"set":return Hv;case"collection":case"indexed_collection":return Wv;case"tuple":return Yv;case"signature":return Qv;case"value":return Xv;default:return 0}}function e2(e,n){if(e===n)return 0;if(e.length===0)return n.length;if(n.length===0)return e.length;let t=Array.from({length:e.length+1},(r,o)=>o),i=new Array(e.length+1);for(let r=1;r<=n.length;r++){i[0]=r;for(let o=1;o<=e.length;o++){let s=e[o-1]===n[r-1]?0:1;i[o]=Math.min(t[o]+1,i[o-1]+1,t[o-1]+s)}[t,i]=[i,t]}return t[e.length]}function ka(e,n){let i=null,r=1/0,o=e.length;for(let s of n){if(Math.abs(o-s.length)>7)continue;let a=e2(e,s);if(a===0)return s;a<=7&&a<r&&(r=a,i=s)}return i}var Ca=class{input;pos=0;line=1;column=1;tokens=[];constructor(n){this.input=n}saveState(){return{pos:this.pos,line:this.line,column:this.column,tokens:[...this.tokens]}}restoreState(n){this.pos=n.pos,this.line=n.line,this.column=n.column,this.tokens=n.tokens}error(n){throw new Error(`Lexer error at line ${this.line}, column ${this.column}: ${n}`)}peek(n=0){let t=this.pos+n;return t<this.input.length?this.input[t]:""}advance(){let n=this.input[this.pos++];return n===`
@@ -1012,7 +1012,7 @@ ${r}`}return r}compileFunction(n,t,i,r){let o=this.createTarget(),s=C.compile(n,
1012
1012
  `,u}compileVectorized(n,t,i,r){let s=this.compileFunction(n,`_${t}_scalar`,i,r)+`
1013
1013
  `;return s+=`# Vectorized version
1014
1014
  `,s+=`${t} = np.vectorize(_${t}_scalar)
1015
- `,s}compileLambda(n,t){let i=this.createTarget(),r=C.compile(n,i);return`lambda ${t.join(", ")}: ${r}`}};var qI=/^(Sin|Cos|Tan|Cot|Sec|Csc)$/;function zl(e){return qI.test(e.operator)?!0:m(e)?e.ops.some(zl):!1}function tr(e,...n){return n.includes(e.operator)?!0:m(e)?e.ops.some(t=>tr(t,...n)):!1}function Ge(e,n){let t=e.engine;if(m(e)&&e.ops.length>0){let i=e,r=i.ops.map(s=>Ge(s,n));r.some((s,a)=>s!==i.ops[a])&&(e=t._fn(i.operator,r))}return n(e)??e}function ld(e,n){if(!m(e)||!m(n))return!1;let t=e.op1,i=n.op1;return t!==void 0&&i!==void 0&&t.isSame(i)}function VI(e){let n=e.engine,t=e.operator;if(!m(e))return;let i=e.op1;if(i){if(t==="Sec")return n.One.div(n._fn("Cos",[i]));if(t==="Csc")return n.One.div(n._fn("Sin",[i]))}}function SE(e){return Ge(e,VI)}function BI(e){let n=e.engine,t=e.operator;if(!m(e))return;let i=e.op1;if(i){if(t==="Tan")return n._fn("Sin",[i]).div(n._fn("Cos",[i]));if(t==="Cot")return n._fn("Cos",[i]).div(n._fn("Sin",[i]))}}function TE(e){return Ge(e,BI)}function JI(e){let n=e.engine;if(e.operator!=="Divide"||!m(e))return;let t=e.op1,i=e.op2;if(!(!t||!i)){if(t.operator==="Sin"&&i.operator==="Cos"&&ld(t,i))return m(t)?n._fn("Tan",[t.op1]):void 0;if(t.operator==="Cos"&&i.operator==="Sin"&&ld(t,i))return m(t)?n._fn("Cot",[t.op1]):void 0}}function IE(e){return Ge(e,JI)}function zI(e){if(m(e,"Negate"))return e.op1;if(m(e,"Multiply")){let n=e.ops.findIndex(t=>t.isSame(-1));if(n>=0){let t=e.ops.filter((i,r)=>r!==n);return t.length===1?t[0]:e.engine._fn("Multiply",t)}}}function UI(e){let n=e.engine,t=e.operator;if(!m(e))return;let i=e.op1;if(!i)return;let r=zI(i);if(r){if(t==="Cos")return n._fn("Cos",[r]);if(t==="Sec")return n._fn("Sec",[r]);if(t==="Sin")return n._fn("Sin",[r]).neg();if(t==="Tan")return n._fn("Tan",[r]).neg();if(t==="Csc")return n._fn("Csc",[r]).neg();if(t==="Cot")return n._fn("Cot",[r]).neg()}}function wE(e){return Ge(e,UI)}function jI(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||t.operator!=="Sin"||!i.isSame(2)||!m(t))return;let r=t.op1;if(r)return n.One.sub(n._fn("Cos",[r]).pow(2))}function cd(e){return Ge(e,jI)}function GI(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||t.operator!=="Cos"||!i.isSame(2)||!m(t))return;let r=t.op1;if(r)return n.One.sub(n._fn("Sin",[r]).pow(2))}function ME(e){return Ge(e,GI)}function ZI(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||t.operator!=="Cos"||!i.isSame(2)||!m(t))return;let r=t.op1;if(r)return n.One.add(n._fn("Cos",[r.mul(2)])).div(2)}function kE(e){return Ge(e,ZI)}function HI(e){let n=e.engine;if(m(e,"Divide")){let i=e.op1,r=e.op2;if(!i||!r||!r.isSame(2))return;if(m(i,"Add")&&i.ops.length===2)return vE(n,i.ops)}let t=i=>!!(i.re===.5&&i.im===0||i.isSame(n.Half));if(m(e,"Multiply")){let i=e.ops.findIndex(r=>t(r));if(i>=0){let r=e.ops.filter((o,s)=>s!==i);if(r.length===1&&r[0].operator==="Add"){let o=r[0];if(m(o)&&o.ops.length===2)return vE(n,o.ops)}}}if(m(e,"Add")&&e.ops.length===2){let i,r,o=!1,s=a=>a.re===-.5&&a.im===0;for(let a of e.ops){if(t(a)){i=a;continue}let u=a,l=!1;if(m(a,"Negate")&&(l=!0,u=a.op1),m(u,"Divide")&&u.op2?.isSame(2)){let c=u.op1;if(c?.operator==="Cos"){r=c,o=l;continue}}if(m(u,"Multiply")){let c=u.ops.findIndex(p=>t(p));if(c>=0){let p=u.ops.filter((d,g)=>g!==c);if(p.length===1&&p[0].operator==="Cos"){r=p[0],o=l;continue}}let f=u.ops.findIndex(p=>s(p));if(f>=0){let p=u.ops.filter((d,g)=>g!==f);if(p.length===1&&p[0].operator==="Cos"){r=p[0],o=!l;continue}}}}if(i&&r){if(!m(r))return;let a=r.op1;if(!a)return;let u;if(m(a,"Multiply")){let l=a.ops.findIndex(c=>c.isSame(2));if(l>=0){let c=a.ops.filter((f,p)=>p!==l);u=c.length===1?c[0]:n._fn("Multiply",c)}}return u?o?n._fn("Sin",[u]).pow(2):n._fn("Cos",[u]).pow(2):void 0}}}function vE(e,n){let t=-1,i=-1,r=!1;for(let u=0;u<n.length;u++)if(n[u].isSame(1))t=u;else if(n[u].operator==="Cos")i=u,r=!1;else if(n[u].operator==="Negate"){let l=n[u];m(l)&&l.op1?.operator==="Cos"&&(i=u,r=!0)}if(t<0||i<0)return;let o;if(r){let u=n[i];if(!m(u))return;o=u.op1}else o=n[i];if(!m(o))return;let s=o.op1;if(!s)return;let a;if(m(s,"Multiply")){let u=s.ops.findIndex(l=>l.isSame(2));if(u>=0){let l=s.ops.filter((c,f)=>f!==u);a=l.length===1?l[0]:e._fn("Multiply",l)}}if(a)return r?e._fn("Sin",[a]).pow(2):e._fn("Cos",[a]).pow(2)}function fd(e){return Ge(e,HI)}function WI(e){let n=e.engine;if(e.operator!=="Multiply"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r];if(!m(o)||!m(s))continue;let a=o.op1,u=s.op1;if(!a||!u)continue;let l;if(o.operator==="Sin"&&s.operator==="Cos"?l=n._fn("Sin",[a.add(u)]).add(n._fn("Sin",[a.sub(u)])).div(2):o.operator==="Cos"&&s.operator==="Sin"?l=n._fn("Sin",[a.add(u)]).sub(n._fn("Sin",[a.sub(u)])).div(2):o.operator==="Cos"&&s.operator==="Cos"?l=n._fn("Cos",[a.add(u)]).add(n._fn("Cos",[a.sub(u)])).div(2):o.operator==="Sin"&&s.operator==="Sin"&&(l=n._fn("Cos",[a.sub(u)]).sub(n._fn("Cos",[a.add(u)])).div(2)),l){let c=t.filter((f,p)=>p!==i&&p!==r);return c.length===0?l:l.mul(c.length===1?c[0]:n._fn("Multiply",c))}}}function CE(e){return Ge(e,WI)}function YI(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r],a;if(o.operator==="Sin"&&s.operator==="Sin"){if(!m(o)||!m(s))continue;let u=o.op1,l=s.op1;if(u&&l){let c=u.add(l).div(2),f=u.sub(l).div(2);a=n._fn("Sin",[c]).mul(n._fn("Cos",[f])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Cos"){if(!m(o)||!m(s))continue;let u=o.op1,l=s.op1;if(u&&l){let c=u.add(l).div(2),f=u.sub(l).div(2);a=n._fn("Cos",[c]).mul(n._fn("Cos",[f])).mul(2)}}else if(o.operator==="Sin"&&s.operator==="Negate"){if(!m(o)||!m(s)||s.op1?.operator!=="Sin")continue;let u=s.op1;if(!m(u))continue;let l=o.op1,c=u.op1;if(l&&c){let f=l.add(c).div(2),p=l.sub(c).div(2);a=n._fn("Cos",[f]).mul(n._fn("Sin",[p])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Negate"){if(!m(o)||!m(s)||s.op1?.operator!=="Cos")continue;let u=s.op1;if(!m(u))continue;let l=o.op1,c=u.op1;if(l&&c){let f=l.add(c).div(2),p=l.sub(c).div(2);a=n._fn("Sin",[f]).mul(n._fn("Sin",[p])).mul(-2)}}if(a){let u=t.filter((l,c)=>c!==i&&c!==r);return u.length===0?a:a.add(u.length===1?u[0]:n._fn("Add",u))}}}function Ul(e){return Ge(e,YI)}function QI(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!m(e))return;let i=e.op1;if(i){if(m(i,"Add")&&i.ops.length===2){let[r,o]=i.ops;return t==="Sin"?n._fn("Sin",[r]).mul(n._fn("Cos",[o])).add(n._fn("Cos",[r]).mul(n._fn("Sin",[o]))):n._fn("Cos",[r]).mul(n._fn("Cos",[o])).sub(n._fn("Sin",[r]).mul(n._fn("Sin",[o])))}if(m(i,"Subtract")){let r=i.op1,o=i.op2;return!r||!o?void 0:t==="Sin"?n._fn("Sin",[r]).mul(n._fn("Cos",[o])).sub(n._fn("Cos",[r]).mul(n._fn("Sin",[o]))):n._fn("Cos",[r]).mul(n._fn("Cos",[o])).add(n._fn("Sin",[r]).mul(n._fn("Sin",[o])))}}}function AE(e){return Ge(e,QI)}function XI(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r],a=I=>{if(I.operator!=="Multiply"||!m(I))return null;let M=I.ops;if(M.length!==2)return null;let[w,k]=M;return w.operator==="Sin"&&k.operator==="Cos"?{sin:w,cos:k}:w.operator==="Cos"&&k.operator==="Sin"?{sin:k,cos:w}:null},u=I=>{if(I.operator!=="Multiply"||!m(I))return null;let M=I.ops;if(M.length!==2)return null;let[w,k]=M;return w.operator==="Cos"&&k.operator==="Cos"?{cos1:w,cos2:k}:null},l=I=>{if(I.operator!=="Multiply"||!m(I))return null;let M=I.ops;if(M.length!==2)return null;let[w,k]=M;return w.operator==="Sin"&&k.operator==="Sin"?{sin1:w,sin2:k}:null},c=I=>m(I)?I.op1:void 0,f=a(o),p=a(s),d=m(o,"Negate")&&o.op1?a(o.op1):null,g=m(s,"Negate")&&s.op1?a(s.op1):null;if(f&&p){let I=c(f.sin),M=c(f.cos),w=c(p.sin),k=c(p.cos);if(I&&M&&w&&k&&I.isSame(k)&&M.isSame(w)){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Sin",[I.add(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(f&&g){let I=c(f.sin),M=c(f.cos),w=c(g.sin),k=c(g.cos);if(I&&M&&w&&k&&I.isSame(k)&&M.isSame(w)){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Sin",[I.sub(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(d&&p){let I=c(d.sin),M=c(d.cos),w=c(p.sin),k=c(p.cos);if(I&&M&&w&&k&&w.isSame(M)&&k.isSame(I)){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Sin",[w.sub(k)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}let h=u(o),b=u(s),y=l(o),x=l(s),N=m(o,"Negate")&&o.op1?l(o.op1):null,T=m(s,"Negate")&&s.op1?l(s.op1):null;if(h&&T){let I=c(h.cos1),M=c(h.cos2),w=c(T.sin1),k=c(T.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.add(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(N&&b){let I=c(b.cos1),M=c(b.cos2),w=c(N.sin1),k=c(N.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.add(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(h&&x){let I=c(h.cos1),M=c(h.cos2),w=c(x.sin1),k=c(x.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.sub(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(y&&b){let I=c(b.cos1),M=c(b.cos2),w=c(y.sin1),k=c(y.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.sub(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}}}function jl(e){return Ge(e,XI)}function KI(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!m(e))return;let i=e.op1;if(i&&m(i,"Multiply")){let r=i.ops,o=r.findIndex(s=>s.isSame(2));if(o>=0){let s=r.filter((u,l)=>l!==o),a=s.length===1?s[0]:n._fn("Multiply",s);return t==="Sin"?n._fn("Sin",[a]).mul(n._fn("Cos",[a])).mul(2):n._fn("Cos",[a]).pow(2).mul(2).sub(n.One)}}}function pd(e){return Ge(e,KI)}function ew(e){let n=e.engine;if(m(e,"Multiply")){let t=e.ops,i=t.findIndex(r=>r.isSame(2));if(i>=0){let r=t.filter((a,u)=>u!==i),o,s;for(let a of r)a.operator==="Sin"&&!o?o=a:a.operator==="Cos"&&!s&&(s=a);if(o&&s&&ld(o,s)){if(!m(o))return;let a=r.filter(l=>l!==o&&l!==s),u=n._fn("Sin",[o.op1.mul(2)]);return a.length===0?u:u.mul(a.length===1?a[0]:n._fn("Multiply",a))}}}if(m(e,"Add")&&e.ops.length===2){let[t,i]=e.ops;if(m(t,"Power")&&t.op1?.operator==="Cos"&&t.op2?.isSame(2)&&i.operator==="Negate"&&m(i)&&i.op1?.operator==="Power"&&m(i.op1)&&i.op1.op1?.operator==="Sin"&&i.op1.op2?.isSame(2)){let u=t.op1,l=i.op1;if(m(u)&&m(l)){let c=l.op1;if(m(c)){let f=u.op1,p=c.op1;if(f&&p&&f.isSame(p))return n._fn("Cos",[f.mul(2)])}}}let r=u=>{if(!m(u,"Multiply"))return;let l=u.ops.findIndex(p=>p.isSame(2));if(l<0)return;let c=u.ops.filter((p,d)=>d!==l);if(c.length!==1)return;let f=c[0];if(m(f,"Power")&&f.op1?.operator==="Cos"&&f.op2?.isSame(2)){let p=f.op1;if(m(p))return p.op1}},o=r(t);if(o&&(i.isSame(-1)||m(i,"Negate")&&i.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);if(o=r(i),o&&(t.isSame(-1)||m(t,"Negate")&&t.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);let s=u=>{if(!m(u,"Multiply"))return;let l=u.ops.findIndex(p=>p.isSame(2));if(l<0)return;let c=u.ops.filter((p,d)=>d!==l);if(c.length!==1)return;let f=c[0];if(m(f,"Power")&&f.op1?.operator==="Sin"&&f.op2?.isSame(2)){let p=f.op1;if(m(p))return p.op1}};if(t.isSame(1)&&m(i,"Negate")&&i.op1){let u=s(i.op1);if(u)return n._fn("Cos",[u.mul(2)])}if(i.isSame(1)&&m(t,"Negate")&&t.op1){let u=s(t.op1);if(u)return n._fn("Cos",[u.mul(2)])}let a=u=>{if(!m(u,"Multiply"))return;let l=u.ops.findIndex(p=>p.isSame(-2));if(l<0)return;let c=u.ops.filter((p,d)=>d!==l);if(c.length!==1)return;let f=c[0];if(m(f,"Power")&&f.op1?.operator==="Sin"&&f.op2?.isSame(2)){let p=f.op1;if(m(p))return p.op1}};if(t.isSame(1)){let u=a(i);if(u)return n._fn("Cos",[u.mul(2)])}if(i.isSame(1)){let u=a(t);if(u)return n._fn("Cos",[u.mul(2)])}}}function RE(e){return Ge(e,ew)}function nw(e){let n=e.engine;if(e.operator!=="Tan"||!m(e))return;let t=e.op1;if(t){if(m(t,"Add")&&t.ops.length===2){let[i,r]=t.ops,o=n._fn("Tan",[i]),s=n._fn("Tan",[r]);return o.add(s).div(n.One.sub(o.mul(s)))}if(m(t,"Subtract")){let i=t.op1,r=t.op2;if(!i||!r)return;let o=n._fn("Tan",[i]),s=n._fn("Tan",[r]);return o.sub(s).div(n.One.add(o.mul(s)))}}}function PE(e){return Ge(e,nw)}var tw=[{value:0,angle:[0,1]},{value:1/Math.sqrt(3),angle:[1,6]},{value:1,angle:[1,4]},{value:Math.sqrt(3),angle:[1,3]},{value:2-Math.sqrt(3),angle:[1,12]},{value:2+Math.sqrt(3),angle:[5,12]}];function iw(e,n=1e-10){for(let t of tw)if(Math.abs(t.value-e)<n)return t.angle}function rw(e){if(e.operator!=="Multiply"||!m(e))return;let n=e.ops;if(n.length<2)return;let t=[],i=1;for(let r of n)if(m(r,"Tan")&&r.op1)t.push(r.op1);else if(m(r,"Negate")&&r.op1?.operator==="Sqrt"){let o=r.op1;if(m(o)){let s=o.op1;if(E(s)&&typeof s.re=="number")i*=-Math.sqrt(s.re);else return}else return}else if(m(r,"Sqrt")){let o=r.op1;if(o&&E(o)&&typeof o.re=="number")i*=Math.sqrt(o.re);else return}else if(E(r)&&typeof r.re=="number")i*=r.re;else return;if(t.length===2)return[i,t[0],t[1]]}function _E(e){if(m(e,"Multiply")){let n=!1,t;for(let i of e.ops)if(_(i,"Pi"))n=!0;else if(E(i)&&typeof i.re=="number"){let r=i.re;for(let o=1;o<=36;o++){let s=Math.round(r*o);if(Math.abs(s/o-r)<1e-10){t=[s,o];break}}}if(n&&t)return t}if(_(e,"Pi"))return[1,1]}function ow(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(t.length!==3)return;let i=[],r;for(let x=0;x<t.length;x++){let N=t[x];if(m(N,"Tan")&&N.op1)i.push({arg:N.op1,index:x});else{let T=rw(N);T&&(r={coef:T[0],arg1:T[1],arg2:T[2],index:x})}}if(i.length!==2||!r)return;let[o,s]=i,a=o.arg.isSame(r.arg1)||o.arg.isSame(r.arg2),u=s.arg.isSame(r.arg1)||s.arg.isSame(r.arg2),l=o.arg.isSame(r.arg2)||o.arg.isSame(r.arg1),c=s.arg.isSame(r.arg2)||s.arg.isSame(r.arg1);if(!(a&&c||u&&l))return;let f=-r.coef;if(f<=0)return;let p=iw(f);if(!p)return;let d=_E(o.arg),g=_E(s.arg);if(!d||!g)return;let h=NE(NE(d[1],g[1]),p[1]);if(d[0]*(h/d[1])+g[0]*(h/g[1])+p[0]*(h/p[1])!==h)return;let y=n._fn("Multiply",[n.number([p[0],p[1]]),n.symbol("Pi")]);return n._fn("Tan",[y]).neg()}function NE(e,n){return Math.abs(e*n)/sw(e,n)}function sw(e,n){for(e=Math.abs(e),n=Math.abs(n);n;){let t=n;n=e%n,e=t}return e}function DE(e){return Ge(e,ow)}function aw(e){let n=e.engine;if(e.operator!=="Multiply"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r];if(!m(o)||!m(s))continue;let a=o.op1,u=s.op1;if(!(!a||!u)){if(o.operator==="Tan"&&s.operator==="Tan"){let l=o,c=s,f=n._fn("Cot",[a.add(u)]),p=n.One.sub(l.add(c).mul(f)),d=t.filter((g,h)=>h!==i&&h!==r);return d.length===0?p:p.mul(d.length===1?d[0]:n._fn("Multiply",d))}if(o.operator==="Cot"&&s.operator==="Cot"){let l=o,c=s,f=n._fn("Cot",[a.add(u)]),p=n.One.add(l.add(c).mul(f)),d=t.filter((g,h)=>h!==i&&h!==r);return d.length===0?p:p.mul(d.length===1?d[0]:n._fn("Multiply",d))}}}}function $E(e){return Ge(e,aw)}function uw(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||!i.isSame(2)||!m(t))return;let r=t.op1;if(r){if(t.operator==="Tan")return n._fn("Sec",[r]).pow(2).sub(n.One);if(t.operator==="Cot")return n._fn("Csc",[r]).pow(2).sub(n.One);if(t.operator==="Sec")return n.One.add(n._fn("Tan",[r]).pow(2));if(t.operator==="Csc")return n.One.add(n._fn("Cot",[r]).pow(2))}}function OE(e){return Ge(e,uw)}function lw(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(t.length!==2)return;let i=p=>{let d=!1,g=p;if(m(p,"Negate")&&(d=!0,g=p.op1),!m(g)||g.operator!=="Power"||!g.op2?.isSame(2))return null;let h=g.op1;if(!m(h)||!h.op1)return null;let b=h.operator;return["Tan","Cot","Sec","Csc"].includes(b)?{func:b,arg:h.op1,neg:d}:null},r=i(t[0]),o=i(t[1]);if(r&&o&&r.arg.isSame(o.arg)){if(r.func==="Cot"&&!r.neg&&o.func==="Csc"&&o.neg||r.func==="Csc"&&r.neg&&o.func==="Cot"&&!o.neg)return n.number(-1);if(r.func==="Csc"&&!r.neg&&o.func==="Cot"&&o.neg||r.func==="Cot"&&r.neg&&o.func==="Csc"&&!o.neg)return n.One;if(r.func==="Tan"&&!r.neg&&o.func==="Sec"&&o.neg||r.func==="Sec"&&r.neg&&o.func==="Tan"&&!o.neg)return n.number(-1);if(r.func==="Sec"&&!r.neg&&o.func==="Tan"&&o.neg||r.func==="Tan"&&r.neg&&o.func==="Sec"&&!o.neg)return n.One}let s=-1,a=-1,u=!1;for(let p=0;p<t.length;p++){let d=t[p];d.isSame(1)?(s=p,u=!1):d.isSame(-1)||m(d,"Negate")&&d.op1?.isSame(1)?(s=p,u=!0):m(d,"Power")&&d.op2?.isSame(2)&&(a=p)}if(s<0||a<0)return;let l=t[a];if(!m(l))return;let c=l.op1;if(!c||!m(c))return;let f=c.op1;if(f){if(c.operator==="Sec"&&u)return n._fn("Tan",[f]).pow(2);if(c.operator==="Csc"&&u)return n._fn("Cot",[f]).pow(2);if(c.operator==="Tan"&&!u)return n._fn("Sec",[f]).pow(2);if(c.operator==="Cot"&&!u)return n._fn("Csc",[f]).pow(2)}}function md(e){return Ge(e,lw)}function cw(e){let n=e.engine;if(!m(e,"Multiply"))return[1,n.One,e];for(let t=0;t<e.ops.length;t++){let i=e.ops[t],r;if(E(i)&&typeof i.re=="number"&&i.im===0&&(r=i.re),r!==void 0){let o=e.ops.filter((a,u)=>u!==t),s=o.length===1?o[0]:n._fn("Multiply",o);return[r,i,s]}}return[1,n.One,e]}function fw(e){let n=e.engine;if(e.operator!=="Multiply"||!m(e))return;let t=e.ops;if(t.length<2)return;let i=[],r=[];for(let w of t)if(m(w,"Cos")&&w.op1){let k=cw(w.op1);k?i.push({arg:k[2],numericMult:k[0],symbolicCoeff:k[1]}):i.push({arg:w.op1,numericMult:1,symbolicCoeff:n.One})}else r.push(w);if(i.length<2)return;let o=i[0].arg,s=i.filter(w=>w.arg.isSame(o)),a=i.filter(w=>!w.arg.isSame(o));if(s.length<2)return;s.sort((w,k)=>w.numericMult-k.numericMult);let u=[],l=[],c=[...s],f=c[0].numericMult;if(f>0){u.push(c[0]);let w=new Set([0]),k=f*2;for(;;){let P=c.findIndex((F,G)=>!w.has(G)&&Math.abs(F.numericMult-k)<1e-10);if(P===-1)break;u.push(c[P]),w.add(P),k*=2}l=c.filter((P,F)=>!w.has(F))}if(u.length<2)return;let p=u[0].numericMult,d=[...r];for(let w of l){let k=w.symbolicCoeff.isSame(n.One)?w.arg:n._fn("Multiply",[w.symbolicCoeff,w.arg]);d.push(n._fn("Cos",[k]))}for(let w of a){let k=w.symbolicCoeff.isSame(n.One)?w.arg:n._fn("Multiply",[w.symbolicCoeff,w.arg]);d.push(n._fn("Cos",[k]))}let g=u.length,h=u[0].symbolicCoeff,b=Math.pow(2,g);if(_(o,"Pi")){let w=1/(b+1);if(Math.abs(p-w)<1e-10){let k=n.number([1,b]);return d.length===0?k:k.mul(d.length===1?d[0]:n._fn("Multiply",d))}}let y=h.mul(b),x=h.isSame(n.One)?o:n._fn("Multiply",[h,o]),N=n._fn("Multiply",[y,o]),T=n._fn("Sin",[N]),I=n._fn("Sin",[x]),M=T.div(n.number(b).mul(I));return d.length===0?M:M.mul(d.length===1?d[0]:n._fn("Multiply",d))}function LE(e){return Ge(e,fw)}function pw(e){if(m(e,"Power")&&e.op2?.isSame(2)){let n=e.op1;if(m(n,"Sin")&&n.op1)return{func:"Sin",arg:n.op1,coef:1};if(m(n,"Cos")&&n.op1)return{func:"Cos",arg:n.op1,coef:1}}if(m(e,"Multiply")){let n=1,t;for(let i of e.ops)if(m(i,"Power")&&i.op2?.isSame(2)){let r=i.op1;(r?.operator==="Sin"||r?.operator==="Cos")&&(t=i)}else typeof i.re=="number"&&i.im===0&&(n*=i.re);if(m(t)){let i=t.op1;if(m(i,"Sin")&&i.op1)return{func:"Sin",arg:i.op1,coef:n};if(m(i,"Cos")&&i.op1)return{func:"Cos",arg:i.op1,coef:n}}}return null}function mw(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(t.length<2)return;let i=[],r=[],o=[];for(let s=0;s<t.length;s++){let a=t[s],u=pw(a);u?i.push({...u,index:s}):typeof a.re=="number"&&a.im===0&&E(a)?o.push({value:a.re,index:s}):r.push({expr:a,index:s})}for(let s=0;s<i.length;s++)for(let a=s+1;a<i.length;a++){let u=i[s],l=i[a];if(u.arg.isSame(l.arg)&&(u.func==="Sin"&&l.func==="Cos"||u.func==="Cos"&&l.func==="Sin")&&Math.abs(u.coef-l.coef)<1e-10){let c=u.coef,f=new Set([u.index,l.index]),p=t.filter((d,g)=>!f.has(g));return p.length===0?n.number(c):c===1?n._fn("Add",[n.One,...p]):n._fn("Add",[n.number(c),...p])}}for(let s of i)if(s.coef<0){let a=Math.abs(s.coef);for(let u of o)if(Math.abs(u.value-a)<1e-10){let l=new Set([s.index,u.index]),c=t.filter((d,g)=>!l.has(g)),f=s.func==="Sin"?"Cos":"Sin",p=n._fn(f,[s.arg]).pow(2).mul(a);return c.length===0?p:n._fn("Add",[p,...c])}}}function FE(e){return Ge(e,mw)}var dw=new Set(["Sin","Cos","Tan","Cot","Sec","Csc"]);function dd(e){let n=0;if(dw.has(e.operator)&&(n=1),m(e))for(let t of e.ops)n+=dd(t);return n}function gd(e){if(_(e)||E(e))return 1;let n=1;if(m(e))for(let t of e.ops)n+=gd(t);return n}function qE(e){let n=dd(e),t=gd(e);return n*1e3+t}var VE=qE;function hd(e,n){if(e.length===0)throw new Error("bestOf called with empty array");if(e.length===1)return e[0];let t=e[0],i=n(t);for(let r=1;r<e.length;r++){let o=n(e[r]);o<i&&(t=e[r],i=o)}return t}function ya(e,n){let t=n(e);return t.isSame(e)?null:t}function BE(e,n){let t=ya(e,cd),i=ya(e,ME),r=[e];return t&&r.push(t),i&&r.push(i),hd(r,n)}function gw(e,n){return BE(e,n)}function hw(e,n){let t=ya(e,CE),i=[e];if(t){i.push(t);let r=ya(t,jl);r&&i.push(r)}return hd(i,n)}function bw(e,n){let t=ya(e,jl),i=[e];return t&&i.push(t),hd(i,n)}function yw(e,n){let t=PE(e);return t=$E(t),t}function xw(e,n){let t=e;return t=AE(t),t=pd(t),t=cd(t),t=kE(t),t=pd(t),t=hw(t,n),t=BE(t,n),t=Ul(t),t=gw(t,n),t=Ul(t),t=bw(t,n),t}function JE(e,n){if(!zl(e))return;let t=n?.measure??VE,i=n?.maxIterations??100,r=e,o=0,s=e,a=t(e),u=T=>{let I=t(T);I<a&&(s=T,a=I)};r=wE(r),u(r);let l=md(r);u(l);let c=OE(r);u(c),r=s;let f=fd(r);if(u(f),r=s,tr(r,"Sec","Csc")&&(r=SE(r),s=r,a=t(r)),tr(r,"Tan","Cot")){let T=yw(r,t);u(T),r=T}if(tr(r,"Tan","Cot")&&(r=TE(r),u(r)),tr(r,"Sin","Cos")){let T=Ul(r);u(T),r=s}if(tr(r,"Sin","Cos")){let T=t(r);for(;o<i;){o++;let I=xw(r,t),M=t(I);if(u(I),M>=T)break;r=I,T=M}}let p=IE(s);u(p);let d=RE(s);u(d);let g=LE(s);u(g);let h=fd(s);u(h);let b=md(s);u(b);let y=jl(s);u(y);let x=FE(s);u(x);let N=DE(s);if(u(N),s.operator==="Add"||s.operator==="Multiply"){let T=e.engine.box(s.json);u(T)}if(!s.isSame(e))return{value:s,because:"fu"}}var Vr=class e{True;False;Pi;E;Nothing;Zero;One;Half;NegativeOne;Two;I;NaN;PositiveInfinity;NegativeInfinity;ComplexInfinity;decimalSeparator=".";_numericConfiguration;_cacheStore=new yl;_runtimeState=new Vl;_configurationLifecycle=new Dl;_cost;_simplificationRules=new Ll([...Zy]);_compilationTargets=new Rl;_fuAlgorithm=JE;_commonSymbols={Pi:null,True:null,False:null,All:null,Nothing:null,None:null,Undefined:null,ImaginaryUnit:null,ExponentialE:null};_commonNumbers={"-5":null,"-4":null,"-3":null,"-2":null,2:null,3:null,4:null,5:null,6:null,7:null,8:null,9:null,10:null,11:null,12:null,36:null};_evalContextStack=[];get context(){return this._evalContextStack[this._evalContextStack.length-1]}get contextStack(){return[...this._evalContextStack]}set contextStack(n){this._evalContextStack=[...n]}get _BIGNUM_NAN(){return this._numericConfiguration.bignumNaN}get _BIGNUM_ZERO(){return this._numericConfiguration.bignumZero}get _BIGNUM_ONE(){return this._numericConfiguration.bignumOne}get _BIGNUM_TWO(){return this._numericConfiguration.bignumTwo}get _BIGNUM_HALF(){return this._numericConfiguration.bignumHalf}get _BIGNUM_PI(){return this._numericConfiguration.bignumPi}get _BIGNUM_NEGATIVE_ONE(){return this._numericConfiguration.bignumNegativeOne}get _typeResolver(){return hE(this)}declareType(n,t,i){nx(this,n,t,i)}get trace(){return this._evalContextStack.map(n=>n.name).filter(n=>n!==void 0).reverse()}get _generation(){return this._configurationLifecycle.generation}set _generation(n){this._configurationLifecycle.generation=n}strict;_latexDictionaryState=new Ol(()=>e.getLatexDictionary());static getStandardLibrary(n){return ml(n)}static getLatexDictionary(n){return aE(n)}constructor(n){if(n!==void 0&&typeof n!="object")throw Error("Unexpected argument");this.strict=!0,this._numericConfiguration=new Fl({precision:n?.precision,tolerance:n?.tolerance??"auto",angularUnit:"rad"});let t=new Bl(this),i=t.initializeCommonNumbers();this.Zero=i.Zero,this.One=i.One,this.Half=i.Half,this.NegativeOne=i.NegativeOne,this.Two=i.Two,this.NaN=i.NaN,this.PositiveInfinity=i.PositiveInfinity,this.NegativeInfinity=i.NegativeInfinity,this.I=i.I,this.ComplexInfinity=i.ComplexInfinity,this._reset(),this.pushScope(void 0,"system"),this.declareType("limits","expression<Limits>"),t.bootstrapLibraries(n?.libraries);let r=t.initializeCommonSymbolBindings(this._commonSymbols);this.True=r.True,this.False=r.False,this.Pi=r.Pi,this.E=r.E,this.Nothing=r.Nothing,this.pushScope(void 0,"global"),this._compilationTargets.registerDefaults(),Wd(this)}toJSON(){return"[ComputeEngine]"}[Symbol.toStringTag]="ComputeEngine";get latexDictionary(){return this._latexDictionaryState.dictionary}set latexDictionary(n){this._latexDictionaryState.dictionary=n}get _indexedLatexDictionary(){return this._latexDictionaryState.indexedDictionary}_reset(){this._configurationLifecycle.reset({refreshNumericConstants:()=>this._numericConfiguration.refreshConstants(),resetCommonSymbols:()=>kx(this._commonSymbols),purgeCaches:()=>this._cacheStore.purgeValues()})}listenToConfigurationChange(n){return this._configurationLifecycle.listen(n)}registerCompilationTarget(n,t){this._compilationTargets.register(n,t)}getCompilationTarget(n){return this._compilationTargets.get(n)}listCompilationTargets(){return this._compilationTargets.list()}unregisterCompilationTarget(n){this._compilationTargets.unregister(n)}_compile(n,t){return Go(n,t)}get precision(){return this._numericConfiguration.precision}set precision(n){this._numericConfiguration.setPrecision(n)&&this._reset()}get angularUnit(){return this._numericConfiguration.angularUnit}set angularUnit(n){this._numericConfiguration.setAngularUnit(n)&&this._reset()}get timeLimit(){return this._runtimeState.timeLimit}set timeLimit(n){this._runtimeState.timeLimit=n}get deadline(){return this._runtimeState.deadline}set deadline(n){this._runtimeState.deadline=n}get _deadline(){return this._runtimeState.deadline}set _deadline(n){this._runtimeState.deadline=n}get _timeRemaining(){return this._runtimeState.timeRemaining}get iterationLimit(){return this._runtimeState.iterationLimit}set iterationLimit(n){this._runtimeState.iterationLimit=n}get recursionLimit(){return this._runtimeState.recursionLimit}set recursionLimit(n){this._runtimeState.recursionLimit=n}get _isVerifying(){return this._runtimeState.isVerifying}set _isVerifying(n){this._runtimeState.isVerifying=n}get isVerifying(){return this._runtimeState.isVerifying}get tolerance(){return this._numericConfiguration.tolerance}set tolerance(n){this._numericConfiguration.setTolerance(n)}chop(n){let t=this._numericConfiguration.tolerance;return typeof n=="number"?Math.abs(n)<=t?0:n:n instanceof K?n.isPositive()&&n.lte(this._numericConfiguration.bignumTolerance)||n.isNegative()&&n.gte(this._numericConfiguration.negBignumTolerance)||n.isZero()?0:n:n instanceof z&&Math.abs(n.re)<=t&&Math.abs(n.im)<=t?0:n}bignum(n){return this._numericConfiguration.bignum(n)}complex(n,t){return n instanceof K&&(n=n.toNumber()),t instanceof K&&(t=t.toNumber()),new z(n,t)}_numericValue(n){if(n instanceof Ee)return n.asExact??n;let t=r=>this.bignum(r),i=this._numericConfiguration.precision>ht?r=>new _r(r,t):r=>new Nr(r,t);if(typeof n=="number")return Number.isInteger(n)?new we(n,i,t):i(n);if(typeof n=="bigint")return new we(n,i,t);if(Rt(n))return new we({rational:n},i,t);if(n instanceof K){if(n.isInteger()&&n.e<=Kd){let r=Re(n.toString());if(r!==null)return new we(r,i,t)}return i(n)}if(n instanceof z)return n.im===0?this._numericValue(n.re):i({re:n.re,im:n.im});if("im"in n||"re"in n)return n.im!==void 0&&n.im!==0?i(n):n.re instanceof K&&n.re.isInteger()?new we({rational:[Re(n.re.toString()),BigInt(1)]},i,t):typeof n.re=="number"&&Number.isInteger(n.re)?new we({rational:[n.re,1]},i,t):i(n);if("radical"in n||"rational"in n){if(n.radical!==void 0&&(!Number.isInteger(n.radical)||n.radical>=re))throw Error("Unexpected value for radical part:"+n.radical);return n.rational&&xn(n.rational)&&(!Number.isInteger(n.rational[0])||!Number.isInteger(n.rational[1]))?i(n):new we(n,i,t)}throw Error("Unexpected value")}get costFunction(){return this._cost??np}set costFunction(n){typeof n!="function"&&(this._cost=np),this._cost=n}get simplificationRules(){return this._simplificationRules.rules}set simplificationRules(n){this._simplificationRules.rules=n,this._cacheStore.invalidate("standard-simplification-rules")}lookupDefinition(n){return Yy(this,n)}_declareSymbolValue(n,t,i){return Qy(this,n,t,i)}_declareSymbolOperator(n,t,i){return Xy(this,n,t,i)}pushScope(n,t){rx(this,n,t)}popScope(){ox(this)}_pushEvalContext(n,t){bp(this,n,t)}_popEvalContext(){yp(this)}_inScope(n,t){return sx(this,n,t)}_printStack(n){ax(this,n)}_getSymbolValue(n){return Ky(this,n)}_setSymbolValue(n,t){ex(this,n,t)}declare(n,t,i){return tx(this,n,t,i)}declareSequence(n,t){return yx(this,n,t)}getSequenceStatus(n){return xx(this,n)}getSequence(n){return Ex(this,n)}listSequences(){return vx(this)}isSequence(n){return _x(this,n)}clearSequenceCache(n){Nx(this,n)}getSequenceCache(n){return Sx(this,n)}getSequenceTerms(n,t,i,r){return Tx(this,n,t,i,r)}lookupOEIS(n,t){return Ix(this,n,t)}checkSequenceOEIS(n,t,i){return wx(this,n,t,i)}assign(n,t){return ix(this,n,t)}_shouldContinueExecution(){return this._runtimeState.shouldContinueExecution()}_checkContinueExecution(){if(!this._shouldContinueExecution())throw new Error("timeout")}_cache(n,t,i){return this._cacheStore.getOrBuild(n,t,i)}box(n,t){let{canonical:i,structural:r}=aa(t?.form);return Kn(this,n,{canonical:i,structural:r,scope:t?.scope})}function(n,t,i){let{canonical:r,structural:o}=aa(i?.form);return hl(this,n,t,{metadata:i?.metadata,canonical:r,structural:o,scope:i?.scope})}error(n,t){return Jl(this,n,t)}typeError(n,t,i){return bE(this,n,t,i)}hold(n){return this._fn("Hold",[this.box(n,{form:"raw"})])}tuple(...n){return new je(this,"Tuple",n.map(t=>typeof t=="number"?this.number(t):t.canonical),{canonical:!0})}type(n){return n instanceof V?n:new V(n,this._typeResolver)}string(n,t){return new ji(this,n,t)}symbol(n,t){return iE(this,this._commonSymbols,n,t)}number(n,t){return rE(this,this._commonNumbers,n,t)}rules(n,t){return $s(this,n,t)}getRuleSet(n){if(n??="standard-simplification",n==="standard-simplification"){this._simplificationRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("standard-simplification-rules");let t=this._cache("standard-simplification-rules",()=>$s(this,this._simplificationRules.rules,{canonical:!0}));return this._simplificationRules.markCached(),t}if(n==="solve-univariate")return this._cache("univariate-roots-rules",()=>$s(this,Yb));if(n==="harmonization")return this._cache("harmonization-rules",()=>$s(this,Qb))}_fn(n,t,i){let r=i?.canonical??!0;return new je(this,n,t,{...i,canonical:r})}parse(n,t){return gE(this,n,t)}ask(n){return px(this,n)}verify(n){return Ho(this,n)}assume(n){return mx(this,n)}forget(n){xp(this,n)}};yE(Vr);var Ew="0.54.0";globalThis[Symbol.for("io.cortexjs.compute-engine")]={ComputeEngine:Vr.prototype.constructor,version:"0.54.0"};return HE(vw);})();
1015
+ `,s}compileLambda(n,t){let i=this.createTarget(),r=C.compile(n,i);return`lambda ${t.join(", ")}: ${r}`}};var qI=/^(Sin|Cos|Tan|Cot|Sec|Csc)$/;function zl(e){return qI.test(e.operator)?!0:m(e)?e.ops.some(zl):!1}function tr(e,...n){return n.includes(e.operator)?!0:m(e)?e.ops.some(t=>tr(t,...n)):!1}function Ge(e,n){let t=e.engine;if(m(e)&&e.ops.length>0){let i=e,r=i.ops.map(s=>Ge(s,n));r.some((s,a)=>s!==i.ops[a])&&(e=t._fn(i.operator,r))}return n(e)??e}function ld(e,n){if(!m(e)||!m(n))return!1;let t=e.op1,i=n.op1;return t!==void 0&&i!==void 0&&t.isSame(i)}function VI(e){let n=e.engine,t=e.operator;if(!m(e))return;let i=e.op1;if(i){if(t==="Sec")return n.One.div(n._fn("Cos",[i]));if(t==="Csc")return n.One.div(n._fn("Sin",[i]))}}function SE(e){return Ge(e,VI)}function BI(e){let n=e.engine,t=e.operator;if(!m(e))return;let i=e.op1;if(i){if(t==="Tan")return n._fn("Sin",[i]).div(n._fn("Cos",[i]));if(t==="Cot")return n._fn("Cos",[i]).div(n._fn("Sin",[i]))}}function TE(e){return Ge(e,BI)}function JI(e){let n=e.engine;if(e.operator!=="Divide"||!m(e))return;let t=e.op1,i=e.op2;if(!(!t||!i)){if(t.operator==="Sin"&&i.operator==="Cos"&&ld(t,i))return m(t)?n._fn("Tan",[t.op1]):void 0;if(t.operator==="Cos"&&i.operator==="Sin"&&ld(t,i))return m(t)?n._fn("Cot",[t.op1]):void 0}}function IE(e){return Ge(e,JI)}function zI(e){if(m(e,"Negate"))return e.op1;if(m(e,"Multiply")){let n=e.ops.findIndex(t=>t.isSame(-1));if(n>=0){let t=e.ops.filter((i,r)=>r!==n);return t.length===1?t[0]:e.engine._fn("Multiply",t)}}}function UI(e){let n=e.engine,t=e.operator;if(!m(e))return;let i=e.op1;if(!i)return;let r=zI(i);if(r){if(t==="Cos")return n._fn("Cos",[r]);if(t==="Sec")return n._fn("Sec",[r]);if(t==="Sin")return n._fn("Sin",[r]).neg();if(t==="Tan")return n._fn("Tan",[r]).neg();if(t==="Csc")return n._fn("Csc",[r]).neg();if(t==="Cot")return n._fn("Cot",[r]).neg()}}function wE(e){return Ge(e,UI)}function jI(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||t.operator!=="Sin"||!i.isSame(2)||!m(t))return;let r=t.op1;if(r)return n.One.sub(n._fn("Cos",[r]).pow(2))}function cd(e){return Ge(e,jI)}function GI(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||t.operator!=="Cos"||!i.isSame(2)||!m(t))return;let r=t.op1;if(r)return n.One.sub(n._fn("Sin",[r]).pow(2))}function ME(e){return Ge(e,GI)}function ZI(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||t.operator!=="Cos"||!i.isSame(2)||!m(t))return;let r=t.op1;if(r)return n.One.add(n._fn("Cos",[r.mul(2)])).div(2)}function kE(e){return Ge(e,ZI)}function HI(e){let n=e.engine;if(m(e,"Divide")){let i=e.op1,r=e.op2;if(!i||!r||!r.isSame(2))return;if(m(i,"Add")&&i.ops.length===2)return vE(n,i.ops)}let t=i=>!!(i.re===.5&&i.im===0||i.isSame(n.Half));if(m(e,"Multiply")){let i=e.ops.findIndex(r=>t(r));if(i>=0){let r=e.ops.filter((o,s)=>s!==i);if(r.length===1&&r[0].operator==="Add"){let o=r[0];if(m(o)&&o.ops.length===2)return vE(n,o.ops)}}}if(m(e,"Add")&&e.ops.length===2){let i,r,o=!1,s=a=>a.re===-.5&&a.im===0;for(let a of e.ops){if(t(a)){i=a;continue}let u=a,l=!1;if(m(a,"Negate")&&(l=!0,u=a.op1),m(u,"Divide")&&u.op2?.isSame(2)){let c=u.op1;if(c?.operator==="Cos"){r=c,o=l;continue}}if(m(u,"Multiply")){let c=u.ops.findIndex(p=>t(p));if(c>=0){let p=u.ops.filter((d,g)=>g!==c);if(p.length===1&&p[0].operator==="Cos"){r=p[0],o=l;continue}}let f=u.ops.findIndex(p=>s(p));if(f>=0){let p=u.ops.filter((d,g)=>g!==f);if(p.length===1&&p[0].operator==="Cos"){r=p[0],o=!l;continue}}}}if(i&&r){if(!m(r))return;let a=r.op1;if(!a)return;let u;if(m(a,"Multiply")){let l=a.ops.findIndex(c=>c.isSame(2));if(l>=0){let c=a.ops.filter((f,p)=>p!==l);u=c.length===1?c[0]:n._fn("Multiply",c)}}return u?o?n._fn("Sin",[u]).pow(2):n._fn("Cos",[u]).pow(2):void 0}}}function vE(e,n){let t=-1,i=-1,r=!1;for(let u=0;u<n.length;u++)if(n[u].isSame(1))t=u;else if(n[u].operator==="Cos")i=u,r=!1;else if(n[u].operator==="Negate"){let l=n[u];m(l)&&l.op1?.operator==="Cos"&&(i=u,r=!0)}if(t<0||i<0)return;let o;if(r){let u=n[i];if(!m(u))return;o=u.op1}else o=n[i];if(!m(o))return;let s=o.op1;if(!s)return;let a;if(m(s,"Multiply")){let u=s.ops.findIndex(l=>l.isSame(2));if(u>=0){let l=s.ops.filter((c,f)=>f!==u);a=l.length===1?l[0]:e._fn("Multiply",l)}}if(a)return r?e._fn("Sin",[a]).pow(2):e._fn("Cos",[a]).pow(2)}function fd(e){return Ge(e,HI)}function WI(e){let n=e.engine;if(e.operator!=="Multiply"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r];if(!m(o)||!m(s))continue;let a=o.op1,u=s.op1;if(!a||!u)continue;let l;if(o.operator==="Sin"&&s.operator==="Cos"?l=n._fn("Sin",[a.add(u)]).add(n._fn("Sin",[a.sub(u)])).div(2):o.operator==="Cos"&&s.operator==="Sin"?l=n._fn("Sin",[a.add(u)]).sub(n._fn("Sin",[a.sub(u)])).div(2):o.operator==="Cos"&&s.operator==="Cos"?l=n._fn("Cos",[a.add(u)]).add(n._fn("Cos",[a.sub(u)])).div(2):o.operator==="Sin"&&s.operator==="Sin"&&(l=n._fn("Cos",[a.sub(u)]).sub(n._fn("Cos",[a.add(u)])).div(2)),l){let c=t.filter((f,p)=>p!==i&&p!==r);return c.length===0?l:l.mul(c.length===1?c[0]:n._fn("Multiply",c))}}}function CE(e){return Ge(e,WI)}function YI(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r],a;if(o.operator==="Sin"&&s.operator==="Sin"){if(!m(o)||!m(s))continue;let u=o.op1,l=s.op1;if(u&&l){let c=u.add(l).div(2),f=u.sub(l).div(2);a=n._fn("Sin",[c]).mul(n._fn("Cos",[f])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Cos"){if(!m(o)||!m(s))continue;let u=o.op1,l=s.op1;if(u&&l){let c=u.add(l).div(2),f=u.sub(l).div(2);a=n._fn("Cos",[c]).mul(n._fn("Cos",[f])).mul(2)}}else if(o.operator==="Sin"&&s.operator==="Negate"){if(!m(o)||!m(s)||s.op1?.operator!=="Sin")continue;let u=s.op1;if(!m(u))continue;let l=o.op1,c=u.op1;if(l&&c){let f=l.add(c).div(2),p=l.sub(c).div(2);a=n._fn("Cos",[f]).mul(n._fn("Sin",[p])).mul(2)}}else if(o.operator==="Cos"&&s.operator==="Negate"){if(!m(o)||!m(s)||s.op1?.operator!=="Cos")continue;let u=s.op1;if(!m(u))continue;let l=o.op1,c=u.op1;if(l&&c){let f=l.add(c).div(2),p=l.sub(c).div(2);a=n._fn("Sin",[f]).mul(n._fn("Sin",[p])).mul(-2)}}if(a){let u=t.filter((l,c)=>c!==i&&c!==r);return u.length===0?a:a.add(u.length===1?u[0]:n._fn("Add",u))}}}function Ul(e){return Ge(e,YI)}function QI(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!m(e))return;let i=e.op1;if(i){if(m(i,"Add")&&i.ops.length===2){let[r,o]=i.ops;return t==="Sin"?n._fn("Sin",[r]).mul(n._fn("Cos",[o])).add(n._fn("Cos",[r]).mul(n._fn("Sin",[o]))):n._fn("Cos",[r]).mul(n._fn("Cos",[o])).sub(n._fn("Sin",[r]).mul(n._fn("Sin",[o])))}if(m(i,"Subtract")){let r=i.op1,o=i.op2;return!r||!o?void 0:t==="Sin"?n._fn("Sin",[r]).mul(n._fn("Cos",[o])).sub(n._fn("Cos",[r]).mul(n._fn("Sin",[o]))):n._fn("Cos",[r]).mul(n._fn("Cos",[o])).add(n._fn("Sin",[r]).mul(n._fn("Sin",[o])))}}}function AE(e){return Ge(e,QI)}function XI(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r],a=I=>{if(I.operator!=="Multiply"||!m(I))return null;let M=I.ops;if(M.length!==2)return null;let[w,k]=M;return w.operator==="Sin"&&k.operator==="Cos"?{sin:w,cos:k}:w.operator==="Cos"&&k.operator==="Sin"?{sin:k,cos:w}:null},u=I=>{if(I.operator!=="Multiply"||!m(I))return null;let M=I.ops;if(M.length!==2)return null;let[w,k]=M;return w.operator==="Cos"&&k.operator==="Cos"?{cos1:w,cos2:k}:null},l=I=>{if(I.operator!=="Multiply"||!m(I))return null;let M=I.ops;if(M.length!==2)return null;let[w,k]=M;return w.operator==="Sin"&&k.operator==="Sin"?{sin1:w,sin2:k}:null},c=I=>m(I)?I.op1:void 0,f=a(o),p=a(s),d=m(o,"Negate")&&o.op1?a(o.op1):null,g=m(s,"Negate")&&s.op1?a(s.op1):null;if(f&&p){let I=c(f.sin),M=c(f.cos),w=c(p.sin),k=c(p.cos);if(I&&M&&w&&k&&I.isSame(k)&&M.isSame(w)){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Sin",[I.add(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(f&&g){let I=c(f.sin),M=c(f.cos),w=c(g.sin),k=c(g.cos);if(I&&M&&w&&k&&I.isSame(k)&&M.isSame(w)){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Sin",[I.sub(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(d&&p){let I=c(d.sin),M=c(d.cos),w=c(p.sin),k=c(p.cos);if(I&&M&&w&&k&&w.isSame(M)&&k.isSame(I)){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Sin",[w.sub(k)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}let h=u(o),b=u(s),y=l(o),x=l(s),N=m(o,"Negate")&&o.op1?l(o.op1):null,T=m(s,"Negate")&&s.op1?l(s.op1):null;if(h&&T){let I=c(h.cos1),M=c(h.cos2),w=c(T.sin1),k=c(T.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.add(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(N&&b){let I=c(b.cos1),M=c(b.cos2),w=c(N.sin1),k=c(N.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.add(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(h&&x){let I=c(h.cos1),M=c(h.cos2),w=c(x.sin1),k=c(x.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.sub(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}if(y&&b){let I=c(b.cos1),M=c(b.cos2),w=c(y.sin1),k=c(y.sin2);if(I&&M&&w&&k&&(I.isSame(w)&&M.isSame(k)||I.isSame(k)&&M.isSame(w))){let P=t.filter((G,U)=>U!==i&&U!==r),F=n._fn("Cos",[I.sub(M)]);return P.length===0?F:F.add(P.length===1?P[0]:n._fn("Add",P))}}}}function jl(e){return Ge(e,XI)}function KI(e){let n=e.engine,t=e.operator;if(t!=="Sin"&&t!=="Cos"||!m(e))return;let i=e.op1;if(i&&m(i,"Multiply")){let r=i.ops,o=r.findIndex(s=>s.isSame(2));if(o>=0){let s=r.filter((u,l)=>l!==o),a=s.length===1?s[0]:n._fn("Multiply",s);return t==="Sin"?n._fn("Sin",[a]).mul(n._fn("Cos",[a])).mul(2):n._fn("Cos",[a]).pow(2).mul(2).sub(n.One)}}}function pd(e){return Ge(e,KI)}function ew(e){let n=e.engine;if(m(e,"Multiply")){let t=e.ops,i=t.findIndex(r=>r.isSame(2));if(i>=0){let r=t.filter((a,u)=>u!==i),o,s;for(let a of r)a.operator==="Sin"&&!o?o=a:a.operator==="Cos"&&!s&&(s=a);if(o&&s&&ld(o,s)){if(!m(o))return;let a=r.filter(l=>l!==o&&l!==s),u=n._fn("Sin",[o.op1.mul(2)]);return a.length===0?u:u.mul(a.length===1?a[0]:n._fn("Multiply",a))}}}if(m(e,"Add")&&e.ops.length===2){let[t,i]=e.ops;if(m(t,"Power")&&t.op1?.operator==="Cos"&&t.op2?.isSame(2)&&i.operator==="Negate"&&m(i)&&i.op1?.operator==="Power"&&m(i.op1)&&i.op1.op1?.operator==="Sin"&&i.op1.op2?.isSame(2)){let u=t.op1,l=i.op1;if(m(u)&&m(l)){let c=l.op1;if(m(c)){let f=u.op1,p=c.op1;if(f&&p&&f.isSame(p))return n._fn("Cos",[f.mul(2)])}}}let r=u=>{if(!m(u,"Multiply"))return;let l=u.ops.findIndex(p=>p.isSame(2));if(l<0)return;let c=u.ops.filter((p,d)=>d!==l);if(c.length!==1)return;let f=c[0];if(m(f,"Power")&&f.op1?.operator==="Cos"&&f.op2?.isSame(2)){let p=f.op1;if(m(p))return p.op1}},o=r(t);if(o&&(i.isSame(-1)||m(i,"Negate")&&i.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);if(o=r(i),o&&(t.isSame(-1)||m(t,"Negate")&&t.op1?.isSame(1)))return n._fn("Cos",[o.mul(2)]);let s=u=>{if(!m(u,"Multiply"))return;let l=u.ops.findIndex(p=>p.isSame(2));if(l<0)return;let c=u.ops.filter((p,d)=>d!==l);if(c.length!==1)return;let f=c[0];if(m(f,"Power")&&f.op1?.operator==="Sin"&&f.op2?.isSame(2)){let p=f.op1;if(m(p))return p.op1}};if(t.isSame(1)&&m(i,"Negate")&&i.op1){let u=s(i.op1);if(u)return n._fn("Cos",[u.mul(2)])}if(i.isSame(1)&&m(t,"Negate")&&t.op1){let u=s(t.op1);if(u)return n._fn("Cos",[u.mul(2)])}let a=u=>{if(!m(u,"Multiply"))return;let l=u.ops.findIndex(p=>p.isSame(-2));if(l<0)return;let c=u.ops.filter((p,d)=>d!==l);if(c.length!==1)return;let f=c[0];if(m(f,"Power")&&f.op1?.operator==="Sin"&&f.op2?.isSame(2)){let p=f.op1;if(m(p))return p.op1}};if(t.isSame(1)){let u=a(i);if(u)return n._fn("Cos",[u.mul(2)])}if(i.isSame(1)){let u=a(t);if(u)return n._fn("Cos",[u.mul(2)])}}}function RE(e){return Ge(e,ew)}function nw(e){let n=e.engine;if(e.operator!=="Tan"||!m(e))return;let t=e.op1;if(t){if(m(t,"Add")&&t.ops.length===2){let[i,r]=t.ops,o=n._fn("Tan",[i]),s=n._fn("Tan",[r]);return o.add(s).div(n.One.sub(o.mul(s)))}if(m(t,"Subtract")){let i=t.op1,r=t.op2;if(!i||!r)return;let o=n._fn("Tan",[i]),s=n._fn("Tan",[r]);return o.sub(s).div(n.One.add(o.mul(s)))}}}function PE(e){return Ge(e,nw)}var tw=[{value:0,angle:[0,1]},{value:1/Math.sqrt(3),angle:[1,6]},{value:1,angle:[1,4]},{value:Math.sqrt(3),angle:[1,3]},{value:2-Math.sqrt(3),angle:[1,12]},{value:2+Math.sqrt(3),angle:[5,12]}];function iw(e,n=1e-10){for(let t of tw)if(Math.abs(t.value-e)<n)return t.angle}function rw(e){if(e.operator!=="Multiply"||!m(e))return;let n=e.ops;if(n.length<2)return;let t=[],i=1;for(let r of n)if(m(r,"Tan")&&r.op1)t.push(r.op1);else if(m(r,"Negate")&&r.op1?.operator==="Sqrt"){let o=r.op1;if(m(o)){let s=o.op1;if(E(s)&&typeof s.re=="number")i*=-Math.sqrt(s.re);else return}else return}else if(m(r,"Sqrt")){let o=r.op1;if(o&&E(o)&&typeof o.re=="number")i*=Math.sqrt(o.re);else return}else if(E(r)&&typeof r.re=="number")i*=r.re;else return;if(t.length===2)return[i,t[0],t[1]]}function _E(e){if(m(e,"Multiply")){let n=!1,t;for(let i of e.ops)if(_(i,"Pi"))n=!0;else if(E(i)&&typeof i.re=="number"){let r=i.re;for(let o=1;o<=36;o++){let s=Math.round(r*o);if(Math.abs(s/o-r)<1e-10){t=[s,o];break}}}if(n&&t)return t}if(_(e,"Pi"))return[1,1]}function ow(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(t.length!==3)return;let i=[],r;for(let x=0;x<t.length;x++){let N=t[x];if(m(N,"Tan")&&N.op1)i.push({arg:N.op1,index:x});else{let T=rw(N);T&&(r={coef:T[0],arg1:T[1],arg2:T[2],index:x})}}if(i.length!==2||!r)return;let[o,s]=i,a=o.arg.isSame(r.arg1)||o.arg.isSame(r.arg2),u=s.arg.isSame(r.arg1)||s.arg.isSame(r.arg2),l=o.arg.isSame(r.arg2)||o.arg.isSame(r.arg1),c=s.arg.isSame(r.arg2)||s.arg.isSame(r.arg1);if(!(a&&c||u&&l))return;let f=-r.coef;if(f<=0)return;let p=iw(f);if(!p)return;let d=_E(o.arg),g=_E(s.arg);if(!d||!g)return;let h=NE(NE(d[1],g[1]),p[1]);if(d[0]*(h/d[1])+g[0]*(h/g[1])+p[0]*(h/p[1])!==h)return;let y=n._fn("Multiply",[n.number([p[0],p[1]]),n.symbol("Pi")]);return n._fn("Tan",[y]).neg()}function NE(e,n){return Math.abs(e*n)/sw(e,n)}function sw(e,n){for(e=Math.abs(e),n=Math.abs(n);n;){let t=n;n=e%n,e=t}return e}function DE(e){return Ge(e,ow)}function aw(e){let n=e.engine;if(e.operator!=="Multiply"||!m(e))return;let t=e.ops;if(!(t.length<2))for(let i=0;i<t.length;i++)for(let r=i+1;r<t.length;r++){let o=t[i],s=t[r];if(!m(o)||!m(s))continue;let a=o.op1,u=s.op1;if(!(!a||!u)){if(o.operator==="Tan"&&s.operator==="Tan"){let l=o,c=s,f=n._fn("Cot",[a.add(u)]),p=n.One.sub(l.add(c).mul(f)),d=t.filter((g,h)=>h!==i&&h!==r);return d.length===0?p:p.mul(d.length===1?d[0]:n._fn("Multiply",d))}if(o.operator==="Cot"&&s.operator==="Cot"){let l=o,c=s,f=n._fn("Cot",[a.add(u)]),p=n.One.add(l.add(c).mul(f)),d=t.filter((g,h)=>h!==i&&h!==r);return d.length===0?p:p.mul(d.length===1?d[0]:n._fn("Multiply",d))}}}}function $E(e){return Ge(e,aw)}function uw(e){let n=e.engine;if(e.operator!=="Power"||!m(e))return;let t=e.op1,i=e.op2;if(!t||!i||!i.isSame(2)||!m(t))return;let r=t.op1;if(r){if(t.operator==="Tan")return n._fn("Sec",[r]).pow(2).sub(n.One);if(t.operator==="Cot")return n._fn("Csc",[r]).pow(2).sub(n.One);if(t.operator==="Sec")return n.One.add(n._fn("Tan",[r]).pow(2));if(t.operator==="Csc")return n.One.add(n._fn("Cot",[r]).pow(2))}}function OE(e){return Ge(e,uw)}function lw(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(t.length!==2)return;let i=p=>{let d=!1,g=p;if(m(p,"Negate")&&(d=!0,g=p.op1),!m(g)||g.operator!=="Power"||!g.op2?.isSame(2))return null;let h=g.op1;if(!m(h)||!h.op1)return null;let b=h.operator;return["Tan","Cot","Sec","Csc"].includes(b)?{func:b,arg:h.op1,neg:d}:null},r=i(t[0]),o=i(t[1]);if(r&&o&&r.arg.isSame(o.arg)){if(r.func==="Cot"&&!r.neg&&o.func==="Csc"&&o.neg||r.func==="Csc"&&r.neg&&o.func==="Cot"&&!o.neg)return n.number(-1);if(r.func==="Csc"&&!r.neg&&o.func==="Cot"&&o.neg||r.func==="Cot"&&r.neg&&o.func==="Csc"&&!o.neg)return n.One;if(r.func==="Tan"&&!r.neg&&o.func==="Sec"&&o.neg||r.func==="Sec"&&r.neg&&o.func==="Tan"&&!o.neg)return n.number(-1);if(r.func==="Sec"&&!r.neg&&o.func==="Tan"&&o.neg||r.func==="Tan"&&r.neg&&o.func==="Sec"&&!o.neg)return n.One}let s=-1,a=-1,u=!1;for(let p=0;p<t.length;p++){let d=t[p];d.isSame(1)?(s=p,u=!1):d.isSame(-1)||m(d,"Negate")&&d.op1?.isSame(1)?(s=p,u=!0):m(d,"Power")&&d.op2?.isSame(2)&&(a=p)}if(s<0||a<0)return;let l=t[a];if(!m(l))return;let c=l.op1;if(!c||!m(c))return;let f=c.op1;if(f){if(c.operator==="Sec"&&u)return n._fn("Tan",[f]).pow(2);if(c.operator==="Csc"&&u)return n._fn("Cot",[f]).pow(2);if(c.operator==="Tan"&&!u)return n._fn("Sec",[f]).pow(2);if(c.operator==="Cot"&&!u)return n._fn("Csc",[f]).pow(2)}}function md(e){return Ge(e,lw)}function cw(e){let n=e.engine;if(!m(e,"Multiply"))return[1,n.One,e];for(let t=0;t<e.ops.length;t++){let i=e.ops[t],r;if(E(i)&&typeof i.re=="number"&&i.im===0&&(r=i.re),r!==void 0){let o=e.ops.filter((a,u)=>u!==t),s=o.length===1?o[0]:n._fn("Multiply",o);return[r,i,s]}}return[1,n.One,e]}function fw(e){let n=e.engine;if(e.operator!=="Multiply"||!m(e))return;let t=e.ops;if(t.length<2)return;let i=[],r=[];for(let w of t)if(m(w,"Cos")&&w.op1){let k=cw(w.op1);k?i.push({arg:k[2],numericMult:k[0],symbolicCoeff:k[1]}):i.push({arg:w.op1,numericMult:1,symbolicCoeff:n.One})}else r.push(w);if(i.length<2)return;let o=i[0].arg,s=i.filter(w=>w.arg.isSame(o)),a=i.filter(w=>!w.arg.isSame(o));if(s.length<2)return;s.sort((w,k)=>w.numericMult-k.numericMult);let u=[],l=[],c=[...s],f=c[0].numericMult;if(f>0){u.push(c[0]);let w=new Set([0]),k=f*2;for(;;){let P=c.findIndex((F,G)=>!w.has(G)&&Math.abs(F.numericMult-k)<1e-10);if(P===-1)break;u.push(c[P]),w.add(P),k*=2}l=c.filter((P,F)=>!w.has(F))}if(u.length<2)return;let p=u[0].numericMult,d=[...r];for(let w of l){let k=w.symbolicCoeff.isSame(n.One)?w.arg:n._fn("Multiply",[w.symbolicCoeff,w.arg]);d.push(n._fn("Cos",[k]))}for(let w of a){let k=w.symbolicCoeff.isSame(n.One)?w.arg:n._fn("Multiply",[w.symbolicCoeff,w.arg]);d.push(n._fn("Cos",[k]))}let g=u.length,h=u[0].symbolicCoeff,b=Math.pow(2,g);if(_(o,"Pi")){let w=1/(b+1);if(Math.abs(p-w)<1e-10){let k=n.number([1,b]);return d.length===0?k:k.mul(d.length===1?d[0]:n._fn("Multiply",d))}}let y=h.mul(b),x=h.isSame(n.One)?o:n._fn("Multiply",[h,o]),N=n._fn("Multiply",[y,o]),T=n._fn("Sin",[N]),I=n._fn("Sin",[x]),M=T.div(n.number(b).mul(I));return d.length===0?M:M.mul(d.length===1?d[0]:n._fn("Multiply",d))}function LE(e){return Ge(e,fw)}function pw(e){if(m(e,"Power")&&e.op2?.isSame(2)){let n=e.op1;if(m(n,"Sin")&&n.op1)return{func:"Sin",arg:n.op1,coef:1};if(m(n,"Cos")&&n.op1)return{func:"Cos",arg:n.op1,coef:1}}if(m(e,"Multiply")){let n=1,t;for(let i of e.ops)if(m(i,"Power")&&i.op2?.isSame(2)){let r=i.op1;(r?.operator==="Sin"||r?.operator==="Cos")&&(t=i)}else typeof i.re=="number"&&i.im===0&&(n*=i.re);if(m(t)){let i=t.op1;if(m(i,"Sin")&&i.op1)return{func:"Sin",arg:i.op1,coef:n};if(m(i,"Cos")&&i.op1)return{func:"Cos",arg:i.op1,coef:n}}}return null}function mw(e){let n=e.engine;if(e.operator!=="Add"||!m(e))return;let t=e.ops;if(t.length<2)return;let i=[],r=[],o=[];for(let s=0;s<t.length;s++){let a=t[s],u=pw(a);u?i.push({...u,index:s}):typeof a.re=="number"&&a.im===0&&E(a)?o.push({value:a.re,index:s}):r.push({expr:a,index:s})}for(let s=0;s<i.length;s++)for(let a=s+1;a<i.length;a++){let u=i[s],l=i[a];if(u.arg.isSame(l.arg)&&(u.func==="Sin"&&l.func==="Cos"||u.func==="Cos"&&l.func==="Sin")&&Math.abs(u.coef-l.coef)<1e-10){let c=u.coef,f=new Set([u.index,l.index]),p=t.filter((d,g)=>!f.has(g));return p.length===0?n.number(c):c===1?n._fn("Add",[n.One,...p]):n._fn("Add",[n.number(c),...p])}}for(let s of i)if(s.coef<0){let a=Math.abs(s.coef);for(let u of o)if(Math.abs(u.value-a)<1e-10){let l=new Set([s.index,u.index]),c=t.filter((d,g)=>!l.has(g)),f=s.func==="Sin"?"Cos":"Sin",p=n._fn(f,[s.arg]).pow(2).mul(a);return c.length===0?p:n._fn("Add",[p,...c])}}}function FE(e){return Ge(e,mw)}var dw=new Set(["Sin","Cos","Tan","Cot","Sec","Csc"]);function dd(e){let n=0;if(dw.has(e.operator)&&(n=1),m(e))for(let t of e.ops)n+=dd(t);return n}function gd(e){if(_(e)||E(e))return 1;let n=1;if(m(e))for(let t of e.ops)n+=gd(t);return n}function qE(e){let n=dd(e),t=gd(e);return n*1e3+t}var VE=qE;function hd(e,n){if(e.length===0)throw new Error("bestOf called with empty array");if(e.length===1)return e[0];let t=e[0],i=n(t);for(let r=1;r<e.length;r++){let o=n(e[r]);o<i&&(t=e[r],i=o)}return t}function ya(e,n){let t=n(e);return t.isSame(e)?null:t}function BE(e,n){let t=ya(e,cd),i=ya(e,ME),r=[e];return t&&r.push(t),i&&r.push(i),hd(r,n)}function gw(e,n){return BE(e,n)}function hw(e,n){let t=ya(e,CE),i=[e];if(t){i.push(t);let r=ya(t,jl);r&&i.push(r)}return hd(i,n)}function bw(e,n){let t=ya(e,jl),i=[e];return t&&i.push(t),hd(i,n)}function yw(e,n){let t=PE(e);return t=$E(t),t}function xw(e,n){let t=e;return t=AE(t),t=pd(t),t=cd(t),t=kE(t),t=pd(t),t=hw(t,n),t=BE(t,n),t=Ul(t),t=gw(t,n),t=Ul(t),t=bw(t,n),t}function JE(e,n){if(!zl(e))return;let t=n?.measure??VE,i=n?.maxIterations??100,r=e,o=0,s=e,a=t(e),u=T=>{let I=t(T);I<a&&(s=T,a=I)};r=wE(r),u(r);let l=md(r);u(l);let c=OE(r);u(c),r=s;let f=fd(r);if(u(f),r=s,tr(r,"Sec","Csc")&&(r=SE(r),s=r,a=t(r)),tr(r,"Tan","Cot")){let T=yw(r,t);u(T),r=T}if(tr(r,"Tan","Cot")&&(r=TE(r),u(r)),tr(r,"Sin","Cos")){let T=Ul(r);u(T),r=s}if(tr(r,"Sin","Cos")){let T=t(r);for(;o<i;){o++;let I=xw(r,t),M=t(I);if(u(I),M>=T)break;r=I,T=M}}let p=IE(s);u(p);let d=RE(s);u(d);let g=LE(s);u(g);let h=fd(s);u(h);let b=md(s);u(b);let y=jl(s);u(y);let x=FE(s);u(x);let N=DE(s);if(u(N),s.operator==="Add"||s.operator==="Multiply"){let T=e.engine.box(s.json);u(T)}if(!s.isSame(e))return{value:s,because:"fu"}}var Vr=class e{True;False;Pi;E;Nothing;Zero;One;Half;NegativeOne;Two;I;NaN;PositiveInfinity;NegativeInfinity;ComplexInfinity;decimalSeparator=".";_numericConfiguration;_cacheStore=new yl;_runtimeState=new Vl;_configurationLifecycle=new Dl;_cost;_simplificationRules=new Ll([...Zy]);_compilationTargets=new Rl;_fuAlgorithm=JE;_commonSymbols={Pi:null,True:null,False:null,All:null,Nothing:null,None:null,Undefined:null,ImaginaryUnit:null,ExponentialE:null};_commonNumbers={"-5":null,"-4":null,"-3":null,"-2":null,2:null,3:null,4:null,5:null,6:null,7:null,8:null,9:null,10:null,11:null,12:null,36:null};_evalContextStack=[];get context(){return this._evalContextStack[this._evalContextStack.length-1]}get contextStack(){return[...this._evalContextStack]}set contextStack(n){this._evalContextStack=[...n]}get _BIGNUM_NAN(){return this._numericConfiguration.bignumNaN}get _BIGNUM_ZERO(){return this._numericConfiguration.bignumZero}get _BIGNUM_ONE(){return this._numericConfiguration.bignumOne}get _BIGNUM_TWO(){return this._numericConfiguration.bignumTwo}get _BIGNUM_HALF(){return this._numericConfiguration.bignumHalf}get _BIGNUM_PI(){return this._numericConfiguration.bignumPi}get _BIGNUM_NEGATIVE_ONE(){return this._numericConfiguration.bignumNegativeOne}get _typeResolver(){return hE(this)}declareType(n,t,i){nx(this,n,t,i)}get trace(){return this._evalContextStack.map(n=>n.name).filter(n=>n!==void 0).reverse()}get _generation(){return this._configurationLifecycle.generation}set _generation(n){this._configurationLifecycle.generation=n}strict;_latexDictionaryState=new Ol(()=>e.getLatexDictionary());static getStandardLibrary(n){return ml(n)}static getLatexDictionary(n){return aE(n)}constructor(n){if(n!==void 0&&typeof n!="object")throw Error("Unexpected argument");this.strict=!0,this._numericConfiguration=new Fl({precision:n?.precision,tolerance:n?.tolerance??"auto",angularUnit:"rad"});let t=new Bl(this),i=t.initializeCommonNumbers();this.Zero=i.Zero,this.One=i.One,this.Half=i.Half,this.NegativeOne=i.NegativeOne,this.Two=i.Two,this.NaN=i.NaN,this.PositiveInfinity=i.PositiveInfinity,this.NegativeInfinity=i.NegativeInfinity,this.I=i.I,this.ComplexInfinity=i.ComplexInfinity,this._reset(),this.pushScope(void 0,"system"),this.declareType("limits","expression<Limits>"),t.bootstrapLibraries(n?.libraries);let r=t.initializeCommonSymbolBindings(this._commonSymbols);this.True=r.True,this.False=r.False,this.Pi=r.Pi,this.E=r.E,this.Nothing=r.Nothing,this.pushScope(void 0,"global"),this._compilationTargets.registerDefaults(),Wd(this)}toJSON(){return"[ComputeEngine]"}[Symbol.toStringTag]="ComputeEngine";get latexDictionary(){return this._latexDictionaryState.dictionary}set latexDictionary(n){this._latexDictionaryState.dictionary=n}get _indexedLatexDictionary(){return this._latexDictionaryState.indexedDictionary}_reset(){this._configurationLifecycle.reset({refreshNumericConstants:()=>this._numericConfiguration.refreshConstants(),resetCommonSymbols:()=>kx(this._commonSymbols),purgeCaches:()=>this._cacheStore.purgeValues()})}listenToConfigurationChange(n){return this._configurationLifecycle.listen(n)}registerCompilationTarget(n,t){this._compilationTargets.register(n,t)}getCompilationTarget(n){return this._compilationTargets.get(n)}listCompilationTargets(){return this._compilationTargets.list()}unregisterCompilationTarget(n){this._compilationTargets.unregister(n)}_compile(n,t){return Go(n,t)}get precision(){return this._numericConfiguration.precision}set precision(n){this._numericConfiguration.setPrecision(n)&&this._reset()}get angularUnit(){return this._numericConfiguration.angularUnit}set angularUnit(n){this._numericConfiguration.setAngularUnit(n)&&this._reset()}get timeLimit(){return this._runtimeState.timeLimit}set timeLimit(n){this._runtimeState.timeLimit=n}get deadline(){return this._runtimeState.deadline}set deadline(n){this._runtimeState.deadline=n}get _deadline(){return this._runtimeState.deadline}set _deadline(n){this._runtimeState.deadline=n}get _timeRemaining(){return this._runtimeState.timeRemaining}get iterationLimit(){return this._runtimeState.iterationLimit}set iterationLimit(n){this._runtimeState.iterationLimit=n}get recursionLimit(){return this._runtimeState.recursionLimit}set recursionLimit(n){this._runtimeState.recursionLimit=n}get _isVerifying(){return this._runtimeState.isVerifying}set _isVerifying(n){this._runtimeState.isVerifying=n}get isVerifying(){return this._runtimeState.isVerifying}get tolerance(){return this._numericConfiguration.tolerance}set tolerance(n){this._numericConfiguration.setTolerance(n)}chop(n){let t=this._numericConfiguration.tolerance;return typeof n=="number"?Math.abs(n)<=t?0:n:n instanceof K?n.isPositive()&&n.lte(this._numericConfiguration.bignumTolerance)||n.isNegative()&&n.gte(this._numericConfiguration.negBignumTolerance)||n.isZero()?0:n:n instanceof z&&Math.abs(n.re)<=t&&Math.abs(n.im)<=t?0:n}bignum(n){return this._numericConfiguration.bignum(n)}complex(n,t){return n instanceof K&&(n=n.toNumber()),t instanceof K&&(t=t.toNumber()),new z(n,t)}_numericValue(n){if(n instanceof Ee)return n.asExact??n;let t=r=>this.bignum(r),i=this._numericConfiguration.precision>ht?r=>new _r(r,t):r=>new Nr(r,t);if(typeof n=="number")return Number.isInteger(n)?new we(n,i,t):i(n);if(typeof n=="bigint")return new we(n,i,t);if(Rt(n))return new we({rational:n},i,t);if(n instanceof K){if(n.isInteger()&&n.e<=Kd){let r=Re(n.toString());if(r!==null)return new we(r,i,t)}return i(n)}if(n instanceof z)return n.im===0?this._numericValue(n.re):i({re:n.re,im:n.im});if("im"in n||"re"in n)return n.im!==void 0&&n.im!==0?i(n):n.re instanceof K&&n.re.isInteger()?new we({rational:[Re(n.re.toString()),BigInt(1)]},i,t):typeof n.re=="number"&&Number.isInteger(n.re)?new we({rational:[n.re,1]},i,t):i(n);if("radical"in n||"rational"in n){if(n.radical!==void 0&&(!Number.isInteger(n.radical)||n.radical>=re))throw Error("Unexpected value for radical part:"+n.radical);return n.rational&&xn(n.rational)&&(!Number.isInteger(n.rational[0])||!Number.isInteger(n.rational[1]))?i(n):new we(n,i,t)}throw Error("Unexpected value")}get costFunction(){return this._cost??np}set costFunction(n){typeof n!="function"&&(this._cost=np),this._cost=n}get simplificationRules(){return this._simplificationRules.rules}set simplificationRules(n){this._simplificationRules.rules=n,this._cacheStore.invalidate("standard-simplification-rules")}lookupDefinition(n){return Yy(this,n)}_declareSymbolValue(n,t,i){return Qy(this,n,t,i)}_declareSymbolOperator(n,t,i){return Xy(this,n,t,i)}pushScope(n,t){rx(this,n,t)}popScope(){ox(this)}_pushEvalContext(n,t){bp(this,n,t)}_popEvalContext(){yp(this)}_inScope(n,t){return sx(this,n,t)}_printStack(n){ax(this,n)}_getSymbolValue(n){return Ky(this,n)}_setSymbolValue(n,t){ex(this,n,t)}declare(n,t,i){return tx(this,n,t,i)}declareSequence(n,t){return yx(this,n,t)}getSequenceStatus(n){return xx(this,n)}getSequence(n){return Ex(this,n)}listSequences(){return vx(this)}isSequence(n){return _x(this,n)}clearSequenceCache(n){Nx(this,n)}getSequenceCache(n){return Sx(this,n)}getSequenceTerms(n,t,i,r){return Tx(this,n,t,i,r)}lookupOEIS(n,t){return Ix(this,n,t)}checkSequenceOEIS(n,t,i){return wx(this,n,t,i)}assign(n,t){return ix(this,n,t)}_shouldContinueExecution(){return this._runtimeState.shouldContinueExecution()}_checkContinueExecution(){if(!this._shouldContinueExecution())throw new Error("timeout")}_cache(n,t,i){return this._cacheStore.getOrBuild(n,t,i)}box(n,t){let{canonical:i,structural:r}=aa(t?.form);return Kn(this,n,{canonical:i,structural:r,scope:t?.scope})}function(n,t,i){let{canonical:r,structural:o}=aa(i?.form);return hl(this,n,t,{metadata:i?.metadata,canonical:r,structural:o,scope:i?.scope})}error(n,t){return Jl(this,n,t)}typeError(n,t,i){return bE(this,n,t,i)}hold(n){return this._fn("Hold",[this.box(n,{form:"raw"})])}tuple(...n){return new je(this,"Tuple",n.map(t=>typeof t=="number"?this.number(t):t.canonical),{canonical:!0})}type(n){return n instanceof V?n:new V(n,this._typeResolver)}string(n,t){return new ji(this,n,t)}symbol(n,t){return iE(this,this._commonSymbols,n,t)}number(n,t){return rE(this,this._commonNumbers,n,t)}rules(n,t){return $s(this,n,t)}getRuleSet(n){if(n??="standard-simplification",n==="standard-simplification"){this._simplificationRules.hasMutatedSinceLastCache()&&this._cacheStore.invalidate("standard-simplification-rules");let t=this._cache("standard-simplification-rules",()=>$s(this,this._simplificationRules.rules,{canonical:!0}));return this._simplificationRules.markCached(),t}if(n==="solve-univariate")return this._cache("univariate-roots-rules",()=>$s(this,Yb));if(n==="harmonization")return this._cache("harmonization-rules",()=>$s(this,Qb))}_fn(n,t,i){let r=i?.canonical??!0;return new je(this,n,t,{...i,canonical:r})}parse(n,t){return gE(this,n,t)}ask(n){return px(this,n)}verify(n){return Ho(this,n)}assume(n){return mx(this,n)}forget(n){xp(this,n)}};yE(Vr);var Ew="0.54.1";globalThis[Symbol.for("io.cortexjs.compute-engine")]={ComputeEngine:Vr.prototype.constructor,version:"0.54.1"};return HE(vw);})();
1016
1016
  /*! Bundled license information:
1017
1017
 
1018
1018
  complex-esm/dist/src/complex.js:
@@ -1,4 +1,4 @@
1
- /** Compute Engine 0.54.0 */
1
+ /** Compute Engine 0.54.1 */
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.ComputeEngine = {}));})(this, (function (exports) { 'use strict';
3
3
  var ComputeEngine = (() => {
4
4
  var __defProp = Object.defineProperty;
@@ -68732,10 +68732,10 @@ ${code}`;
68732
68732
  _setComputeEngineClass(ComputeEngine);
68733
68733
 
68734
68734
  // src/compute-engine.ts
68735
- var version = "0.54.0";
68735
+ var version = "0.54.1";
68736
68736
  globalThis[/* @__PURE__ */ Symbol.for("io.cortexjs.compute-engine")] = {
68737
68737
  ComputeEngine: ComputeEngine.prototype.constructor,
68738
- version: "0.54.0"
68738
+ version: "0.54.1"
68739
68739
  };
68740
68740
  return __toCommonJS(compute_engine_exports);
68741
68741
  })();
@@ -1,4 +1,4 @@
1
- /** Compute Engine 0.54.0 */
1
+ /** Compute Engine 0.54.1 */
2
2
 
3
3
  // src/math-json/utils.ts
4
4
  function isNumberObject(expr) {
@@ -115,7 +115,7 @@ function expressionToDictionaryValue(expr) {
115
115
  }
116
116
 
117
117
  // src/math-json.ts
118
- var version = "0.54.0";
118
+ var version = "0.54.1";
119
119
  export {
120
120
  dictionaryFromExpression,
121
121
  isFunctionObject,
@@ -1,2 +1,2 @@
1
- /** Compute Engine 0.54.0 */
2
- function b(n){return n!==null&&typeof n=="object"&&"num"in n}function s(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(n){return n!==null&&typeof n=="object"&&"str"in n}function M(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):j(n)||y(n)?null:n}function l(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function h(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function d(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function J(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):r(n)?Math.max(0,n.fn.length-1):0}function m(n){return typeof n=="string"&&y(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:s(n)?n.sym:null}function a(n){let t=l(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=h(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function E(n){if(n===null)return null;if(M(n))return n;let t=a(n);if(t)return{[t[0]]:t[1]};if(l(n)==="Dictionary"){let i={},o=h(n);for(let e=1;e<J(n);e++){let u=a(o[e]);u&&(i[u[0]]=O(u[1])??"Nothing")}return{dict:i}}return null}function g(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function j(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function y(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function O(n){return n==null?null:f(n)?n.str:b(n)?parseFloat(n.num):s(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var S="0.54.0";export{E as dictionaryFromExpression,r as isFunctionObject,f as isStringObject,s as isSymbolObject,g as mapArgs,d as operand,l as operator,c as stringValue,m as symbol,S as version};
1
+ /** Compute Engine 0.54.1 */
2
+ function b(n){return n!==null&&typeof n=="object"&&"num"in n}function s(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(n){return n!==null&&typeof n=="object"&&"str"in n}function M(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):j(n)||y(n)?null:n}function l(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function h(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function d(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function J(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):r(n)?Math.max(0,n.fn.length-1):0}function m(n){return typeof n=="string"&&y(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:s(n)?n.sym:null}function a(n){let t=l(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=h(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function E(n){if(n===null)return null;if(M(n))return n;let t=a(n);if(t)return{[t[0]]:t[1]};if(l(n)==="Dictionary"){let i={},o=h(n);for(let e=1;e<J(n);e++){let u=a(o[e]);u&&(i[u[0]]=O(u[1])??"Nothing")}return{dict:i}}return null}function g(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function j(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function y(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function O(n){return n==null?null:f(n)?n.str:b(n)?parseFloat(n.num):s(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var S="0.54.1";export{E as dictionaryFromExpression,r as isFunctionObject,f as isStringObject,s as isSymbolObject,g as mapArgs,d as operand,l as operator,c as stringValue,m as symbol,S as version};
@@ -1,4 +1,4 @@
1
- /** MathJSON 0.54.0 */
1
+ /** MathJSON 0.54.1 */
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.MathJson = {}));})(this, (function (exports) { 'use strict';
3
- var MathJson=(()=>{var a=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var O=(n,t)=>{for(var i in t)a(n,i,{get:t[i],enumerable:!0})},A=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!j.call(n,e)&&e!==i&&a(n,e,{get:()=>t[e],enumerable:!(o=E(t,e))||o.enumerable});return n};var S=n=>A(a({},"__esModule",{value:!0}),n);var T={};O(T,{dictionaryFromExpression:()=>d,isFunctionObject:()=>r,isStringObject:()=>f,isSymbolObject:()=>u,mapArgs:()=>J,operand:()=>b,operator:()=>s,stringValue:()=>c,symbol:()=>M,version:()=>V});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(n){return n!==null&&typeof n=="object"&&"str"in n}function p(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):k(n)||m(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function y(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function b(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function D(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):r(n)?Math.max(0,n.fn.length-1):0}function M(n){return typeof n=="string"&&m(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function h(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=y(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function d(n){if(n===null)return null;if(p(n))return n;let t=h(n);if(t)return{[t[0]]:t[1]};if(s(n)==="Dictionary"){let i={},o=y(n);for(let e=1;e<D(n);e++){let l=h(o[e]);l&&(i[l[0]]=F(l[1])??"Nothing")}return{dict:i}}return null}function J(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function k(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function m(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function F(n){return n==null?null:f(n)?n.str:N(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var V="0.54.0";return S(T);})();
3
+ var MathJson=(()=>{var a=Object.defineProperty;var E=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var j=Object.prototype.hasOwnProperty;var O=(n,t)=>{for(var i in t)a(n,i,{get:t[i],enumerable:!0})},A=(n,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of g(t))!j.call(n,e)&&e!==i&&a(n,e,{get:()=>t[e],enumerable:!(o=E(t,e))||o.enumerable});return n};var S=n=>A(a({},"__esModule",{value:!0}),n);var T={};O(T,{dictionaryFromExpression:()=>d,isFunctionObject:()=>r,isStringObject:()=>f,isSymbolObject:()=>u,mapArgs:()=>J,operand:()=>b,operator:()=>s,stringValue:()=>c,symbol:()=>M,version:()=>V});function N(n){return n!==null&&typeof n=="object"&&"num"in n}function u(n){return n!==null&&typeof n=="object"&&"sym"in n}function f(n){return n!==null&&typeof n=="object"&&"str"in n}function p(n){return n!==null&&typeof n=="object"&&"dict"in n&&typeof n.dict=="object"&&!Array.isArray(n.dict)&&n.dict!==null}function r(n){return n!==null&&typeof n=="object"&&"fn"in n&&Array.isArray(n.fn)&&n.fn.length>0&&typeof n.fn[0]=="string"}function c(n){return n==null?null:typeof n=="object"&&"str"in n?n.str:typeof n!="string"?null:n.length>=2&&n.at(0)==="'"&&n.at(-1)==="'"?n.substring(1,n.length-1):k(n)||m(n)?null:n}function s(n){return Array.isArray(n)?n[0]:n==null?"":r(n)?n.fn[0]:""}function y(n){return Array.isArray(n)?n.slice(1):n!==void 0&&r(n)?n.fn.slice(1):[]}function b(n,t){return Array.isArray(n)?n[t]??null:n===null||!r(n)?null:n.fn[t]??null}function D(n){return n==null?0:Array.isArray(n)?Math.max(0,n.length-1):r(n)?Math.max(0,n.fn.length-1):0}function M(n){return typeof n=="string"&&m(n)?n.length>=2&&n.at(0)==="`"&&n.at(-1)==="`"?n.slice(1,-1):n:n==null?null:u(n)?n.sym:null}function h(n){let t=s(n);if(t==="KeyValuePair"||t==="Tuple"||t==="Pair"){let[i,o]=y(n),e=c(i);return e?[e,o??"Nothing"]:null}return null}function d(n){if(n===null)return null;if(p(n))return n;let t=h(n);if(t)return{[t[0]]:t[1]};if(s(n)==="Dictionary"){let i={},o=y(n);for(let e=1;e<D(n);e++){let l=h(o[e]);l&&(i[l[0]]=F(l[1])??"Nothing")}return{dict:i}}return null}function J(n,t){let i=null;if(Array.isArray(n)&&(i=n),r(n)&&(i=n.fn),i===null)return[];let o=1,e=[];for(;o<i.length;)e.push(t(i[o])),o+=1;return e}function k(n){return/^(nan|oo|\+oo|-oo|infinity|\+infinity|-infinity)$/i.test(n)||/^[+-]?(0|[1-9][0-9]*)(\.[0-9]+)?(\([0-9]+\))?([eE][+-]?[0-9]+)?$/.test(n)}function m(n){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(n)||n.length>=2&&n[0]==="`"&&n[n.length-1]==="`"}function F(n){return n==null?null:f(n)?n.str:N(n)?parseFloat(n.num):u(n)?n.sym:typeof n=="string"||typeof n=="number"?n:Array.isArray(n)?{fn:n}:n}var V="0.54.1";return S(T);})();
4
4
  Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
@@ -1,4 +1,4 @@
1
- /** MathJSON 0.54.0 */
1
+ /** MathJSON 0.54.1 */
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.MathJson = {}));})(this, (function (exports) { 'use strict';
3
3
  var MathJson = (() => {
4
4
  var __defProp = Object.defineProperty;
@@ -149,7 +149,7 @@ var MathJson = (() => {
149
149
  }
150
150
 
151
151
  // src/math-json.ts
152
- var version = "0.54.0";
152
+ var version = "0.54.1";
153
153
  return __toCommonJS(math_json_exports);
154
154
  })();
155
155
  Object.assign(exports, MathJson); Object.defineProperty(exports, '__esModule', { value: true });}));
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export declare const DEFAULT_COLOR = "\u001B[39m";
3
3
  export declare const DEFAULT_BG = "\u001B[49m";
4
4
  export declare const WHITE_BG = "\u001B[47m";
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  private _listeners;
3
3
  private _pending;
4
4
  private _version;
@@ -1,2 +1,2 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export declare function fuzzyStringMatch(invalidWord: string, validWords: string[]): string | null;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /**
3
3
  * Return a string or an array of graphemes.
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  cause: unknown;
3
3
  value: T;
4
4
  constructor({ message, value, cause, }?: {
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  infer Head,
3
3
  ...infer Rem
4
4
  ] ? MergeTypes<Rem, Res & Head> : Res;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export type RuntimeSignalCode = 'timeout' | 'out-of-memory' | 'recursion-depth-exceeded' | 'iteration-limit-exceeded';
3
3
  /** @category Error Handling */
4
4
  export type SignalCode = RuntimeSignalCode | ('invalid-name' | 'expected-predicate' | 'expected-symbol' | 'operator-requires-one-operand' | 'postfix-operator-requires-one-operand' | 'prefix-operator-requires-one-operand' | 'unbalanced-symbols' | 'expected-argument' | 'unexpected-command' | 'cyclic-definition' | 'invalid-supersets' | 'expected-supersets' | 'unknown-domain' | 'duplicate-wikidata' | 'invalid-dictionary-entry' | 'syntax-error');
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  kind: string;
3
3
  position: number;
4
4
  line: number;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /** @category Type */
3
3
  export declare class BoxedType {
4
4
  static unknown: BoxedType;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export interface Token {
3
3
  type: TokenType;
4
4
  value: string;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /**
3
3
  * BNF grammar for the type parser:
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import { TypeNode } from './ast-nodes';
3
3
  import { TypeResolver } from './types';
4
4
  export declare class Parser {
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /** All the types representing numeric values */
3
3
  export declare const NUMERIC_TYPES: NumericPrimitiveType[];
4
4
  export declare const INDEXED_COLLECTION_TYPES: PrimitiveType[];
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /**
3
3
  * Reduce the input type
4
4
  *
@@ -1,2 +1,2 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export declare function typeToString(type: Type, precedence?: number): string;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /** Return true if lhs is a subtype of rhs */
3
3
  export declare function isPrimitiveSubtype(lhs: PrimitiveType, rhs: PrimitiveType): boolean;
4
4
  /** Return true if lhs is a subtype of rhs */
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import { Type, TypeResolver } from './types';
3
3
  export declare class TypeBuilder implements ASTVisitor<Type> {
4
4
  private typeResolver;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  * A primitive type is a simple type that represents a concrete value.
3
3
  *
4
4
  * - `any`: the top type
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export { isValidType };
3
3
  export { widen, narrow } from './subtype';
4
4
  import type { Type, FunctionSignature, TypeString } from './types';
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  *
3
3
  * <!--
4
4
  * !@consider?
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  /**
3
3
  * Add an assumption, in the form of a predicate, for example:
4
4
  *
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import type { MathJsonExpression, MathJsonSymbol } from '../../math-json/types';
3
3
  import type { Type, TypeString } from '../../common/type/types';
4
4
  import { BoxedType } from '../../common/type/boxed-type';
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import { Decimal } from 'decimal.js';
3
3
  import type { Expression } from '../global-types';
4
4
  export declare function apply(expr: Expression, fn: (x: number) => number | Complex, bigFn?: (x: Decimal) => Decimal | Complex | number, complexFn?: (x: Complex) => number | Complex): Expression | undefined;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import { BoxedType } from '../../common/type/boxed-type';
3
3
  import type { Expression, IComputeEngine as ComputeEngine } from '../global-types';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import { NumericValue } from '../numeric-value/types';
3
3
  import type { Rational } from '../numerics/types';
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import type { Rational } from '../numerics/types';
3
3
  export declare function asRadical(expr: Expression): Rational | null;
4
4
  /**
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  export type AsciiMathSerializer = (expr: Expression, precedence?: number) => string;
3
3
  export type AsciiMathOptions = {
4
4
  symbols: Record<string, string>;
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import type { FormOption } from '../types-serialization';
3
3
  import type { MathJsonSymbol } from '../../math-json/types';
4
4
  import { NumericValue } from '../numeric-value/types';
@@ -1,4 +1,4 @@
1
- /* 0.54.0 */
1
+ /* 0.54.1 */
2
2
  import { _BoxedExpression } from './abstract-boxed-expression';
3
3
  import { BoxedType } from '../../common/type/boxed-type';
4
4
  import { DictionaryValue, MathJsonExpression } from '../../math-json/types';