UNPKG

@cortex-js/compute-engine

Version:

Symbolic computing and numeric evaluations for JavaScript and Node.js

5 lines 202 kB
/** Interval 0.58.0 */ (function(global,factory){typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'],factory):(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.Interval = {}));})(this, (function (exports) { 'use strict'; var Interval=(()=>{var yi=Object.defineProperty;var Fs=Object.getOwnPropertyDescriptor;var Vs=Object.getOwnPropertyNames;var Js=Object.prototype.hasOwnProperty;var Ls=(e,n)=>{for(var t in n)yi(e,t,{get:n[t],enumerable:!0})},$s=(e,n,t,i)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of Vs(n))!Js.call(e,r)&&r!==t&&yi(e,r,{get:()=>n[r],enumerable:!(i=Fs(n,r))||i.enumerable});return e};var qs=e=>$s(yi({},"__esModule",{value:!0}),e);var Aa={};Ls(Aa,{IntervalArithmetic:()=>Cs,_mul:()=>xn,abs:()=>qn,acos:()=>Qe,acosh:()=>tn,acot:()=>ft,acoth:()=>yt,acsc:()=>pt,acsch:()=>xt,add:()=>gn,and:()=>wt,asec:()=>mt,asech:()=>bt,asin:()=>Ke,asinh:()=>nn,atan:()=>en,atan2:()=>lt,atanh:()=>rn,binomial:()=>si,ceil:()=>Gn,chop:()=>ui,clamp:()=>_t,containsExtremum:()=>L,containsZero:()=>$,cos:()=>rt,cosh:()=>Re,cot:()=>ot,coth:()=>dt,csc:()=>ut,csch:()=>ht,div:()=>q,equal:()=>sn,erf:()=>li,erfc:()=>ci,exp:()=>Vn,exp2:()=>fi,factorial:()=>nt,factorial2:()=>tt,floor:()=>zn,fract:()=>Zn,fresnelC:()=>Tt,fresnelS:()=>Nt,gamma:()=>Qn,gammaln:()=>et,gcd:()=>oi,getValue:()=>dn,greater:()=>kt,greaterEqual:()=>St,heaviside:()=>Xn,hypot:()=>pi,isNegative:()=>Te,isNonNegative:()=>cn,isNonPositive:()=>fn,isPoint:()=>un,isPositive:()=>ln,lcm:()=>ai,less:()=>vt,lessEqual:()=>It,ln:()=>Jn,log10:()=>Ln,log2:()=>$n,max:()=>Wn,mergeDomainClip:()=>Be,midpoint:()=>mn,min:()=>Un,mod:()=>Hn,mul:()=>Ie,negate:()=>yn,not:()=>At,notEqual:()=>Mt,ok:()=>d,or:()=>Dt,piecewise:()=>Pt,point:()=>an,pow:()=>Ye,powInterval:()=>Fn,remainder:()=>Yn,round:()=>Xe,sec:()=>at,sech:()=>gt,sign:()=>Kn,sin:()=>it,sinc:()=>Et,sinh:()=>_e,sqrt:()=>On,square:()=>Cn,sub:()=>ve,tan:()=>st,tanh:()=>ct,trunc:()=>jn,unionResults:()=>ge,unwrap:()=>hn,unwrapOrPropagate:()=>y,version:()=>Da,width:()=>pn});function d(e){return{kind:"interval",value:e}}function an(e){return{lo:e,hi:e}}function L(e,n,t){let i=Math.ceil((e.lo-n)/t),r=n+i*t,s=1e-15;return r>=e.lo-s&&r<=e.hi+s}function ge(e,n){if(e.kind==="empty")return n;if(n.kind==="empty")return e;if(e.kind==="singular"||n.kind==="singular")return{kind:"singular"};if(e.kind==="entire"||n.kind==="entire")return{kind:"entire"};let t=e.value,i=n.value,r=e.kind==="partial"?e.domainClipped:null,s=n.kind==="partial"?n.domainClipped:null,o={lo:Math.min(t.lo,i.lo),hi:Math.max(t.hi,i.hi)};if(r||s){let a=Be(r,s);return{kind:"partial",value:o,domainClipped:a}}return{kind:"interval",value:o}}function Be(e,n){return e==="both"||n==="both"?"both":e===null?n:n===null||e===n?e:"both"}function un(e){return e.lo===e.hi}function $(e){return e.lo<=0&&e.hi>=0}function ln(e){return e.lo>0}function Te(e){return e.hi<0}function cn(e){return e.lo>=0}function fn(e){return e.hi<=0}function pn(e){return e.hi-e.lo}function mn(e){return(e.lo+e.hi)/2}function dn(e){if(e.kind==="interval"||e.kind==="partial")return e.value}function hn(e){return"kind"in e?e.kind==="interval"||e.kind==="partial"?e.value:void 0:e}function y(...e){let n=[];for(let t of e)if("kind"in t){if(t.kind==="empty")return{kind:"empty"};if(t.kind==="entire")return{kind:"entire"};if(t.kind==="singular")return t;n.push(t.value)}else n.push(t);return n}function gn(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:i.lo+r.lo,hi:i.hi+r.hi})}function ve(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d({lo:i.lo-r.hi,hi:i.hi-r.lo})}function yn(e){let n=y(e);if(!Array.isArray(n))return n;let[t]=n;return d({lo:-t.hi,hi:-t.lo})}function xn(e,n){let t=[e.lo*n.lo,e.lo*n.hi,e.hi*n.lo,e.hi*n.hi];return{lo:Math.min(...t),hi:Math.max(...t)}}function Ie(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return d(xn(i,r))}function q(e,n){let t=y(e,n);if(!Array.isArray(t))return t;let[i,r]=t;return zs(i,r)}function zs(e,n){return n.lo>0||n.hi<0?d(xn(e,{lo:1/n.hi,hi:1/n.lo})):n.lo<0&&n.hi>0?{kind:"singular"}:n.lo===0&&n.hi>0?e.lo>=0?{kind:"partial",value:{lo:e.lo/n.hi,hi:1/0},domainClipped:"hi"}:e.hi<=0?{kind:"partial",value:{lo:-1/0,hi:e.hi/n.hi},domainClipped:"lo"}:{kind:"entire"}:n.hi===0&&n.lo<0?e.lo>=0?{kind:"partial",value:{lo:-1/0,hi:e.lo/n.lo},domainClipped:"lo"}:e.hi<=0?{kind:"partial",value:{lo:e.hi/n.lo,hi:1/0},domainClipped:"hi"}:{kind:"entire"}:{kind:"empty"}}var er=new Map;function S(e){if(e<=100){let n=er.get(e);return n===void 0&&(n=10n**BigInt(e),er.set(e,n)),n}return 10n**BigInt(e)}function tr(e,n,t){return e*n/t}function ir(e,n,t){return e*t/n}function En(e,n){if(e===0n)return 0n;if(e<0n)throw new RangeError("fpsqrt: negative input");let t,i=Number(e),r=Number(n);if(Number.isFinite(i)&&Number.isFinite(r)&&i>0&&r>0){let f=Math.sqrt(i/r)*r;Number.isFinite(f)&&f>0?(t=BigInt(Math.floor(f)),t===0n&&(t=1n)):t=nr(e,n)}else t=nr(e,n);let s=e*n,o;do o=t,t=(t+s/t)/2n;while(ee(t-o)>1n);let a=(t+s/t)/2n,u=ee(t*t-s);return ee(a*a-s)<u?a:t}function nr(e,n){let i=C(e),r=Math.max(0,i-15),s=Number(r>0?e/S(r):e),o=C(n),a=Math.max(0,o-15),u=Number(a>0?n/S(a):n),c=r+a,f=Math.floor(c/2),h=Math.sqrt(s*u);c%2!==0&&(h*=3.1622776601683795);let E=BigInt(Math.round(h))*S(f);return E>0n?E:1n}function ee(e){return e<0n?-e:e}function C(e){if(e===0n)return 1;if(e<0n&&(e=-e),e<0x20000000000000n)return Math.floor(Math.log10(Number(e)))+1;let n=0,t=e,i=1;for(;t>>BigInt(i)>0n;)i*=2;for(let s=i>>1;s>=1;s>>=1)t>>BigInt(s)>0n&&(n+=s,t>>=BigInt(s));n+=1;let r=Math.ceil(n*.30102999566398);return e<S(r-1)?r-1:e>=S(r)?r+1:r}function Ei(e,n){if(e===0n)return n;let t=0,i=e,r=n/2n;for(;ee(i)>r;)i=i/2n,t++;let s=n,o=i;s+=o;for(let a=2;o=o*i/(BigInt(a)*n),ee(o)!==0n;a++)s+=o;for(let a=0;a<t;a++)s=s*s/n;return s}function rr(e,n){if(e===n)return 0n;let t=Number(e),i=Number(n),r,s=e,o=0;if(Number.isFinite(t)&&Number.isFinite(i)&&t>0&&i>0){let u=t/i;if(Number.isFinite(u)&&u>0){let c=Math.log(u);Number.isFinite(c)?r=BigInt(Math.round(c*i)):r=xi(e,n)}else r=xi(e,n)}else{s=e;let u=2n*n,c=n/2n;for(;s>u||s<c;)s=En(s,n),o++;r=xi(s,n)}let a=0n;for(let u=0;u<100;u++){let c=Ei(r,n);if(c===0n){r=r/2n;continue}let f=r+s*n/c-n,h=ee(f-r);if(h<=1n||h<100000n&&a>0n&&a<100000n&&h*4n>=a)break;a=h,r=f}for(let u=0;u<o;u++)r=2n*r;return r}function xi(e,n){let t=C(e),i=C(n);return BigInt(t-i)*2302585n*n/1000000n}var Bt="314159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270193852110555964462294895493038196442881097566593344612847564823378678316527120190914564856692346034861045432664821339360726024914127372458700660631558817488152092096282925409171536436789259036001133053054882046652138414695194151160943305727036575959195309218611738193261179310511854807446237996274956735188575272489122793818301194912983367336244065664308602139494639522473719070217986094370277053921717629317675238467481846766940513200056812714526356082778577134275778960917363717872146844090122495343014654958537105079227968925892354201995611212902196086403441815981362977477130996051870721134999999837297804995105973173281609631859502445945534690830264252230825334468503526193118817101000313783875288658753320838142061717766914730359825349042875546873115956286388235378759375195778185778053217122680661300192787661119590921642019893809525720106548586327886593615338182796823030195203530185296899577362259941389124972177528347913151557485724245415069595082953311686172785588907509838175463746493931925506040092770167113900984882401285836160356370766010471018194295559619894676783744944825537977472684710404753464620804668425906949129331367702898915210475216205696602405803815019351125338243003558764024749647326391419927260426992279678235478163600934172164121992458631503028618297455570674983850549458858692699569092721079750930295532116534498720275596023648066549911988183479775356636980742654252786255181841757467289097777279380008164706001614524919217321721477235014144197356854816136115735255213347574184946843852332390739414333454776241686251898356948556209921922218427255025425688767179049460165346680498862723279178608578438382796797668145410095388378636095068006422512520511739298489608412848862694560424196528502221066118630674427862203919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576407895126946839835259570982582262052248940772671947826848260147699090264013639443745530506820349625245174939965143142980919065925093722169646151570985838741059788595977297549893016175392846813826868386894277415599185592524595395943104997252468084598727364469584865383673622262609912460805124388439045124413654976278079771569143599770012961608944169486855584840635",Rt=null;function bi(e){if(Rt!==null&&Rt.scale===e)return Rt.value;let t=C(e)-1+10,i=Bt.slice(0,t+1),r=BigInt(i),s=i.length-1,o=r*e/S(s);return Rt={scale:e,value:o},o}function Ot(e,n){if(e===0n)return[0n,n];let t=bi(n),i=2n*t,r=t/2n,s,o=ee(e);if(o>n*(1n<<30n)){let G=C(o)-C(n)+20,di=n*S(G),hi=e*S(G),Qi=2n*bi(di),gi=hi%Qi;gi<0n&&(gi+=Qi),s=gi/S(G)}else s=e%i;s<0n&&(s+=i);let a=1n,u=1n;s>3n*r?(s=i-s,a=-1n):s>t?(s=s-t,a=-1n,u=-1n):s>r&&(s=t-s,u=-1n);let c=C(n)-1,f=Math.min(18,Math.max(2,Math.ceil(.87*Math.sqrt(c)))),h=0,E=n>>BigInt(f);for(;s>E;)s=s/2n,h++;let v=s,w=n,B=s,ue=n,on=s*s,mi=n*n;for(let G=2;;G+=2){if(ue=ue*on/(BigInt(G)*BigInt(G-1)*mi),ue===0n){B=B*on/(BigInt(G+1)*BigInt(G)*mi),B!==0n&&(G%4===2?(w-=ue,v-=B):(w+=ue,v+=B));break}if(B=B*on/(BigInt(G+1)*BigInt(G)*mi),G%4===2?(w-=ue,v-=B):(w+=ue,v+=B),B===0n)break}for(let G=0;G<h;G++){let di=2n*v*w/n,hi=2n*w*w/n-n;v=di,w=hi}return[a*v,u*w]}function bn(e,n){if(e===0n)return 0n;if(e<0n)return-bn(-e,n);let i=bi(n)/2n;if(e>n){let h=n*n/e;return i-bn(h,n)}let r=4n*n/10n,s=0,o=e;for(;o>r;){let h=o*o,E=(n*n+h)/n,v=En(E,n);o=o*n/(n+v),s++}let a=o,u=o,c=o*o,f=n*n;for(let h=3;u=u*c/f,u!==0n;h+=2)h%4===3?a-=u/BigInt(h):a+=u/BigInt(h);for(let h=0;h<s;h++)a=2n*a;return a}var Ni=NaN,m=class e{static precision=50;static ZERO=Object.freeze(Object.assign(Object.create(e.prototype),{significand:0n,exponent:0}));static ONE=Object.freeze(Object.assign(Object.create(e.prototype),{significand:1n,exponent:0}));static TWO=Object.freeze(Object.assign(Object.create(e.prototype),{significand:2n,exponent:0}));static NEGATIVE_ONE=Object.freeze(Object.assign(Object.create(e.prototype),{significand:-1n,exponent:0}));static HALF=Object.freeze(Object.assign(Object.create(e.prototype),{significand:5n,exponent:-1}));static NAN=Object.freeze(Object.assign(Object.create(e.prototype),{significand:0n,exponent:NaN}));static POSITIVE_INFINITY=Object.freeze(Object.assign(Object.create(e.prototype),{significand:1n,exponent:1/0}));static NEGATIVE_INFINITY=Object.freeze(Object.assign(Object.create(e.prototype),{significand:-1n,exponent:1/0}));static _piFullPrecision=null;static _piCache=null;static _piCachePrecision=0;static get PI(){e._piFullPrecision===null&&(e._piFullPrecision=new e(Bt[0]+"."+Bt.slice(1)));let n=e.precision;return(e._piCache===null||e._piCachePrecision!==n)&&(e._piCache=e._piFullPrecision.toPrecision(n+4),e._piCachePrecision=n),e._piCache}significand;exponent;constructor(n){if(n instanceof e){this.significand=n.significand,this.exponent=n.exponent;return}if(typeof n=="bigint"){[this.significand,this.exponent]=Ct(n,0);return}if(typeof n=="number"){[this.significand,this.exponent]=Gs(n);return}[this.significand,this.exponent]=ar(n)}isNaN(){return Number.isNaN(this.exponent)}isZero(){return this.exponent===0&&this.significand===0n}isFinite(){return Number.isFinite(this.exponent)}isInteger(){return this.isFinite()&&this.exponent>=0}isPositive(){return this.significand>0n}isNegative(){return this.significand<0n}cmp(n){if(typeof n=="number"){if(Number.isNaN(n))return Ni;let v=this.exponent;if(Number.isNaN(v))return Ni;if(n===0)return this.significand===0n?0:this.significand>0n?1:-1;if(!Number.isFinite(v))return n===1/0?this.significand>0n?0:-1:n===-1/0?this.significand<0n?0:1:this.significand>0n?1:-1;if(this.significand===0n)return n>0?-1:1;if(n===1/0)return-1;if(n===-1/0)return 1;if(this.significand>0n!=n>0)return this.significand>0n?1:-1;if(Number.isInteger(n)&&v>=0&&v<=15){let w=this.significand*S(v),B=BigInt(n);return w<B?-1:w>B?1:0}n=new e(n)}let t=this.exponent,i=n.exponent,r=this.significand,s=n.significand;if(t!==t||i!==i)return Ni;if(!Number.isFinite(t)||!Number.isFinite(i))return!Number.isFinite(t)&&!Number.isFinite(i)?r===s?0:r>s?1:-1:Number.isFinite(t)?s>0n?-1:1:r>0n?1:-1;if(r===0n)return s===0n?0:s>0n?-1:1;if(s===0n)return r>0n?1:-1;if(r>0n&&s<0n)return 1;if(r<0n&&s>0n)return-1;if(t===i)return r<s?-1:r>s?1:0;let o=C(r),a=C(s),u=o+t,c=a+i;if(u!==c){let v=r>0n?1:-1;return u>c?v:-v}let f=r,h=s,E=Math.abs(t-i);if(E>1e3){let v=o,w=a,B=Math.max(v,w)+1;v<B&&(f=f*S(B-v)),w<B&&(h=h*S(B-w))}else t<i?h=h*S(E):f=f*S(E);return f<h?-1:f>h?1:0}eq(n){return typeof n=="number"?n===0?this.significand===0n&&this.exponent===0:n===1?this.significand===1n&&this.exponent===0:n===-1?this.significand===-1n&&this.exponent===0:Number.isInteger(n)&&Number.isFinite(this.exponent)&&this.exponent>=0&&this.exponent<=15?this.significand*S(this.exponent)===BigInt(n):this.cmp(n)===0:this.significand===n.significand&&this.exponent===n.exponent}lt(n){return this.cmp(n)===-1}lte(n){let t=this.cmp(n);return t===-1||t===0}gt(n){return this.cmp(n)===1}gte(n){let t=this.cmp(n);return t===1||t===0}add(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(t===i)return A(this.significand+n.significand,t);let o=t-i;return o>0?A(this.significand*S(o)+n.significand,i):A(this.significand+n.significand*S(-o),t)}if(t!==t||i!==i)return e.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(i);return r&&s?this.significand!==n.significand?e.NAN:this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:r?this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:n.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}sub(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i)){if(t===i)return A(this.significand-n.significand,t);let o=t-i;return o>0?A(this.significand*S(o)-n.significand,i):A(this.significand-n.significand*S(-o),t)}if(t!==t||i!==i)return e.NAN;let r=!Number.isFinite(t),s=!Number.isFinite(i);return r&&s?this.significand===n.significand?e.NAN:this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:r?this.significand>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY:n.significand>0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY}mul(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;if(Number.isFinite(t)&&Number.isFinite(i))return A(this.significand*n.significand,t+i);if(t!==t||i!==i||this.significand===0n||n.significand===0n)return e.NAN;let r=this.significand>0n?1n:-1n,s=n.significand>0n?1n:-1n;return r*s>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}neg(){let n=this.significand;return n===0n?this:Number.isFinite(this.exponent)?A(-n,this.exponent):n>0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY}abs(){return this.significand>=0n?this:Number.isFinite(this.exponent)?A(-this.significand,this.exponent):e.POSITIVE_INFINITY}floor(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.trunc();return this.significand<0n?t.sub(A(1n,0)):t}return this}ceil(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.trunc();return this.significand>0n?t.add(A(1n,0)):t}return this}round(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=A(5n,-1);return this.significand>0n?this.add(t).trunc():this.sub(t).trunc()}return this}trunc(){let n=this.exponent;if(n>=0)return this;if(Number.isFinite(n)){let t=this.significand/S(-n);return A(t===0n?0n:t,0)}return this}div(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent,r=this.significand,s=n.significand;if(Number.isFinite(t)&&Number.isFinite(i)){if(s===0n)return r===0n?e.NAN:r>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY;if(r===0n)return A(0n,0);let u=e.precision,c=10,f=r<0n?-r:r,h=s<0n?-s:s,E=C(f),v=C(h),w=u+c+Math.max(0,v-E),B=S(w),ue=r*B/s,on=t-i-w;return A(ue,on).toPrecision(u)}if(t!==t||i!==i)return e.NAN;let o=!Number.isFinite(t),a=!Number.isFinite(i);if(o&&a)return e.NAN;if(o){let u=r>0n?1n:-1n,c=s>0n?1n:s<0n?-1n:1n;return u*c>0n?e.POSITIVE_INFINITY:e.NEGATIVE_INFINITY}return A(0n,0)}inv(){return A(1n,0).div(this)}mod(n){typeof n=="number"&&(n=new e(n));let t=this.exponent,i=n.exponent;return Number.isFinite(t)&&Number.isFinite(i)?n.significand===0n?e.NAN:this.significand===0n?A(0n,0):this.sub(this.div(n).trunc().mul(n)).toPrecision(e.precision):t!==t||i!==i||!Number.isFinite(t)?e.NAN:new e(this)}pow(n){if(typeof n=="number"&&(n=new e(n)),this.isNaN()||n.isNaN()||!n.isFinite())return e.NAN;if(n.isInteger()){let t=n.toBigInt();if(t===0n)return A(1n,0);if(!this.isFinite())return t>0n?this.significand<0n&&t%2n!==0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY:A(0n,0);if(this.isZero())return t>0n?A(0n,0):e.POSITIVE_INFINITY;if(t<0n)return this.pow(n.neg()).inv();let i=this.significand<0n?-this.significand:this.significand,r=C(i)+this.exponent,s=Number(t)*r;if(s>9e15)return this.significand<0n&&t%2n!==0n?e.NEGATIVE_INFINITY:e.POSITIVE_INFINITY;if(s<-9e15)return A(0n,0);let o=e.precision,a=A(1n,0),u=this,c=t;for(;c>0n;)c&1n&&(a=a.mul(u).toPrecision(o)),c>>=1n,c>0n&&(u=u.mul(u).toPrecision(o));return a}return this.isFinite()?this.isZero()?n.significand>0n?e.ZERO:e.POSITIVE_INFINITY:this.significand<0n?e.NAN:n.mul(this.ln()).exp():this.significand<0n?e.NAN:n.significand>0n?e.POSITIVE_INFINITY:e.ZERO}toNumber(){return Number.isFinite(this.exponent)?this.significand===0n?0:this.exponent===0?Number(this.significand):Number(this.toString()):this.exponent!==this.exponent?NaN:this.significand>0n?1/0:-1/0}toString(){if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";if(this.significand===0n)return"0";let n=this.significand<0n,t=(n?-this.significand:this.significand).toString(),i=t.length,r=i+this.exponent-1,s=n?"-":"";if(r>20||r<-6){let u=i===1?t:t[0]+"."+t.slice(1),c=r>=0?"+":"";return`${s}${u}e${c}${r}`}if(this.exponent>=0)return s+t+"0".repeat(this.exponent);let o=-this.exponent;if(o<i){let u=t.slice(0,i-o),c=t.slice(i-o);return`${s}${u}.${c}`}let a=o-i;return`${s}0.${"0".repeat(a)}${t}`}toFixed(n){let t=n??0;if(!Number.isFinite(this.exponent))return this.exponent!==this.exponent?"NaN":this.significand>0n?"Infinity":"-Infinity";let i=this.significand<0n,r=i?-this.significand:this.significand,s=this.exponent+t,o;if(s>=0)o=r*S(s);else{let h=S(-s),E=r/h,v=r%h,w=h/2n;v>w?o=E+1n:v<w||h%2n!==0n||E%2n===0n?o=E:o=E+1n}let a=i&&o!==0n?"-":"",u=o.toString();if(t===0)return`${a}${u}`;if(u.length<=t){let h=u.padStart(t,"0");return`${a}0.${h}`}let c=u.slice(0,u.length-t),f=u.slice(u.length-t);return`${a}${c}.${f}`}toPrecision(n){if(this.significand===0n||!Number.isFinite(this.exponent))return this;let t=this.significand<0n?-this.significand:this.significand,i=C(t);if(i<=n)return this;let r=i-n,s=S(r),o=t/s,a=t%s,u=s/2n;(a>u||a===u&&o%2n!==0n)&&(o+=1n);let c=this.significand<0n?-o:o;return A(c,this.exponent+r)}toBigInt(){if(!Number.isFinite(this.exponent))throw this.exponent!==this.exponent?new RangeError("Cannot convert NaN to BigInt"):new RangeError("Cannot convert Infinity to BigInt");if(this.exponent>=0)return this.significand*S(this.exponent);let n=S(-this.exponent);return this.significand/n}};function A(e,n){let[t,i]=Ct(e,n),r=Object.create(m.prototype);return r.significand=t,r.exponent=i,r}var sr=1000000000n,or=1000n;function Ct(e,n){if(e===0n)return[0n,0];for(;e%sr===0n;)e/=sr,n+=9;for(;e%or===0n;)e/=or,n+=3;for(;e%10n===0n;)e/=10n,n+=1;return[e,n]}function Gs(e){return Number.isNaN(e)?[0n,NaN]:e===1/0?[1n,1/0]:e===-1/0?[-1n,1/0]:Number.isInteger(e)?Ct(BigInt(e),0):ar(e.toString())}function ar(e){if(e=e.trim(),e===""||e==="NaN")return[0n,NaN];if(e==="Infinity"||e==="+Infinity")return[1n,1/0];if(e==="-Infinity")return[-1n,1/0];let n,t=0,i=e.search(/[eE]/);if(i!==-1){if(n=e.slice(0,i),t=Number(e.slice(i+1)),!Number.isFinite(t))return[0n,NaN]}else n=e;let r=!1;n.startsWith("-")?(r=!0,n=n.slice(1)):n.startsWith("+")&&(n=n.slice(1));let s=n.indexOf("."),o,a;s===-1?(o=n,a=""):(o=n.slice(0,s),a=n.slice(s+1)),o=o.replace(/^0+/,"")||"0";let u=o+a;if(u.length===0||!/^\d+$/.test(u))return[0n,NaN];let c=BigInt(u);r&&(c=-c);let f=-a.length;return Ct(c,f+t)}function le(e,n){let t=S(n),i=e.exponent+n;return i>=0?[e.significand*S(i),t]:[e.significand/S(-i),t]}function ce(e,n,t){if(e===0n)return m.ZERO;let i=e<0n,r=i?-e:e,s=C(r);if(s>t){let c=s-t,f=S(c),h=f/2n,E=r%f;r=r/f,E>=h&&(r+=1n);let v=C(n)-1,w=c-v,B=i?-r:r;return A(B,w)}let a=-(C(n)-1),u=i?-r:r;return A(u,a)}m.prototype.sqrt=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NAN;if(this.significand<0n)return m.NAN;let e=m.precision,n=e+10,[t,i]=le(this,n),r=En(t,i);return ce(r,i,e)};m.prototype.cbrt=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NEGATIVE_INFINITY;if(this.significand<0n)return this.neg().cbrt().neg();let e=m.precision,n=e+10,[t,i]=le(this,n),r=t*i*i,s,o=this.toNumber(),a=Number(i);if(Number.isFinite(o)&&o>0&&Number.isFinite(a)){let c=Math.cbrt(o);Number.isFinite(c)&&c>0?(s=BigInt(Math.floor(c*a)),s===0n&&(s=1n)):s=ur(t,i)}else s=ur(t,i);let u;do{u=s;let c=s*s;if(c===0n){s=1n;break}s=(2n*s+r/c)/3n}while(ee(s-u)>1n);{let c=(2n*s+r/(s*s))/3n,f=ee(s*s*s-r);ee(c*c*c-r)<f&&(s=c)}return ce(s,i,e)};m.sqrt=function(e){return e.sqrt()};m.cbrt=function(e){return e.cbrt()};m.prototype.exp=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.ZERO;if(this.isZero())return m.ONE;let e=m.precision,n=e+15,[t,i]=le(this,n),r=Ei(t,i);return ce(r,i,e)};m.prototype.ln=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NAN;if(this.isZero())return m.NEGATIVE_INFINITY;if(this.significand<0n)return m.NAN;if(this.eq(1))return m.ZERO;let e=m.precision,n=e+15,[t,i]=le(this,n),r=rr(t,i);return ce(r,i,e)};m.prototype.log=function(e){let n=e instanceof m?e:new m(e);return this.ln().div(n.ln())};m.exp=function(e){return e.exp()};m.ln=function(e){return e.ln()};m.log10=function(e){return e.log(10)};m.prototype.sin=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ZERO;let e=m.precision,n=e+15,[t,i]=le(this,n),[r]=Ot(t,i);return ce(r,i,e)};m.prototype.cos=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ONE;let e=m.precision,n=e+15,[t,i]=le(this,n),[,r]=Ot(t,i);return ce(r,i,e)};m.prototype.tan=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ZERO;let e=m.precision,n=e+15,[t,i]=le(this,n),[r,s]=Ot(t,i);if(s===0n)return r>0n?m.POSITIVE_INFINITY:m.NEGATIVE_INFINITY;let o=r*i/s;return ce(o,i,e)};m.prototype.atan=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite()){let s=m.PI.div(m.TWO);return this.significand>0n?s:s.neg()}let e=m.precision,n=e+15,[t,i]=le(this,n),r=bn(t,i);return ce(r,i,e)};m.prototype.asin=function(){if(this.isNaN())return m.NAN;if(!this.isFinite())return m.NAN;if(this.isZero())return m.ZERO;let e=this.abs(),n=m.ONE;if(e.gt(n))return m.NAN;if(e.eq(n)){let h=m.PI.div(m.TWO);return this.significand>0n?h:h.neg()}let t=m.precision,i=t+20,[r,s]=le(this,i),o=tr(r,r,s),a=s-o,u=En(a,s),c=ir(r,u,s),f=bn(c,s);return ce(f,s,t)};m.prototype.acos=function(){return this.isNaN()?m.NAN:this.isFinite()?this.abs().gt(m.ONE)?m.NAN:this.eq(1)?m.ZERO:this.eq(-1)?m.PI:m.PI.div(m.TWO).sub(this.asin()):m.NAN};m.sin=function(e){return e.sin()};m.cos=function(e){return e.cos()};m.tan=function(e){return e.tan()};m.asin=function(e){return e.asin()};m.acos=function(e){return e.acos()};m.atan=function(e){return e.atan()};m.atan2=function(e,n){let t=e instanceof m?e:new m(e);if(t.isNaN()||n.isNaN())return m.NAN;let i=m.PI,r=i.div(m.TWO);if(n.isZero())return t.isZero()?m.ZERO:t.significand>0n?r:r.neg();let s=t.div(n);return n.significand>0n?s.atan():t.significand>=0n?s.atan().add(i):s.atan().sub(i)};m.prototype.sinh=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.POSITIVE_INFINITY:m.NEGATIVE_INFINITY;let e=this.exp(),n=e.inv();return e.sub(n).div(m.TWO)};m.prototype.cosh=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ONE;if(!this.isFinite())return m.POSITIVE_INFINITY;let e=this.exp(),n=e.inv();return e.add(n).div(m.TWO)};m.prototype.tanh=function(){if(this.isNaN())return m.NAN;if(this.isZero())return m.ZERO;if(!this.isFinite())return this.significand>0n?m.ONE:m.NEGATIVE_ONE;let e=this.mul(m.TWO).exp();return e.sub(m.ONE).div(e.add(m.ONE))};m.sinh=function(e){return e.sinh()};m.cosh=function(e){return e.cosh()};m.tanh=function(e){return e.tanh()};function ur(e,n){let i=C(e),r=Math.max(0,i-15),s=Number(r>0?e/S(r):e),o=C(n),a=Math.max(0,o-15),u=Number(a>0?n/S(a):n),c=r+2*a,f=Math.floor(c/3),h=c%3,E=Math.cbrt(s*u*u);h===1&&(E*=2.154434690031882),h===2&&(E*=4.641588833612779);let v=BigInt(Math.round(E))*S(f);return v>0n?v:1n}var lr=7,cr=[.9999999999998099,676.5203681218851,-1259.1392167224028,771.3234287776531,-176.6150291621406,12.507343278686905,-.13857109526572012,9984369578019572e-21,15056327351493116e-23];function Oe(e){if(e<0)return NaN;let n=Math.PI,t=e*e*e;return e*Math.log(e)-e-.5*Math.log(e)+.5*Math.log(2*n)+1/(12*e)-1/(360*t)+1/(1260*t*e*e)}function te(e){if(e<.5)return Math.PI/(Math.sin(Math.PI*e)*te(1-e));if(e>100)return Math.exp(Oe(e));e-=1;let n=cr[0];for(let i=1;i<lr+2;i++)n+=cr[i]/(e+i);let t=e+lr+.5;return Math.sqrt(2*Math.PI)*Math.pow(t,e+.5)*Math.exp(-t)*n}function Ti(e){return 1-Ft(e)}function Ft(e){let n=.254829592,t=-.284496736,i=1.421413741,r=-1.453152027,s=1.061405429,o=.3275911,a=e<0?-1:1;e=Math.abs(e);let u=1/(1+o*e),c=((((s*u+r)*u+i)*u+t)*u+n)*u;return a*(1-c*Math.exp(-e*e))}var Za=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330];var Zs=[-2991.8191940101983,708840.0452577386,-6297414862058625e-8,25489088057337637e-7,-4429795180596978e-5,3180162978765678e-4],js=[1,281.3762688899943,45584.78108065326,5173438887700964e-9,4193202458981112e-7,22441179564534092e-6,607366389490085e-3],Us=[-49884311457357354e-24,9504280628298596e-21,-.0006451914356839651,.018884331939670384,-.20552590095501388,1],Ws=[399982968972496e-26,9154392157746574e-25,12500186247959882e-23,12226278902417902e-21,.0008680295429417843,.04121420907221998,1],fr=[.4215435550436775,.1434079197807589,.011522095507358577,.000345017939782574,46361374928786735e-22,3055689837902576e-23,10230451416490724e-26,17201074326816183e-29,13428327623306275e-32,3763297112699879e-35],pr=[1,.7515863983533789,.11688892585919138,.0064405152650885865,.00015593440916415301,18462756734893055e-22,11269922476399903e-24,36014002958937136e-27,5887545336215784e-29,45200143407412973e-33,12544323709001127e-36],mr=[.5044420736433832,.1971028335255234,.018764858409257526,.0006840793809153931,11513882611188428e-21,9828524436884223e-23,44534441586175015e-26,10826804113902088e-28,1375554606332618e-30,8363544356306774e-34,18695871016278324e-38],dr=[1,1.4749575992512833,.33774898912002,.02536037414203388,.0008146791071843061,12754507566772912e-21,10431458965757199e-23,46068072851523205e-26,11027321506624028e-28,13879653125957886e-31,8391588162831187e-34,18695871016278324e-38];function X(e,n){let t=n[0];for(let i=1;i<n.length;i++)t=t*e+n[i];return t}function Nn(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,i=t*t;return n*e*t*X(i,Zs)/X(i,js)}if(e<36){let t=e*e,i=Math.PI*t,r=1/(i*i),s=1-r*X(r,fr)/X(r,pr),o=1/i*X(r,mr)/X(r,dr),a=Math.PI/2*t,u=Math.cos(a),c=Math.sin(a);return n*(.5-(s*u+o*c)/(Math.PI*e))}return n*.5}function Tn(e){if(!isFinite(e))return e!==e?NaN:e>0?.5:-.5;let n=e<0?-1:1;if(e=Math.abs(e),e<1.6){let t=e*e,i=t*t;return n*e*X(i,Us)/X(i,Ws)}if(e<36){let t=e*e,i=Math.PI*t,r=1/(i*i),s=1-r*X(r,fr)/X(r,pr),o=1/i*X(r,mr)/X(r,dr),a=Math.PI/2*t,u=Math.cos(a),c=Math.sin(a);return n*(.5+(s*c-o*u)/(Math.PI*e))}return n*.5}var Xa=[BigInt(4),BigInt(2),BigInt(4),BigInt(2),BigInt(4),BigInt(6),BigInt(2),BigInt(6)];var Hs=53,hr=Math.floor(Math.log10(Math.pow(2,Hs))),Ys=1e-10;function ye(e,n){if(e===0)return n;if(n===0||e===n)return e;if(!Number.isInteger(e)||!Number.isInteger(n))return NaN;for(;n!==0;)[e,n]=[n,e%n];return e<0?-e:e}function Ce(e,n){if(e===0||n===0)return 0;let t=BigInt(e)*BigInt(n)/BigInt(ye(e,n));return Number(t)}function vi(e){if(!Number.isInteger(e)||e<0)return NaN;if(e>=170)return 1/0;let n=1;for(let t=2;t<=e;t++)n=n*t;return n}function Ii(e){if(!Number.isInteger(e)||e<0)return NaN;if(e<0)return NaN;if(e<=1)return 1;let n=e;for(;e>2;)e-=2,n*=e;return n}function ki(e,n=Ys){return typeof e=="number"&&Math.abs(e)<=n?0:e}function g(e){let n="",t="";for(let i of e)i!=null&&(typeof i=="string"&&(/[a-zA-Z]/.test(i[0])&&(t+=n),/\\[a-zA-Z]+\*?$/.test(i)?n=" ":n=""),t+=i.toString());return t}function Fe(e,n,t){return n.includes(e)&&(n=`{${n}}`),/^[0-9]$/.test(t)?`${n}${e}${t}`:`${n}${e}{${t}}`}var k=245,In=260,fe=270,F=275,j=390,K=600;var kn=700,Si=810;var Ve=[{latexTrigger:["\\not","<"],kind:"infix",associativity:"any",precedence:246,parse:"NotLess"},{name:"NotLess",latexTrigger:["\\nless"],kind:"infix",associativity:"any",precedence:246},{latexTrigger:["<"],kind:"infix",associativity:"any",precedence:245,parse:"Less"},{name:"Less",latexTrigger:["\\lt"],kind:"infix",associativity:"any",precedence:245},{latexTrigger:["<","="],kind:"infix",associativity:"any",precedence:241,parse:"LessEqual"},{name:"LessEqual",latexTrigger:["\\le"],kind:"infix",associativity:"any",precedence:241},{latexTrigger:["\\leq"],kind:"infix",associativity:"any",precedence:241,parse:"LessEqual"},{latexTrigger:["\\leqslant"],kind:"infix",associativity:"any",precedence:k+5,parse:"LessEqual"},{name:"LessNotEqual",latexTrigger:["\\lneqq"],kind:"infix",associativity:"any",precedence:k},{name:"NotLessNotEqual",latexTrigger:["\\nleqq"],kind:"infix",associativity:"any",precedence:k},{name:"LessOverEqual",latexTrigger:["\\leqq"],kind:"infix",associativity:"any",precedence:k+5},{name:"GreaterOverEqual",latexTrigger:["\\geqq"],kind:"infix",associativity:"any",precedence:k+5,parse:"GreaterEqual"},{name:"Equal",latexTrigger:["="],kind:"infix",associativity:"right",precedence:k},{latexTrigger:["*","="],kind:"infix",associativity:"right",precedence:k,parse:"StarEqual"},{name:"StarEqual",latexTrigger:["\\star","="],kind:"infix",associativity:"right",precedence:k},{name:"PlusEqual",latexTrigger:["+","="],kind:"infix",associativity:"right",precedence:k},{name:"MinusEqual",latexTrigger:["-","="],kind:"infix",associativity:"right",precedence:k},{name:"SlashEqual",latexTrigger:["/","="],kind:"infix",associativity:"right",precedence:k},{name:"EqualEqual",latexTrigger:["=","="],kind:"infix",associativity:"right",precedence:k},{name:"EqualEqualEqual",latexTrigger:["=","=","="],kind:"infix",associativity:"right",precedence:k+5},{name:"TildeFullEqual",latexTrigger:["\\cong"],kind:"infix",associativity:"right",precedence:k},{name:"NotTildeFullEqual",latexTrigger:["\\ncong"],kind:"infix",associativity:"right",precedence:k},{name:"Approx",latexTrigger:["\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"NotApprox",latexTrigger:["\\not","\\approx"],kind:"infix",associativity:"right",precedence:247},{name:"ApproxEqual",latexTrigger:["\\approxeq"],kind:"infix",associativity:"right",precedence:k},{name:"NotApproxEqual",latexTrigger:["\\not","\\approxeq"],kind:"infix",associativity:"right",precedence:250},{name:"NotEqual",latexTrigger:["\\ne"],kind:"infix",associativity:"right",precedence:255},{name:"Unequal",latexTrigger:["!","="],kind:"infix",associativity:"right",precedence:k},{name:"GreaterEqual",latexTrigger:["\\ge"],kind:"infix",associativity:"right",precedence:242},{latexTrigger:["\\geq"],kind:"infix",associativity:"right",precedence:242,parse:"GreaterEqual"},{latexTrigger:[">","="],kind:"infix",associativity:"right",precedence:243,parse:"GreaterEqual"},{latexTrigger:["\\geqslant"],kind:"infix",associativity:"right",precedence:k+5,parse:"GreaterEqual"},{name:"GreaterNotEqual",latexTrigger:["\\gneqq"],kind:"infix",associativity:"right",precedence:k},{name:"NotGreaterNotEqual",latexTrigger:["\\ngeqq"],kind:"infix",associativity:"right",precedence:k},{latexTrigger:[">"],kind:"infix",associativity:"right",precedence:245,parse:"Greater"},{name:"Greater",latexTrigger:["\\gt"],kind:"infix",associativity:"right",precedence:245},{name:"NotGreater",latexTrigger:["\\ngtr"],kind:"infix",associativity:"right",precedence:244},{latexTrigger:["\\not",">"],kind:"infix",associativity:"right",precedence:244,parse:"NotGreater"},{name:"RingEqual",latexTrigger:["\\circeq"],kind:"infix",associativity:"right",precedence:k},{name:"TriangleEqual",latexTrigger:["\\triangleq"],kind:"infix",associativity:"right",precedence:k},{name:"DotEqual",latexTrigger:["\\doteq"],kind:"infix",associativity:"right",precedence:k+5},{name:"DotEqualDot",latexTrigger:["\\doteqdot"],kind:"infix",associativity:"right",precedence:k+5},{name:"FallingDotEqual",latexTrigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:k+5},{name:"RisingDotEqual",latexTrigger:["\\fallingdotseq"],kind:"infix",associativity:"right",precedence:k+5},{name:"QuestionEqual",latexTrigger:["\\questeq"],kind:"infix",associativity:"right",precedence:k},{name:"MuchLess",latexTrigger:["\\ll"],kind:"infix",associativity:"right",precedence:k},{name:"MuchGreater",latexTrigger:["\\gg"],kind:"infix",associativity:"right",precedence:k},{name:"Precedes",latexTrigger:["\\prec"],kind:"infix",associativity:"right",precedence:k},{name:"Succeeds",latexTrigger:["\\succ"],kind:"infix",associativity:"right",precedence:k},{name:"PrecedesEqual",latexTrigger:["\\preccurlyeq"],kind:"infix",associativity:"right",precedence:k},{name:"SucceedsEqual",latexTrigger:["\\curlyeqprec"],kind:"infix",associativity:"right",precedence:k},{name:"NotPrecedes",latexTrigger:["\\nprec"],kind:"infix",associativity:"right",precedence:k},{name:"NotSucceeds",latexTrigger:["\\nsucc"],kind:"infix",associativity:"right",precedence:k},{name:"Between",latexTrigger:["\\between"],kind:"infix",associativity:"right",precedence:k+5}];function Mi(e){return typeof e!="string"?!1:["Less","LessEqual","Greater","GreaterEqual"].includes(e)}function wi(e){return typeof e!="string"?!1:["Equal","NotEqual"].includes(e)}var Z=Math.cosh||function(e){return Math.abs(e)<1e-9?1-e:(Math.exp(e)+Math.exp(-e))*.5},Q=Math.sinh||function(e){return Math.abs(e)<1e-9?e:(Math.exp(e)-Math.exp(-e))*.5},Xs=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)},Ks=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))},Je=function(){throw SyntaxError("Invalid Param")};function Di(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 Qs=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 V.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 V.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]):Je();break;case"string":t.im=t.re=0;var i=e.match(/\d+\.?\d*e[+-]?\d+|\d+\.?\d*|\.\d+|./g),r=1,s=0;i===null&&Je();for(var o=0;o<i.length;o++){var a=i[o];a===" "||a===" "||a===` `||(a==="+"?r++:a==="-"?s++:a==="i"||a==="I"?(r+s===0&&Je(),i[o+1]!==" "&&!isNaN(Number(i[o+1]))?(t.im+=parseFloat((s%2?"-":"")+i[o+1]),o++):t.im+=parseFloat((s%2?"-":"")+"1"),r=s=0):((r+s===0||isNaN(Number(a)))&&Je(),i[o+1]==="i"||i[o+1]==="I"?(t.im+=parseFloat((s%2?"-":"")+a),o++):t.re+=parseFloat((s%2?"-":"")+a),r=s=0))}r+s>0&&Je();break;case"number":t.im=0,t.re=e;break;default:Je()}return isNaN(t.re)||isNaN(t.im),t},V=class e{constructor(n,t){this.re=0,this.im=0;var i=Qs(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,s=i.im,o,a;return s===0?new e(n/r,t/r):Math.abs(r)<Math.abs(s)?(a=r/s,o=r*a+s,new e((n*a+t)/o,(t*a-n)/o)):(a=s/r,o=s*a+r,new e((n+t*a)/o,(t-n*a)/o))}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),s=Di(n,t);return n=Math.exp(i.re*s-i.im*r),t=i.im*s+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,s;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?s=.5*Math.sqrt(2*(i-n)):s=Math.abs(t)/Math.sqrt(2*(i+n)),new e(r,t<0?-s:s)}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)+Xs(t),Math.exp(n)*Math.sin(t))}log(){var n=this.re,t=this.im;return t===0&&n>0,new e(Di(n,t),Math.atan2(t,n))}abs(){return Ks(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)*Z(t),Math.cos(n)*Q(t))}cos(){var n=this.re,t=this.im;return new e(Math.cos(n)*Z(t),-Math.sin(n)*Q(t))}tan(){var n=2*this.re,t=2*this.im,i=Math.cos(n)+Z(t);return new e(Math.sin(n)/i,Q(t)/i)}cot(){var n=2*this.re,t=2*this.im,i=Math.cos(n)-Z(t);return new e(-Math.sin(n)/i,Q(t)/i)}sec(){var n=this.re,t=this.im,i=.5*Z(2*t)+.5*Math.cos(2*n);return new e(Math.cos(n)*Z(t)/i,Math.sin(n)*Q(t)/i)}csc(){var n=this.re,t=this.im,i=.5*Z(2*t)-.5*Math.cos(2*n);return new e(Math.sin(n)*Z(t)/i,-Math.cos(n)*Q(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(Q(n)*Math.cos(t),Z(n)*Math.sin(t))}cosh(){var n=this.re,t=this.im;return new e(Z(n)*Math.cos(t),Q(n)*Math.sin(t))}tanh(){var n=2*this.re,t=2*this.im,i=Z(n)+Math.cos(t);return new e(Q(n)/i,Math.sin(t)/i)}coth(){var n=2*this.re,t=2*this.im,i=Z(n)-Math.cos(t);return new e(Q(n)/i,-Math.sin(t)/i)}csch(){var n=this.re,t=this.im,i=Math.cos(2*t)-Z(2*n);return new e(-2*Q(n)*Math.cos(t)/i,2*Z(n)*Math.sin(t)/i)}sech(){var n=this.re,t=this.im,i=Math.cos(2*t)+Z(2*n);return new e(2*Z(n)*Math.cos(t)/i,-2*Q(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,s=1+n,o=r*r+t*t,a=o!==0?new e((s*r-t*t)/o,(t*r+s*t)/o):new e(n!==-1?n/0:0,t!==0?t/0:0),u=a.re;return a.re=Di(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())}};V.ZERO=new V(0,0);V.ONE=new V(1,0);V.I=new V(0,1);V.PI=new V(Math.PI,0);V.E=new V(Math.E,0);V.INFINITY=new V(1/0,1/0);V.NAN=new V(NaN,NaN);V.EPSILON=1e-15;var Le=["number","finite_number","complex","finite_complex","imaginary","real","finite_real","rational","finite_rational","integer","finite_integer","non_finite_number"],Ai=["indexed_collection","list","tuple"],Vt=[...Ai,"collection","set","record","dictionary"],Jt=["scalar",...Le,"boolean","string"],Pi=["value","color",...Vt,...Jt],_i=["expression","symbol","function",...Pi],xe=["any","unknown","nothing","never","error",..._i];function Lt(e){return typeof e=="string"?xe.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 yr=3,xr=1,br=2,eo=4,no=5,to=6,io=7,ro=8,so=9,oo=10,ao=11;function O(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=`!${O(e.type,yr)}`;break;case"union":t=e.types.map(u=>O(u,xr)).join(" | ");break;case"intersection":t=e.types.map(u=>O(u,br)).join(" & ");break;case"expression":t=`expression<${gr(e.operator)}>`;break;case"symbol":t=`symbol<${gr(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"&&Le.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<${O(e.elements)}>`:t=`vector<${O(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<${O(e.elements)}>`:t=`matrix<${O(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<${O(e.elements)}${u}>`}break;case"record":t=`record<${Object.entries(e.elements).map(([u,c])=>`${u}: ${O(c)}`).join(", ")}>`;break;case"dictionary":t=`dictionary<${O(e.values)}>`;break;case"set":t=`set<${O(e.elements)}>`;break;case"collection":t=`collection<${O(e.elements)}>`;break;case"indexed_collection":t=`indexed_collection<${O(e.elements)}>`;break;case"tuple":if(e.elements.length===0)t="tuple";else if(e.elements.length===1){let[u]=e.elements;t=`tuple<${$e(u)}>`}else t="tuple<"+e.elements.map(u=>$e(u)).join(", ")+">";break;case"signature":let r=e.args?e.args.map(u=>$e(u)).join(", "):"",s=e.optArgs?e.optArgs.map(u=>$e(u)+"?").join(", "):"",o=e.variadicArg?e.variadicMin===0?`${$e(e.variadicArg)}*`:`${$e(e.variadicArg)}+`:"";t=`(${[r,s,o].filter(u=>u).join(", ")}) -> ${O(e.result)}`;break;default:t="error"}return n>0&&n>uo(e.kind)?`(${t})`:t}function $e(e){return e.name?`${e.name}: ${O(e.type)}`:O(e.type)}function gr(e){return/^[a-zA-Z_][a-zA-Z0-9_]*$/.test(e)?e:`\`${e}\``}function uo(e){switch(e){case"negation":return yr;case"union":return xr;case"intersection":return br;case"list":return eo;case"record":return no;case"dictionary":return to;case"set":return io;case"collection":case"indexed_collection":return ro;case"tuple":return so;case"signature":return oo;case"value":return ao;default:return 0}}var $t=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===` `?(this.line++,this.column=1):this.column++,n}match(n){if(this.input.slice(this.pos,this.pos+n.length)===n){for(let t=0;t<n.length;t++)this.advance();return!0}return!1}isEOF(){return this.pos>=this.input.length}skipWhitespace(){for(;!this.isEOF()&&/\s/.test(this.peek());)this.advance()}readIdentifier(){let n="";for(;!this.isEOF()&&/[a-zA-Z0-9_]/.test(this.peek());)n+=this.advance();return n}readVerbatimString(){if(!this.match("`"))return"";let n="";for(;!this.isEOF()&&this.peek()!=="`";)this.match("\\`")?n+="`":this.match("\\\\")?n+="\\":n+=this.advance();return this.isEOF()&&this.error("Unterminated verbatim string"),this.advance(),n}readStringLiteral(){let n=this.advance(),t="";for(;!this.isEOF()&&this.peek()!==n;)this.match("\\"+n)?t+=n:this.match("\\\\")?t+="\\":t+=this.advance();return this.isEOF()&&this.error("Unterminated string literal"),this.advance(),t}readNumber(){let n="";if((this.peek()==="-"||this.peek()==="+")&&(n+=this.advance()),this.match("0x")||this.match("0X")){for(n+="x";!this.isEOF()&&/[0-9a-fA-F]/.test(this.peek());)n+=this.advance();return"0"+n}if(this.match("0b")||this.match("0B")){for(n+="b";!this.isEOF()&&/[01]/.test(this.peek());)n+=this.advance();return"0"+n}for(;!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();if(this.peek()==="."&&/[0-9]/.test(this.peek(1)))for(n+=this.advance();!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();if(this.peek()==="e"||this.peek()==="E")for(n+=this.advance(),(this.peek()==="+"||this.peek()==="-")&&(n+=this.advance());!this.isEOF()&&/[0-9]/.test(this.peek());)n+=this.advance();return n}createToken(n,t){return{type:n,value:t,position:this.pos-t.length,line:this.line,column:this.column-t.length}}nextToken(){if(this.skipWhitespace(),this.isEOF())return this.createToken("EOF","");let n=this.pos,t=this.peek();if(this.match("->"))return this.createToken("->","->");if(this.match(".."))return this.createToken("..","..");if(this.match("+\u221E")||this.match("+oo"))return this.createToken("PLUS_INFINITY",this.input.slice(n,this.pos));if(this.match("-\u221E")||this.match("-oo"))return this.createToken("MINUS_INFINITY",this.input.slice(n,this.pos));if(this.match("+infinity"))return this.createToken("PLUS_INFINITY","+infinity");if(this.match("-infinity"))return this.createToken("MINUS_INFINITY","-infinity");if(/[a-zA-Z_]/.test(t)){let i=this.readIdentifier();switch(i){case"true":return this.createToken("TRUE",i);case"false":return this.createToken("FALSE",i);case"nan":return this.createToken("NAN",i);case"infinity":return this.createToken("INFINITY",i);case"oo":return this.createToken("INFINITY",i);default:return this.createToken("IDENTIFIER",i)}}switch(t){case"|":return this.advance(),this.createToken("|","|");case"&":return this.adv