nerdamer 2.0.0-rc.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +11 -5
  2. package/dist/bundle.js +1 -1
  3. package/dist/bundle.js.LICENSE.txt +6 -6
  4. package/output/algebra/dispatch.js +1 -1
  5. package/output/algebra/partfrac.js +1 -1
  6. package/output/algebra/simplify/funcsimp.js +1 -1
  7. package/output/algebra/simplify/ratsimp.js +1 -1
  8. package/output/algebra/utils.d.ts +1 -1
  9. package/output/algebra/utils.js +3 -3
  10. package/output/api/algebra.d.ts +19 -2
  11. package/output/api/algebra.js +18 -2
  12. package/output/api/assumptions.d.ts +1 -1
  13. package/output/api/assumptions.js +2 -1
  14. package/output/api/core.d.ts +28 -7
  15. package/output/api/core.js +28 -2
  16. package/output/calculus/derivative/diff.js +1 -1
  17. package/output/calculus/dispatch.js +2 -2
  18. package/output/calculus/integrate/integrate.js +4 -4
  19. package/output/calculus/integrate/integrationTable.js +16 -16
  20. package/output/calculus/laplace/ilaplace.js +1 -1
  21. package/output/calculus/laplace/ilaplaceTable.js +18 -17
  22. package/output/calculus/laplace/laplaceTable.js +3 -2
  23. package/output/calculus/limit/limit.js +1 -1
  24. package/output/core/classes/assumption/assume.d.ts +6 -0
  25. package/output/core/classes/assumption/assume.js +9 -0
  26. package/output/core/classes/expression/CoeffObject.d.ts +1 -1
  27. package/output/core/classes/expression/Expression.d.ts +8 -16
  28. package/output/core/classes/expression/Expression.js +11 -33
  29. package/output/core/classes/matrix/Matrix.d.ts +2 -3
  30. package/output/core/classes/matrix/Matrix.js +7 -16
  31. package/output/core/classes/matrix/dispatch.js +1 -1
  32. package/output/core/classes/parser/Parser.d.ts +17 -4
  33. package/output/core/classes/parser/Parser.js +312 -450
  34. package/output/core/classes/parser/operations/functions.d.ts +3 -4
  35. package/output/core/classes/parser/operations/functions.js +35 -97
  36. package/output/core/classes/parser/operations/power.js +2 -2
  37. package/output/core/classes/parser/preprocess.js +14 -7
  38. package/output/core/classes/parser/scripting/controlFlow.js +49 -25
  39. package/output/core/classes/parser/scripting/deferred.d.ts +1 -1
  40. package/output/core/classes/parser/scripting/deferred.js +1 -1
  41. package/output/core/classes/parser/scripting/scope.js +38 -19
  42. package/output/core/classes/parser/types.d.ts +0 -5
  43. package/output/core/classes/parser/wrappers/IndexedReference.d.ts +4 -3
  44. package/output/core/classes/parser/wrappers/IndexedReference.js +8 -0
  45. package/output/core/classes/parser/wrappers/KeyValuePair.d.ts +2 -2
  46. package/output/core/classes/polynomial/Polynomial.js +1 -1
  47. package/output/core/classes/polynomial/SparsePolynomial.d.ts +11 -11
  48. package/output/core/classes/polynomial/SparsePolynomial.js +65 -65
  49. package/output/core/classes/vector/Vector.d.ts +2 -3
  50. package/output/core/classes/vector/Vector.js +6 -14
  51. package/output/core/common/classes/StructuredEntity.d.ts +0 -17
  52. package/output/core/common/classes/StructuredEntity.js +3 -64
  53. package/output/core/converters/BaseConverter.js +2 -1
  54. package/output/core/fullFunctions.js +14 -14
  55. package/output/core/functions/bigint/bigint.d.ts +1 -1
  56. package/output/core/functions/numeric.d.ts +1 -1
  57. package/output/core/parserFunctions.js +10 -10
  58. package/output/index.d.ts +29 -29
  59. package/output/index.js +124 -20
  60. package/output/math/dispatch.js +1 -1
  61. package/output/math/math.js +21 -21
  62. package/output/math/trig.js +4 -4
  63. package/output/solve/solve.js +1 -1
  64. package/package.json +34 -15
  65. package/dist/parser.js +0 -2
  66. package/dist/parser.js.LICENSE.txt +0 -7
  67. package/docs-data/parser-functions.json +0 -2248
  68. package/output/core/classes/parser/operations/comma.d.ts +0 -7
  69. package/output/core/classes/parser/operations/comma.js +0 -11
package/dist/parser.js DELETED
@@ -1,2 +0,0 @@
1
- /*! For license information please see parser.js.LICENSE.txt */
2
- !function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.nerdamerParser=t():e.nerdamerParser=t()}(this,()=>(()=>{var e={3110(e,t,i){var n;!function(){"use strict";var s,r,o,a=9e15,l=1e9,u="0123456789abcdef",c="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",p="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",m={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-a,maxE:a,crypto:!1},g=!0,d="[DecimalError] ",h=d+"Invalid argument: ",E=d+"Precision limit exceeded",x=d+"crypto unavailable",y="[object Decimal]",v=Math.floor,w=Math.pow,S=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,A=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,N=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,P=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,I=1e7,b=c.length-1,M=p.length-1,T={toStringTag:y};function digitsToString(e){var t,i,n,s=e.length-1,r="",o=e[0];if(s>0){for(r+=o,t=1;t<s;t++)(i=7-(n=e[t]+"").length)&&(r+=getZeroString(i)),r+=n;(i=7-(n=(o=e[t])+"").length)&&(r+=getZeroString(i))}else if(0===o)return"0";for(;o%10==0;)o/=10;return r+o}function checkInt32(e,t,i){if(e!==~~e||e<t||e>i)throw Error(h+e)}function checkRoundingDigits(e,t,i,n){var s,r,o,a;for(r=e[0];r>=10;r/=10)--t;return--t<0?(t+=7,s=0):(s=Math.ceil((t+1)/7),t%=7),r=w(10,7-t),a=e[s]%r|0,null==n?t<3?(0==t?a=a/100|0:1==t&&(a=a/10|0),o=i<4&&99999==a||i>3&&49999==a||5e4==a||0==a):o=(i<4&&a+1==r||i>3&&a+1==r/2)&&(e[s+1]/r/100|0)==w(10,t-2)-1||(a==r/2||0==a)&&!(e[s+1]/r/100|0):t<4?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),o=(n||i<4)&&9999==a||!n&&i>3&&4999==a):o=((n||i<4)&&a+1==r||!n&&i>3&&a+1==r/2)&&(e[s+1]/r/1e3|0)==w(10,t-3)-1,o}function convertBase(e,t,i){for(var n,s,r=[0],o=0,a=e.length;o<a;){for(s=r.length;s--;)r[s]*=t;for(r[0]+=u.indexOf(e.charAt(o++)),n=0;n<r.length;n++)r[n]>i-1&&(void 0===r[n+1]&&(r[n+1]=0),r[n+1]+=r[n]/i|0,r[n]%=i)}return r.reverse()}T.absoluteValue=T.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),finalise(e)},T.ceil=function(){return finalise(new this.constructor(this),this.e+1,2)},T.clampedTo=T.clamp=function(e,t){var i=this,n=i.constructor;if(e=new n(e),t=new n(t),!e.s||!t.s)return new n(NaN);if(e.gt(t))throw Error(h+t);return i.cmp(e)<0?e:i.cmp(t)>0?t:new n(i)},T.comparedTo=T.cmp=function(e){var t,i,n,s,r=this,o=r.d,a=(e=new r.constructor(e)).d,l=r.s,u=e.s;if(!o||!a)return l&&u?l!==u?l:o===a?0:!o^l<0?1:-1:NaN;if(!o[0]||!a[0])return o[0]?l:a[0]?-u:0;if(l!==u)return l;if(r.e!==e.e)return r.e>e.e^l<0?1:-1;for(t=0,i=(n=o.length)<(s=a.length)?n:s;t<i;++t)if(o[t]!==a[t])return o[t]>a[t]^l<0?1:-1;return n===s?0:n>s^l<0?1:-1},T.cosine=T.cos=function(){var e,t,i=this,n=i.constructor;return i.d?i.d[0]?(e=n.precision,t=n.rounding,n.precision=e+Math.max(i.e,i.sd())+7,n.rounding=1,i=function cosine(e,t){var i,n,s;if(t.isZero())return t;n=t.d.length,n<32?s=(1/tinyPow(4,i=Math.ceil(n/3))).toString():(i=16,s="2.3283064365386962890625e-10");e.precision+=i,t=taylorSeries(e,1,t.times(s),new e(1));for(var r=i;r--;){var o=t.times(t);t=o.times(o).minus(o).times(8).plus(1)}return e.precision-=i,t}(n,toLessThanHalfPi(n,i)),n.precision=e,n.rounding=t,finalise(2==o||3==o?i.neg():i,e,t,!0)):new n(1):new n(NaN)},T.cubeRoot=T.cbrt=function(){var e,t,i,n,s,r,o,a,l,u,c=this,p=c.constructor;if(!c.isFinite()||c.isZero())return new p(c);for(g=!1,(r=c.s*w(c.s*c,1/3))&&Math.abs(r)!=1/0?n=new p(r.toString()):(i=digitsToString(c.d),(r=((e=c.e)-i.length+1)%3)&&(i+=1==r||-2==r?"0":"00"),r=w(i,1/3),e=v((e+1)/3)-(e%3==(e<0?-1:2)),(n=new p(i=r==1/0?"5e"+e:(i=r.toExponential()).slice(0,i.indexOf("e")+1)+e)).s=c.s),o=(e=p.precision)+3;;)if(u=(l=(a=n).times(a).times(a)).plus(c),n=R(u.plus(c).times(a),u.plus(l),o+2,1),digitsToString(a.d).slice(0,o)===(i=digitsToString(n.d)).slice(0,o)){if("9999"!=(i=i.slice(o-3,o+1))&&(s||"4999"!=i)){+i&&(+i.slice(1)||"5"!=i.charAt(0))||(finalise(n,e+1,1),t=!n.times(n).times(n).eq(c));break}if(!s&&(finalise(a,e+1,0),a.times(a).times(a).eq(c))){n=a;break}o+=4,s=1}return g=!0,finalise(n,e,p.rounding,t)},T.decimalPlaces=T.dp=function(){var e,t=this.d,i=NaN;if(t){if(i=7*((e=t.length-1)-v(this.e/7)),e=t[e])for(;e%10==0;e/=10)i--;i<0&&(i=0)}return i},T.dividedBy=T.div=function(e){return R(this,new this.constructor(e))},T.dividedToIntegerBy=T.divToInt=function(e){var t=this.constructor;return finalise(R(this,new t(e),0,1,1),t.precision,t.rounding)},T.equals=T.eq=function(e){return 0===this.cmp(e)},T.floor=function(){return finalise(new this.constructor(this),this.e+1,3)},T.greaterThan=T.gt=function(e){return this.cmp(e)>0},T.greaterThanOrEqualTo=T.gte=function(e){var t=this.cmp(e);return 1==t||0===t},T.hyperbolicCosine=T.cosh=function(){var e,t,i,n,s,r=this,o=r.constructor,a=new o(1);if(!r.isFinite())return new o(r.s?1/0:NaN);if(r.isZero())return a;i=o.precision,n=o.rounding,o.precision=i+Math.max(r.e,r.sd())+4,o.rounding=1,(s=r.d.length)<32?t=(1/tinyPow(4,e=Math.ceil(s/3))).toString():(e=16,t="2.3283064365386962890625e-10"),r=taylorSeries(o,1,r.times(t),new o(1),!0);for(var l,u=e,c=new o(8);u--;)l=r.times(r),r=a.minus(l.times(c.minus(l.times(c))));return finalise(r,o.precision=i,o.rounding=n,!0)},T.hyperbolicSine=T.sinh=function(){var e,t,i,n,s=this,r=s.constructor;if(!s.isFinite()||s.isZero())return new r(s);if(t=r.precision,i=r.rounding,r.precision=t+Math.max(s.e,s.sd())+4,r.rounding=1,(n=s.d.length)<3)s=taylorSeries(r,2,s,s,!0);else{e=(e=1.4*Math.sqrt(n))>16?16:0|e,s=taylorSeries(r,2,s=s.times(1/tinyPow(5,e)),s,!0);for(var o,a=new r(5),l=new r(16),u=new r(20);e--;)o=s.times(s),s=s.times(a.plus(o.times(l.times(o).plus(u))))}return r.precision=t,r.rounding=i,finalise(s,t,i,!0)},T.hyperbolicTangent=T.tanh=function(){var e,t,i=this,n=i.constructor;return i.isFinite()?i.isZero()?new n(i):(e=n.precision,t=n.rounding,n.precision=e+7,n.rounding=1,R(i.sinh(),i.cosh(),n.precision=e,n.rounding=t)):new n(i.s)},T.inverseCosine=T.acos=function(){var e=this,t=e.constructor,i=e.abs().cmp(1),n=t.precision,s=t.rounding;return-1!==i?0===i?e.isNeg()?getPi(t,n,s):new t(0):new t(NaN):e.isZero()?getPi(t,n+4,s).times(.5):(t.precision=n+6,t.rounding=1,e=new t(1).minus(e).div(e.plus(1)).sqrt().atan(),t.precision=n,t.rounding=s,e.times(2))},T.inverseHyperbolicCosine=T.acosh=function(){var e,t,i=this,n=i.constructor;return i.lte(1)?new n(i.eq(1)?0:NaN):i.isFinite()?(e=n.precision,t=n.rounding,n.precision=e+Math.max(Math.abs(i.e),i.sd())+4,n.rounding=1,g=!1,i=i.times(i).minus(1).sqrt().plus(i),g=!0,n.precision=e,n.rounding=t,i.ln()):new n(i)},T.inverseHyperbolicSine=T.asinh=function(){var e,t,i=this,n=i.constructor;return!i.isFinite()||i.isZero()?new n(i):(e=n.precision,t=n.rounding,n.precision=e+2*Math.max(Math.abs(i.e),i.sd())+6,n.rounding=1,g=!1,i=i.times(i).plus(1).sqrt().plus(i),g=!0,n.precision=e,n.rounding=t,i.ln())},T.inverseHyperbolicTangent=T.atanh=function(){var e,t,i,n,s=this,r=s.constructor;return s.isFinite()?s.e>=0?new r(s.abs().eq(1)?s.s/0:s.isZero()?s:NaN):(e=r.precision,t=r.rounding,n=s.sd(),Math.max(n,e)<2*-s.e-1?finalise(new r(s),e,t,!0):(r.precision=i=n-s.e,s=R(s.plus(1),new r(1).minus(s),i+e,1),r.precision=e+4,r.rounding=1,s=s.ln(),r.precision=e,r.rounding=t,s.times(.5))):new r(NaN)},T.inverseSine=T.asin=function(){var e,t,i,n,s=this,r=s.constructor;return s.isZero()?new r(s):(t=s.abs().cmp(1),i=r.precision,n=r.rounding,-1!==t?0===t?((e=getPi(r,i+4,n).times(.5)).s=s.s,e):new r(NaN):(r.precision=i+6,r.rounding=1,s=s.div(new r(1).minus(s.times(s)).sqrt().plus(1)).atan(),r.precision=i,r.rounding=n,s.times(2)))},T.inverseTangent=T.atan=function(){var e,t,i,n,s,r,o,a,l,u=this,c=u.constructor,p=c.precision,m=c.rounding;if(u.isFinite()){if(u.isZero())return new c(u);if(u.abs().eq(1)&&p+4<=M)return(o=getPi(c,p+4,m).times(.25)).s=u.s,o}else{if(!u.s)return new c(NaN);if(p+4<=M)return(o=getPi(c,p+4,m).times(.5)).s=u.s,o}for(c.precision=a=p+10,c.rounding=1,e=i=Math.min(28,a/7+2|0);e;--e)u=u.div(u.times(u).plus(1).sqrt().plus(1));for(g=!1,t=Math.ceil(a/7),n=1,l=u.times(u),o=new c(u),s=u;-1!==e;)if(s=s.times(l),r=o.minus(s.div(n+=2)),s=s.times(l),void 0!==(o=r.plus(s.div(n+=2))).d[t])for(e=t;o.d[e]===r.d[e]&&e--;);return i&&(o=o.times(2<<i-1)),g=!0,finalise(o,c.precision=p,c.rounding=m,!0)},T.isFinite=function(){return!!this.d},T.isInteger=T.isInt=function(){return!!this.d&&v(this.e/7)>this.d.length-2},T.isNaN=function(){return!this.s},T.isNegative=T.isNeg=function(){return this.s<0},T.isPositive=T.isPos=function(){return this.s>0},T.isZero=function(){return!!this.d&&0===this.d[0]},T.lessThan=T.lt=function(e){return this.cmp(e)<0},T.lessThanOrEqualTo=T.lte=function(e){return this.cmp(e)<1},T.logarithm=T.log=function(e){var t,i,n,s,r,o,a,l,u=this,c=u.constructor,p=c.precision,m=c.rounding;if(null==e)e=new c(10),t=!0;else{if(i=(e=new c(e)).d,e.s<0||!i||!i[0]||e.eq(1))return new c(NaN);t=e.eq(10)}if(i=u.d,u.s<0||!i||!i[0]||u.eq(1))return new c(i&&!i[0]?-1/0:1!=u.s?NaN:i?0:1/0);if(t)if(i.length>1)r=!0;else{for(s=i[0];s%10==0;)s/=10;r=1!==s}if(g=!1,o=naturalLogarithm(u,a=p+5),n=t?getLn10(c,a+10):naturalLogarithm(e,a),checkRoundingDigits((l=R(o,n,a,1)).d,s=p,m))do{if(o=naturalLogarithm(u,a+=10),n=t?getLn10(c,a+10):naturalLogarithm(e,a),l=R(o,n,a,1),!r){+digitsToString(l.d).slice(s+1,s+15)+1==1e14&&(l=finalise(l,p+1,0));break}}while(checkRoundingDigits(l.d,s+=10,m));return g=!0,finalise(l,p,m)},T.minus=T.sub=function(e){var t,i,n,s,r,o,a,l,u,c,p,m,d=this,h=d.constructor;if(e=new h(e),!d.d||!e.d)return d.s&&e.s?d.d?e.s=-e.s:e=new h(e.d||d.s!==e.s?d:NaN):e=new h(NaN),e;if(d.s!=e.s)return e.s=-e.s,d.plus(e);if(u=d.d,m=e.d,a=h.precision,l=h.rounding,!u[0]||!m[0]){if(m[0])e.s=-e.s;else{if(!u[0])return new h(3===l?-0:0);e=new h(d)}return g?finalise(e,a,l):e}if(i=v(e.e/7),c=v(d.e/7),u=u.slice(),r=c-i){for((p=r<0)?(t=u,r=-r,o=m.length):(t=m,i=c,o=u.length),r>(n=Math.max(Math.ceil(a/7),o)+2)&&(r=n,t.length=1),t.reverse(),n=r;n--;)t.push(0);t.reverse()}else{for((p=(n=u.length)<(o=m.length))&&(o=n),n=0;n<o;n++)if(u[n]!=m[n]){p=u[n]<m[n];break}r=0}for(p&&(t=u,u=m,m=t,e.s=-e.s),o=u.length,n=m.length-o;n>0;--n)u[o++]=0;for(n=m.length;n>r;){if(u[--n]<m[n]){for(s=n;s&&0===u[--s];)u[s]=I-1;--u[s],u[n]+=I}u[n]-=m[n]}for(;0===u[--o];)u.pop();for(;0===u[0];u.shift())--i;return u[0]?(e.d=u,e.e=getBase10Exponent(u,i),g?finalise(e,a,l):e):new h(3===l?-0:0)},T.modulo=T.mod=function(e){var t,i=this,n=i.constructor;return e=new n(e),!i.d||!e.s||e.d&&!e.d[0]?new n(NaN):!e.d||i.d&&!i.d[0]?finalise(new n(i),n.precision,n.rounding):(g=!1,9==n.modulo?(t=R(i,e.abs(),0,3,1)).s*=e.s:t=R(i,e,0,n.modulo,1),t=t.times(e),g=!0,i.minus(t))},T.naturalExponential=T.exp=function(){return naturalExponential(this)},T.naturalLogarithm=T.ln=function(){return naturalLogarithm(this)},T.negated=T.neg=function(){var e=new this.constructor(this);return e.s=-e.s,finalise(e)},T.plus=T.add=function(e){var t,i,n,s,r,o,a,l,u,c,p=this,m=p.constructor;if(e=new m(e),!p.d||!e.d)return p.s&&e.s?p.d||(e=new m(e.d||p.s===e.s?p:NaN)):e=new m(NaN),e;if(p.s!=e.s)return e.s=-e.s,p.minus(e);if(u=p.d,c=e.d,a=m.precision,l=m.rounding,!u[0]||!c[0])return c[0]||(e=new m(p)),g?finalise(e,a,l):e;if(r=v(p.e/7),n=v(e.e/7),u=u.slice(),s=r-n){for(s<0?(i=u,s=-s,o=c.length):(i=c,n=r,o=u.length),s>(o=(r=Math.ceil(a/7))>o?r+1:o+1)&&(s=o,i.length=1),i.reverse();s--;)i.push(0);i.reverse()}for((o=u.length)-(s=c.length)<0&&(s=o,i=c,c=u,u=i),t=0;s;)t=(u[--s]=u[s]+c[s]+t)/I|0,u[s]%=I;for(t&&(u.unshift(t),++n),o=u.length;0==u[--o];)u.pop();return e.d=u,e.e=getBase10Exponent(u,n),g?finalise(e,a,l):e},T.precision=T.sd=function(e){var t,i=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(h+e);return i.d?(t=getPrecision(i.d),e&&i.e+1>t&&(t=i.e+1)):t=NaN,t},T.round=function(){var e=this,t=e.constructor;return finalise(new t(e),e.e+1,t.rounding)},T.sine=T.sin=function(){var e,t,i=this,n=i.constructor;return i.isFinite()?i.isZero()?new n(i):(e=n.precision,t=n.rounding,n.precision=e+Math.max(i.e,i.sd())+7,n.rounding=1,i=function sine(e,t){var i,n=t.d.length;if(n<3)return t.isZero()?t:taylorSeries(e,2,t,t);i=(i=1.4*Math.sqrt(n))>16?16:0|i,t=t.times(1/tinyPow(5,i)),t=taylorSeries(e,2,t,t);for(var s,r=new e(5),o=new e(16),a=new e(20);i--;)s=t.times(t),t=t.times(r.plus(s.times(o.times(s).minus(a))));return t}(n,toLessThanHalfPi(n,i)),n.precision=e,n.rounding=t,finalise(o>2?i.neg():i,e,t,!0)):new n(NaN)},T.squareRoot=T.sqrt=function(){var e,t,i,n,s,r,o=this,a=o.d,l=o.e,u=o.s,c=o.constructor;if(1!==u||!a||!a[0])return new c(!u||u<0&&(!a||a[0])?NaN:a?o:1/0);for(g=!1,0==(u=Math.sqrt(+o))||u==1/0?(((t=digitsToString(a)).length+l)%2==0&&(t+="0"),u=Math.sqrt(t),l=v((l+1)/2)-(l<0||l%2),n=new c(t=u==1/0?"5e"+l:(t=u.toExponential()).slice(0,t.indexOf("e")+1)+l)):n=new c(u.toString()),i=(l=c.precision)+3;;)if(n=(r=n).plus(R(o,r,i+2,1)).times(.5),digitsToString(r.d).slice(0,i)===(t=digitsToString(n.d)).slice(0,i)){if("9999"!=(t=t.slice(i-3,i+1))&&(s||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(finalise(n,l+1,1),e=!n.times(n).eq(o));break}if(!s&&(finalise(r,l+1,0),r.times(r).eq(o))){n=r;break}i+=4,s=1}return g=!0,finalise(n,l,c.rounding,e)},T.tangent=T.tan=function(){var e,t,i=this,n=i.constructor;return i.isFinite()?i.isZero()?new n(i):(e=n.precision,t=n.rounding,n.precision=e+10,n.rounding=1,(i=i.sin()).s=1,i=R(i,new n(1).minus(i.times(i)).sqrt(),e+10,0),n.precision=e,n.rounding=t,finalise(2==o||4==o?i.neg():i,e,t,!0)):new n(NaN)},T.times=T.mul=function(e){var t,i,n,s,r,o,a,l,u,c=this,p=c.constructor,m=c.d,d=(e=new p(e)).d;if(e.s*=c.s,!(m&&m[0]&&d&&d[0]))return new p(!e.s||m&&!m[0]&&!d||d&&!d[0]&&!m?NaN:m&&d?0*e.s:e.s/0);for(i=v(c.e/7)+v(e.e/7),(l=m.length)<(u=d.length)&&(r=m,m=d,d=r,o=l,l=u,u=o),r=[],n=o=l+u;n--;)r.push(0);for(n=u;--n>=0;){for(t=0,s=l+n;s>n;)a=r[s]+d[n]*m[s-n-1]+t,r[s--]=a%I|0,t=a/I|0;r[s]=(r[s]+t)%I|0}for(;!r[--o];)r.pop();return t?++i:r.shift(),e.d=r,e.e=getBase10Exponent(r,i),g?finalise(e,p.precision,p.rounding):e},T.toBinary=function(e,t){return toStringBinary(this,2,e,t)},T.toDecimalPlaces=T.toDP=function(e,t){var i=this,n=i.constructor;return i=new n(i),void 0===e?i:(checkInt32(e,0,l),void 0===t?t=n.rounding:checkInt32(t,0,8),finalise(i,e+i.e+1,t))},T.toExponential=function(e,t){var i,n=this,s=n.constructor;return void 0===e?i=finiteToString(n,!0):(checkInt32(e,0,l),void 0===t?t=s.rounding:checkInt32(t,0,8),i=finiteToString(n=finalise(new s(n),e+1,t),!0,e+1)),n.isNeg()&&!n.isZero()?"-"+i:i},T.toFixed=function(e,t){var i,n,s=this,r=s.constructor;return void 0===e?i=finiteToString(s):(checkInt32(e,0,l),void 0===t?t=r.rounding:checkInt32(t,0,8),i=finiteToString(n=finalise(new r(s),e+s.e+1,t),!1,e+n.e+1)),s.isNeg()&&!s.isZero()?"-"+i:i},T.toFraction=function(e){var t,i,n,s,r,o,a,l,u,c,p,m,d=this,E=d.d,x=d.constructor;if(!E)return new x(d);if(u=i=new x(1),n=l=new x(0),o=(r=(t=new x(n)).e=getPrecision(E)-d.e-1)%7,t.d[0]=w(10,o<0?7+o:o),null==e)e=r>0?t:u;else{if(!(a=new x(e)).isInt()||a.lt(u))throw Error(h+a);e=a.gt(t)?r>0?t:u:a}for(g=!1,a=new x(digitsToString(E)),c=x.precision,x.precision=r=7*E.length*2;p=R(a,t,0,1,1),1!=(s=i.plus(p.times(n))).cmp(e);)i=n,n=s,s=u,u=l.plus(p.times(s)),l=s,s=t,t=a.minus(p.times(s)),a=s;return s=R(e.minus(i),n,0,1,1),l=l.plus(s.times(u)),i=i.plus(s.times(n)),l.s=u.s=d.s,m=R(u,n,r,1).minus(d).abs().cmp(R(l,i,r,1).minus(d).abs())<1?[u,n]:[l,i],x.precision=c,g=!0,m},T.toHexadecimal=T.toHex=function(e,t){return toStringBinary(this,16,e,t)},T.toNearest=function(e,t){var i=this,n=i.constructor;if(i=new n(i),null==e){if(!i.d)return i;e=new n(1),t=n.rounding}else{if(e=new n(e),void 0===t?t=n.rounding:checkInt32(t,0,8),!i.d)return e.s?i:e;if(!e.d)return e.s&&(e.s=i.s),e}return e.d[0]?(g=!1,i=R(i,e,0,t,1).times(e),g=!0,finalise(i)):(e.s=i.s,i=e),i},T.toNumber=function(){return+this},T.toOctal=function(e,t){return toStringBinary(this,8,e,t)},T.toPower=T.pow=function(e){var t,i,n,s,r,o,a=this,l=a.constructor,u=+(e=new l(e));if(!(a.d&&e.d&&a.d[0]&&e.d[0]))return new l(w(+a,u));if((a=new l(a)).eq(1))return a;if(n=l.precision,r=l.rounding,e.eq(1))return finalise(a,n,r);if((t=v(e.e/7))>=e.d.length-1&&(i=u<0?-u:u)<=9007199254740991)return s=intPow(l,a,i,n),e.s<0?new l(1).div(s):finalise(s,n,r);if((o=a.s)<0){if(t<e.d.length-1)return new l(NaN);if(1&e.d[t]||(o=1),0==a.e&&1==a.d[0]&&1==a.d.length)return a.s=o,a}return(t=0!=(i=w(+a,u))&&isFinite(i)?new l(i+"").e:v(u*(Math.log("0."+digitsToString(a.d))/Math.LN10+a.e+1)))>l.maxE+1||t<l.minE-1?new l(t>0?o/0:0):(g=!1,l.rounding=a.s=1,i=Math.min(12,(t+"").length),(s=naturalExponential(e.times(naturalLogarithm(a,n+i)),n)).d&&checkRoundingDigits((s=finalise(s,n+5,1)).d,n,r)&&(t=n+10,+digitsToString((s=finalise(naturalExponential(e.times(naturalLogarithm(a,t+i)),t),t+5,1)).d).slice(n+1,n+15)+1==1e14&&(s=finalise(s,n+1,0))),s.s=o,g=!0,l.rounding=r,finalise(s,n,r))},T.toPrecision=function(e,t){var i,n=this,s=n.constructor;return void 0===e?i=finiteToString(n,n.e<=s.toExpNeg||n.e>=s.toExpPos):(checkInt32(e,1,l),void 0===t?t=s.rounding:checkInt32(t,0,8),i=finiteToString(n=finalise(new s(n),e,t),e<=n.e||n.e<=s.toExpNeg,e)),n.isNeg()&&!n.isZero()?"-"+i:i},T.toSignificantDigits=T.toSD=function(e,t){var i=this.constructor;return void 0===e?(e=i.precision,t=i.rounding):(checkInt32(e,1,l),void 0===t?t=i.rounding:checkInt32(t,0,8)),finalise(new i(this),e,t)},T.toString=function(){var e=this,t=e.constructor,i=finiteToString(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+i:i},T.truncated=T.trunc=function(){return finalise(new this.constructor(this),this.e+1,1)},T.valueOf=T.toJSON=function(){var e=this,t=e.constructor,i=finiteToString(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+i:i};var R=function(){function multiplyInteger(e,t,i){var n,s=0,r=e.length;for(e=e.slice();r--;)n=e[r]*t+s,e[r]=n%i|0,s=n/i|0;return s&&e.unshift(s),e}function compare(e,t,i,n){var s,r;if(i!=n)r=i>n?1:-1;else for(s=r=0;s<i;s++)if(e[s]!=t[s]){r=e[s]>t[s]?1:-1;break}return r}function subtract(e,t,i,n){for(var s=0;i--;)e[i]-=s,s=e[i]<t[i]?1:0,e[i]=s*n+e[i]-t[i];for(;!e[0]&&e.length>1;)e.shift()}return function(e,t,i,n,s,o){var a,l,u,c,p,m,g,d,h,E,x,y,w,S,A,N,P,b,M,T,R=e.constructor,O=e.s==t.s?1:-1,C=e.d,F=t.d;if(!(C&&C[0]&&F&&F[0]))return new R(e.s&&t.s&&(C?!F||C[0]!=F[0]:F)?C&&0==C[0]||!F?0*O:O/0:NaN);for(o?(p=1,l=e.e-t.e):(o=I,p=7,l=v(e.e/p)-v(t.e/p)),M=F.length,P=C.length,E=(h=new R(O)).d=[],u=0;F[u]==(C[u]||0);u++);if(F[u]>(C[u]||0)&&l--,null==i?(S=i=R.precision,n=R.rounding):S=s?i+(e.e-t.e)+1:i,S<0)E.push(1),m=!0;else{if(S=S/p+2|0,u=0,1==M){for(c=0,F=F[0],S++;(u<P||c)&&S--;u++)A=c*o+(C[u]||0),E[u]=A/F|0,c=A%F|0;m=c||u<P}else{for((c=o/(F[0]+1)|0)>1&&(F=multiplyInteger(F,c,o),C=multiplyInteger(C,c,o),M=F.length,P=C.length),N=M,y=(x=C.slice(0,M)).length;y<M;)x[y++]=0;(T=F.slice()).unshift(0),b=F[0],F[1]>=o/2&&++b;do{c=0,(a=compare(F,x,M,y))<0?(w=x[0],M!=y&&(w=w*o+(x[1]||0)),(c=w/b|0)>1?(c>=o&&(c=o-1),1==(a=compare(g=multiplyInteger(F,c,o),x,d=g.length,y=x.length))&&(c--,subtract(g,M<d?T:F,d,o))):(0==c&&(a=c=1),g=F.slice()),(d=g.length)<y&&g.unshift(0),subtract(x,g,y,o),-1==a&&(a=compare(F,x,M,y=x.length))<1&&(c++,subtract(x,M<y?T:F,y,o)),y=x.length):0===a&&(c++,x=[0]),E[u++]=c,a&&x[0]?x[y++]=C[N]||0:(x=[C[N]],y=1)}while((N++<P||void 0!==x[0])&&S--);m=void 0!==x[0]}E[0]||E.shift()}if(1==p)h.e=l,r=m;else{for(u=1,c=E[0];c>=10;c/=10)u++;h.e=u+l*p-1,finalise(h,s?i+h.e+1:i,n,m)}return h}}();function finalise(e,t,i,n){var s,r,o,a,l,u,c,p,m,d=e.constructor;e:if(null!=t){if(!(p=e.d))return e;for(s=1,a=p[0];a>=10;a/=10)s++;if((r=t-s)<0)r+=7,o=t,l=(c=p[m=0])/w(10,s-o-1)%10|0;else if((m=Math.ceil((r+1)/7))>=(a=p.length)){if(!n)break e;for(;a++<=m;)p.push(0);c=l=0,s=1,o=(r%=7)-7+1}else{for(c=a=p[m],s=1;a>=10;a/=10)s++;l=(o=(r%=7)-7+s)<0?0:c/w(10,s-o-1)%10|0}if(n=n||t<0||void 0!==p[m+1]||(o<0?c:c%w(10,s-o-1)),u=i<4?(l||n)&&(0==i||i==(e.s<0?3:2)):l>5||5==l&&(4==i||n||6==i&&(r>0?o>0?c/w(10,s-o):0:p[m-1])%10&1||i==(e.s<0?8:7)),t<1||!p[0])return p.length=0,u?(t-=e.e+1,p[0]=w(10,(7-t%7)%7),e.e=-t||0):p[0]=e.e=0,e;if(0==r?(p.length=m,a=1,m--):(p.length=m+1,a=w(10,7-r),p[m]=o>0?(c/w(10,s-o)%w(10,o)|0)*a:0),u)for(;;){if(0==m){for(r=1,o=p[0];o>=10;o/=10)r++;for(o=p[0]+=a,a=1;o>=10;o/=10)a++;r!=a&&(e.e++,p[0]==I&&(p[0]=1));break}if(p[m]+=a,p[m]!=I)break;p[m--]=0,a=1}for(r=p.length;0===p[--r];)p.pop()}return g&&(e.e>d.maxE?(e.d=null,e.e=NaN):e.e<d.minE&&(e.e=0,e.d=[0])),e}function finiteToString(e,t,i){if(!e.isFinite())return nonFiniteToString(e);var n,s=e.e,r=digitsToString(e.d),o=r.length;return t?(i&&(n=i-o)>0?r=r.charAt(0)+"."+r.slice(1)+getZeroString(n):o>1&&(r=r.charAt(0)+"."+r.slice(1)),r=r+(e.e<0?"e":"e+")+e.e):s<0?(r="0."+getZeroString(-s-1)+r,i&&(n=i-o)>0&&(r+=getZeroString(n))):s>=o?(r+=getZeroString(s+1-o),i&&(n=i-s-1)>0&&(r=r+"."+getZeroString(n))):((n=s+1)<o&&(r=r.slice(0,n)+"."+r.slice(n)),i&&(n=i-o)>0&&(s+1===o&&(r+="."),r+=getZeroString(n))),r}function getBase10Exponent(e,t){var i=e[0];for(t*=7;i>=10;i/=10)t++;return t}function getLn10(e,t,i){if(t>b)throw g=!0,i&&(e.precision=i),Error(E);return finalise(new e(c),t,1,!0)}function getPi(e,t,i){if(t>M)throw Error(E);return finalise(new e(p),t,i,!0)}function getPrecision(e){var t=e.length-1,i=7*t+1;if(t=e[t]){for(;t%10==0;t/=10)i--;for(t=e[0];t>=10;t/=10)i++}return i}function getZeroString(e){for(var t="";e--;)t+="0";return t}function intPow(e,t,i,n){var s,r=new e(1),o=Math.ceil(n/7+4);for(g=!1;;){if(i%2&&truncate((r=r.times(t)).d,o)&&(s=!0),0===(i=v(i/2))){i=r.d.length-1,s&&0===r.d[i]&&++r.d[i];break}truncate((t=t.times(t)).d,o)}return g=!0,r}function isOdd(e){return 1&e.d[e.d.length-1]}function maxOrMin(e,t,i){for(var n,s,r=new e(t[0]),o=0;++o<t.length;){if(!(s=new e(t[o])).s){r=s;break}((n=r.cmp(s))===i||0===n&&r.s===i)&&(r=s)}return r}function naturalExponential(e,t){var i,n,s,r,o,a,l,u=0,c=0,p=0,m=e.constructor,d=m.rounding,h=m.precision;if(!e.d||!e.d[0]||e.e>17)return new m(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(g=!1,l=h):l=t,a=new m(.03125);e.e>-2;)e=e.times(a),p+=5;for(l+=n=Math.log(w(2,p))/Math.LN10*2+5|0,i=r=o=new m(1),m.precision=l;;){if(r=finalise(r.times(e),l,1),i=i.times(++c),digitsToString((a=o.plus(R(r,i,l,1))).d).slice(0,l)===digitsToString(o.d).slice(0,l)){for(s=p;s--;)o=finalise(o.times(o),l,1);if(null!=t)return m.precision=h,o;if(!(u<3&&checkRoundingDigits(o.d,l-n,d,u)))return finalise(o,m.precision=h,d,g=!0);m.precision=l+=10,i=r=a=new m(1),c=0,u++}o=a}}function naturalLogarithm(e,t){var i,n,s,r,o,a,l,u,c,p,m,d=1,h=e,E=h.d,x=h.constructor,y=x.rounding,v=x.precision;if(h.s<0||!E||!E[0]||!h.e&&1==E[0]&&1==E.length)return new x(E&&!E[0]?-1/0:1!=h.s?NaN:E?0:h);if(null==t?(g=!1,c=v):c=t,x.precision=c+=10,n=(i=digitsToString(E)).charAt(0),!(Math.abs(r=h.e)<15e14))return u=getLn10(x,c+2,v).times(r+""),h=naturalLogarithm(new x(n+"."+i.slice(1)),c-10).plus(u),x.precision=v,null==t?finalise(h,v,y,g=!0):h;for(;n<7&&1!=n||1==n&&i.charAt(1)>3;)n=(i=digitsToString((h=h.times(e)).d)).charAt(0),d++;for(r=h.e,n>1?(h=new x("0."+i),r++):h=new x(n+"."+i.slice(1)),p=h,l=o=h=R(h.minus(1),h.plus(1),c,1),m=finalise(h.times(h),c,1),s=3;;){if(o=finalise(o.times(m),c,1),digitsToString((u=l.plus(R(o,new x(s),c,1))).d).slice(0,c)===digitsToString(l.d).slice(0,c)){if(l=l.times(2),0!==r&&(l=l.plus(getLn10(x,c+2,v).times(r+""))),l=R(l,new x(d),c,1),null!=t)return x.precision=v,l;if(!checkRoundingDigits(l.d,c-10,y,a))return finalise(l,x.precision=v,y,g=!0);x.precision=c+=10,u=o=h=R(p.minus(1),p.plus(1),c,1),m=finalise(h.times(h),c,1),s=a=1}l=u,s+=2}}function nonFiniteToString(e){return String(e.s*e.s/0)}function parseDecimal(e,t){var i,n,s;for((i=t.indexOf("."))>-1&&(t=t.replace(".","")),(n=t.search(/e/i))>0?(i<0&&(i=n),i+=+t.slice(n+1),t=t.substring(0,n)):i<0&&(i=t.length),n=0;48===t.charCodeAt(n);n++);for(s=t.length;48===t.charCodeAt(s-1);--s);if(t=t.slice(n,s)){if(s-=n,e.e=i=i-n-1,e.d=[],n=(i+1)%7,i<0&&(n+=7),n<s){for(n&&e.d.push(+t.slice(0,n)),s-=7;n<s;)e.d.push(+t.slice(n,n+=7));n=7-(t=t.slice(n)).length}else n-=s;for(;n--;)t+="0";e.d.push(+t),g&&(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 parseOther(e,t){var i,n,r,o,a,l,u,c,p;if(t.indexOf("_")>-1){if(t=t.replace(/(\d)_(?=\d)/g,"$1"),P.test(t))return parseDecimal(e,t)}else if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(A.test(t))i=16,t=t.toLowerCase();else if(S.test(t))i=2;else{if(!N.test(t))throw Error(h+t);i=8}for((o=t.search(/p/i))>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),a=(o=t.indexOf("."))>=0,n=e.constructor,a&&(o=(l=(t=t.replace(".","")).length)-o,r=intPow(n,new n(i),o,2*o)),o=p=(c=convertBase(t,i,I)).length-1;0===c[o];--o)c.pop();return o<0?new n(0*e.s):(e.e=getBase10Exponent(c,p),e.d=c,g=!1,a&&(e=R(e,r,4*l)),u&&(e=e.times(Math.abs(u)<54?w(2,u):s.pow(2,u))),g=!0,e)}function taylorSeries(e,t,i,n,s){var r,o,a,l,u=e.precision,c=Math.ceil(u/7);for(g=!1,l=i.times(i),a=new e(n);;){if(o=R(a.times(l),new e(t++*t++),u,1),a=s?n.plus(o):n.minus(o),n=R(o.times(l),new e(t++*t++),u,1),void 0!==(o=a.plus(n)).d[c]){for(r=c;o.d[r]===a.d[r]&&r--;);if(-1==r)break}r=a,a=n,n=o,o=r}return g=!0,o.d.length=c+1,o}function tinyPow(e,t){for(var i=e;--t;)i*=e;return i}function toLessThanHalfPi(e,t){var i,n=t.s<0,s=getPi(e,e.precision,1),r=s.times(.5);if((t=t.abs()).lte(r))return o=n?4:1,t;if((i=t.divToInt(s)).isZero())o=n?3:2;else{if((t=t.minus(i.times(s))).lte(r))return o=isOdd(i)?n?2:3:n?4:1,t;o=isOdd(i)?n?1:4:n?3:2}return t.minus(s).abs()}function toStringBinary(e,t,i,n){var s,o,a,c,p,m,g,d,h,E=e.constructor,x=void 0!==i;if(x?(checkInt32(i,1,l),void 0===n?n=E.rounding:checkInt32(n,0,8)):(i=E.precision,n=E.rounding),e.isFinite()){for(x?(s=2,16==t?i=4*i-3:8==t&&(i=3*i-2)):s=t,(a=(g=finiteToString(e)).indexOf("."))>=0&&(g=g.replace(".",""),(h=new E(1)).e=g.length-a,h.d=convertBase(finiteToString(h),10,s),h.e=h.d.length),o=p=(d=convertBase(g,10,s)).length;0==d[--p];)d.pop();if(d[0]){if(a<0?o--:((e=new E(e)).d=d,e.e=o,d=(e=R(e,h,i,n,0,s)).d,o=e.e,m=r),a=d[i],c=s/2,m=m||void 0!==d[i+1],m=n<4?(void 0!==a||m)&&(0===n||n===(e.s<0?3:2)):a>c||a===c&&(4===n||m||6===n&&1&d[i-1]||n===(e.s<0?8:7)),d.length=i,m)for(;++d[--i]>s-1;)d[i]=0,i||(++o,d.unshift(1));for(p=d.length;!d[p-1];--p);for(a=0,g="";a<p;a++)g+=u.charAt(d[a]);if(x){if(p>1)if(16==t||8==t){for(a=16==t?4:3,--p;p%a;p++)g+="0";for(p=(d=convertBase(g,s,t)).length;!d[p-1];--p);for(a=1,g="1.";a<p;a++)g+=u.charAt(d[a])}else g=g.charAt(0)+"."+g.slice(1);g=g+(o<0?"p":"p+")+o}else if(o<0){for(;++o;)g="0"+g;g="0."+g}else if(++o>p)for(o-=p;o--;)g+="0";else o<p&&(g=g.slice(0,o)+"."+g.slice(o))}else g=x?"0p+0":"0";g=(16==t?"0x":2==t?"0b":8==t?"0o":"")+g}else g=nonFiniteToString(e);return e.s<0?"-"+g:g}function truncate(e,t){if(e.length>t)return e.length=t,!0}function abs(e){return new this(e).abs()}function acos(e){return new this(e).acos()}function acosh(e){return new this(e).acosh()}function add(e,t){return new this(e).plus(t)}function asin(e){return new this(e).asin()}function asinh(e){return new this(e).asinh()}function atan(e){return new this(e).atan()}function atanh(e){return new this(e).atanh()}function atan2(e,t){e=new this(e),t=new this(t);var i,n=this.precision,s=this.rounding,r=n+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(i=t.s<0?getPi(this,n,s):new this(0)).s=e.s:!e.d||t.isZero()?(i=getPi(this,r,1).times(.5)).s=e.s:t.s<0?(this.precision=r,this.rounding=1,i=this.atan(R(e,t,r,1)),t=getPi(this,r,1),this.precision=n,this.rounding=s,i=e.s<0?i.minus(t):i.plus(t)):i=this.atan(R(e,t,r,1)):(i=getPi(this,r,1).times(t.s>0?.25:.75)).s=e.s:i=new this(NaN),i}function cbrt(e){return new this(e).cbrt()}function ceil(e){return finalise(e=new this(e),e.e+1,2)}function clamp(e,t,i){return new this(e).clamp(t,i)}function config(e){if(!e||"object"!=typeof e)throw Error(d+"Object expected");var t,i,n,s=!0===e.defaults,r=["precision",1,l,"rounding",0,8,"toExpNeg",-a,0,"toExpPos",0,a,"maxE",0,a,"minE",-a,0,"modulo",0,9];for(t=0;t<r.length;t+=3)if(i=r[t],s&&(this[i]=m[i]),void 0!==(n=e[i])){if(!(v(n)===n&&n>=r[t+1]&&n<=r[t+2]))throw Error(h+i+": "+n);this[i]=n}if(i="crypto",s&&(this[i]=m[i]),void 0!==(n=e[i])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(h+i+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(x);this[i]=!0}else this[i]=!1}return this}function cos(e){return new this(e).cos()}function cosh(e){return new this(e).cosh()}function div(e,t){return new this(e).div(t)}function exp(e){return new this(e).exp()}function floor(e){return finalise(e=new this(e),e.e+1,3)}function hypot(){var e,t,i=new this(0);for(g=!1,e=0;e<arguments.length;)if((t=new this(arguments[e++])).d)i.d&&(i=i.plus(t.times(t)));else{if(t.s)return g=!0,new this(1/0);i=t}return g=!0,i.sqrt()}function isDecimalInstance(e){return e instanceof s||e&&e.toStringTag===y||!1}function ln(e){return new this(e).ln()}function log(e,t){return new this(e).log(t)}function log2(e){return new this(e).log(2)}function log10(e){return new this(e).log(10)}function max(){return maxOrMin(this,arguments,-1)}function min(){return maxOrMin(this,arguments,1)}function mod(e,t){return new this(e).mod(t)}function mul(e,t){return new this(e).mul(t)}function pow(e,t){return new this(e).pow(t)}function random(e){var t,i,n,s,r=0,o=new this(1),a=[];if(void 0===e?e=this.precision:checkInt32(e,1,l),n=Math.ceil(e/7),this.crypto)if(crypto.getRandomValues)for(t=crypto.getRandomValues(new Uint32Array(n));r<n;)(s=t[r])>=429e7?t[r]=crypto.getRandomValues(new Uint32Array(1))[0]:a[r++]=s%1e7;else{if(!crypto.randomBytes)throw Error(x);for(t=crypto.randomBytes(n*=4);r<n;)(s=t[r]+(t[r+1]<<8)+(t[r+2]<<16)+((127&t[r+3])<<24))>=214e7?crypto.randomBytes(4).copy(t,r):(a.push(s%1e7),r+=4);r=n/4}else for(;r<n;)a[r++]=1e7*Math.random()|0;for(e%=7,(n=a[--r])&&e&&(s=w(10,7-e),a[r]=(n/s|0)*s);0===a[r];r--)a.pop();if(r<0)i=0,a=[0];else{for(i=-1;0===a[0];i-=7)a.shift();for(n=1,s=a[0];s>=10;s/=10)n++;n<7&&(i-=7-n)}return o.e=i,o.d=a,o}function round(e){return finalise(e=new this(e),e.e+1,this.rounding)}function sign(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function sin(e){return new this(e).sin()}function sinh(e){return new this(e).sinh()}function sqrt(e){return new this(e).sqrt()}function sub(e,t){return new this(e).sub(t)}function sum(){var e=0,t=arguments,i=new this(t[e]);for(g=!1;i.s&&++e<t.length;)i=i.plus(t[e]);return g=!0,finalise(i,this.precision,this.rounding)}function tan(e){return new this(e).tan()}function tanh(e){return new this(e).tanh()}function trunc(e){return finalise(e=new this(e),e.e+1,1)}s=function clone(e){var t,i,n;function Decimal(e){var t,i,n,s=this;if(!(s instanceof Decimal))return new Decimal(e);if(s.constructor=Decimal,isDecimalInstance(e))return s.s=e.s,void(g?!e.d||e.e>Decimal.maxE?(s.e=NaN,s.d=null):e.e<Decimal.minE?(s.e=0,s.d=[0]):(s.e=e.e,s.d=e.d.slice()):(s.e=e.e,s.d=e.d?e.d.slice():e.d));if("number"===(n=typeof e)){if(0===e)return s.s=1/e<0?-1:1,s.e=0,void(s.d=[0]);if(e<0?(e=-e,s.s=-1):s.s=1,e===~~e&&e<1e7){for(t=0,i=e;i>=10;i/=10)t++;return void(g?t>Decimal.maxE?(s.e=NaN,s.d=null):t<Decimal.minE?(s.e=0,s.d=[0]):(s.e=t,s.d=[e]):(s.e=t,s.d=[e]))}return 0*e!=0?(e||(s.s=NaN),s.e=NaN,void(s.d=null)):parseDecimal(s,e.toString())}if("string"===n)return 45===(i=e.charCodeAt(0))?(e=e.slice(1),s.s=-1):(43===i&&(e=e.slice(1)),s.s=1),P.test(e)?parseDecimal(s,e):parseOther(s,e);if("bigint"===n)return e<0?(e=-e,s.s=-1):s.s=1,parseDecimal(s,e.toString());throw Error(h+e)}if(Decimal.prototype=T,Decimal.ROUND_UP=0,Decimal.ROUND_DOWN=1,Decimal.ROUND_CEIL=2,Decimal.ROUND_FLOOR=3,Decimal.ROUND_HALF_UP=4,Decimal.ROUND_HALF_DOWN=5,Decimal.ROUND_HALF_EVEN=6,Decimal.ROUND_HALF_CEIL=7,Decimal.ROUND_HALF_FLOOR=8,Decimal.EUCLID=9,Decimal.config=Decimal.set=config,Decimal.clone=clone,Decimal.isDecimal=isDecimalInstance,Decimal.abs=abs,Decimal.acos=acos,Decimal.acosh=acosh,Decimal.add=add,Decimal.asin=asin,Decimal.asinh=asinh,Decimal.atan=atan,Decimal.atanh=atanh,Decimal.atan2=atan2,Decimal.cbrt=cbrt,Decimal.ceil=ceil,Decimal.clamp=clamp,Decimal.cos=cos,Decimal.cosh=cosh,Decimal.div=div,Decimal.exp=exp,Decimal.floor=floor,Decimal.hypot=hypot,Decimal.ln=ln,Decimal.log=log,Decimal.log10=log10,Decimal.log2=log2,Decimal.max=max,Decimal.min=min,Decimal.mod=mod,Decimal.mul=mul,Decimal.pow=pow,Decimal.random=random,Decimal.round=round,Decimal.sign=sign,Decimal.sin=sin,Decimal.sinh=sinh,Decimal.sqrt=sqrt,Decimal.sub=sub,Decimal.sum=sum,Decimal.tan=tan,Decimal.tanh=tanh,Decimal.trunc=trunc,void 0===e&&(e={}),e&&!0!==e.defaults)for(n=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],t=0;t<n.length;)e.hasOwnProperty(i=n[t++])||(e[i]=this[i]);return Decimal.config(e),Decimal}(m),s.prototype.constructor=s,s.default=s.Decimal=s,c=new s(c),p=new s(p),void 0===(n=function(){return s}.call(t,i,t,e))||(e.exports=n)}()},5817(e,t,i){"use strict";t.RESTRICTED=t.Settings=void 0,t.scopedBlock=function scopedBlock(e,i,n){let s;const r=t.Settings[e];t.Settings[e]=i;try{s=n()}finally{t.Settings[e]=r}return s};const n=i(8300);t.Settings={USE_FRACTIONS:!0,ALLOW_BIGINT:!0,EVALUATE:!1,SUBSTITUTE:!0,LANGUAGE:"eng",ALLOW_IMPLICIT_MULTIPLICATION:!0,SORT_TERMS:!1,DEFER_SIMPLIFICATION:!1,REWRITE_SQRT:!0,MAX_FRAC_INT:BigInt(1e60),ALLOW_RAT_SUBS:!1,IMMUTABLE_VALUE_SETS:!0,USE_SINGLE_LETTER_VARIABLES:!1,MAX_PRODUCT_AND_SUMMATION_ITERATION:1e4,MAX_LOOP_ITERATIONS:1e4,INITIALIZE_RULES:!0,INDEX_BASE:0},t.RESTRICTED=[n.E,n.PI_NAME,n.DEFAULT_IMAGINARY,n.INDEX_VARIABLE,n.ALL_SYMBOL],n.E,n.PI_NAME},2446(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Assumption=void 0;const s=n(i(3110)),r=i(6441),o=i(4703),a=i(296),l=i(8300),u=i(5584);function isIdentChar(e){return/[A-Za-z0-9_]/.test(e)}function normalizeAssumptionValue(e){let t,i;return u.Rational.isRational(e)?(i=e.copy(),t=i.toDecimal()):(t="number"==typeof e||"string"==typeof e?new s.default(e):e,t.isFinite()&&(i=u.Rational.create(t.toString()))),{value:t,exact:i}}function compareBoundValues(e,t,i,n){let s;if(e.isFinite()&&i.isFinite()){const r=t??u.Rational.create(e.toString()),o=n??u.Rational.create(i.toString());s=r.lt(o)?-1:r.gt(o)?1:0}else s=e.eq(i)?0:e.lt(i)?-1:1;return s}function compareNumericExpressionToBound(e,t,i){let n;if(e.isNegInf())n=t.eq(-1/0)?0:-1;else if(e.isPosInf())n=t.eq(1/0)?0:1;else if(e.isNUM())if(t.isFinite()){const s=i??u.Rational.create(t.toString()),r=e.getMultiplier();n=r.lt(s)?-1:r.gt(s)?1:0}else n=t.lt(0)?1:-1;return n}class Assumption{endExact;startExact;dataType=l.ASSUMPTION;end;isSingleton;start;constructor(e,t,i=!0,n=!0){const s=normalizeAssumptionValue(e),r=normalizeAssumptionValue(t),a=s.value,l=r.value,u=a.isFinite()&&!!i,c=l.isFinite()&&!!n,p=a.isNaN()||l.isNaN()?void 0:compareBoundValues(a,s.exact,l,r.exact);if(void 0===p||p>0||0===p&&(!u||!c))throw new Error((0,o.message)("invalidInterval",{start:a.toString(),end:l.toString()}));this.start=Object.freeze({value:a,inclusive:u}),this.end=Object.freeze({value:l,inclusive:c}),this.startExact=s.exact,this.endExact=r.exact,this.isSingleton=0===p&&this.start.inclusive&&this.end.inclusive,Object.freeze(this)}static atLeast(e,t=!0){return new Assumption(e,1/0,!!t,!1)}static atMost(e,t=!0){return new Assumption(-1/0,e,!1,!!t)}static exactly(e){return new Assumption(e,e,!0,!0)}static isAssumption(e){return(0,r.isNerdamerNativeType)(e,l.ASSUMPTION)}static parse(e){if("string"!=typeof e)throw new Error((0,o.message)("invalidAssumption",{input:String(e)}));const t=e.replace(/\s+/g,"");if(!t)throw new Error((0,o.message)("invalidAssumption",{input:e}));if(t.length<3)throw new Error((0,o.message)("invalidAssumption",{input:e}));let i=0;if(!function isIdentStart(e){return/[A-Za-z_]/.test(e)}(t[i]))throw new Error((0,o.message)("assumptionIdentifierExpected"));let n=i+1;for(;n<t.length&&isIdentChar(t[n]);)n++;const r=t.slice(i,n);i=n;let a="";for(;i<t.length;){const e=t[i];if("<"!==e&&">"!==e&&"="!==e)break;a+=e,i++}if(!a)throw new Error((0,o.message)("assumptionOperatorMissing"));const l=t.slice(i);if(!l)throw new Error((0,o.message)("assumptionValueMissing"));const u=function parseNumber(e){const t=String(e).toLowerCase();if("inf"===t||"infinity"===t||"+inf"===t||"+infinity"===t)return new s.default(1/0);if("-inf"===t||"-infinity"===t)return new s.default(-1/0);const i=new s.default(t);if(i.isNaN())throw new Error((0,o.message)("invalidDecimal",{value:String(e)}));return i}(l);let c;switch(a){case">":c={symbol:r,assumption:Assumption.atLeast(u,!1)};break;case">=":c={symbol:r,assumption:Assumption.atLeast(u,!0)};break;case"<":c={symbol:r,assumption:Assumption.atMost(u,!1)};break;case"<=":c={symbol:r,assumption:Assumption.atMost(u,!0)};break;case"=":case"==":c={symbol:r,assumption:Assumption.exactly(u)};break;default:throw new Error((0,o.message)("assumptionOperatorUnsupported",{operator:a}))}return c}contains(e){const t=normalizeAssumptionValue(e);let i=!t.value.isNaN();return(i&&(compareBoundValues(t.value,t.exact,this.start.value,this.startExact)<0||compareBoundValues(t.value,t.exact,this.end.value,this.endExact)>0)||i&&0===compareBoundValues(t.value,t.exact,this.start.value,this.startExact)&&!this.start.inclusive||i&&0===compareBoundValues(t.value,t.exact,this.end.value,this.endExact)&&!this.end.inclusive)&&(i=!1),i}eq(e){let t;if(a.Expression.isExpression(e)){const i=compareNumericExpressionToBound(e,this.start.value,this.startExact),n=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==i&&void 0!==n&&(i<0||n>0||0===i&&!this.start.inclusive||0===n&&!this.end.inclusive?t=!1:this.isSingleton&&(t=!0))}else this.isSingleton&&e.isSingleton?t=0===compareBoundValues(this.start.value,this.startExact,e.start.value,e.startExact):this.overlaps(e)||(t=!1);return t}getSingletonValue(){let e;return this.isSingleton&&this.startExact&&(e=a.Expression.fromRational(this.startExact)),e}gt(e){let t;if(a.Expression.isExpression(e)){const i=compareNumericExpressionToBound(e,this.start.value,this.startExact),n=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==i&&void 0!==n&&(i<0||0===i&&!this.start.inclusive?t=!0:n>=0&&(t=!1))}else{const i=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact),n=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact);i>0||0===i&&(!this.start.inclusive||!e.end.inclusive)?t=!0:n<=0&&(t=!1)}return t}gte(e){let t;if(a.Expression.isExpression(e)){const i=compareNumericExpressionToBound(e,this.start.value,this.startExact),n=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==i&&void 0!==n&&(i<=0?t=!0:(n>0||0===n&&!this.end.inclusive)&&(t=!1))}else{const i=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact),n=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact);i>=0?t=!0:(n<0||0===n&&(!this.end.inclusive||!e.start.inclusive))&&(t=!1)}return t}intersect(e){const t=compareBoundValues(this.start.value,this.startExact,e.start.value,e.startExact),i=compareBoundValues(this.end.value,this.endExact,e.end.value,e.endExact);let n,s,r,o;t>0?(n=this.startExact??this.start.value,s=this.start.inclusive):t<0?(n=e.startExact??e.start.value,s=e.start.inclusive):(n=this.startExact??this.start.value,s=this.start.inclusive&&e.start.inclusive),i<0?(r=this.endExact??this.end.value,o=this.end.inclusive):i>0?(r=e.endExact??e.end.value,o=e.end.inclusive):(r=this.endExact??this.end.value,o=this.end.inclusive&&e.end.inclusive);const a=normalizeAssumptionValue(n),l=normalizeAssumptionValue(r),u=compareBoundValues(a.value,a.exact,l.value,l.exact);let c;return(u<0||0===u&&s&&o)&&(c=new Assumption(n,r,s,o)),c}lt(e){let t;if(a.Expression.isExpression(e)){const i=compareNumericExpressionToBound(e,this.start.value,this.startExact),n=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==i&&void 0!==n&&(n>0||0===n&&!this.end.inclusive?t=!0:i<=0&&(t=!1))}else{const i=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact),n=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact);i<0||0===i&&(!this.end.inclusive||!e.start.inclusive)?t=!0:n>=0&&(t=!1)}return t}lte(e){let t;if(a.Expression.isExpression(e)){const i=compareNumericExpressionToBound(e,this.start.value,this.startExact),n=compareNumericExpressionToBound(e,this.end.value,this.endExact);void 0!==i&&void 0!==n&&(n>=0?t=!0:(i<0||0===i&&!this.start.inclusive)&&(t=!1))}else{const i=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact),n=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact);i<=0?t=!0:(n>0||0===n&&(!this.start.inclusive||!e.end.inclusive))&&(t=!1)}return t}overlaps(e){const t=compareBoundValues(this.end.value,this.endExact,e.start.value,e.startExact),i=compareBoundValues(this.start.value,this.startExact,e.end.value,e.endExact);let n=!0;return t<0||i>0?n=!1:0===t?n=this.end.inclusive&&e.start.inclusive:0===i&&(n=this.start.inclusive&&e.end.inclusive),n}sameInterval(e){return 0===compareBoundValues(this.start.value,this.startExact,e.start.value,e.startExact)&&0===compareBoundValues(this.end.value,this.endExact,e.end.value,e.endExact)&&this.start.inclusive===e.start.inclusive&&this.end.inclusive===e.end.inclusive}toString(){const e=this.start.inclusive?"[":"(",t=this.end.inclusive?"]":")";return`${e}${this.start.value}, ${this.end.value}${t}`}}t.Assumption=Assumption},2332(e,t,i){"use strict";t.assertEQ=function assertEQ(e,t){return assertRelation(e,t,"=")},t.assertGT=function assertGT(e,t){return assertRelation(e,t,">")},t.assertGTE=function assertGTE(e,t){return assertRelation(e,t,">=")},t.assertLT=function assertLT(e,t){return assertRelation(e,t,"<")},t.assertLTE=function assertLTE(e,t){return assertRelation(e,t,"<=")};const n=i(4703),s=i(296),r=i(6351),o=i(2446);function assertRelation(e,t,i){let a,l;if(s.Expression.isExpression(t)&&t.isNUM())a=t.getMultiplier();else if(s.Expression.isExpression(t)&&t.isPosInf())a=1/0;else{if(!s.Expression.isExpression(t)||!t.isNegInf())throw new n.UnexpectedInputError((0,n.message)("wrongInput",{expected:"a real numeric value",received:String(t)}));a=-1/0}return l="="===i?o.Assumption.exactly(a):">"===i?o.Assumption.atLeast(a,!1):">="===i?o.Assumption.atLeast(a,!0):"<"===i?o.Assumption.atMost(a,!1):o.Assumption.atMost(a,!0),(0,r.assume)(String(e),l),e}},6351(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.hasAssumptions=function hasAssumptions(){return 0!==l.size},t.assume=function assume(e,t){let i;if(1===arguments.length){const t=a.Assumption.parse(e);i=setAssumption(t.symbol,t.assumption)}else{const s=String(e);if(!/^[A-Za-z_][A-Za-z0-9_]*$/.test(s))throw new n.UnexpectedInputError((0,n.message)("plainVariableExpected",{input:s}));if("string"==typeof t){const e=a.Assumption.parse(t);if(e.symbol!==s)throw new n.UnexpectedInputError((0,n.message)("wrongInput",{expected:s,received:e.symbol}));i=setAssumption(s,e.assumption)}else{if(!a.Assumption.isAssumption(t))throw new n.UnexpectedInputError((0,n.message)("wrongInput",{expected:"string or Assumption",received:typeof t}));i=setAssumption(s,t)}}return i},t.clearAssumptions=clearAssumptions,t.forgetAssumptionFor=forgetAssumptionFor,t.getAssumptionFor=function getAssumptionFor(e){let t;r.Expression.isExpression(e)&&e.isPlainVariable()?t=e.value:"string"==typeof e&&(t=e);return void 0===t?void 0:l.get(t)},t.assuming=function assuming(e){return e},t.forget=function forget(e){e.eq(o.ALL_SYMBOL)?clearAssumptions():forgetAssumptionFor(e);return e};const n=i(4703),s=i(5817),r=i(296),o=i(8300),a=i(2446),l=new Map;function setAssumption(e,t){if(r.Expression.RESERVED.includes(e)||s.RESTRICTED.includes(e)||e===r.Expression.imaginary)throw new n.UnexpectedInputError((0,n.message)("plainVariableExpected",{input:e}));const i=l.get(e);let o=t;if(i){const e=i.intersect(t);if(!e)throw new n.UnexpectedInputError((0,n.message)("inconsistentAssumptions"));o=e}return l.set(e,o),o}function clearAssumptions(){l.clear()}function forgetAssumptionFor(e){let t;r.Expression.isExpression(e)&&e.isPlainVariable()?t=e.value:"string"==typeof e&&(t=e),void 0!==t&&l.delete(t)}},3263(e,t,i){"use strict";t.loadAssumptionFunctions=function loadAssumptionFunctions(){Object.assign(n.mathFunctionRegistry,{assume:(0,n.systemFunction)({fn:s.assuming,minArgs:1,maxArgs:1,distElWise:!1}),forget:(0,n.systemFunction)({fn:s.forget,minArgs:1,maxArgs:1,distElWise:!1})})};const n=i(9426),s=i(6351)},6284(e,t,i){"use strict";t.Collection=void 0;const n=i(8505),s=i(6441),r=i(4703),o=i(8300);class Collection extends n.StructuredEntity{dataType=o.COLLECTION;elements=[];isEnumerable=!0;precision;constructor(e){super(),this.elements=e||[]}static isCollection(e){return(0,s.isNerdamerNativeType)(e,o.COLLECTION)}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new RangeError((0,r.message)("indexOutOfBounds",{index:String(t),type:"Collection",length:String(this.elements.length)}));return this.elements[t]}__set__(e,t){const i=e[0];if(i<0||i>=this.elements.length)throw new RangeError((0,r.message)("indexOutOfBounds",{index:String(i),type:"Collection",length:String(this.elements.length)}));this.elements[i]=t}at(e){return this.elements[e]}copy(){const e=new Collection;return this.each((t,i)=>(e.elements[i]=t.copy(),t)),e}count(){return this.elements.length}dimensions(){return[this.elements.length]}each(e){for(let t=0;t<this.elements.length;t++){const i=e(this.elements[t],t);void 0!==i&&(this.elements[t]=i)}return this}eq(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++){const i=this.elements[t],n=e.elements[t];if(!i.eq(n))return!1}return!0}evaluate(){const e=this.copy();return e.each(e=>e.evaluate()),e}expand(){const e=this.copy();return e.each(e=>e.expand()),e}forEach(e){for(let t=0;t<this.elements.length;t++)e(this.elements[t],t)}getElements(){return this.elements}gt(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++){const i=this.elements[t],n=e.elements[t];if(!i.gt(n))return!1}return!0}gte(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].gte(e.elements[t]))return!1;return!0}lt(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++){const i=this.elements[t],n=e.elements[t];if(!i.lt(n))return!1}return!0}lte(e){if(!Collection.isCollection(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].lte(e.elements[t]))return!1;return!0}[Symbol.iterator](){return this.elements[Symbol.iterator]()}text(){return`(${this.elements.map(e=>e.text()).join(", ")})`}toArray(){return[...this.elements]}}t.Collection=Collection},6528(e,t,i){"use strict";t.Dictionary=void 0;const n=i(8505),s=i(6441),r=i(4703),o=i(8300);class Dictionary extends n.StructuredEntity{_entries=new Map;dataType=o.DICTIONARY;isEnumerable=!0;precision;constructor(e){super(),e&&(this._entries=e)}static isDictionary(e){return(0,s.isNerdamerNativeType)(e,o.DICTIONARY)}__get__(e){const t="string"==typeof e?e:String(e[0]),i=this._entries.get(t);if(void 0===i)throw new r.UnexpectedDataType((0,r.message)("dictionaryKeyNotFound",{key:t,keys:this.keys().join(", ")}));return i}__set__(e,t){const i="string"==typeof e?e:String(e[0]);this._entries.set(i,t)}copy(){const e=new Map;for(const[t,i]of this._entries)e.set(t,i.copy());return new Dictionary(e)}count(){return this._entries.size}delete(e){return this._entries.delete(e)}dimensions(){return[this._entries.size]}each(e){for(const[t,i]of this._entries){const n=e(i,t);void 0!==n&&this._entries.set(t,n)}return this}get elements(){return[...this._entries.values()]}set elements(e){const t=[...this._entries.keys()];this._entries.clear();for(let i=0;i<t.length&&i<e.length;i++)this._entries.set(t[i],e[i])}entries(){return[...this._entries.entries()]}eq(e){if(!Dictionary.isDictionary(e))return!1;if(this._entries.size!==e._entries.size)return!1;for(const[t,i]of this._entries){const n=e._entries.get(t);if(!n||!i.eq(n))return!1}return!0}evaluate(){return this.copy().each(e=>e.evaluate())}expand(){const e=this.copy();return e.each(e=>e.expand()),e}forEach(e){for(const[t,i]of this._entries)e(i,t)}get(e){return this._entries.get(e)}gt(e){return!1}gte(e){return this.eq(e)}has(e){return this._entries.has(e)}keys(){return[...this._entries.keys()]}lt(e){return!1}lte(e){return this.eq(e)}merge(e){for(const[t,i]of e._entries)this._entries.set(t,i);return this}set(e,t){return this._entries.set(e,t),this}[Symbol.iterator](){return this._entries[Symbol.iterator]()}text(){const e=[];for(const[t,i]of this._entries)e.push(`${t} => ${i.text()}`);return`{${e.join(", ")}}`}values(){return[...this._entries.values()]}}t.Dictionary=Dictionary},6184(e,t,i){"use strict";t.Equation=void 0;const n=i(6441),s=i(4703),r=i(296),o=i(6099),a=i(8300);class Equation{dataType=a.EQUATION;isEnumerable=!1;LHS;precision;RHS;constructor(e,t){this.LHS=e,this.RHS=t}static isEquation(e){return(0,n.isNerdamerNativeType)(e,a.EQUATION)}abs(){throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"))}add(e){return this.plus(e)}copy(){return new Equation(this.LHS.copy(),this.RHS.copy())}div(e){if(Equation.isEquation(e))throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"));const t=r.Expression.create(e);if(!t.isNUM()||t.isZero())throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"));return new Equation(this.LHS.div(t),this.RHS.div(t))}each(e){const t=e(this.LHS,0),i=e(this.RHS,1);if(r.Expression.isExpression(t)&&r.Expression.isExpression(i))return new Equation(t,i);const n=`${a.dataTypes[t.dataType]||typeof t} & ${a.dataTypes[i.dataType]||typeof i}`;throw new s.UnexpectedDataType((0,s.message)("expressionExpected",{type:n}))}eq(e){return!!Equation.isEquation(e)&&this.toLHS().LHS.eq(e.toLHS().LHS)}evaluate(){return this.copy().each(e=>e.evaluate())}expand(){return this.copy().each(e=>e.expand())}gt(e){return!!Equation.isEquation(e)&&this.toLHS().LHS.gt(e.toLHS().LHS)}gte(e){return this.gt(e)||this.eq(e)}lt(e){return!!Equation.isEquation(e)&&this.toLHS().LHS.lt(e.toLHS().LHS)}lte(e){return this.lt(e)||this.eq(e)}minus(e){if(Equation.isEquation(e))throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"));const t=r.Expression.create(e);return this.each(e=>e.minus(t))}multiply(e){return this.times(e)}plus(e){if(Equation.isEquation(e))throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"));const t=r.Expression.create(e);return this.each(e=>e.plus(t))}subtract(e){return this.minus(e)}text(){return`${this.LHS.text()}=${this.RHS.text()}`}times(e){if(Equation.isEquation(e))throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"));const t=r.Expression.create(e);if(!t.isNUM()||t.isZero())throw new s.UnsupportedOperationError((0,s.message)("unsupportedOperation"));return this.LHS=this.LHS.times(t),this.RHS=this.RHS.times(t),this}toLHS(){const e=this.copy();return e.LHS=e.LHS.minus(e.RHS),e.RHS=(0,o.zero)(),e}toString(){return this.text()}}t.Equation=Equation},5894(e,t,i){"use strict";t.CoeffObject=void 0;const n=i(4703),s=i(2116),r=i(5640),o=i(3982),a=i(6099);t.CoeffObject=class CoeffObject{coeffs={};variables;constructor(e){this.variables=e}buildTerms(){const e=[];for(const t in this.coeffs)e.push(new r.Term(this.coeffs[t].copy(),t,this.variables));return e}add(e,t){const i=this.coeffs[e];this.coeffs[e]=i?i.plus(t):t}each(e){for(const t in this.coeffs)e(this.coeffs[t],t);return this}getPower(e){return this.coeffs[e]}hasPower(e){return e in this.coeffs}max(){const e=Object.keys(this.coeffs).map(e=>Number(e));return Math.max(...e)}text(e=!1){const t=e?"\n":"",i=e?" ":"",n=[],s=", "+t;for(const e in this.coeffs)n.push(`${i}${e}: ${this.coeffs[e]}`);return`{ ${t}${n.join(s)} ${t}}`}toArray(e=!1){const t=this.max(),i=[];if(isNaN(t))throw new n.NaNError((0,n.message)("cannotCreateArrayFromNaN"));for(let n=0;n<=t;n++){let t=this.coeffs[n];t||(t=(0,a.zero)()),i[n]=e?Number(t):t}return i}toExpression(){let e=(0,a.zero)();for(const t of this.buildTerms())t.isZero()||(e=e.plus(t.getExpression()));return e}toParsableString(){const e=[];for(const t of this.buildTerms())t.isZero()||e.push(t.text(this.variables));return e.join("+").replace(/\+-/g,"-")}toPolynomial(){const e=this.buildTerms(),t=e.some(e=>this.variables.some(t=>e.coeff.hasVariable(t))),i=this.toExpression();let n;return t?n=new s.Polynomial(i,this.variables):(n=new s.Polynomial((0,a.zero)(),this.variables),n.terms=e.filter(e=>!e.isZero()),n.order(),n.expression=i),n}toString(){return this.text()}toVector(){return new o.Vector(this.toArray())}}},296(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Expression=void 0;const s=n(i(3110)),r=i(8533),o=i(6441),a=i(4703),l=i(4895),u=i(4600),c=i(7741),p=i(886),m=i(5817),g=i(8300),d=i(6255),h=i(619),E=i(3171),x=i(6498),y=i(3957),v=i(3957),w=i(6910),S=i(238),A=i(5584),N=i(6056),P=i(6056),I=i(6056),b=i(8137),M=i(6099),T=i(5118),R=i(5118),O=i(5118),C=i(1897),{NUM:F,VAR:U,EXP:L,FUN:V,GRP:D,PRD:k,SUM:B,INF:q}=g.EXPRESSION_TYPES;class Expression{static DISTRIBUTE_MULTIPLIER=!0;static imaginary=g.DEFAULT_IMAGINARY;static LOG=g.LOG;static LOG10="log_10";static numberHash="#";static POW_OPR="^";static RESERVED=[g.E].concat(g.PI).concat(g.INFINITY);static sortFunction=(e,t)=>e.isI()?1:e.type===t.type?e.value===t.value?Number(t.getPower())-Number(e.getPower()):e.value>t.value?1:t.value>e.value?-1:0:e.type-t.type;static TYPES=g.EXPRESSION_TYPES;args;base;dataType=g.EXPRESSION;deferred=!1;elements=void 0;_keyValueCache;isEnumerable=!1;multiplier;name;power;precision;scientific;type;value;constructor(e,t){return e=Expression.hook(e),t&&"string"==typeof e?(this.value=e,this):Expression.isExpression(e)?void(0,C.copyOver)(e,this):Expression.create(e)}static create(e,t,i){if(Expression.isExpression(e)&&!t)return i?e.copy():e;if(A.Rational.isRational(e))return Expression.fromRational(e);if((0,o.isNerdamerNativeType)(e,g.EQUATION))return e.toLHS().LHS;const n=S.Parser.parse(String(e),t);if(!Expression.isExpression(n))throw new a.UnexpectedDataType((0,a.message)("expressionExpected",{type:g.dataTypes[n.dataType]}));return n}static E(e){return m.Settings.EVALUATE||e?Expression.fromRational(A.Rational.E):Expression.Variable(g.E)}static fromRational(e){const t=1n===e.denominator?e.numerator.toString():`${e.numerator}/${e.denominator}`,i=Expression.Number(t);return i.getMultiplier().asDecimal=e.asDecimal,i}static fromSymbolicAccess(e){let t;if("object"==typeof e&&null!==e){const i=e,n=i.symbolicTarget,s=i.symbolicAccessor;Expression.isExpression(n)&&s&&s.length>0&&s.every(e=>Expression.isExpression(e))&&(t=Expression.toAccessor(n,s))}return t}static Function(e){const t=Expression.Type(e,V);return t.name=e,t}static getValue(e,t,i){return e.map(e=>{let n=e[t]();return e.type!==B&&e.type!==D||i!==k||(n=`(${n})`),n}).sort().join(i===B||i===D?"+":"*").replace("+-","-")}static hook(e){return e}static Img(){return Expression.Variable(Expression.imaginary)}static Inf(){return Expression.Type(g.INFINITY[0],q)}static isExpression(e){return(0,o.isNerdamerNativeType)(e,g.EXPRESSION)}static isExpressionArray(e){if(!Array.isArray(e))return!1;for(let t=0;t<e.length;t++)if(!Expression.isExpression(e[t]))return!1;return!0}static N(){return Expression.Variable(g.INDEX_VARIABLE)}static NegInf(){return Expression.Inf().neg()}static Number(e){return Expression.Type(String(e),F)}static Pi(e){return m.Settings.EVALUATE||e?Expression.fromRational(A.Rational.PI):Expression.Variable(g.PI[0])}static setPower(e,t){return e.power=t,e}static symbols(...e){return e.map(e=>Expression.create(e))}static toAccessor(e,t){return Expression.toFunction(g.SYMBOLIC_ACCESSOR,[e,...t])}static toEXP(e,t,i=!1){let n;return e=Expression.create(e),t=Expression.create(t),e.isOne()?n=Expression.create(e):(i&&delete e.power,n=new Expression(e.idString(),!0),n.base=Expression.create(e),n.power=t,n.type=L),n}static toFunction(e,t){const i=Expression.Function(e);return i.args=t.filter(e=>void 0!==e).map(e=>Expression.fromSymbolicAccess(e)??Expression.create(e)),i.name=e,i.updateValue(),i}static Type(e,t){const i=new Expression(e,!0);return i.type=t,i}static Variable(e){return Expression.Type(e,U)}abs(){return(0,r.abs)(this)}add(e){return this.plus(e)}buildFunction(e){return(0,l.build)(this,e)}coeffs(...e){return(0,N.coeffs)(this,e)}copy(){return(0,C.cloneExpressionTree)(this)}denominator(){return this.getDenominator()}distributeMultiplier(){const e=this.copy();if(this.isSum()&&!this.getMultiplier().isOne()&&this.isLinear()){const t=e.getMultiplier();e.multiplier=void 0;const i=e.getElements();for(const e in i){const n=i[e];n.multiplier=n.getMultiplier().times(t),n.isSum()&&(i[e]=n.distributeMultiplier())}e.updateValue()}return e}div(e){return(0,E.divide)(this,Expression.create(e))}divide(e){return this.div(e)}each(e){if(this.elements){const t=this.getElements();for(const i in t)e(t[i],i)}else e(this.toUnitMultiplier(),this.value);return this}elementsArray(e){const t=[];if(this.isProduct()||this.isSum()){const e=this.getElements();for(const i in e){const n=e[i];if(n.isSum()&&this.isSum()&&n.isLinear()){const e=n.getElements();for(const i in e)t.push(e[i])}else t.push(n)}}else t.push(this.toUnitMultiplier());return e&&this.isProduct()&&t.push(Expression.fromRational(this.getMultiplier())),t.sort(Expression.sortFunction)}eq(e){return e=Expression.create(e),(0,h.equal)(this,e)}evaluate(e){let t;if(void 0!==this.scientific){const e=this.copy();delete e.scientific,t=e.hasFunction(g.SYMBOLIC_ACCESSOR,!0)?(0,b.toText)(e,{internalAccessor:!0},void 0,Expression.POW_OPR,Expression.sortFunction):e.text()}else t=this.hasFunction(g.SYMBOLIC_ACCESSOR,!0)?(0,b.toText)(this,{internalAccessor:!0},void 0,Expression.POW_OPR,Expression.sortFunction):this.text();const i=S.Parser.evaluate(t,e),n=Expression.fromSymbolicAccess(i)??Expression.create(i);return void 0!==this.scientific&&(n.scientific=this.scientific),n}expand(){return(0,c.expand)(this)}forEveryElement(e){return(0,O.forEveryElement)(this,e)}functions(e,t){return(0,R.functions)(this,e,t)}getArguments(){return this.args||(this.args=[]),this.args}getBase(){let e;return this.isEXP()?e=this.base:(e=this.copy(),delete e.multiplier,delete e.power),e}getDenominator(){return(0,I.getDenominator)(this)}getElements(){return this.elements?this.elements:{}}getMultiplier(e){if(void 0===this.multiplier){const e=this.type===F?this.value:"1";this.multiplier=A.Rational.create(e)}return e?Expression.create(this.multiplier):this.multiplier}getNumerator(){return(0,I.getNumerator)(this)}getPower(){return this.power||(this.isNUM()?this.power=Expression.Number("0"):this.power=Expression.Number("1")),this.power}getVariable(e){return(0,P.getVariable)(this,e)}gt(e){return e=Expression.create(e),(0,h.gt)(this,e)}gte(e){return e=Expression.create(e),(0,h.gte)(this,e)}hasDecimal(){let e=this.getMultiplier().asDecimal;return!e&&this.power&&(e=this.power.hasDecimal()),!e&&this.base&&(e=this.base.hasDecimal()),!e&&this.args&&(e=this.args.some(e=>e.hasDecimal())),!e&&this.elements&&(e=Object.values(this.elements).some(e=>e.hasDecimal())),e}hasFunction(e,t=!1){return(0,T.hasFunction)(this,e,t)}hasRadical(e){const t=this.getPower(),i=t.getMultiplier(),n=t.isNUM()&&1n!==i.denominator;return e?n&&i.isNegative():n}hasVariable(e){return(0,T.hasVariable)(this,e)}i(){return this.times(Expression.Img())}idString(){return this.text(void 0,!0)}imagPart(){return(0,u.imagPart)(this)}invert(){let e;return this.isComplex()?e=(0,M.one)().div(this):(e=this.copy(),e.power=e.getPower().neg(),e.multiplier=e.getMultiplier().invert()),e.hasRadical()?(0,v.rationalizeRadical)(e):e}isComplex(){let e=!1;if(this.isFunction(g.SYMBOLIC_ACCESSOR))e=!1;else if(!this.isComplexComponentFunction())if(this.isVAR()&&this.isI())e=!0;else if(this.isFunction()){for(const t of this.getArguments())if(t.isComplex()){e=!0;break}}else if(this.isEXP())e=this.getBase().isComplex()||this.getPower().isComplex();else if(this.elements)for(const t of Object.values(this.getElements()))if(t.isComplex()){e=!0;break}return e}isComplexComponentFunction(){return this.isFunction([g.REALPART,g.IMAGPART])}isConstant(){if(this.isSum()||this.isProduct()){const e=this.getElements();for(const t in e)if(!e[t].isConstant())return!1;return!0}return this.isNUM()||this.value in g.PARSER_CONSTANTS&&this.isVAR()||this.isEXP()&&this.getBase().isConstant()&&this.getPower().isConstant()}isE(){return this.value===g.E}isEven(){return this.isNUM()&&this.getMultiplier().isEven()}isEXP(){return this.type===L}isFunction(e){let t;return t=void 0===e?this.type===V:"string"==typeof e?e===this.name:e.includes(String(this.name)),t}isHalf(){if(this.isNUM()){const e=this.getMultiplier();return 1n===e.numerator&&2n===e.denominator}return!1}isI(){return this.value===Expression.imaginary}isImaginary(){return this.evaluate().isComplex()}isInf(){return this.type===q}isInteger(){return!!this.isOne()||this.type===F&&this.getMultiplier().isInteger()}isLinear(){return this.getPower().isOne()}isMinusOne(){return!!this.isNUM()&&(void 0===this.multiplier&&-1===Number(this.value)||this.getMultiplier().isMinusOne())}isNearlyZero(e=8){const t=new s.default(10).pow(-s.default.precision+e),i=this.realPart(),n=this.imagPart();return i.abs().lte(t)&&n.abs().lte(t)}isNegative(){return this.lt((0,M.zero)())}isNegInf(){return this.isInf()&&this.getMultiplier().lt("0")}isNUM(){return this.type===F}isNumber(){return this.isNUM()}isOdd(){return this.isInteger()&&!this.isEven()}isOne(){if(this.isNUM()){const e=this.getMultiplier();return 1n===e.numerator&&1n===e.denominator}return!1}isPi(){return g.PI.includes(this.value)}isPlainVariable(){return this.isVAR()&&this.getMultiplier().isOne()&&this.getPower().isOne()}isPolynomialLike(){return(0,P.isPolynomialLike)(this)}isPosInf(){return this.isInf()&&this.getMultiplier().gt((0,M.zero)())}isProduct(){return this.type===k}isQuarter(){if(this.isNUM()){const e=this.getMultiplier();return 1n===e.numerator&&4n===e.denominator}return!1}isSum(){return this.type===B||this.type===D}isVAR(){return this.type===U}isZero(){return this.getMultiplier().isZero()}keyValue(e=!1,t=!1){const i=!(e||t||this.type!==B&&this.type!==k);if(i&&void 0!==this._keyValueCache)return this._keyValueCache;let n="";if(t)n=this.getPower().text();else switch(this.type){case F:n=e?this.value:Expression.numberHash;break;case U:case V:case L:case q:n=e?this.idString():this.value;break;case D:n=e?this.text():Object.values(this.getElements())[0].keyValue();break;case B:case k:n=Expression.getValue(Object.values(this.getElements()),"text",this.type)}if(!n)throw new Error((0,a.message)("expressionKeyValueUnsupported",{type:String(this.type)}));return i&&(this._keyValueCache=n),n}lt(e){return e=Expression.create(e),(0,h.lt)(this,e)}lte(e){return e=Expression.create(e),(0,h.lte)(this,e)}minus(e){return(0,w.subtract)(this,Expression.create(e))}mod(e){return(0,r.mod)(this,Expression.create(e))}multiply(e){return this.times(e)}neg(){const e=this.copy();return e.multiplier=e.getMultiplier().neg(),e}numerator(){return this.getNumerator()}parseValue(){return this.toLinearAndUnitMultiplier()}plus(e){return(0,d.add)(this,Expression.create(e))}pow(e){return(0,y.power)(this,Expression.create(e))}realPart(){return(0,u.realPart)(this)}sign(){return this.type===L?this.getBase().sign()*this.getMultiplier().sign():this.getMultiplier().sign()}signFree(){let e;if(this.isComplex())e=this.abs();else{e=this.copy();const t=e.getMultiplier();e.value.startsWith("-")&&(e.value=e.value.substring(1)),t.lt("0")&&(e.multiplier=t.neg())}return e}sptext(e,t){const i=Expression.POW_OPR;Expression.POW_OPR="**";const n=(0,b.toText)(this,e,t,Expression.POW_OPR,Expression.sortFunction);return Expression.POW_OPR=i,n}sq(){return this.pow("2")}strictEqual(e){return((e=Expression.create(e)).isFunction()&&this.isFunction()?e.name===this.name:e.type===this.type)&&(0,h.equal)(this,e)}sub(e,t){return this.subst(e,t)}subst(e,t){return e=Expression.create(e),t=Expression.create(t),(0,p.subst)(this,e,t)}subtract(e){return this.minus(e)}text(e,t){return void 0===e&&void 0===t&&void 0===this.precision&&void 0===this.scientific?(0,b.toDefaultText)(this,Expression.POW_OPR,Expression.sortFunction):(0,b.toText)(this,e,t,Expression.POW_OPR,Expression.sortFunction)}times(e){return(0,x.multiply)(this,Expression.create(e))}toDecimal(e){const t={decimal:!0};return void 0!==e&&(t.precision=e),this.text(t)}toLinearAndUnitMultiplier(){let e=this.getBase();return this.isEXP()&&(e=e.copy()),e}toString(e){return this.text(e)}totalPower(){if(!this.isProduct())return this.getPower();let e=Expression.Number("0");const t=this.getElements();for(const i in t)e=e.plus(t[i].getPower());return e}toUnitMultiplier(){let e;return this.isNUM()?e=(0,M.one)():(e=this.copy(),delete e.multiplier),e}updateValue(e){if(this._keyValueCache=void 0,this.isFunction())this.value=`${this.name}(${this.getArguments().map(e=>e.text()).join(", ")})`;else if(this.isProduct()||this.isSum()){const t=e??this.elementsArray();this.value=Expression.getValue(t,"text",this.type),!e||this.type!==B&&this.type!==k||(this._keyValueCache=this.value)}return this}valueOf(){let e;return e=this.isNUM()?this.getMultiplier().valueOf():this.text({decimal:!0}),e}variables(e){return(0,R.variables)(this,e,Expression.RESERVED)}}t.Expression=Expression},6056(e,t,i){"use strict";t.coeffs=function coeffs(e,t,i,s=!0){const u=i||new o.CoeffObject(t);if(e.isComplex()&&!t.includes(a.Expression.imaginary)){const i=coeffs(e.realPart(),t,void 0,s),n=coeffs(e.imagPart(),t,void 0,s);return i.each((e,t)=>u.add(t,e)),n.each((e,t)=>u.add(t,e.times(a.Expression.Img()))),u}if(e.isProduct()){let i=(0,l.one)(),r=a.Expression.fromRational(e.getMultiplier()),o=!1;for(const s of e.elementsArray())if(s.isSum()&&s.getPower().sign()<0){if(t.some(e=>s.hasVariable(e)))throw new n.PolynomialError((0,n.message)("notAPolynomial"));i=i.times(s),o=!0}else r=r.times(s);if(o){return coeffs(r,t,void 0,s).each((e,t)=>{u.add(t,i.times(e))}),u}e=r}const c=s?(0,r.expand)(e):e;if(c.isSum())c.each(e=>{coeffs(e,t,u,!1)});else{const[i,n]=separateVar(e,t),s=t.map(e=>n.getVariable(e).getPower().text());u.add(s.join(","),i)}return u},t.getDenominator=function getDenominator(e){let t=a.Expression.Number(e.getMultiplier().denominator);const i=e.isProduct();if(-1===e.getPower().sign())t=t.times(e.toUnitMultiplier().invert());else if(i&&e.isLinear())for(const i of e.elementsArray())i.isProduct()?t=t.times(getDenominator(i)):i.getPower().sign()<0&&(t=t.times(i.invert()));return t},t.getNumerator=function getNumerator(e){let t=a.Expression.Number(e.getMultiplier().numerator);const i=e.isProduct(),n=e.getPower().sign();if(!i&&n>0||i&&n>0&&!e.isLinear())t=t.times(e.toUnitMultiplier());else if(i&&e.isLinear()){const i=e.elementsArray();for(const e of i){const i=getNumerator(e);t=t.times(i)}}return t},t.isPolynomialLike=function isPolynomialLike(e){const t=e.getPower();if(!t.isInteger()||-1===t.sign()||e.isEXP()||e.isFunction()||e.isInf())return!1;if(e.isSum()||e.isProduct())for(const t of e.elementsArray())if(!isPolynomialLike(t))return!1;return!0},t.getVariable=function getVariable(e,t){if(e.value===t)return e;if(e.isProduct()){const i=e.getElements();for(const e in i)if(i[e].value===t)return i[e]}return(0,l.zero)()};const n=i(4703),s=i(551),r=i(7741),o=i(5894),a=i(296),l=i(6099),u=i(1897);function separateVar(e,t){const i=t.map(e=>"string"!=typeof e?e.value:e);function isLike(e,t){return t.includes(e.value)}let n;if(e.isProduct()){const t=[a.Expression.fromRational(e.getMultiplier())],s=[];e.each(e=>{isLike(e,i)?s.push(e):t.push(e)}),n=[(0,u.product)(...t),(0,u.product)(...s)||(0,l.one)()]}else n=isLike(e,i)?[a.Expression.fromRational(e.getMultiplier()),e.toUnitMultiplier()]:[a.Expression.create(e),(0,l.one)()];return n}},8137(e,t,i){"use strict";t.toDefaultText=toDefaultText,t.toText=function toText(e,t,i,n,r){t={precision:e.precision,scientific:e.scientific,...t};let d="";if(e.type===o)d=e.getMultiplier().text(t);else{const o=i&&!e.elements?"":formatMultiplierString(e,t),h=formatPowerString(e,t,n);let E;switch(e.type){case l:case u:d=t?.wrapPow&&h?`${o}(${e.value})`:`${o}${e.value}`;break;case a:if(e.name===s.SYMBOLIC_ACCESSOR){const i=e.getArguments();if(t?.internalAccessor)d=`${o}${s.SYMBOLIC_ACCESSOR}(${i.map(e=>e.text(t)).join(", ")})`;else{const e=i[0],n=i.slice(1);d=`${o}${e.text(t)}[${n.map(e=>e.text(t)).join(", ")}]`}}else d=`${o}${e.name||""}(${e.getArguments().map(e=>e.text(t)).join(", ")})`;break;case c:case g:E=formatExpressionString(e,t,r),E=o||h?`(${E})`:E,d=`${o}${E}`;break;case m:E=formatExpressionString(e,t,r),E=h?`(${E})`:E,d=`${o}${E}`;break;case p:{const i=e.getBase(),s=i.getPower();E=toText(i,t,void 0,n,r),(t?.wrapPow||i.elements||E.startsWith("-")||E.includes("/")||!s.isOne()&&!s.isZero())&&(E=`(${E})`),d=`${o}${E}`;break}}d+=h}return d.replace(/\+-/g,"-")};const n=i(5817),s=i(8300),r=i(8300),{NUM:o,FUN:a,VAR:l,INF:u,GRP:c,EXP:p,PRD:m,SUM:g}=r.EXPRESSION_TYPES;function formatMultiplierString(e,t){let i="";const n=e.getMultiplier(),s=n.text(t),r=void 0!==t?.scientific;if(!(r?n.isOne():"1"===s||"1.0"===s)){i=s,n.isInteger()||n.asDecimal||t?.decimal||t?.scientific||(i=`(${i})`);(r?n.isMinusOne():"-1"===s||"-1.0"===s)&&!t?.wrapPow?i="-":i+="*"}return i}function formatPowerString(e,t,i){let n="";const r=e.getPower(),o={...t,exactScientific:!0},a=r.text(o);if("1"!==a&&"1.0"!==a){if(n=a,r.dataType!==s.RATIONAL||r.isInteger()){const t=e.getPower();let i=!1;t.type===g||t.type===m?i=!0:e.type===p&&(t.isNUM()&&!t.isInteger()?i=!0:t.isNUM()||t.getMultiplier().isOne()||(i=!0)),(i||n.includes("/"))&&(n=`(${n})`)}else n=`(${n})`;t?.wrapPow&&!n.startsWith("(")&&(n=`(${n})`),n=`${i}${n}`}return n}function formatDefaultExpressionString(e,t,i){const s=e.type===m?"*":"+",r=Object.values(e.getElements());return n.Settings.SORT_TERMS&&r.sort(i),r.map(n=>{let s=toDefaultText(n,t,i);return e.type===m&&n.isSum()&&(s=`(${s})`),s}).join(s).replace("+-","-")}function toDefaultText(e,t,i){let n="";if(e.type===o)n=e.getMultiplier().text();else{const r=formatMultiplierString(e),o=function formatDefaultPowerString(e,t,i){let n="";const r=e.getPower(),o=toDefaultText(r,t,i);if("1"!==o&&"1.0"!==o){if(n=o,r.dataType!==s.RATIONAL||r.isInteger()){let t=!1;r.type===g||r.type===m?t=!0:e.type===p&&(r.isNUM()&&!r.isInteger()?t=!0:r.isNUM()||r.getMultiplier().isOne()||(t=!0)),(t||n.includes("/"))&&(n=`(${n})`)}else n=`(${n})`;n=`${t}${n}`}return n}(e,t,i);let d;switch(e.type){case l:case u:n=`${r}${e.value}`;break;case a:if(e.name===s.SYMBOLIC_ACCESSOR){const s=e.getArguments(),o=s[0],a=s.slice(1);n=`${r}${toDefaultText(o,t,i)}[${a.map(e=>toDefaultText(e,t,i)).join(", ")}]`}else n=`${r}${e.name||""}(${e.getArguments().map(e=>toDefaultText(e,t,i)).join(", ")})`;break;case c:case g:d=formatDefaultExpressionString(e,t,i),d=r||o?`(${d})`:d,n=`${r}${d}`;break;case m:d=formatDefaultExpressionString(e,t,i),d=o?`(${d})`:d,n=`${r}${d}`;break;case p:{const s=e.getBase(),o=s.getPower();d=toDefaultText(s,t,i),(s.elements||d.startsWith("-")||d.includes("/")||!o.isOne()&&!o.isZero())&&(d=`(${d})`),n=`${r}${d}`;break}}n+=o}return n.replace(/\+-/g,"-")}function formatExpressionString(e,t,i){const s=e.type===m?"*":"+",r=Object.values(e.getElements());return(n.Settings.SORT_TERMS||t?.sort)&&r.sort(i),r.map(i=>{let n=i.text(t);return e.type===m&&i.isSum()&&(n=`(${n})`),n}).join(s).replace("+-","-")}},6099(e,t,i){"use strict";t.zero=function zero(){return getFromCacheOrCreate("0")},t.third=function third(){return getFromCacheOrCreate("1/3")},t.half=function half(){return getFromCacheOrCreate("1/2")},t.one=function one(){return getFromCacheOrCreate("1")},t.minusOne=function minusOne(){return getFromCacheOrCreate("-1")},t.two=function two(){return getFromCacheOrCreate("2")},t.three=function three(){return getFromCacheOrCreate("3")},t.four=function four(){return getFromCacheOrCreate("4")},t.six=function six(){return getFromCacheOrCreate("6")};const n=i(4703),s=i(8300),r=i(296),o={};function getFromCacheOrCreate(e){if(void 0===o[e]){const t=r.Expression.Number(e);t.getMultiplier(),t.getPower(),Object.freeze(t),o[e]=t}return o[e]}},5118(e,t,i){"use strict";t.variables=function variables(e,t,i){return collect(e,(e,t)=>e.isVAR()&&!e.isI()&&!t.includes(e.value)&&!i.includes(e.value),(e,t)=>{t.push(e.value)},t)},t.functions=function functions(e,t,i){return collect(e,(e,t)=>e.isFunction()&&!t.includes(!0===i?e.value:e.name),(e,t)=>{!0===i?t.push(e.value):e.isFunction()&&t.push(e.name)},t)},t.hasFunction=function hasFunction(e,t,i=!1){if(e.isFunction()&&e.name===t)return!0;if(i&&e.args)for(const n of e.args)if(hasFunction(n,t,i))return!0;if(e.elements)for(const n in e.elements)if(hasFunction(e.elements[n],t,i))return!0;if(i&&e.isEXP()){if(hasFunction(e.getBase(),t,i))return!0;if(hasFunction(e.getPower(),t,i))return!0}return!1},t.hasVariable=function hasVariable(e,t){if(e.isVAR()&&e.value===t)return!0;if(e.args)for(const i of e.args)if(hasVariable(i,t))return!0;if(e.elements){const i=e.getElements();for(const e in i)if(hasVariable(i[e],t))return!0}if(e.isEXP()){if(hasVariable(e.getBase(),t))return!0;if(hasVariable(e.getPower(),t))return!0}return!1},t.forEveryElement=function forEveryElement(e,t,i=!1){if(e.isNUM()||e.isVAR())return e;const s=e.getMultiplier();let r=e.getPower();e.isEXP()&&(r=forEveryElement(r,t,!0));const o=t(e.toLinearAndUnitMultiplier());let a;if(o.isFunction())o.args=o.getArguments().map(e=>i?t(e):forEveryElement(e,t,!0)),a=o;else if(o.isProduct()){a=(0,n.one)();for(let e of o.elementsArray())e=t(e),a=a.times(forEveryElement(e,t,!0))}else if(o.isSum()){a=(0,n.zero)();for(let e of o.elementsArray())e=t(e),a=a.plus(forEveryElement(e,t,!0))}else a=t(o);return a.pow(r).times(s)};const n=i(6099);function collect(e,t,i,n){if(n??=[],t(e,n)&&i(e,n),e.args)for(const s of e.args)collect(s,t,i,n);if(e.elements)for(const s in e.elements)collect(e.elements[s],t,i,n);return e.isEXP()&&(collect(e.getBase(),t,i,n),collect(e.getPower(),t,i,n)),n}},1897(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.product=function product(...e){let t=(0,o.one)();for(const i of e)t=t.times(i);return t},t.sum=function sum(...e){let t=(0,o.zero)();for(const i of e)t=t.plus(i);return t},t.stripPower=stripPower,t.cloneExpressionTree=cloneExpressionTree,t.copyOver=function copyOver(e,t,i){i={omitMultiplier:!1,omitPower:!1,...i},e.multiplier&&!i.omitMultiplier&&(t.multiplier=e.multiplier.copy());void 0!==e.name&&(t.name=e.name);e.power&&!i.omitPower&&(t.power=cloneExpressionTree(e.power));if(e.args){t.args=[];for(const i of e.args)t.args.push(cloneExpressionTree(i))}e.base&&(t.base=cloneExpressionTree(e.base));if(e.elements){t.elements={};for(const i in e.elements)t.elements[i]=cloneExpressionTree(e.elements[i])}return t.type=e.type,t.value=e.value,t.precision=e.precision,t.scientific=e.scientific,t.deferred=e.deferred,t},t.toArrays=function toArrays(e,t){const i=t||{num:[],den:[]};function addMultiplier(e){i.num.push(r.Expression.Number(e.numerator)),1n!==e.denominator&&i.den.push(r.Expression.Number(e.denominator))}if(e.isNUM())addMultiplier(e.getMultiplier());else{addMultiplier(e.getMultiplier());const t=e.getPower();if(e.isProduct()){const t=e.elementsArray();for(const e of t)toArrays(e,i)}else{const n=stripPower(e.toUnitMultiplier());(t.getMultiplier().isNegative()?i.den:i.num).push(n)}i.power=toArrays(t.abs()),e.args&&(i.args=e.getArguments().map(e=>toArrays(e)))}return i},t.largestPower=function largestPower(e,...t){let i=e;for(const e of t)e.getPower().gt(i.getPower())&&(i=e);return i},t.assertPlainVariableAndGetString=function assertPlainVariableAndGetString(e){if(!e.isVAR())throw new n.UnexpectedInputError((0,n.message)("plainVariableExpected",{input:e.text()}));return e.value},t.getNumericOrAssumedValue=function getNumericOrAssumedValue(e){let t;if(e.isNUM())t=e;else{const i=(0,s.getAssumptionFor)(e);i&&i.isSingleton&&(t=i.getSingletonValue())}return t};const n=i(4703),s=i(6351),r=i(296),o=i(6099);function stripPower(e){const t=e.copy();return delete t.power,t}function cloneExpressionTree(e){const t=r.Expression.hook(e);if(!r.Expression.isExpression(t))return r.Expression.create(t);const i=t,n=Object.create(r.Expression.prototype);if(n.dataType=i.dataType,n.deferred=i.deferred,n.isEnumerable=i.isEnumerable,n.type=i.type,n.value=i.value,n.precision=i.precision,n.scientific=i.scientific,i.multiplier&&(n.multiplier=i.multiplier.copy()),void 0!==i.name&&(n.name=i.name),i.power&&(n.power=cloneExpressionTree(i.power)),i.args&&(n.args=i.args.map(cloneExpressionTree)),i.base&&(n.base=cloneExpressionTree(i.base)),i.elements){n.elements={};for(const e in i.elements)n.elements[e]=cloneExpressionTree(i.elements[e])}return n}},4462(e,t,i){"use strict";t.Matrix=void 0;const n=i(8533),s=i(8505),r=i(6441),o=i(4861),a=i(4703),l=i(296),u=i(6099),c=i(8300),p=i(3982);class Matrix extends s.StructuredEntity{_rowSwaps=0;dataType=c.MATRIX;elements;isEnumerable=!0;precision;constructor(...e){let t;super(),this.elements=[];for(let i=0;i<e.length;i++){const n=e[i],s=(p.Vector.isVector(n)?n.elements:(0,o.toParserEntities)(n)).map(e=>l.Expression.create(e));if(s.length>0){if(void 0!==t&&t!==s.length)throw new a.MathError((0,a.message)("cannotCreateMatrix"));this.elements.push(s),t=s.length}}}static fill(e,t,i){const n=new Matrix([]);for(let s=0;s<e;s++){const e=[];for(let n=0;n<t;n++)e.push(i.copy());n.elements.push(e)}return n}static identity(e){const t=new Matrix([]);for(let i=0;i<e;i++){const n=[];for(let t=0;t<e;t++)n.push(i===t?(0,u.one)():(0,u.zero)());t.elements.push(n)}return t}static isMatrix(e){return(0,r.isNerdamerNativeType)(e,c.MATRIX)}static zeroMatrix(e,t){return Matrix.fill(e,t,(0,u.zero)())}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new a.MathError((0,a.message)("matrixRowIndexOutOfBounds",{index:String(t),length:String(this.elements.length)}));if(e.length>1){const i=e[1];if(i<0||i>=this.elements[t].length)throw new a.MathError((0,a.message)("matrixColumnIndexOutOfBounds",{index:String(i),length:String(this.elements[t].length)}));return this.elements[t][i]}return new p.Vector(this.elements[t])}__set__(e,t){if("string"==typeof e)throw new a.MathError((0,a.message)("matrixStringKeyUnsupported"));const i=e[0],n=e.length>1?e[1]:void 0;if(i<0||i>=this.elements.length)throw new a.MathError((0,a.message)("matrixRowIndexOutOfBounds",{index:String(i),length:String(this.elements.length)}));if(void 0!==n){if(n<0||n>=this.elements[i].length)throw new a.MathError((0,a.message)("matrixColumnIndexOutOfBounds",{index:String(n),length:String(this.elements[i].length)}));this.elements[i][n]=l.Expression.create(t)}else{if(!p.Vector.isVector(t))throw new a.UnexpectedDataType((0,a.message)("vectorExpected",{type:c.dataTypes[t.dataType]}));if(t.elements.length!==this.cols())throw new a.MathError((0,a.message)("mismatchedDimensions",{function:"Matrix.__set__"}));const e=t.elements.map(e=>l.Expression.create(e));this.elements[i]=e}}augment(e){const t=this.rows();if(t!==e.rows())throw new a.MathError((0,a.message)("rowsMustMatch"));if(0===t)return this.copy();const i=e.copy(),n=this.copy(),s=n.cols();let r=t;const o=i.cols();let l;for(;r--;)for(l=o;l--;)n.elements[r][s+l]=i.elements[r][l];return n}canMultiplyFromLeft(e){return this.cols()===e.rows()}col(e){const t=[],i=this.rows();if(e>0&&e<=this.cols())for(let n=0;n<i;n++)t.push([this.elements[n][e-1]]);return new Matrix(...t)}cols(){return 0===this.elements.length?0:this.elements[0].length}copy(){const e=this.map(e=>e.copy());return this.copySymbolicAccessTo(e)}determinant(){if(0===this.rows())return(0,u.one)();if(!this.isSquare())throw new a.UnsupportedOperationError((0,a.message)("squareMatrixRequired"));const e=this.toRightTriangular(),t=this.rows();let i=e.elements[0][0];for(let n=1;n<t;n++)i=i.times(e.get(n,n));return e._rowSwaps%2!=0&&(i=i.neg()),i}dimensions(){return[this.rows(),this.cols()]}dimensionsMatch(e){return Matrix.isMatrix(e)&&this.cols()===e.cols()&&this.rows()===e.rows()}div(e){if(Matrix.isMatrix(e)&&!this.dimensionsMatch(e))throw new a.DimensionError((0,a.message)("mismatchedDimensions",{function:"Matrix.div"}));return super.div(e)}e(e,t){return this.get(e-1,t-1)}each(e){for(let t=0;t<this.elements.length;t++){const i=this.elements[t];for(let n=0;n<i.length;n++){const s=e(i[n],t,n);void 0!==s&&(i[n]=s)}}return this}eq(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),i=this.cols();for(let n=0;n<t;n++)for(let t=0;t<i;t++)if(!this.elements[n][t].eq(e.elements[n][t]))return!1;return!0}evaluate(e){let t;const i=l.Expression.fromSymbolicAccess(this);if(i&&e)t=i.evaluate(e);else{const i=this.copy();i.each(t=>t.evaluate(e)),t=i}return t}expand(){const e=this.copy();return e.each(e=>e.expand()),e}forEach(e){for(let t=0;t<this.elements.length;t++)for(let i=0;i<this.elements[t].length;i++)e(this.elements[t][i],t,i)}get(e,t){return this.__get__([e,t])}gt(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),i=this.cols();for(let n=0;n<t;n++)for(let t=0;t<i;t++)if(!this.elements[n][t].gt(e.elements[n][t]))return!1;return!0}gte(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),i=this.cols();for(let n=0;n<t;n++)for(let t=0;t<i;t++)if(!this.elements[n][t].gte(e.elements[n][t]))return!1;return!0}inspect(){let e="";for(let t=0;t<this.elements.length;t++){e+=`[${this.elements[t].map(e=>e.text()).join(", ")}]\n`}return e}inverse(){if(!this.isSquare())throw new a.UnsupportedOperationError((0,a.message)("squareMatrixRequired"));if(0===this.rows())return this.copy();if(this.isSingular())throw new a.MathError((0,a.message)("singularMatrix"));const e=this.elements.length;let t=e;const i=this.augment(Matrix.identity(e)).toRightTriangular(),n=[];let s,r,o,l,c;const p=i.elements[0].length,m=(0,u.zero)();for(;t--;){if(o=[],n[t]=[],l=i.elements[t][t],l.eq(m))throw new a.MathError((0,a.message)("singularMatrix"));for(r=0;r<p;r++)c=i.elements[t][r].div(l),o.push(c),r>=e&&n[t].push(c);for(i.elements[t]=o,s=t;s--;){for(o=[],r=0;r<p;r++)o.push(i.elements[s][r].minus(i.elements[t][r].times(i.elements[s][t])));i.elements[s]=o}}return new Matrix(...n)}isSingular(){return this.isSquare()&&this.determinant().eq("0")}isSquare(){return this.rows()===this.cols()}lt(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),i=this.cols();for(let n=0;n<t;n++)for(let t=0;t<i;t++)if(!this.elements[n][t].lt(e.elements[n][t]))return!1;return!0}lte(e){if(!Matrix.isMatrix(e)||!this.dimensionsMatch(e))return!1;const t=this.rows(),i=this.cols();for(let n=0;n<t;n++)for(let t=0;t<i;t++)if(!this.elements[n][t].lte(e.elements[n][t]))return!1;return!0}map(e){const t=new Matrix([]);for(let i=0;i<this.elements.length;i++){t.elements[i]=[];for(let n=0;n<this.elements[i].length;n++)t.elements[i][n]=e(this.elements[i][n],i,n)}return t}minus(e){if(Matrix.isMatrix(e)&&!this.dimensionsMatch(e))throw new a.DimensionError((0,a.message)("mismatchedDimensions",{function:"Matrix.minus"}));return super.minus(e)}multiply(e){return this.times(e)}nullspace(e){const t=void 0===e?void 0:l.Expression.create(e),i=this.rref(e),s=i.rows(),r=i.cols(),o=(0,u.zero)(),a=new Set,c=new Array(s).fill(-1);for(let e=0;e<s;e++)for(let t=0;t<r;t++)if(!i.elements[e][t].eq(o)){a.add(t),c[e]=t;break}const p=[];for(let e=0;e<r;e++)a.has(e)||p.push(e);const m=[];for(const e of p){const o=Array.from({length:r},()=>(0,u.zero)());o[e]=(0,u.one)();for(let r=0;r<s;r++){const s=c[r];if(-1!==s){const a=(0,u.zero)().minus(i.elements[r][e]);o[s]=t?(0,n.mod)(a,t):a}}m.push(o)}return m}plus(e){if(Matrix.isMatrix(e)&&!this.dimensionsMatch(e))throw new a.DimensionError((0,a.message)("mismatchedDimensions",{function:"Matrix.plus"}));return super.plus(e)}pow(e){const t=l.Expression.create(e);if(!t.isNUM()||!t.isInteger())throw new a.UnsupportedOperationError((0,a.message)("unsupportedOperation"));const i=t.getMultiplier().numerator;let n;if(1n===i)n=this.copy();else{if(!this.isSquare())throw new a.UnsupportedOperationError((0,a.message)("squareMatrixRequired"));if(0n===i)n=Matrix.identity(this.rows());else{let e=i<0n?-i:i,t=i<0n?this.inverse():this.copy();for(n=Matrix.identity(this.rows());e>0n;)e%2n==1n&&(n=n.times(t)),e/=2n,e>0n&&(t=t.times(t))}}return n}rank(){const e=this.toRightTriangular();let t=0,i=e.rows();const n=e.cols(),s=(0,u.zero)();let r;for(;i--;)for(r=n;r--;)if(!e.elements[i][r].eq(s)){t++;break}return t}row(e){let t;return t=e<1||e>this.rows()?new Matrix([]):0===this.cols()?Matrix.zeroMatrix(1,0):new Matrix(this.elements[e-1]),t}rows(){return this.elements.length}rref(e){const t=this.rows(),i=this.cols();let s=0;const r=this.copy(),o=(0,u.zero)(),a=e?l.Expression.create(e):void 0;a&&r.each(e=>(0,n.mod)(e,a));for(let e=0;e<t&&!(i<=s);e++){let l=e;for(;r.elements[l][s].eq(o);)if(l++,t===l&&(l=e,s++,i===s))return r;if([r.elements[l],r.elements[e]]=[r.elements[e],r.elements[l]],a){const o=(0,n.modInv)(r.elements[e][s],a);for(let t=0;t<i;t++)r.elements[e][t]=(0,n.mod)(r.elements[e][t].times(o),a);for(let o=0;o<t;o++)if(o!==e){const t=r.elements[o][s];for(let s=0;s<i;s++)r.elements[o][s]=(0,n.mod)(r.elements[o][s].minus(t.times(r.elements[e][s])),a)}}else{const n=r.elements[e][s];for(let t=0;t<i;t++)r.elements[e][t]=r.elements[e][t].div(n);for(let n=0;n<t;n++)if(n!==e){const t=r.elements[n][s];if(t.eq(o))continue;for(let s=0;s<i;s++)r.elements[n][s]=r.elements[n][s].minus(t.times(r.elements[e][s]))}}s++}return r.elements.sort((e,t)=>{const i=e.every(e=>e.eq(o)),n=t.every(e=>e.eq(o));return i&&!n?1:!i&&n?-1:0}),r}set(e,t,i){return this.__set__([e,t],i),this}text(){const e=[];for(let t=0;t<this.elements.length;t++){const i=this.elements[t],n=[];for(let e=0;e<i.length;e++)n.push(i[e].text());e.push(`[${n.join(", ")}]`)}const t=`matrix(${e.join(", ")})`;return this.formatSymbolicAccess(t)}times(e){let t;if(l.Expression.isExpression(e))t=this.map(t=>t.times(e));else if(p.Vector.isVector(e)){if(this.cols()!==e.count())throw new a.MathError((0,a.message)("mismatchedDimensions",{function:"Matrix.times"}));const i=[];for(let t=0;t<this.rows();t++)i.push(new p.Vector(this.elements[t]).dot(e));t=new p.Vector(i)}else{if(!Matrix.isMatrix(e))throw new a.UnsupportedOperationError((0,a.message)("unsupportedType",{type:c.dataTypes[e.dataType]}));if(!this.canMultiplyFromLeft(e))throw new a.MathError((0,a.message)("mismatchedDimensions",{function:"Matrix.times"}));if(0===this.rows())t=new Matrix([]);else if(0===e.cols())t=Matrix.zeroMatrix(this.rows(),0);else{const i=this.elements,n=i.length,s=i[0].length,r=[];let o=n;const a=e.cols();let l,c,p,m,g;for(;o--;){for(m=[],p=i[o],l=a;l--;){for(g=(0,u.zero)(),c=s;c--;){const t=p[c],i=e.elements[c][l];g=g.plus(t.times(i))}m[l]=g}r[o]=m}t=new Matrix(...r)}}return t}toRightTriangular(){const e=this.copy(),t=e.rows(),i=e.cols(),n=(0,u.zero)();let s=0;e._rowSwaps=0;for(let r=0;r<i&&s<t;r++){let o=s;for(;o<t&&e.elements[o][r].eq(n);)o++;if(o===t)continue;o!==s&&([e.elements[o],e.elements[s]]=[e.elements[s],e.elements[o]],e._rowSwaps++);const a=e.elements[s][r];for(let o=s+1;o<t;o++)if(!e.elements[o][r].eq(n)){const t=e.elements[o][r].div(a),n=[];for(let a=0;a<i;a++)n.push(a<=r?(0,u.zero)():e.elements[o][a].minus(e.elements[s][a].times(t)));e.elements[o]=n}s++}return e}toUpperTriangular(){return this.toRightTriangular()}trace(){if(!this.isSquare())throw new a.MathError((0,a.message)("matrixTraceUnavailable"));let e=(0,u.zero)();const t=this.elements.length;for(let i=0;i<t;i++){const t=this.elements[i][i];if(!l.Expression.isExpression(t))throw new a.MathError((0,a.message)("matrixTraceUnavailable"));e=e.plus(t)}return e}transpose(){const e=this.rows(),t=this.cols();if(e>0&&0===t)throw new a.UnsupportedOperationError((0,a.message)("unsupportedOperation"));const i=[];let n=t;for(;n--;){let t=e;for(i[n]=[];t--;)i[n][t]=this.elements[t][n]}return new Matrix(...i)}unroll(){const e=[];for(let t=1;t<=this.cols();t++)for(let i=1;i<=this.rows();i++)e.push(this.e(i,t));return new p.Vector(e)}}t.Matrix=Matrix},981(e,t,i){"use strict";t.loadMatrixFunctions=function loadMatrixFunctions(){Object.assign(n.mathFunctionRegistry,{matrix:(0,n.systemFunction)({fn:o.matrix,minArgs:1,maxArgs:-1,distElWise:!1}),imatrix:(0,n.systemFunction)({fn:r.imatrix,minArgs:1,maxArgs:1,distElWise:!1}),determinant:(0,n.systemFunction)({fn:s.determinant,minArgs:1,maxArgs:1,distElWise:!1}),invert:(0,n.systemFunction)({fn:s.invert,minArgs:1,maxArgs:1,distElWise:!1}),transpose:(0,n.systemFunction)({fn:e=>e.transpose(),minArgs:1,maxArgs:1,distElWise:!1}),augment:(0,n.systemFunction)({fn:(e,t)=>e.augment(t),minArgs:2,maxArgs:2,distElWise:!1}),rref:(0,n.systemFunction)({fn:(e,t)=>e.rref(t),minArgs:1,maxArgs:2,distElWise:!1}),nullspace:(0,n.systemFunction)({fn:s.nullspace,minArgs:1,maxArgs:2,distElWise:!1})})};const n=i(9426),s=i(6430),r=i(430),o=i(8533)},6430(e,t,i){"use strict";t.determinant=function determinant(e){return e.copy().determinant()},t.invert=function invert(e){return e.inverse()},t.nullspace=function nullspace(e,t){return new o.Vector(e.nullspace(t).map(e=>new o.Vector(e)))};const n=i(4703),s=i(296),r=i(2116),o=i(3982),a=i(4462)},430(e,t,i){"use strict";t.imatrix=function imatrix(e){let t;t=e.isInteger()?r.Matrix.identity(Number(e)):n.Expression.toFunction(s.IMATRIX,[e]);return t};const n=i(296),s=i(8300),r=i(4462)},238(e,t,i){"use strict";t.Parser=void 0;const n=i(8891),s=i(2809),r=i(6441),o=i(9725),a=i(4861),l=i(9426),u=i(4703),c=i(7103),p=i(5817),m=i(6284),g=i(6528),d=i(6184),h=i(296),E=i(4462),x=i(5584),y=i(5598),v=i(3982),w=i(8300),S=i(8801),A=i(5823),N=i(12),P=i(567),I=i(8054),b=i(8584);function shouldPopOperator(e,t){let i=e.precedence>t.precedence;return i||e.precedence!==t.precedence||(i=t.leftAssoc),i}class ExpressionParser{CONSTANTS=w.PARSER_CONSTANTS;MAX_COMPOUND_OPERATOR_LENGTH=2;operators=(0,o.getOperators)();VALUE_SETS=[w.VECTOR,w.MATRIX];WHITE_SPACE=[w.NEWLINE,w.TAB,w.RETURN];KNOWN_VALUES={};extractIndices(e,t,i){const n=[];let r,o=!0;for(let t=0;t<e.length;t++){const i=e[t];if(s.Scope.isScope(i)){o=!1;break}if(i.type!==N.Token.OPERATOR){if(i.type!==N.Token.NUMBER){o=!1;break}n.push(Number(i.value)-p.Settings.INDEX_BASE)}}if(o&&n.length>0)r=n;else{const n=this.parseRPN(e,t,i),s=[];if(v.Vector.isVector(n))for(let e=0;e<n.elements.length;e++)s.push(h.Expression.create(n.elements[e]));else if(m.Collection.isCollection(n))for(const e of n.getElements())s.push(h.Expression.create(e));else s.push(h.Expression.create(n));const o=[];let a=!0;for(let e=0;e<s.length;e++){const t=Number(s[e].evaluate().text());if(!Number.isFinite(t)){a=!1;break}o.push(t-p.Settings.INDEX_BASE)}r=a?o:s}return r}extractStringKeys(e){const t=[];for(let i=0;i<e.length;i++){const n=e[i];s.Scope.isScope(n)||n.type!==N.Token.OPERATOR&&t.push(n.value)}return t}aliasOperator(e,t){const i=this.operators[e];if(!i)throw new u.ParserError((0,u.message)("unknownOperator",{operator:e}));return this.operators[t]={...i,operator:t,postfixVariant:i.postfixVariant?{...i.postfixVariant,operator:t}:void 0},(0,N.refreshOperatorSymbols)(),this}create(){return new ExpressionParser}evaluate(e,i){return(0,p.scopedBlock)("EVALUATE",!0,()=>t.Parser.parse(e,i))}get(e){return p.Settings[e]}getI(){return h.Expression.imaginary}getOperator(e){const t=this.operators[e];let i;return t&&(i={...t,postfixVariant:t.postfixVariant?{...t.postfixVariant}:void 0}),i}getPrecision(){return x.Rational.getPrecision()}isReserved(e){return p.RESTRICTED.includes(e)}parse(e,t){if(t){const e={};for(const i in t){const n=t[i];e[i]=h.Expression.isExpression(n)||d.Equation.isEquation(n)||(0,a.isEnumerable)(n)?n:h.Expression.create(n)}t=e}const i=(0,A.preprocess)(String(e),l.mathFunctionRegistry),n=this.toRPN(this.tokenize(i));let s;try{s=this.parseRPN(n,t)}catch(e){if(P.NullSignal.isNullSignal(e))throw new u.NullError((0,u.message)("nullValue"));throw e}return s}parseRPN(e,t,i){const n=[],o=this.operators;function addToOutput(e){if(void 0===e)throw new u.ParserError((0,u.message)("malformedExpression"));n.push(e)}function resolveStackValue(e){if(I.IndexedReference.isIndexedReference(e))return e.resolve();if(b.KeyValuePair.isKeyValuePair(e)||"function"==typeof e)throw new u.ParserError((0,u.message)("malformedExpression"));return e}function resolveStackValues(e){const t=[];for(const i of e)t.push(resolveStackValue(i));return t}const createDeferredArgument=(e,t,i)=>{let n;return s=>{const r=n??e();n=r;let o,a=!1===s?.inheritValues?void 0:t;if(a&&s?.excludeValues?.length){a={...a};for(const e of s.excludeValues)delete a[e]}return o="boolean"==typeof s?.substitute?(0,p.scopedBlock)("SUBSTITUTE",s.substitute,()=>this.parseRPN(r,a,i)):this.parseRPN(r,a,i),o}};for(let c=0;c<e.length;c++){const x=e[c];if(s.Scope.isScope(x)){const s=n[n.length-1];if(x.deferRHSResolution)addToOutput(createDeferredArgument(()=>x,t,i));else if(x.deferLHSResolution){addToOutput((0,p.scopedBlock)("SUBSTITUTE",!1,()=>this.parseRPN(x,void 0,i)))}else if("square"===x.type&&x.implicitMultiply&&s)if((0,a.isEnumerable)(s)||I.IndexedReference.isIndexedReference(s)){const r=I.IndexedReference.isIndexedReference(s)?s.resolve():s,o=e[c-1];let a,l;if(!N.Token.isToken(o)||o.type!==N.Token.VARIABLE||t&&o.value in t||!(o.value in this.KNOWN_VALUES)||(a=o.value),g.Dictionary.isDictionary(r)){l=this.extractStringKeys(x)[0]}else l=this.extractIndices(x,t,i);if(n.pop(),Array.isArray(l)&&l.length>0&&h.Expression.isExpression(l[0])){const e=l;let t;if((v.Vector.isVector(r)||E.Matrix.isMatrix(r))&&r.symbolicTarget?t=r.symbolicTarget:N.Token.isToken(o)&&o.type===N.Token.VARIABLE&&(t=h.Expression.Variable(o.value)),!t||!v.Vector.isVector(r)&&!E.Matrix.isMatrix(r))throw new u.ParserError((0,u.message)("symbolicAccessNamedTargetRequired"));if(v.Vector.isVector(r)&&1!==e.length)throw new u.ParserError((0,u.message)("symbolicVectorIndexCount"));if(E.Matrix.isMatrix(r)&&2!==e.length){if(1===e.length)throw new u.ParserError((0,u.message)("symbolicMatrixRowNonScalar"));throw new u.ParserError((0,u.message)("symbolicMatrixCellIndexCount"))}addToOutput(r.withSymbolicAccessor(t,e))}else addToOutput(new I.IndexedReference(r,l,a))}else if(h.Expression.isExpression(s)&&s.isPlainVariable()){const e=this.extractIndices(x,t,i);if(e.length>0&&h.Expression.isExpression(e[0])){const t=e;if(t.length>2)throw new u.ParserError((0,u.message)("symbolicAccessMaxIndices"));const i=2===t.length?new E.Matrix([]):new v.Vector;n.pop(),addToOutput(i.withSymbolicAccessor(s,t))}else if(p.Settings.ALLOW_IMPLICIT_MULTIPLICATION){const e=this.parseRPN(x,t,i);addToOutput((0,S._.multiply)(resolveStackValue(n.pop()),e))}else{addToOutput(this.parseRPN(x,t,i))}}else if(x.implicitMultiply&&p.Settings.ALLOW_IMPLICIT_MULTIPLICATION){const e=this.parseRPN(x,t,i);addToOutput((0,S._.multiply)(resolveStackValue(n.pop()),e))}else{addToOutput(this.parseRPN(x,t,i))}else{addToOutput(this.parseRPN(x,t,i))}}else if(x.type===N.Token.OPERATOR){const t=x.resolvedOperator??this.operators[x.value];let r,o=n.pop();if("comma"===t.action){const e=n.pop();r=(0,S._[t.action])(e,o)}else if(t.isPostfix){o=resolveStackValue(o),o=h.Expression.fromSymbolicAccess(o)??o;r=(0,S._[t.action])(o)}else{let a=n.pop();const l=e[c-1],p=e[c-2];if(-1===x.position&&"times"===t.action&&s.Scope.isScope(l)&&m.Collection.isCollection(o)&&N.Token.isToken(p)&&p.type===N.Token.VARIABLE&&h.Expression.isExpression(a)&&a.isPlainVariable())throw new u.ParserError((0,u.message)("unsupportedFunction",{function:p.value}));if("assign"===t.action&&I.IndexedReference.isIndexedReference(a)){let e=!0;try{o="function"==typeof o?o():resolveStackValue(o)}catch(t){if(!P.NullSignal.isNullSignal(t))throw t;e=!1}e&&(a.indices,a.target.__set__(a.indices,o),a.targetName&&(this.KNOWN_VALUES[a.targetName]=a.target)),r=a.target}else if(t.deferRHSResolution){if(a=resolveStackValue(a),"function"!=typeof o)throw new u.ParserError((0,u.message)("malformedExpression"));r=(0,S._[t.action])(a,o)}else if(t.deferLHSResolution){a=resolveStackValue(a),o=resolveStackValue(o);r=(0,S._[t.action])(a,o)}else if("mapTo"===t.action){a=resolveStackValue(a),o=resolveStackValue(o);const e=h.Expression.isExpression(a)?a.text():String(a.text());r=new b.KeyValuePair(e,o)}else{a=resolveStackValue(a),o=resolveStackValue(o),a=h.Expression.fromSymbolicAccess(a)??a,o=h.Expression.fromSymbolicAccess(o)??o;const e=i&&t.assertiveAction?t.assertiveAction:t.action,n=S._[e];r=a.isEnumerable||o.isEnumerable||d.Equation.isEquation(a)||d.Equation.isEquation(o)?(0,S.route)(a,o,t.action):n(a,o)}}Array.isArray(r)?(addToOutput(r[0]),addToOutput(r[1])):addToOutput(r)}else if(x.type===N.Token.FUNCTION){const n=e[++c];if(x.value===w.SYMBOLIC_ACCESSOR){const e=(0,p.scopedBlock)("SUBSTITUTE",!1,()=>this.parseRPN(n,void 0,i)),s=m.Collection.isCollection(e)?e.getElements():[e],r=this.parseRPN(n,t,i),o=m.Collection.isCollection(r)?r.getElements():[r];if(s.length<2||s.length!==o.length||!h.Expression.isExpression(s[0])||!s[0].isPlainVariable())throw new u.ParserError((0,u.message)("parserMalformedSymbolicAccessor"));const a=s[0],l=o[0],c=[],g=[];let d,x=!0;for(let e=1;e<s.length;e++){const t=s[e],i=o[e];if(!h.Expression.isExpression(t))throw new u.ParserError((0,u.message)("parserMalformedSymbolicAccessorIndex"));if(!h.Expression.isExpression(i))throw new u.ParserError((0,u.message)("symbolicAccessIndexScalar"));c.push(i);const n=Number(i.text());Number.isFinite(n)?g.push(n-p.Settings.INDEX_BASE):x=!1}if(c.length>2)throw new u.ParserError((0,u.message)("symbolicAccessMaxIndices"));if(v.Vector.isVector(l)&&1!==c.length)throw new u.ParserError((0,u.message)("symbolicVectorIndexCount"));if(E.Matrix.isMatrix(l)&&2!==c.length){if(1===c.length)throw new u.ParserError((0,u.message)("symbolicMatrixRowNonScalar"));throw new u.ParserError((0,u.message)("symbolicMatrixCellIndexCount"))}if((v.Vector.isVector(l)||E.Matrix.isMatrix(l))&&x)d=l.__get__(g);else{let e;if(v.Vector.isVector(l)||E.Matrix.isMatrix(l))e=l;else{if(!h.Expression.isExpression(l)||!l.isPlainVariable())throw new u.ParserError((0,u.message)("symbolicAccessTargetType"));e=2===c.length?new E.Matrix([]):new v.Vector}d=e.withSymbolicAccessor(a,c)}addToOutput(d)}else if(l.mathFunctionRegistry[x.value]?.deferArguments){const e=[];if(n.length>0){let t=new s.Scope(n.type,n.column);for(const i of n)N.Token.isToken(i)&&i.type===N.Token.OPERATOR&&i.value===w.COMMA?(e.push(t),t=new s.Scope(n.type,n.column)):t.push(i);e.push(t)}const i=l.mathFunctionRegistry[x.value].normalizeDeferredArguments,o=i?i(e):e,a=r.ASSERTIVE_FUNCTIONS.includes(x.value),u=o.map(e=>createDeferredArgument(()=>this.toRPN(e),t,a));addToOutput((0,S.callFunction)(x.value,u))}else if(n.deferLHSResolution){let e=[];if(n.length>0){const t=(0,p.scopedBlock)("SUBSTITUTE",!1,()=>this.parseRPN(n,void 0,i));e=m.Collection.isCollection(t)?[...t.getElements()]:[t]}e.push(h.Expression.Variable(x.value)),addToOutput(new m.Collection(e))}else{const e=this.parseRPN(n,t,r.ASSERTIVE_FUNCTIONS.includes(x.value)),i=m.Collection.isCollection(e)?e.getElements():[e];addToOutput((0,S.callFunction)(x.value,i))}}else if(x.type===N.Token.PREFIX){const e=resolveStackValue(n.pop()),t=h.Expression.fromSymbolicAccess(e)??e,i=`${o[x.value].action}Prefix`;addToOutput((0,S._[i])(t))}else{let e;const i=this.CONSTANTS[x.value];if("string"==typeof i)e=this.parse(i);else if(t&&x.value in t&&!x.is(N.Token.NUMBER)){const i=t[x.value];e=h.Expression.isExpression(i)||d.Equation.isEquation(i)||(0,a.isEnumerable)(i)?i.copy():h.Expression.create(i,void 0,!0)}else if(x.value in this.KNOWN_VALUES&&p.Settings.SUBSTITUTE)e=this.KNOWN_VALUES[x.value].copy();else if(p.Settings.EVALUATE&&"function"==typeof i)e=this.parse(i(),t);else switch(x.type){case N.Token.FUNCTION:e=h.Expression.Function(x.value);break;case N.Token.VARIABLE:e=w.INFINITY.includes(x.value)?h.Expression.Inf():h.Expression.Variable(x.value);break;default:e=h.Expression.Number(x.value)}addToOutput(e)}}let c;if("square"===e.type)c=new v.Vector(resolveStackValues(n));else if("curly"===e.type)if(n.length>0&&b.KeyValuePair.isKeyValuePair(n[0])){const e=new g.Dictionary;for(const t of n)b.KeyValuePair.isKeyValuePair(t)&&e.set(t.key,t.value);c=e}else c=new y.ValuesSet(resolveStackValues(n));else c=n.length>1?new m.Collection(resolveStackValues(n)):resolveStackValue(n[0]);return c}parseTeXRPN(e){const t=["int","int_","frac","sum_","prod_","lim_","infty","mathrm"],i={Re:"realpart",Im:"imagpart",arccos:"acos",arcsin:"asin",arctan:"atan"},n=[],{FUNCTION:r,VARIABLE:o}=N.Token;let a;const integral=()=>{const t=(t=>{const i=new s.Scope("",-1);for(;a<e.length;a++){const n=e[a];if(i.push(n),t(n))break}return i})(e=>/^d/.test(e.value)),i=N.Token.V(t.pop().text().substring(1));return t.at(-1)?.text()===w.COMMA&&t.pop(),[t,i]},getLimits=e=>{const t=new s.Scope("",-1),i=new s.Scope("",-1);let n=t;for(let t=0;t<e.length;t++){const s=e[t];"to"!==s.text()?n.push(s):n=i}return[t,i]};for(a=0;a<e.length;a++){const l=e[a];if(s.Scope.isScope(l)){const e=this.parseTeXRPN(l);n.push(`(${e})`)}else if(l.is(r)||l.is(o)&&t.includes(l.value)){a++;const t=l.text().split("_")[0],s=l.text();switch(l.value){case"cos":case"sin":case"tan":case"sec":case"csc":case"cot":case"acos":case"arccos":case"arcsin":case"arctan":case"asec":case"acsc":case"acot":case"sqrt":case"gcd":case"Re":case"Im":n.push(`${i[s]||s}(${this.parseTeXRPN(e[a])})`);break;case"sum_":case"prod_":{const i=e[a],s=i.shift().text();i.shift();const r=this.parseTeXRPN(i);a+=2;const o=this.parseTeXRPN(e[a]);n.push(`${t}(${this.parseTeXRPN(e[++a])},${s},${r},${o})`);break}case"lim_":{const[i,s]=getLimits(e[a]);n.push(`${t}(${this.parseTeXRPN(e[++a])},${i},${s})`);break}case"int_":{const[e,t]=integral(),i=this.parseTeXRPN(e.shift());e.shift();const s=this.parseTeXRPN(e.shift());n.push(`defint(${this.parseTeXRPN(e)},${i},${s},${t})`);break}case"int":{const[e,i]=integral();n.push(`${t}(${this.parseTeXRPN(e)},${i})`);break}case"frac":{const t=this.parseTeXRPN(e[a]),i=this.parseTeXRPN(e[++a]);n.push(`(${t})/(${i})`);break}case"infty":n.push(w.INFINITY[0]);break;case"mathrm":n.push(`${this.parseTeXRPN(e[a])}(${this.parseTeXRPN(e[++a])})`);break;default:n.push(`${s}(${this.parseTeXRPN(e[a])})`)}}else/\s+/.test(l.value)||n.push(l.value)}return n.join("")}scopedBlock(e,t,i){return(0,p.scopedBlock)(e,t,i)}set(e,t){if("object"==typeof e)for(const t in e)p.Settings[t]=e[t];else p.Settings[e]=t;return this}setConstants(e){for(const t in e){const i=e[t];"string"==typeof i&&""===i&&t in this.CONSTANTS?delete this.CONSTANTS[t]:this.CONSTANTS[t]=i}}setI(e){const t=h.Expression.imaginary;return(0,n.remove)(p.RESTRICTED,t),h.Expression.imaginary=e,p.RESTRICTED.push(e),this}setImaginary(e){return this.setI(e)}setOperator(e,t){const{prefix:i,postfix:n,...s}=e,r={...s,isPostfix:s.isPostfix??n??!1,isPrefix:s.isPrefix??i??!1,iterates:s.iterates??!0};if(t)S._[r.action]=t;else if(!S._[r.action])throw new u.ParserError((0,u.message)("unknownOperatorAction",{action:r.action}));return this.operators[r.operator]=r,(0,N.refreshOperatorSymbols)(),this}setPrecision(e){x.Rational.set({precision:e})}tokenize(e,t){t={pure:!1,keepWhiteSpace:!1,...t};let i=String(e)+"\0";t.keepWhiteSpace||(i=i.replace(/\s+/g," ").trim());const n=Object.keys(this.operators).sort(),o=n.filter(e=>this.operators[e].deferLHSResolution).sort((e,t)=>t.length-e.length);let a=0;const m=new s.Scope("top",0);let g=m;const d={tokenType:N.Token.UNDEFINED,chars:[],inputString:i,last:function(){return this.chars[this.chars.length-1]},next:function(e){return this.inputString.charAt(e+1)},is(e){return this.tokenType===e},prev:function(e){return this.inputString.charAt(e-1)},scientificNumber:!1};for(;a<i.length;a++){const e=i.charAt(a),s=N.Token.getCharType(e,a,d);if(s===N.Token.CHARACTER&&"\0"!==e)throw new u.UnexpectedTokenError((0,u.message)("unsupportedCharacter",{character:e,position:String(a)}));if(d.is(N.Token.BRACKET)){const e=d.last();if(void 0===e)throw new u.ParserError((0,u.message)("parserBracketTokenMissingCharacter"));const n=r.brackets[e];if(n.isOpen){const e=g[g.length-1];e&&e.type===N.Token.VARIABLE&&(e.value in l.mathFunctionRegistry||e.value===w.SYMBOLIC_ACCESSOR)&&(e.type=N.Token.FUNCTION);let i=!1;if(e&&e.type!==N.Token.FUNCTION&&e.type!==N.Token.OPERATOR)if("square"===n.type)i=!0;else{if(!p.Settings.ALLOW_IMPLICIT_MULTIPLICATION)throw new u.UnexpectedTokenError((0,u.message)("expectedOperatorOrFunction",{value:e.value}));"parenthesis"===n.type&&e.type===N.Token.VARIABLE&&(i=!0),t.pure||g.push(new N.Token("*",N.Token.OPERATOR,-1))}g=g.addScope(n.type,a),i&&(g.implicitMultiply=!0)}else{const e=g.type===n.type;if(e&&"parenthesis"===n.type&&g.parent){const e=i.slice(a).trimStart();if(o.find(t=>e.startsWith(t))){const e=g.parent;let t=e.length-2,i=e[t];N.Token.isToken(i)&&i.type===N.Token.OPERATOR&&"*"===i.value&&-1===i.position&&(e.splice(t,1),i=e[--t]),!N.Token.isToken(i)||i.type!==N.Token.VARIABLE&&i.type!==N.Token.FUNCTION||(i.type=N.Token.FUNCTION,g.deferLHSResolution=!0)}}if(g=g.upperScope(),void 0===g||!e)throw new u.UnexpectedTokenError((0,u.message)("missingOpeningBracket",{bracket:String(d.last()),position:String(a)}))}d.chars.pop()}if(d.tokenType!==N.Token.UNDEFINED&&d.tokenType!==s){let i=d.chars.join(w.BLANK);const s=w.ALIASES[i];s&&(i=s);const r=a-d.chars.length;if(n.includes(i)&&d.tokenType!==N.Token.PREFIX)d.tokenType=N.Token.OPERATOR;else if(d.is(N.Token.OPERATOR)&&d.chars.length>1){let e=d.chars[0];for(let t=1;t<d.chars.length+1;t++){const n=e+d.chars[t];n in this.operators?e=n:(g.push(new N.Token(e,N.Token.OPERATOR,r+t-e.length)),e=d.chars[t],i=w.BLANK)}d.chars=[],d.scientificNumber=!1}const o=i===w.SPACE;if(o&&t.keepWhiteSpace)g.push(new N.Token(i,N.Token.SPACE,r));else if(i!==w.BLANK&&!o){d.scientificNumber&&(i=(0,c.scientificToDecimal)(i),d.scientificNumber=!1);const e=g[g.length-1],n=N.Token.isToken(e)&&e.type===N.Token.OPERATOR?this.operators[e.value]:void 0;if(e&&(d.is(N.Token.VARIABLE)&&e.type!==N.Token.OPERATOR&&e.type!==N.Token.PREFIX||(d.is(N.Token.VARIABLE)||d.is(N.Token.NUMBER))&&n?.isPostfix)){if(!p.Settings.ALLOW_IMPLICIT_MULTIPLICATION)throw new u.UnexpectedTokenError((0,u.message)("expectedOperatorOrFunction",{value:e.value}));t.pure||g.push(new N.Token("*",N.Token.OPERATOR,-1))}p.Settings.USE_SINGLE_LETTER_VARIABLES&&!(i in l.mathFunctionRegistry)?g.push(...i.split("").map(e=>new N.Token(e,d.tokenType,-1)).flatMap(e=>[new N.Token("*",N.Token.OPERATOR,-1),e]).slice(1)):g.push(new N.Token(i,d.tokenType,r))}d.chars=[e]}else d.chars.push(e);d.tokenType=s}const h=m[m.length-1];if(s.Scope.isScope(h)&&h.isOpen)throw new u.UnexpectedTokenError((0,u.message)("missingClosingBracket",{bracket:i.charAt(h.column-1),position:String(h.column)}));return m}toRPN(e){const t=new s.Scope(e.type,e.depth),i=[],peek=()=>i[i.length-1],peekOperator=()=>{const e=peek();if(e)return e.resolvedOperator??this.operators[e.value]};for(let n=0;n<e.length;n++){let o=e[n];if(s.Scope.isScope(o)){const e=t[t.length-1];if(N.Token.isToken(e)&&e.type===N.Token.FUNCTION&&l.mathFunctionRegistry[e.value]?.deferArguments)t.push(o);else{const e=this.toRPN(o);e.implicitMultiply=o.implicitMultiply,e.deferLHSResolution=o.deferLHSResolution,e.deferRHSResolution=o.deferRHSResolution,t.push(e)}}else{const a=e[n+1],c=e[n+2];switch(o.type===N.Token.VARIABLE&&N.Token.isToken(a)&&a.type===N.Token.OPERATOR&&"*"===a.value&&-1===a.position&&s.Scope.isScope(c)&&"parenthesis"===c.type&&c.implicitMultiply&&o.value in l.mathFunctionRegistry&&(o=new N.Token(o.value,N.Token.FUNCTION,o.position),n++),o.type){case N.Token.OPERATOR:{let r=o.resolvedOperator??this.operators[o.value];if(r.postfixVariant){let t=n+1,i=e[t];for(;N.Token.isToken(i)&&(i.type===N.Token.SPACE||i.type===N.Token.UNDEFINED);)i=e[++t];(void 0===i||N.Token.isToken(i)&&(i.type===N.Token.OPERATOR||i.type===N.Token.PREFIX))&&(r=r.postfixVariant,o.resolvedOperator=r)}let a=peekOperator();for(let t=n+1;t<e.length;t++){const i=e[t];if(!i||i.type!==N.Token.OPERATOR||r.isPostfix)break;if(!this.operators[i.value].isPrefix)throw new u.ParserError((0,u.message)("prefixOperatorExpected",{operator:i.value}));i.type=N.Token.PREFIX}const l=t[t.length-1];if(r.isPrefix&&(0===t.length||t.length>0&&l&&l.type===N.Token.PREFIX)){o.type=N.Token.PREFIX,i.push(o);break}const greaterPrecedence=()=>{let e=!1;if(a){e=shouldPopOperator(a,r);const t=i[i.length-1];!e&&t&&t.type===N.Token.PREFIX&&r.leftAssoc&&(e=!0)}return e};for(;greaterPrecedence();)t.push(i.pop()),a=peekOperator();if(r.deferLHSResolution){const e=t[t.length-1];if(N.Token.isToken(e)&&e.type===N.Token.VARIABLE){const i=new s.Scope("",e.position);i.deferLHSResolution=!0,i.push(t.pop()),t.push(i)}}if(r.deferRHSResolution){const i=new s.Scope("",o.position);let a=n+1;for(;a<e.length;a++){const t=e[a];if(N.Token.isToken(t)&&t.type===N.Token.OPERATOR){const e=t.resolvedOperator??this.operators[t.value];if(e&&!shouldPopOperator(e,r))break}i.push(t)}if(0===i.length)throw new u.ParserError((0,u.message)("malformedExpression"));const l=this.toRPN(i);l.deferRHSResolution=!0,t.push(l),n=a-1}i.push(o);break}case N.Token.BRACKET:if(r.brackets[String(o.value)].isOpen)i.push(o);else{t.push(o);const e=peek();for(;e;){const e=i.pop();if(t.push(e),e.type===N.Token.BRACKET&&r.brackets[o.value].matches===e.value)break}}break;case N.Token.PREFIX:i.push(o);break;case N.Token.UNDEFINED:case N.Token.SPACE:break;default:t.push(o)}}}for(;i.length;){const e=i.pop();t.push(e)}return t}}t.Parser=new ExpressionParser},12(e,t,i){"use strict";t.Token=t.rx=t.dO=t.SY=t._Z=t.q4=t.Gp=t.Oy=void 0,t.refreshOperatorSymbols=function refreshOperatorSymbols(){t.Gp.splice(0,t.Gp.length,...(0,s.getOperatorSymbolArray)()),t.q4=new RegExp(`[${t.Gp.join("")}]`)};const n=i(6441),s=i(9725),r=i(8300);t.Oy=[],t.Gp=(0,s.getOperatorSymbolArray)(),t.q4=new RegExp(`[${t.Gp.join("")}]`),t._Z=new RegExp(`[${Object.keys(n.brackets).join("\\")}]`),t.SY=/[a-z_αAβBγΓδΔϵEζZηHθΘιIκKλΛμMνNξΞoOπΠρPσΣτTυϒϕΦχXψΨωΩ∞]/i,t.dO=/\d/,t.rx=/\d|\./;class Token{static BRACKET="BKT";static CHARACTER="CHR";static FUNCTION="FUN";static NUMBER="NUM";static OPERATOR="OPR";static PREFIX="PFX";static SPACE="SPC";static UNDEFINED="UND";static VARIABLE="VAR";dataType;position;resolvedOperator;type;value;constructor(e,t,i){this.dataType=r.TOKEN,this.position=i,this.type=t,this.value=String(e)}static getCharType(e,i,n){if(t.dO.test(e))return n.tokenType===Token.VARIABLE?Token.VARIABLE:Token.NUMBER;if(e===r.SPACE)return Token.SPACE;if(e===r.DOT)return n.tokenType===Token.VARIABLE?Token.OPERATOR:Token.NUMBER;if("e"!==e&&"E"!==e||n.tokenType!==Token.NUMBER){if(t.SY.test(e)||t.Oy.includes(e))return Token.VARIABLE;if(t._Z.test(e))return Token.BRACKET;if(t.q4.test(e)){const t=n.last();return n.tokenType!==Token.NUMBER||e!==r.PLUS&&e!==r.MINUS||"e"!==t&&"E"!==t?Token.OPERATOR:Token.NUMBER}return Token.CHARACTER}{const e=n.prev(i),s=n.next(i);return s===r.PLUS||s===r.MINUS||t.rx.test(e)&&t.dO.test(s)?(n.scientificNumber=!0,Token.NUMBER):Token.VARIABLE}}static isToken(e){return(0,n.isNerdamerNativeType)(e,r.TOKEN)}static O(e){return new Token(e,Token.OPERATOR,-1)}static V(e){return new Token(e,Token.VARIABLE,-1)}is(e){return this.type===e}text(){return this.value}toString(){return this.type===Token.PREFIX?"`"+this.value:this.value}}t.Token=Token},8300(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.FIB=t.DOUBLE_FACTORIAL=t.FACTORIAL=t.SYMBOLIC_ACCESSOR=t.PARSER_CONSTANTS=t.INFINITY=t.PI=t.ALIASES=t.ALL_SYMBOL=t.INDEX_VARIABLE=t.DEFAULT_IMAGINARY=t.PI_SYMBOL=t.PI_NAME=t.E=t.RANK=t.EXPRESSION_TYPES=t.dataTypes=t.ASSUMPTION=t.DICTIONARY=t.SOLUTIONS_SET=t.SET=t.GFPOLY=t.TERM=t.POLYNOMIAL=t.EQUATION=t.MATRIX=t.VECTOR=t.COLLECTION=t.EXPRESSION=t.SCOPE=t.RATIONAL=t.KEY_VALUE_PAIR=t.INDEXED_REFERENCE=t.TOKEN=t.WRAP=t.CLOSE_PAREN=t.OPEN_PAREN=t.RETURN=t.LINEFEED=t.TAB=t.NEWLINE=t.BLANK=t.SPACE=t.ASSIGN=t.COMMA=t.DOT=t.DIVIDE=t.MULTIPLY=t.PLUS=t.MINUS=void 0,t.SI=t.SHI=t.TRUNC=t.SIZE=t.ROUND=t.REALPART=t.PRODUCT_FUNCTION=t.NTHROOT=t.MIN=t.MAX=t.LN=t.LIMIT=t.LI=t.LAPLACE=t.ISPRIME=t.INTEGRATE=t.IMATRIX=t.IMAGPART=t.ILAPLACE=t.GCD=t.FRESNEL_S=t.FRESNEL_C=t.FLOOR=t.PFACTORD=t.PFACTOR=t.FACTOR=t.ERF=t.EI=t.DOT_PRODUCT=t.DIFF=t.DEG=t.DEFINT=t.CROSS=t.COUNT=t.CONTENT=t.CONTAINS=t.CONJUGATE=t.CI=t.CHI=t.CEIL=t.CBRT=t.CSGN=t.SGN=t.LOG=t.HEAVISIDE=t.DIRAC=t.GAMMA=t.MOD=t.ABS=t.SQRT=void 0,t.INVERSE_HYPERBOLIC_TRIG=t.HYPERBOLIC_TRIG=t.INVERSE_TRIG=t.TRIG=t.ACOTH=t.ACSCH=t.ASECH=t.ATANH=t.ASINH=t.ACOSH=t.COTH=t.CSCH=t.SECH=t.TANH=t.COSH=t.SINH=t.ATAN2=t.ACOT=t.ACSC=t.ASEC=t.ATAN=t.COT=t.CSC=t.SEC=t.ACOS=t.ASIN=t.TAN=t.SIN=t.COS=t.TRIG_FUNCTION_NAMES=t.SUM_FUNCTION=t.SINC=void 0;const s=n(i(3110));t.MINUS="-",t.PLUS="+",t.MULTIPLY="*",t.DIVIDE="/",t.DOT=".",t.COMMA=",",t.ASSIGN=":",t.SPACE=" ",t.BLANK="",t.NEWLINE="\n",t.TAB="\t",t.LINEFEED="\f",t.RETURN="\r",t.OPEN_PAREN="(",t.CLOSE_PAREN=")",t.WRAP="",t.TOKEN="Token",t.INDEXED_REFERENCE="INDEXED_REF",t.KEY_VALUE_PAIR="KEY_VALUE_PAIR",t.RATIONAL="RAT",t.SCOPE="SCP",t.EXPRESSION="EXP",t.COLLECTION="COL",t.VECTOR="VEC",t.MATRIX="MAT",t.EQUATION="EQN",t.POLYNOMIAL="POL",t.TERM="TRM",t.GFPOLY="GFP",t.SET="SET",t.SOLUTIONS_SET="SOL",t.DICTIONARY="DIC",t.ASSUMPTION="ASSUMPTION",t.dataTypes={[t.TOKEN]:"Token",[t.INDEXED_REFERENCE]:"IndexedReference",[t.KEY_VALUE_PAIR]:"KeyValuePair",[t.RATIONAL]:"Rational",[t.SCOPE]:"Scope",[t.EXPRESSION]:"Expression",[t.COLLECTION]:"Collection",[t.VECTOR]:"Vector",[t.MATRIX]:"Matrix",[t.EQUATION]:"Equation",[t.POLYNOMIAL]:"Polynomial",[t.TERM]:"Term",[t.GFPOLY]:"GFPolynomial",[t.SET]:"ValuesSet",[t.SOLUTIONS_SET]:"SolutionSet",[t.DICTIONARY]:"Dictionary",[t.ASSUMPTION]:"Assumption"},t.EXPRESSION_TYPES={NUM:6,VAR:2,EXP:1,FUN:3,GRP:4,PRD:7,SUM:5,INF:8,VEC:9,MAT:10},t.RANK={[t.EXPRESSION_TYPES.NUM]:1,[t.EXPRESSION_TYPES.VAR]:2,[t.EXPRESSION_TYPES.EXP]:3,[t.EXPRESSION_TYPES.FUN]:4,[t.EXPRESSION_TYPES.GRP]:5,[t.EXPRESSION_TYPES.PRD]:6,[t.EXPRESSION_TYPES.SUM]:7,[t.EXPRESSION_TYPES.INF]:8},t.E="e",t.PI_NAME="pi",t.PI_SYMBOL="π",t.DEFAULT_IMAGINARY="i",t.INDEX_VARIABLE="_n",t.ALL_SYMBOL="all",t.ALIASES={[t.PI_SYMBOL]:t.PI_NAME,"∞":"Inf"},t.PI=[t.PI_NAME,t.PI_SYMBOL],t.INFINITY=["Inf","Infinity","∞"],t.PARSER_CONSTANTS={[t.PI_NAME]:()=>s.default.acos(-1).toString(),[t.PI_SYMBOL]:()=>s.default.acos(-1).toString(),[t.E]:()=>s.default.exp(1).toString()},t.SYMBOLIC_ACCESSOR="__accessor__",t.FACTORIAL="fact",t.DOUBLE_FACTORIAL="dfact",t.FIB="fib",t.SQRT="sqrt",t.ABS="abs",t.MOD="mod",t.GAMMA="gamma",t.DIRAC="delta",t.HEAVISIDE="heaviside",t.LOG="log",t.SGN="sign",t.CSGN="csgn",t.CBRT="cbrt",t.CEIL="ceil",t.CHI="Chi",t.CI="Ci",t.CONJUGATE="conjugate",t.CONTAINS="contains",t.CONTENT="content",t.COUNT="count",t.CROSS="cross",t.DEFINT="defint",t.DEG="deg",t.DIFF="diff",t.DOT_PRODUCT="dot",t.EI="Ei",t.ERF="erf",t.FACTOR="factor",t.PFACTOR="pfactor",t.PFACTORD="pfactord",t.FLOOR="floor",t.FRESNEL_C="C",t.FRESNEL_S="S",t.GCD="gcd",t.ILAPLACE="ilaplace",t.IMAGPART="imagpart",t.IMATRIX="imatrix",t.INTEGRATE="integrate",t.ISPRIME="isprime",t.LAPLACE="laplace",t.LI="Li",t.LIMIT="limit",t.LN="ln",t.MAX="max",t.MIN="min",t.NTHROOT="nthroot",t.PRODUCT_FUNCTION="product",t.REALPART="realpart",t.ROUND="round",t.SIZE="size",t.TRUNC="trunc",t.SHI="Shi",t.SI="Si",t.SINC="sinc",t.SUM_FUNCTION="sum",t.TRIG_FUNCTION_NAMES={COS:"cos",SIN:"sin",TAN:"tan",SEC:"sec",CSC:"csc",COT:"cot",ACOS:"acos",ASIN:"asin",ATAN:"atan",ASEC:"asec",ACSC:"acsc",ACOT:"acot",ATAN2:"atan2",SINH:"sinh",COSH:"cosh",TANH:"tanh",SECH:"sech",CSCH:"csch",COTH:"coth",ACOSH:"acosh",ASINH:"asinh",ATANH:"atanh",ASECH:"asech",ACSCH:"acsch",ACOTH:"acoth"},t.COS=t.TRIG_FUNCTION_NAMES.COS,t.SIN=t.TRIG_FUNCTION_NAMES.SIN,t.TAN=t.TRIG_FUNCTION_NAMES.TAN,t.ASIN=t.TRIG_FUNCTION_NAMES.ASIN,t.ACOS=t.TRIG_FUNCTION_NAMES.ACOS,t.SEC=t.TRIG_FUNCTION_NAMES.SEC,t.CSC=t.TRIG_FUNCTION_NAMES.CSC,t.COT=t.TRIG_FUNCTION_NAMES.COT,t.ATAN=t.TRIG_FUNCTION_NAMES.ATAN,t.ASEC=t.TRIG_FUNCTION_NAMES.ASEC,t.ACSC=t.TRIG_FUNCTION_NAMES.ACSC,t.ACOT=t.TRIG_FUNCTION_NAMES.ACOT,t.ATAN2=t.TRIG_FUNCTION_NAMES.ATAN2,t.SINH=t.TRIG_FUNCTION_NAMES.SINH,t.COSH=t.TRIG_FUNCTION_NAMES.COSH,t.TANH=t.TRIG_FUNCTION_NAMES.TANH,t.SECH=t.TRIG_FUNCTION_NAMES.SECH,t.CSCH=t.TRIG_FUNCTION_NAMES.CSCH,t.COTH=t.TRIG_FUNCTION_NAMES.COTH,t.ACOSH=t.TRIG_FUNCTION_NAMES.ACOSH,t.ASINH=t.TRIG_FUNCTION_NAMES.ASINH,t.ATANH=t.TRIG_FUNCTION_NAMES.ATANH,t.ASECH=t.TRIG_FUNCTION_NAMES.ASECH,t.ACSCH=t.TRIG_FUNCTION_NAMES.ACSCH,t.ACOTH=t.TRIG_FUNCTION_NAMES.ACOTH,t.TRIG=[t.COS,t.SIN,t.TAN,t.SEC,t.CSC,t.COT],t.INVERSE_TRIG=[t.ACOS,t.ASIN,t.ATAN,t.ASEC,t.ACSC,t.ACOT],t.HYPERBOLIC_TRIG=[t.COSH,t.SINH,t.TANH,t.SECH,t.CSCH,t.COTH],t.INVERSE_HYPERBOLIC_TRIG=[t.ACOSH,t.ASINH,t.ATANH,t.ASECH,t.ACSCH,t.ACOTH]},567(e,t,i){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NullSignal=t.ContinueSignal=t.BreakSignal=t.ReturnSignal=t.ControlFlowSignal=t.NULL_SIGNAL=t.CONTINUE_SIGNAL=t.BREAK_SIGNAL=t.RETURN_SIGNAL=void 0;const n=i(6441);t.RETURN_SIGNAL="RETURN_SIGNAL",t.BREAK_SIGNAL="BREAK_SIGNAL",t.CONTINUE_SIGNAL="CONTINUE_SIGNAL",t.NULL_SIGNAL="NULL_SIGNAL";class ControlFlowSignal extends Error{constructor(){super(),this.name=new.target.name}}t.ControlFlowSignal=ControlFlowSignal;t.ReturnSignal=class ReturnSignal extends ControlFlowSignal{value;dataType=t.RETURN_SIGNAL;constructor(e){super(),this.value=e}static isReturnSignal(e){return(0,n.isNerdamerNativeType)(e,t.RETURN_SIGNAL)}};t.BreakSignal=class BreakSignal extends ControlFlowSignal{dataType=t.BREAK_SIGNAL;static isBreakSignal(e){return(0,n.isNerdamerNativeType)(e,t.BREAK_SIGNAL)}};t.ContinueSignal=class ContinueSignal extends ControlFlowSignal{dataType=t.CONTINUE_SIGNAL;static isContinueSignal(e){return(0,n.isNerdamerNativeType)(e,t.CONTINUE_SIGNAL)}};t.NullSignal=class NullSignal extends ControlFlowSignal{dataType=t.NULL_SIGNAL;static isNullSignal(e){return(0,n.isNerdamerNativeType)(e,t.NULL_SIGNAL)}}},7056(e,t,i){"use strict";t._=function _(e){return s.Expression.create(e)};const n=i(5817);const s=i(296),r=i(238)},6255(e,t,i){"use strict";t.add=add,t.addPrefix=function addPrefix(e){return e};const n=i(4703),s=i(5817),r=i(296),o=i(8300),{NUM:a,VAR:l,EXP:u,FUN:c,GRP:p,PRD:m,SUM:g,INF:d}=o.EXPRESSION_TYPES;function add(e,t){let i;if(s.Settings.DEFER_SIMPLIFICATION)i=join(e,t,!1),i.deferred=!0;else{const s=e.keyValue(),a=t.keyValue();r.Expression.DISTRIBUTE_MULTIPLIER&&(e.isSum()&&!e.getMultiplier().isOne()&&e.isLinear()&&(e=e.distributeMultiplier()),t.isSum()&&!t.getMultiplier().isOne()&&t.isLinear()&&(t=t.distributeMultiplier()));const l=!e.isNUM()&&s===a;if(e.isNUM()&&t.isNUM())i=r.Expression.fromRational(e.getMultiplier().plus(t.getMultiplier()));else if(e.isComplex()&&t.isComplex()){const n=e.realPart().plus(t.realPart()),s=e.imagPart().plus(t.imagPart()).times(r.Expression.Img());i=n.isZero()?s:s.isZero()?n:join(n,s)}else if(e.isZero())i=t.copy();else if(e.value===t.value&&e.type===t.type&&e.getPower().eq(t.getPower()))if(e.isInf()){const s=e.getMultiplier(),o=t.getMultiplier();if(s.isNegative()&&!o.isNegative()||o.isNegative()&&!s.isNegative())throw new n.UndefinedError((0,n.message)("infinityMinusInfinityUndefined"));i=e.isNegInf()?r.Expression.NegInf():r.Expression.Inf()}else{const n=e.getMultiplier().plus(t.getMultiplier());n.isZero()?i=r.Expression.Number("0"):e.isSum()&&t.isSum()&&e.isLinear()&&t.isLinear()?i=join(e,t):(i=e.copy(),i.multiplier=n)}else if(l)i=join(e,t,l);else if(e.isInf()&&t.isInf()){const i=e.getMultiplier(),s=t.getMultiplier();if(i.isNegative()&&!s.isNegative()||s.isNegative()&&!i.isNegative())throw new n.UndefinedError((0,n.message)("infinityMinusInfinityUndefined"))}else o.RANK[e.type]>o.RANK[t.type]&&(i=add(t,e));i=i||join(e,t,l)}return i}function canJoin(e,t){return(e.type===g||e.type===p&&e.keyValue()===t.keyValue())&&e.isLinear()&&(!e.multiplier||e.multiplier&&e.getMultiplier().isOne())}function join(e,t,i=!1){let n,s=[];const o=i?p:g;let a=canJoin(e,t),l=canJoin(t,e);if(a&&!l&&([t,e]=[e,t],[l,a]=[a,l]),l)if(!a&&l){n=t.copy();const r=n.getElements();let o=!0,a=e.keyValue(o,!1);if(a in r||(o=!1,a=e.keyValue(o,i)),a in r){const t=add(e,r[a]);t.isZero()?delete r[a]:r[a]=t}else r[a]=e.copy();s=Object.values(r)}else{n=e.copy(),n.multiplier=e.getMultiplier().times(t.getMultiplier());const i=n.getElements(),r=t.getElements();for(const e in r){const t=r[e];if(e in i){const n=add(t,i[e]);n.isZero()?delete i[e]:i[e]=n}else i[e]=t.copy()}s=Object.values(i)}else{let o=!1,a=e.keyValue(o,i),l=t.keyValue(o,i);a===l&&(o=!0,i=!1,a=e.keyValue(o,i),l=t.keyValue(o,i)),n=r.Expression.Number("1"),n.elements={},n.elements[a]=e.copy(),n.elements[l]=t.copy(),s=[e,t]}if((n.isSum()||n.isProduct())&&1===s.length){const e=s[0];(n.multiplier||e.multiplier)&&(e.multiplier=e.getMultiplier().times(n.getMultiplier())),n=e}else 0===s.length?n=r.Expression.Number("0"):(n.type=o,n.updateValue(s));return n}},4091(e,t){"use strict";t.comma=function comma(e,t){return[e,t]}},619(e,t,i){"use strict";t.equal=equal,t.gt=gt,t.gte=function gte(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new n.UnsupportedOperationError((0,n.message)("unsupportedOperation"));const i=e.isPlainVariable()&&t.isPlainVariable()&&e.value===t.value,s=(0,r.getAssumptionFor)(e),a=(0,r.getAssumptionFor)(t);let l,u;if(i)u=!0;else if(s&&a?l=s.gte(a):s?l=s.gte(t):a&&(l=a.lte(e)),void 0!==l)u=l;else{const i=(0,r.hasAssumptions)()?compareAffineExpressions(e,t,"gte"):void 0;u=void 0===i?gt(e,t)||equal(e,t):i}return u},t.lt=lt,t.lte=function lte(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new n.UnsupportedOperationError((0,n.message)("unsupportedOperation"));const i=e.isPlainVariable()&&t.isPlainVariable()&&e.value===t.value,s=(0,r.getAssumptionFor)(e),a=(0,r.getAssumptionFor)(t);let l,u;if(i)u=!0;else if(s&&a?l=s.lte(a):s?l=s.lte(t):a&&(l=a.gte(e)),void 0!==l)u=l;else{const i=(0,r.hasAssumptions)()?compareAffineExpressions(e,t,"lte"):void 0;u=void 0===i?lt(e,t)||equal(e,t):i}return u};const n=i(4703),s=i(5523),r=i(6351),o=i(296),a=i(6498),l=i(6910);var u=i(6351);function getAffineForm(e){let t;if(!e.isComplex()&&e.getPower().isOne())if(e.isVAR())(0,r.getAssumptionFor)(e.value)&&(t={coefficient:o.Expression.fromRational(e.getMultiplier()),constant:o.Expression.Number(0),symbol:e.value});else if(e.isSum()){const i=e.elementsArray();let n,s=!0;for(const e of i)if(!e.isNUM()){if(!e.isVAR()||!e.getPower().isOne()){s=!1;break}if(void 0===n){if(n=e.value,!(0,r.getAssumptionFor)(n)){s=!1;break}}else if(n!==e.value){s=!1;break}}if(s&&void 0!==n){let e=o.Expression.Number(0),s=o.Expression.Number(0);for(const t of i)t.isNUM()?s=s.plus(t):e=e.plus(o.Expression.fromRational(t.getMultiplier()));e.isZero()||(t={coefficient:e,constant:s,symbol:n})}}return t}function compareAffineToValue(e,t,i){const n=getAffineForm(e);let s;if(n){const e=(0,r.getAssumptionFor)(n.symbol);if(e){const r=t.minus(n.constant).div(n.coefficient);let o=i;n.coefficient.getMultiplier().isNegative()&&(o="gt"===i?"lt":"gte"===i?"lte":"lt"===i?"gt":"gte"),s=e[o](r)}}return s}function compareAffineExpressions(e,t,i){let n;const s=e.isSum()||e.isVAR()&&!e.isPlainVariable(),r=t.isSum()||t.isVAR()&&!t.isPlainVariable();if(s&&t.isNUM())n=compareAffineToValue(e,t,i);else if(e.isNUM()&&r){let s;s="gt"===i?"lt":"gte"===i?"lte":"lt"===i?"gt":"gte",n=compareAffineToValue(t,e,s)}return n}function getProvenSign(e){let t;if(!e.isComplex())if(e.isNUM())t=e.getMultiplier().sign();else{const i=e.getMultiplier().sign(),n=e.getPower();if(0===i)t=0;else if(!n.isOne()&&n.isNUM()){const s=getProvenSign(e.toLinearAndUnitMultiplier());let r;1===s?r=1:-1===s&&n.isInteger()?r=n.isEven()?1:-1:0===s&&n.getMultiplier().gt("0")&&(r=0),void 0!==r&&(t=i*r)}else if(e.isProduct()){let n=i,s=!0;for(const t of e.elementsArray()){const e=getProvenSign(t);if(void 0===e){s=!1;break}if(n*=e,0===n)break}s&&(t=n)}if(void 0===t&&n.isOne()){const n=e.toLinearAndUnitMultiplier(),s=(0,r.getAssumptionFor)(n);if(s){const e=o.Expression.Number(0);let n;!0===s.gt(e)?n=1:!0===s.lt(e)?n=-1:!0===s.eq(e)&&(n=0),void 0!==n&&(t=i*n)}else e.isSum()&&(0,r.hasAssumptions)()&&(t=function getAffineSign(e){const t=getAffineForm(e);let i;if(t){const e=(0,r.getAssumptionFor)(t.symbol);if(e){const n=t.constant.neg().div(t.coefficient),s=t.coefficient.getMultiplier().isNegative(),r=s?e.lt(n):e.gt(n),o=s?e.gt(n):e.lt(n);!0===r?i=1:!0===o?i=-1:!0===e.eq(n)&&(i=0)}}return i}(e))}}return t}function equal(e,t){e=o.Expression.create(e),t=o.Expression.create(t);const i=e.isPlainVariable()&&t.isPlainVariable()&&e.value===t.value,n=(0,r.getAssumptionFor)(e),u=(0,r.getAssumptionFor)(t);let c,p;if(e.isComplex()&&t.isComplex()){const i=e.realPart(),n=e.imagPart(),s=t.realPart(),r=t.imagPart();if(i.isNUM()&&n.isNUM()&&s.isNUM()&&r.isNUM())return i.getMultiplier().eq(s.getMultiplier())&&n.getMultiplier().eq(r.getMultiplier())}if(i)p=!0;else if(n&&u?c=n.eq(u):n?c=n.eq(t):u&&(c=u.eq(e)),void 0!==c)p=c;else{let i;e.isNUM()&&t.isNUM()?i=(0,l.subtract)(e,t):(e=(0,a.canonicalizeRadicals)(e),t=(0,a.canonicalizeRadicals)(t),i=(0,s.toCommonDenominator)((0,l.subtract)(e,t).expand()).expand()),p=i.isNUM()&&i.getMultiplier().eq("0")}return p}function gt(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new n.UnsupportedOperationError((0,n.message)("unsupportedOperation"));const i=(0,r.getAssumptionFor)(e),s=(0,r.getAssumptionFor)(t);let a,u;if(i&&s?a=i.gt(s):i?a=i.gt(t):s&&(a=s.lt(e)),void 0!==a)u=a;else{let i;if(t.isZero())i=getProvenSign(e);else if(e.isZero()){const e=getProvenSign(t);void 0!==e&&(i=-e)}if(void 0!==i)u=i>0;else{const i=!(0,r.hasAssumptions)()||e.isZero()||t.isZero()?void 0:compareAffineExpressions(e,t,"gt");if(void 0!==i)u=i;else{const i=(0,l.subtract)(e.evaluate(),t.evaluate()).expand();u=i.isNUM()&&i.getMultiplier().gt("0")}}}return u}function lt(e,t){if(e=o.Expression.create(e),t=o.Expression.create(t),e.isComplex()||t.isComplex())throw new n.UnsupportedOperationError((0,n.message)("unsupportedOperation"));const i=(0,r.getAssumptionFor)(e),s=(0,r.getAssumptionFor)(t);let a,u;if(i&&s?a=i.lt(s):i?a=i.lt(t):s&&(a=s.gt(e)),void 0!==a)u=a;else{let i;if(t.isZero())i=getProvenSign(e);else if(e.isZero()){const e=getProvenSign(t);void 0!==e&&(i=-e)}if(void 0!==i)u=i<0;else{const i=!(0,r.hasAssumptions)()||e.isZero()||t.isZero()?void 0:compareAffineExpressions(e,t,"lt");if(void 0!==i)u=i;else{const i=(0,l.subtract)(e.evaluate(),t.evaluate()).expand();u=i.isNUM()&&i.getMultiplier().lt("0")}}}return u}},3171(e,t,i){"use strict";t.divide=function divide(e,t){let i;if(s.Settings.DEFER_SIMPLIFICATION)t.isNUM()&&(t.power=(0,o.one)()),i=div(e,t),i.deferred=!0;else{if(t.isZero())throw new n.DivisionByZeroError((0,n.message)("divisionByZero"));if(e.isZero()&&!t.isInf())i=r.Expression.Number("0");else if(e.isNUM()&&t.isNUM())i=r.Expression.fromRational(e.getMultiplier().div(t.getMultiplier()));else if(t.isNUM()){i=e.copy();const n=e.getMultiplier().div(t.getMultiplier());i.multiplier=n}else{if(e.isComplex()||t.isComplex()){const i=e.realPart(),n=t.realPart(),s=e.imagPart(),o=t.imagPart(),a=n.sq().plus(o.sq()),l=i.times(n).plus(s.times(o)).div(a),u=s.times(n).minus(i.times(o)).div(a).times(r.Expression.Img());return l.plus(u)}t.isInf()&&!e.isZero()?t.getMultiplier().isNegative()||e.isInf()||(i=r.Expression.Number("0")):(i=div(e,t),i.isEXP()&&i.hasRadical()&&(i=(0,l.rationalizeRadical)(i)))}if(!i)throw new n.UndefinedError((0,n.message)("undefinedDivision",{type:`${e}/${t}`}))}return i};const n=i(4703),s=i(5817),r=i(296),o=i(6099),a=i(6498),l=i(3957);function div(e,t){return(t=t.copy()).power=t.getPower().neg(),t.multiplier=t.getMultiplier().invert(),(0,a.multiply)(e,t)}},8801(e,t,i){"use strict";t._=void 0,t.callFunction=callFunction,t.route=function route(e,t,i){let n;if("assign"===i)n=(0,v.assign)(e,t);else if("comma"===i)n=(0,S.comma)(e,t);else if("in"===i)n=callFunction("contains",[t,e]);else if(function isRoutedOperation(e){return"pow"===e||"times"===e||"div"===e||"minus"===e||"plus"===e||"eq"===e||"lt"===e||"lte"===e||"gt"===e||"gte"===e}(i))if(p.Equation.isEquation(e)||p.Equation.isEquation(t))if(p.Equation.isEquation(e)&&p.Equation.isEquation(t)){if(!["eq","lt","lte","gt","gte"].includes(i))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));n=dispatchDynamicOperation(e,t,i)}else if(p.Equation.isEquation(e)){if(!["plus","minus","times","div"].includes(i))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));n=dispatchDynamicOperation(e,t,i)}else{if("plus"!==i&&"times"!==i)throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));n=dispatchDynamicOperation(e,t,i)}else if((0,s.isEnumerable)(e))n=routeOperation(e,t,i);else if(!h.Vector.isVector(t)&&!d.Matrix.isMatrix(t)||"minus"!==i&&"div"!==i&&"pow"!==i)n=(0,s.isEnumerable)(t)?routeOperation(t,e,i):dispatchDynamicOperation(e,t,i);else{if(!m.Expression.isExpression(e))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));if(d.Matrix.isMatrix(t)&&"pow"===i)throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));n=distribute(t=>{let n;if(m.Expression.isExpression(t))n="minus"===i?(0,I.subtract)(e,t):"div"===i?(0,A.divide)(e,t):(0,P.power)(e,t);else{const s=route(e,t,i);if(Array.isArray(s))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));n=s}return n},t)}else n=dispatchDynamicOperation(e,t,i);return n};const n=i(8533),s=i(4861),r=i(9426),o=i(4703),a=i(3148),l=i(5817),u=i(2332),c=i(6284),p=i(6184),m=i(296),g=i(1897),d=i(4462),h=i(3982),E=i(8300),x=i(294),y=i(266),v=i(2707),w=i(6255),S=i(4091),A=i(3171),N=i(6498),P=i(3957),I=i(6910);function invokeMathFunction(e,t){return e(...t)}function callFunction(e,t){1===t.length&&void 0===t[0]&&(t=[]);const i=r.mathFunctionRegistry[e];if(void 0===i)throw new o.ParserError((0,o.message)("unsupportedFunction",{function:e}));const{fn:n,minArgs:s,maxArgs:a,maxPrecision:u,equationArgs:c,distElWise:g,deferArguments:E,returnBoundary:y}=i;if(s>-1&&t.length<s)throw new o.ParserError((0,o.message)("functionMinArgs",{function:e,min:String(s),actual:String(t.length)}));if(a>-1&&t.length>a)throw new o.ParserError((0,o.message)("functionMaxArgs",{function:e,max:String(a),actual:String(t.length)}));let v;if(E){const invoke=()=>invokeMathFunction(n,t);v=y?(0,x.parserReturnBoundary)(invoke):invoke()}else{const s=[];for(const e of t){if("function"==typeof e)throw new o.ParserError((0,o.message)("malformedExpression"));s.push(e)}const r=s.map(e=>m.Expression.fromSymbolicAccess(e)??e);if("system"===i.level)for(let e=0;e<r.length;e++)if(p.Equation.isEquation(r[e])&&!c?.includes(e))throw new o.UnexpectedDataType((0,o.message)("expressionExpected",{type:"Equation"}));const a=g?r.filter(e=>h.Vector.isVector(e)||d.Matrix.isMatrix(e)):[];if(a.length>0){const t=a[0];for(const i of a){let n;if(n=h.Vector.isVector(t)?h.Vector.isVector(i)&&t.count()===i.count():d.Matrix.isMatrix(i)&&t.dimensionsMatch(i),!n)throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:e}))}v=distribute((t,i,n)=>{const s=r.map(e=>{let t=e;return h.Vector.isVector(e)?t=e.__get__([i]):d.Matrix.isMatrix(e)&&(t=e.get(i,n)),t});return callFunction(e,s)},t)}else v=!n||l.Settings.DEFER_SIMPLIFICATION?m.Expression.toFunction(e,r):invokeMathFunction(n,r);v||(v=m.Expression.toFunction(e,r))}return u&&(v.precision=u),v}function distribute(e,t){let i;return i=h.Vector.isVector(t)?t.copy().each((t,i)=>e(t,i)):t.copy().each((t,i,n)=>{const s=e(t,Number(i),Number(n));if(!m.Expression.isExpression(s))throw new o.UnexpectedDataType((0,o.message)("expressionExpected",{type:E.dataTypes[s.dataType]}));return s}),i}function setEqual(e,t){if(!m.Expression.isExpression(e)&&!m.Expression.isExpression(t))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));return new p.Equation(e,t)}function functionAssign(e,t){if(!c.Collection.isCollection(e))throw new o.UnexpectedInputError((0,o.message)("invalidFunctionDeclaration",{declaration:e.text()}));const i=[...e.getElements()],n=i.pop();if(!m.Expression.isExpression(n))throw new o.UnexpectedInputError((0,o.message)("invalidFunctionDeclaration",{declaration:e.text()}));const s=(0,g.assertPlainVariableAndGetString)(n),r=i.map(e=>{if(!m.Expression.isExpression(e))throw new o.UnexpectedInputError((0,o.message)("plainVariableExpected",{input:e.text()}));return(0,g.assertPlainVariableAndGetString)(e)});return(0,a.setFunction)({type:"symbolic",name:s,minArgs:r.length,maxArgs:r.length,fn:(0,y.wrappedFunction)(t,r)}),m.Expression.toFunction(s,r.map(e=>m.Expression.Variable(e)))}function routeOperation(e,t,i){const n=e[i](t);return"boolean"==typeof n?m.Expression.create(Number(n)):n}function dispatchDynamicOperation(e,t,i){const n=e.isEnumerable||p.Equation.isEquation(e),s=n?e:t,r=n?t:e,a=s[i];if(!a)throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));const l=a.call(s,r);return"boolean"==typeof l?m.Expression.create(Number(l)):l}t._={plus:w.add,minus:I.subtract,times:N.multiply,div:A.divide,pow:P.power,mod:function modulo(e,t){if(!m.Expression.isExpression(e)||!m.Expression.isExpression(t))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));return e.mod(t)},percent:function percentage(e){if(!m.Expression.isExpression(e))throw new o.UnsupportedOperationError((0,o.message)("unsupportedOperation"));return e.div(100)},assertEQ:u.assertEQ,assertGT:u.assertGT,assertGTE:u.assertGTE,assertLT:u.assertLT,assertLTE:u.assertLTE,comma:S.comma,assign:v.assign,functionAssign,setEqual,lt:function lt(e,t){return m.Expression.create(Number(e.lt(t)))},lte:function lte(e,t){return m.Expression.create(Number(e.lte(t)))},eq:function eq(e,t){return m.Expression.create(Number(e.eq(t)))},gt:function gt(e,t){return m.Expression.create(Number(e.gt(t)))},gte:function gte(e,t){return m.Expression.create(Number(e.gte(t)))},minusPrefix:I.subtractPrefix,plusPrefix:w.addPrefix,factorial:n.factorial,doubleFactorial:n.doubleFactorial}},6498(e,t,i){"use strict";t.multiply=multiply,t.canonicalizeRadicals=function canonicalizeRadicals(e){let t;if(e.isEXP()&&e.isConstant()&&e.hasRadical())t=(0,u.rationalizeRadical)(e,!0);else if(e.isFunction()){const i=e.getArguments().map(e=>canonicalizeRadicals(e));let n=o.Expression.toFunction(e.name,i);n.multiplier=e.multiplier,n=o.Expression.setPower(n,e.getPower()),t=n}else if(e.isProduct()){let t=o.Expression.fromRational(e.getMultiplier());e.each(e=>{t=t.times(canonicalizeRadicals(e))})}else if(e.isSum()&&e.isLinear()){let t=(0,a.zero)();e.each(e=>{t=t.plus(canonicalizeRadicals(e))})}else if(e.isEXP()){const t=canonicalizeRadicals(e.getBase()),i=canonicalizeRadicals(e.getPower());t.pow(i).multiplier=e.multiplier}return t??e};const n=i(4703),s=i(4600),r=i(5817),o=i(296),a=i(6099),l=i(8300),u=i(3957);function multiply(e,t){let i;if(r.Settings.DEFER_SIMPLIFICATION)i=merge(o.Expression.toFunction(l.WRAP,[e]),o.Expression.toFunction(l.WRAP,[t])),i.deferred=!0;else{if(e.isZero()){if(t.isInf())throw new n.UndefinedError((0,n.message)("infinityTimesZero"));i=o.Expression.Number("0")}else if(e.isNUM()&&t.isNUM())i=o.Expression.fromRational(e.getMultiplier().times(t.getMultiplier()));else if(e.isComplex()&&t.isComplex()&&e.isSum()&&t.isSum()){const n=e.realPart(),s=t.realPart(),r=e.imagPart(),a=t.imagPart();i=n.times(s).minus(r.times(a)).plus(n.times(a).plus(r.times(s)).times(o.Expression.Img()))}else if(e.isNUM()&&!t.isInf())i=t.copy(),i.multiplier=e.getMultiplier().times(t.getMultiplier());else if((e.isInf()||e.isNUM())&&t.isInf()){if(i=o.Expression.Inf(),e.getMultiplier().times(t.getMultiplier()).isNegative())i=i.neg();else if(e.isZero()||t.isZero())throw new n.UndefinedError((0,n.message)("infinityTimesZero"))}else if(e.value===t.value){i=e.copy(),i.multiplier=i.getMultiplier().times(t.getMultiplier());const n=e.getPower().plus(t.getPower());i=n.isZero()?o.Expression.fromRational(i.getMultiplier()):o.Expression.setPower(i,n);const r=i.getPower();i.isI()?i=(0,s.simplifyImaginary)(i):i.isFunction(l.ABS)&&r.isEven()&&(i=i.getArguments()[0].pow(r).times(i.getMultiplier()))}else l.RANK[e.type]>l.RANK[t.type]&&(i=multiply(t,e));i=i||merge(e,t),i.isEXP()&&i.isLinear()&&(i=i.getBase().times(i.getMultiplier())),r.Settings.EVALUATE&&(i=i.distributeMultiplier())}return i}function combine(e,t,i,n){const s=o.Expression.Number("1");return s.elements={},s.elements[i]=e.copy(),s.elements[n]=t.copy(),[s,[e,t]]}function canMerge(e){return e.isProduct()&&e.isLinear()}function merge(e,t){let i,n=[];const s=o.Expression.TYPES.PRD;let r=canMerge(e),l=canMerge(t),c=!0;const p=void 0!==e.multiplier,m=void 0!==t.multiplier;let g=p||m?e.getMultiplier().times(t.getMultiplier()):void 0;if(g&&(p&&((e=e.copy()).multiplier=void 0),m&&((t=t.copy()).multiplier=void 0)),e.elements&&!t.elements&&([t,e]=[e,t],[l,r]=[r,l]),l)if(!r&&l){const s=e.keyValue();i=t.copy();const r=i.getElements();let o;if(s in r)o=multiply(e,r[s]);else{let t;for(const e in r)if(r[e].isProduct()){t=r[e],delete r[e];break}o=t?multiply(e,t):e.copy()}o.isNUM()?(o.isOne()||(g=g?.times(o.getMultiplier())),delete r[s]):r[s]=o,n=Object.values(r)}else{i=e.copy(),i.multiplier=e.getMultiplier().times(t.getMultiplier());const r=i.getElements(),a=t.getElements();for(const e in a){const t=a[e];if(e in r){const i=multiply(t,r[e]);s===o.Expression.TYPES.PRD&&i.isOne()?delete r[e]:r[e]=i}else r[e]=t.copy()}n=Object.values(r)}else{const s=e.type===o.Expression.TYPES.GRP?e.value:e.keyValue(),r=t.type===o.Expression.TYPES.GRP?t.value:t.keyValue(),l=e.isProduct()&&e.isLinear();if(l&&t.isProduct()&&t.getPower().isMinusOne()){let s=e,r=(0,a.one)();const o=e.getElements(),l=t.getElements();for(const e in l){const t=l[e];e in o?s=multiply(s,(0,u.power)(t,(0,a.minusOne)())):r=multiply(r,t)}[i,n]=combine(s,multiply((0,u.power)(r,(0,a.minusOne)()),e.getMultiplier(!0)),e.keyValue(),t.keyValue())}else if(l&&e.getElements()[r])i=function transfer(e,t,i){let n=e.getMultiplier(!0);const s=e.getElements();for(const e in s)e!==i&&(n=multiply(n,s[e]));const r=multiply(s[i],t);return multiply(n,r)}(e,t,r),c=!1;else{const o=e.getPower(),a=t.getPower();if(-1===o.sign()&&-1===a.sign()){i=multiply(e.invert(),t.invert()),i=i.invert(),n=Object.values(i.getElements())}else[i,n]=combine(e,t,s,r)}}if(c&&(i.type=s,i.updateValue(n)),g&&!g.isOne()&&(i.multiplier=g),i.isProduct()&&1===Object.keys(i.getElements()).length){const e=Object.values(i.getElements())[0];e.multiplier=e.getMultiplier().times(i.getMultiplier()),i=e}return i}},3957(e,t,i){"use strict";t.power=power,t.sqrtToPow=function sqrtToPow(e){let t;if(e.isFunction(h.SQRT)){t=e.getArguments()[0].copy();t=setPower(t,e.getPower().div((0,g.two)())),t.multiplier=e.getMultiplier().copy()}else t=e.copy();return t},t.rationalizeRadical=rationalizeRadical;const n=i(8533),s=i(1649),r=i(4703),o=i(551),a=i(551),l=i(982),u=i(4600),c=i(4600),p=i(5817),m=i(296),g=i(6099),d=i(1897),h=i(8300),E=i(619),x=i(6498),y={[h.COS]:h.SEC,[h.SEC]:h.COS,[h.SIN]:h.CSC,[h.CSC]:h.SIN,[h.TAN]:h.COT,[h.COT]:h.TAN,[h.COSH]:h.SECH,[h.SECH]:h.COSH,[h.SINH]:h.CSCH,[h.CSCH]:h.SINH,[h.TANH]:h.COTH,[h.COTH]:h.TANH};function power(e,t){let i;if(e.isZero()&&t.isZero())throw new r.ZeroToZeroPowerError((0,r.message)("zeroToZeroPower"));if(p.Settings.DEFER_SIMPLIFICATION)i=e.copy(),i=m.Expression.toEXP(i,t.copy()),i.deferred=!0;else{if(e.isI()&&t.isInteger())i=(0,u.simplifyImaginary)(setPower(e,t));else if(e.isE()&&t.isComplex()){const n=t.copy(),s=n.getMultiplier();if(delete n.multiplier,(0,E.equal)(n,`${m.Expression.imaginary}*${h.PI[0]}`))if(s.isInteger()){const t=m.Expression.Number(s.evenNumerator()?"1":"-1");i=(0,x.multiply)(m.Expression.fromRational(e.getMultiplier()),t)}else if("2"===s.denominator.toString()){const t=m.Expression.Number(1n===s.abs().mod("4").numerator?"1":"-1");i=(0,x.multiply)((0,x.multiply)(m.Expression.fromRational(e.getMultiplier()),m.Expression.Img()),t),s.isNegative()&&(i=i.neg())}}else if(p.Settings.EVALUATE){if(e.isFunction()&&t.isMinusOne()&&e.getMultiplier().isOne()&&e.getPower().isOne()&&y[e.name])i=m.Expression.toFunction(y[e.name],e.getArguments());else if(e.isNUM()&&t.isNUM()){const n=-1===e.sign(),r=-1===t.sign();let o=e.abs();const a=t.abs();if(n){let e=a.times(m.Expression.Pi());r&&(o=o.invert(),e=e.neg());const t=m.Expression.Number(o.getMultiplier().toDecimal().pow(a.getMultiplier().toDecimal())),n=(0,s.cos)(e).times(t),l=(0,s.sin)(e).times(t).times(m.Expression.Img());i=n.plus(l)}else i=m.Expression.fromRational(o.getMultiplier().pow(a.getMultiplier())),r&&(i=i.invert())}else if(e.isComplex())if(t.isComplex()){const[r,o]=(0,c.toPolarFormArray)(e),a=(0,u.realPart)(t),l=(0,u.imagPart)(t),p=a.times(o).plus(l.times((0,n.log)(r)));i=power(r,a).times(m.Expression.E().pow(l.neg().times(o))).times((0,s.cos)(p).plus(m.Expression.Img().times((0,s.sin)(p))))}else{const n=e.distributeMultiplier(),[r,o]=(0,c.toPolarFormArray)(n),a=o.times(t),l=r.pow(t);i=l.times((0,s.cos)(a)).plus(l.times(m.Expression.Img().times((0,s.sin)(a))))}else if(t.isComplex()){const r=e.pow(t.realPart()),o=e.pow(t.imagPart());i=r.times((0,s.cos)((0,n.log)(o))).plus(r.times((0,s.sin)((0,n.log)(o))).times(m.Expression.Img()))}}else{const s=t.isInf();if(e.isOne()&&!s)i=(0,g.one)();else if(!e.isZero()||s||t.isZero())if(!t.isZero()||e.isInf()||e.isNUM())if(t.isOne())i=e.copy();else if(e.isInf()||s){const n=e.isInf(),s=t.isInf();if(n&&s)throw new r.UndefinedError((0,r.message)("infinityToInfinity"));if(e.isNUM()){const n=e.getMultiplier();if(n.gt("1")&&t.isPosInf()||e.isPosInf()&&t.isPosInf())i=m.Expression.Inf();else{if(!(n.gt("1")&&t.isNegInf()||n.eq("0")&&t.isPosInf()))throw new r.UndefinedError((0,r.message)("valueToInfinityUndefined",{value:n.lt("0")?`(${e})`:`${e}`}));i=m.Expression.Number("0")}}else if(t.isZero())throw new r.UndefinedError((0,r.message)("infinityToPowerZero"))}else if(e.isProduct()&&(e.isLinear()&&t.isInteger()||e.isConstant()&&!e.isComplex()&&e.sign()>0)){i=m.Expression.fromRational(e.getMultiplier()).pow(t);const n=e.getElements();for(const e in n)i=i.times(n[e].pow(t))}else if(!t.isNUM()||t.isInteger()||e.isNUM()||e.getMultiplier().abs().isOne())if(t.isNUM()&&!t.isInteger()&&e.isProduct()&&e.isLinear()){let n=(0,g.one)(),s=(0,g.one)(),r=!1;for(const i of e.elementsArray())!i.isComplex()&&i.gt(0)?(n=n.times(power(i,t)),r=!0):s=s.times(i);r&&(i=s.isOne()?n:n.times(power(s,t)))}else if(t.isNUM())if(e.isZero())i=m.Expression.Number("0");else if(e.isMinusOne()&&t.isInteger()&&t.isOdd())i=(0,g.one)().neg();else if(t.isZero())i=(0,g.one)();else if(e.isEXP()&&!e.getBase().isNUM()&&t.isInteger()){const n=(0,x.multiply)(e.getPower(),t);n.isOne()?i=e.getBase().times(e.getMultiplier()):(i=e.copy(),i.power=n)}else{const s=t.abs().getMultiplier(),r=s.numerator,a=s.denominator,l=e.getMultiplier().abs(),u=l.numerator**r,c=l.denominator**r;if(u<=p.Settings.MAX_FRAC_INT&&c<=p.Settings.MAX_FRAC_INT){const s=nthPow(u,a),l=nthPow(c,a),p=(0,o.isEven)(r);let E;if(E=-1===t.sign()?l.times(s.invert()):s.times(l.invert()),1n!==a&&!e.isNUM()&&e.getMultiplier().isNegative())i=m.Expression.toEXP(e.copy(),t),i=i.times(E),i=rationalizeRadical(i);else if(1n!==a&&2n!==a&&e.isNUM()&&-1===e.sign())i=m.Expression.toEXP((0,g.minusOne)(),t).times(E);else{if(i=e.toUnitMultiplier(),i.isOne()&&-1===e.sign()&&2n===a)i=i.times(m.Expression.Img()),r%4n==3n&&(i=i.neg()),-1===t.sign()&&(i=i.invert());else if(-1!==e.sign()||p){const e=i.getPower(),s=e.times(t);if(s.isZero())i=(0,g.one)();else if(s.isNUM()){const r=e.getMultiplier().abs(),a=t.isInteger()||e.isOne()||r.lt("1");!t.isInteger()&&e.isInteger()&&e.isEven()&&!(0,d.stripPower)(i).isComplex()?(i=(0,n.abs)((0,d.stripPower)(i)),i=m.Expression.setPower(i,s)):a?i.isEXP()?i=power(i.getBase(),s).times(i.getMultiplier()):(i.isFunction(h.ABS)&&(0,o.isEven)(s.getMultiplier().numerator)&&(i=i.getArguments()[0].times(i.getMultiplier())),i=m.Expression.setPower(i,s)):i=m.Expression.toEXP(i,t)}else i=i.getPower().isNUM()?m.Expression.toEXP(i,s,!0):m.Expression.toEXP(i,t)}else{i=i.neg();const n=t.isInteger();e.isVAR()&&n?i=m.Expression.setPower(i,t):i.isMinusOne()&&n||(i=m.Expression.toEXP(i,t))}i=i.times(E),i=rationalizeRadical(i)}}}else if(e.isInf()||t.isInf()){const n=e.isInf(),s=t.isInf();if(n&&s)throw new r.UndefinedError((0,r.message)("infinityToInfinity"));if(e.isNUM()){const n=e.getMultiplier();if(n.gt("1")&&t.isPosInf()||e.isPosInf()&&t.isPosInf())i=m.Expression.Inf();else{if(!(n.gt("1")&&t.isNegInf()||n.eq("0")&&t.isPosInf()))throw new r.UndefinedError((0,r.message)("valueToInfinityUndefined",{value:n.lt("0")?`(${e})`:`${e}`}));i=m.Expression.Number("0")}}else if(t.isZero())throw new r.UndefinedError((0,r.message)("infinityToPowerZero"))}else{const s=e.getPower(),r=t.times(s);if(s.isNUM()&&!r.isNUM()){const o=e.getMultiplier(),a=s.getMultiplier().abs(),l=(0,d.stripPower)(e.toUnitMultiplier());!o.isNegative()&&s.isInteger()&&s.isEven()&&!l.isComplex()?(i=(0,n.abs)(l),i=m.Expression.toEXP(i,r),o.isOne()||(i=i.times(m.Expression.toEXP(m.Expression.fromRational(o),t)))):o.isNegative()||!s.isOne()&&!a.lt("1")||(i=m.Expression.toEXP(l,r),o.isOne()||(i=i.times(m.Expression.toEXP(m.Expression.fromRational(o),t))))}}else{const n=e.getMultiplier(),s=n.abs();let r=e.toUnitMultiplier();n.isNegative()&&(r=r.neg()),i=power(r,t).times(power(m.Expression.fromRational(s),t))}else i=(0,g.one)();else i=m.Expression.Number("0")}if(i||(i=setPower(e,t)),i.isI()&&(i=(0,u.simplifyImaginary)(i)),e.hasDecimal()){(i.isEXP()?i.getBase():i).getMultiplier().asDecimal=!0}}return i}function setPower(e,t){let i;if(p.Settings.EVALUATE&&e.isNUM()&&t.isNUM()&&!e.getMultiplier().isNegative()&&!t.getMultiplier().isNegative())i=m.Expression.fromRational(e.getMultiplier().pow(t.getMultiplier()));else if(e.isNUM())i=m.Expression.toEXP(e.getMultiplier(),t);else if(t.isNUM()&&!e.isEXP()){i=e.toUnitMultiplier();const n=t.getMultiplier().sign(),s=t.getMultiplier().abs();let r=e.getMultiplier();r.isNegative()&&(i.power=i.getPower().times(s),i=i.times((0,g.minusOne)().pow(s)),r=r.abs());const o=r.pow(s);i.multiplier=i.getMultiplier().isNegative()?o.neg():o,-1===n&&(i.multiplier=i.getMultiplier().invert()),i=m.Expression.setPower(i,e.getPower().times(t.getMultiplier()))}else{const n=e.getPower().times(t);if(n.isNUM()&&e.isEXP()&&!e.getBase().isComplex()&&e.getBase().gt(0)&&(0,u.imagPart)(e.getPower()).isZero())i=power(e.getBase(),n).times(e.getMultiplier());else{const n=e.getMultiplier(),s=n.abs();let r=e.toUnitMultiplier();n.isNegative()&&(r=r.neg()),i=m.Expression.toEXP(r,t),s.isOne()||(i=i.times(m.Expression.toEXP(s,t)))}}return i}function nthPow(e,t){let i;if(1n===t&&"bigint"==typeof e)i=m.Expression.Number(e);else{let n=1n;const s={},r="bigint"==typeof e?(0,l.primeFactorCounts)(e):e;for(const e in r){const i=r[e],o=i/t,a=i-o*t;n*=BigInt(e)**o,a>0n&&(s[e]=a)}const o={};for(const e in s){const t=String(s[e]);o[t]=o[t]?BigInt(e)*o[t]:BigInt(e)}i=1n===n?(0,g.one)():m.Expression.Number(n);for(const e in o){const n=o[e],s=m.Expression.Number(BigInt(e)).div(m.Expression.Number(t));i=i.times(m.Expression.toEXP(m.Expression.Number(n),s))}}return i}function rationalizeRadical(e,t=!1){if(!e.isEXP()||!e.hasRadical())return e;const i=e.getPower().getMultiplier();if(!i.isNegative())return e;const n=e.getBase(),s=(0,a.abs)(i.numerator),r=(0,a.abs)(i.denominator),o=(s+r-1n)/r,l=o*r-s;if(!t&&l>s)return e;let u;u=0n===l?(0,g.one)():n.pow(m.Expression.Number(l).div(m.Expression.Number(r)));const c=n.pow(m.Expression.Number(-o));return u.times(c).times(e.getMultiplier())}},6910(e,t,i){"use strict";t.subtract=function subtract(e,t){let i;if(s.Settings.DEFER_SIMPLIFICATION)i=(0,o.add)(e,t.neg()),i.deferred=!0;else if(i=e.isNUM()&&t.isNUM()?r.Expression.fromRational(e.getMultiplier().minus(t.getMultiplier())):!e.isInf()&&t.isInf()?r.Expression.Inf().neg():(0,o.add)(e,t.neg()),!i)throw new Error((0,n.message)("subtractionNotDefined",{leftType:String(e.type),rightType:String(t.type),left:String(e),right:String(t)}));return i},t.subtractPrefix=function subtractPrefix(e){return e.neg()};const n=i(4703),s=i(5817),r=i(296),o=i(6255)},5823(e,t,i){"use strict";t.preprocess=function preprocess(e,t){let i=function normalizeComments(e){let t="",i=0;for(;i<e.length;){const s=e.indexOf("#",i);if(-1===s){t+=e.slice(i);break}t+=e.slice(i,s);const r=e.startsWith("##",s)?"##":"#",o=e.indexOf(r,s+r.length);if(-1===o)throw new n.ParserError((0,n.message)("missingCommentDelimiter",{delimiter:r}));t+=" ",i=o+r.length}return t}(e);i=function normalizeStatementSeparators(e){const t=[];let i="",n=!1;for(let r=0;r<e.length;r++){const o=e[r];if("("===o||"["===o||"{"===o){const n="("===o?")":"["===o?"]":"}";i+=o,t.push({argumentStart:i.length,closingBracket:n,functionName:"("===o?getPreviousIdentifier(e,r):void 0});continue}if(")"===o||"]"===o||"}"===o){const e=t[t.length-1];e?.closingBracket===o&&(e.statementBlockOpened&&(i+=")"),t.pop()),i+=o;continue}if(","===o){i+=o;const e=t[t.length-1];e&&!e.statementBlockOpened&&(e.argumentStart=i.length);continue}if(";"===o){const a=getNextSignificantCharacter(e,r+1),l=t[t.length-1],u=void 0===a||","===a||a===l?.closingBracket;if(0===t.length)u||(i+=",",n=!0);else{if(u)continue;l?.functionName===s?i+=",":"let"===l?.functionName?(l.statementBlockOpened||(i=i.slice(0,l.argumentStart)+`${s}(`+i.slice(l.argumentStart),l.statementBlockOpened=!0),i+=","):i+=o}continue}i+=o}n&&(i=`${s}(${i})`);return i}(i);let r=findBracketlessFunction(i,t);for(;r;){const e=findArgumentEnd(i,r.argumentStart,r.maxArgs,r.consumeStatement),n=i.slice(r.nameStart,r.nameEnd),s=i.slice(r.argumentStart,e);i=i.slice(0,r.nameStart)+`${n}(${s})`+i.slice(e),r=findBracketlessFunction(i,t)}return i};const n=i(4703),s="block";function isIdentifierStart(e){return/[a-z_]/i.test(e)}function isIdentifierPart(e){return/[a-z0-9_]/i.test(e)}function getPreviousIdentifier(e,t){let i=t;for(;i>0&&/\s/.test(e[i-1]);)i--;let n=i;for(;n>0&&isIdentifierPart(e[n-1]);)n--;const s=e.slice(n,i);return s&&isIdentifierStart(s[0])?s:void 0}function getNextSignificantCharacter(e,t){let i=t;for(;i<e.length&&/\s/.test(e[i]);)i++;return e[i]}function findBracketlessFunction(e,t){let i,n=0;for(;n<e.length;){if(!isIdentifierStart(e[n])){n++;continue}const s=n;for(n++;n<e.length&&isIdentifierPart(e[n]);)n++;const r=n,o=e.slice(s,r);if(o in t&&/\s/.test(e[n]??"")){for(;n<e.length&&/\s/.test(e[n]);)n++;if(n<e.length){const a=e[n],l=e[n+1]??"";/[*/=<>:&|]/.test(a)||("+"===a||"-"===a)&&/\s/.test(l)||(i={argumentStart:n,consumeStatement:!0===t[o].bracketlessStatement,maxArgs:t[o].maxArgs,nameEnd:r,nameStart:s})}}}return i}function isOpeningBracket(e){return"("===e||"["===e||"{"===e}function isClosingBracket(e){return")"===e||"]"===e||"}"===e}function findArgumentEnd(e,t,i,n=!1){let s=0,r=t,o="";const a=1!==i;for(;r<e.length;r++){const i=e[r];if(isOpeningBracket(i)){s++,o=i;continue}if(isClosingBracket(i)){if(0===s)break;s--,o=i;continue}if(s>0){/\s/.test(i)||(o=i);continue}if(n){if(","===i)break;/\s/.test(i)||(o=i);continue}if(/\s/.test(i)){if(a&&","===o)continue;break}if(","===i){if(!a)break;o=i;continue}const l=!("+"!==i&&"-"!==i||r!==t&&","!==o&&"^"!==o);if(/[+\-*/=<>:&|]/.test(i)&&!l)break;o=i}return r}},294(e,t,i){"use strict";t.ReturnSignal=void 0,t.isInsideSymbolicFunction=function isInsideSymbolicFunction(){return h>0},t.shouldConsumeLocalReturn=function shouldConsumeLocalReturn(){return 0===h&&0===d},t.withReturnPropagation=function withReturnPropagation(e){d++;try{return e()}finally{d--}},t.functionBoundary=function functionBoundary(e){let t;h++;try{t=e()}catch(e){if(!l.ReturnSignal.isReturnSignal(e))throw l.BreakSignal.isBreakSignal(e)?new n.ParserError((0,n.message)("breakOutsideLoop")):l.ContinueSignal.isContinueSignal(e)?new n.ParserError((0,n.message)("continueOutsideLoop")):e;t=e.value}finally{h--}return t},t.RETURN=function RETURN(e){throw new l.ReturnSignal(e)},t.BREAK=function BREAK(){if(0===m)throw new n.ParserError((0,n.message)("breakOutsideLoop"));throw c},t.CONTINUE=function CONTINUE(){if(0===m)throw new n.ParserError((0,n.message)("continueOutsideLoop"));throw p},t.AND=function AND(...e){let t=(0,o.one)();for(const i of e)if(!isTruthy(i())){t=(0,o.zero)();break}return t},t.OR=function OR(...e){let t=(0,o.zero)();for(const i of e)if(isTruthy(i())){t=(0,o.one)();break}return t},t.NOT=function NOT(e){return isTruthy(e)?(0,o.zero)():(0,o.one)()},t.XOR=function XOR(...e){let t=!1;for(const i of e)isTruthy(i)&&(t=!t);return t?(0,o.one)():(0,o.zero)()},t.IFERROR=function IFERROR(e,t){let i;try{i=e()}catch(e){if(e instanceof l.ControlFlowSignal)throw e;i=t()}return i},t.ISERROR=function ISERROR(e){let t=(0,o.zero)();try{e()}catch(e){if(e instanceof l.ControlFlowSignal)throw e;t=(0,o.one)()}return t},t.IF=function IF(e,t,i){return controlFlowReturnBoundary(()=>{let n;if(isTruthy(e()))n=t();else{if(!i)return throwNullSignal();n=i()}return n})},t.WHILE=WHILE,t.FOR=function FOR(e,t,i,n){return controlFlowReturnBoundary(()=>(e(),WHILE(t,()=>{let e;try{e=n()}catch(e){throw(l.ContinueSignal.isContinueSignal(e)||l.NullSignal.isNullSignal(e))&&i(),e}return i(),e})))},t.BLOCK=BLOCK,t.parserReturnBoundary=parserReturnBoundary;const n=i(4703),s=i(5817),r=i(296),o=i(6099),a=i(8300),l=i(567);var u=i(567);Object.defineProperty(t,"ReturnSignal",{enumerable:!0,get:function(){return u.ReturnSignal}});const c=new l.BreakSignal,p=new l.ContinueSignal;let m=0,g=0,d=0,h=0;function throwNullSignal(){throw new l.NullSignal}function isTruthy(e){if(!r.Expression.isExpression(e))throw new n.UnexpectedDataType((0,n.message)("expressionExpected",{type:a.dataTypes[e.dataType]}));return!e.isZero()}function controlFlowReturnBoundary(e){let t;try{t=e()}catch(e){if(!(g>0&&0===h&&l.ReturnSignal.isReturnSignal(e)))throw e;t=e.value}return t}function WHILE(e,t){return controlFlowReturnBoundary(()=>{let i,r=!0,o=0;for(;r;){if(isTruthy(e())){if(o>=s.Settings.MAX_LOOP_ITERATIONS)throw new n.ParserError((0,n.message)("loopIterationLimitExceeded",{max:String(s.Settings.MAX_LOOP_ITERATIONS)}));m++;try{i=t()}catch(e){if(l.NullSignal.isNullSignal(e));else if(l.BreakSignal.isBreakSignal(e))r=!1;else if(!l.ContinueSignal.isContinueSignal(e))throw e}finally{m--}o++}else r=!1}return void 0===i?throwNullSignal():i})}function BLOCK(...e){if(0===e.length)return throwNullSignal();let t;for(const i of e)try{t=i()}catch(e){if(!l.NullSignal.isNullSignal(e))throw e}return void 0===t?throwNullSignal():t}function parserReturnBoundary(e){const t=0===h&&0===g;let i;g++;try{i=e()}catch(e){if(!t||!l.ReturnSignal.isReturnSignal(e))throw e;i=e.value}finally{g--}return i}},3812(e,t,i){"use strict";t.each=function each(e,t,i,d){const h=e(),E=[],x=[];if(d){if(!s.Dictionary.isDictionary(h))throw new c.UnexpectedDataType((0,c.message)("unsupportedType",{type:p.dataTypes[h.dataType]}));for(const[e,t]of h.entries())x.push(r.Expression.create(e)),E.push(t.copy())}else if(u.Vector.isVector(h)||n.Collection.isCollection(h)||l.ValuesSet.isValuesSet(h))h.forEach(e=>E.push(e.copy()));else if(a.Matrix.isMatrix(h))h.forEach(e=>E.push(e.copy()));else{if(!s.Dictionary.isDictionary(h))throw new c.UnexpectedDataType((0,c.message)("unsupportedType",{type:p.dataTypes[h.dataType]}));h.forEach(e=>E.push(e.copy()))}let y,v=0;try{y=(0,m.withReturnPropagation)(()=>(0,m.FOR)(()=>(0,o.zero)(),()=>v<E.length?(0,o.one)():(0,o.zero)(),()=>(v++,(0,o.zero)()),()=>d?(0,g.LET)(t,()=>x[v],()=>(0,g.LET)(i,()=>E[v],d)):(0,g.LET)(t,()=>E[v],i)))}catch(e){if((0,m.isInsideSymbolicFunction)()||!m.ReturnSignal.isReturnSignal(e))throw e;y=e.value}return y};const n=i(6284),s=i(6528),r=i(296),o=i(6099),a=i(4462),l=i(5598),u=i(3982),c=i(4703),p=i(8300),m=i(294),g=i(2707)},1929(e,t,i){"use strict";t.loadScriptingFunctions=function loadScriptingFunctions(){Object.assign(n.mathFunctionRegistry,{unassign:(0,n.systemFunction)({fn:a.unassign,minArgs:1,maxArgs:1,distElWise:!1,deferArguments:!0}),evaluate:(0,n.systemFunction)({fn:o.evaluate,minArgs:1,maxArgs:3,equationArgs:[0],distElWise:!1,deferArguments:!0,usage:"scripting"}),return:(0,n.systemFunction)({fn:s.RETURN,minArgs:1,maxArgs:1,equationArgs:[0],distElWise:!1,bracketlessStatement:!0,usage:"scripting"}),break:(0,n.systemFunction)({fn:s.BREAK,minArgs:0,maxArgs:0,distElWise:!1,usage:"scripting"}),continue:(0,n.systemFunction)({fn:s.CONTINUE,minArgs:0,maxArgs:0,distElWise:!1,usage:"scripting"}),and:(0,n.systemFunction)({fn:s.AND,minArgs:2,maxArgs:-1,distElWise:!1,deferArguments:!0,usage:"scripting"}),or:(0,n.systemFunction)({fn:s.OR,minArgs:2,maxArgs:-1,distElWise:!1,deferArguments:!0,usage:"scripting"}),not:(0,n.systemFunction)({fn:s.NOT,minArgs:1,maxArgs:1,distElWise:!1,usage:"scripting"}),xor:(0,n.systemFunction)({fn:s.XOR,minArgs:2,maxArgs:-1,distElWise:!1,usage:"scripting"}),iferror:(0,n.systemFunction)({fn:s.IFERROR,minArgs:2,maxArgs:2,distElWise:!1,deferArguments:!0,usage:"scripting"}),iserror:(0,n.systemFunction)({fn:s.ISERROR,minArgs:1,maxArgs:1,distElWise:!1,deferArguments:!0,usage:"scripting"}),if:(0,n.systemFunction)({fn:s.IF,minArgs:2,maxArgs:3,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),while:(0,n.systemFunction)({fn:s.WHILE,minArgs:2,maxArgs:2,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),for:(0,n.systemFunction)({fn:s.FOR,minArgs:4,maxArgs:4,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"}),each:(0,n.systemFunction)({fn:r.each,minArgs:3,maxArgs:4,distElWise:!1,deferArguments:!0,usage:"scripting"}),let:(0,n.systemFunction)({fn:a.LET,minArgs:3,maxArgs:-1,distElWise:!1,deferArguments:!0,normalizeDeferredArguments:a.normalizeLetArguments,returnBoundary:!0,usage:"scripting"}),block:(0,n.systemFunction)({fn:s.BLOCK,minArgs:-1,maxArgs:-1,distElWise:!1,deferArguments:!0,returnBoundary:!0,usage:"scripting"})})};const n=i(9426),s=i(294),r=i(3812),o=i(1668),a=i(2707)},1668(e,t,i){"use strict";t.evaluate=function evaluate(e,t,i){const n=e();let r;if(t){const e=t();if(r={},i){const t=i();if(!m.Vector.isVector(e))throw new s.UnexpectedDataType((0,s.message)("vectorExpected",{type:g.dataTypes[e.dataType]}));if(!m.Vector.isVector(t))throw new s.UnexpectedDataType((0,s.message)("vectorExpected",{type:g.dataTypes[t.dataType]}));if(e.count()!==t.count())throw new s.DimensionError((0,s.message)("mismatchedDimensions",{function:"evaluate"}));for(let i=0;i<e.count();i++){const n=e.elements[i];if(!l.Expression.isExpression(n))throw new s.UnexpectedDataType((0,s.message)("expressionExpected",{type:g.dataTypes[n.dataType]}));r[(0,u.assertPlainVariableAndGetString)(n)]=t.elements[i]}}else{if(!o.Dictionary.isDictionary(e))throw new s.UnexpectedDataType((0,s.message)("unsupportedType",{type:g.dataTypes[e.dataType]}));for(const[t,i]of e)r[t]=i}}let a=n;try{a=r&&(l.Expression.isExpression(n)||m.Vector.isVector(n)||c.Matrix.isMatrix(n)||p.ValuesSet.isValuesSet(n))?n.evaluate(r):n.evaluate()}catch{a=n}return a},t.numeric=function numeric(e,t){const i=e();let n;if(t){const e=t();if(!l.Expression.isExpression(e))throw new s.UnexpectedDataType((0,s.message)("expressionExpected",{type:g.dataTypes[e.dataType]}));n=e}return applyNumeric(i,n)};const n=i(8533),s=i(4703),r=i(6284),o=i(6528),a=i(6184),l=i(296),u=i(1897),c=i(4462),p=i(5598),m=i(3982),g=i(8300);function applyNumeric(e,t){let i;return i=l.Expression.isExpression(e)?(0,n.numeric)(e,t):a.Equation.isEquation(e)?e.copy().each(e=>l.Expression.isExpression(e)?(0,n.numeric)(e,t):e):m.Vector.isVector(e)?e.copy().each(e=>applyNumeric(e,t)):c.Matrix.isMatrix(e)?e.copy().each(e=>(0,n.numeric)(e,t)):r.Collection.isCollection(e)||o.Dictionary.isDictionary(e)||p.ValuesSet.isValuesSet(e)?e.copy().each(e=>applyNumeric(e,t)):e,i}},266(e,t,i){"use strict";t.wrappedFunction=function wrappedFunction(e,t){return(...i)=>{const r=new Map,o=new Set;for(let e=0;e<t.length;e++){const s=t[e];r.has(s)||o.has(s)||(Object.prototype.hasOwnProperty.call(n.Parser.KNOWN_VALUES,s)?r.set(s,n.Parser.KNOWN_VALUES[s]):o.add(s)),n.Parser.KNOWN_VALUES[s]=i[e]}let a;try{a=(0,s.functionBoundary)(()=>{let t;return t="string"==typeof e?n.Parser.parse(e):e({inheritValues:!1}),t})}finally{for(const[e,t]of r)n.Parser.KNOWN_VALUES[e]=t;for(const e of o)delete n.Parser.KNOWN_VALUES[e]}return a}};const n=i(238),s=i(294)},2707(e,t,i){"use strict";t.assign=assign,t.normalizeLetArguments=function normalizeLetArguments(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];let r=-1;if(i<e.length-1)for(let e=0;e<s.length;e++){const t=s[e];if(p.Token.isToken(t)&&t.type===p.Token.OPERATOR&&t.value===l.ASSIGN){r=e;break}}if(r>0&&r<s.length-1){const e=new n.Scope(s.type,s.column),i=new n.Scope(s.type,s.column);for(let t=0;t<r;t++)e.push(s[t]);for(let e=r+1;e<s.length;e++)i.push(s[e]);t.push(e,i)}else t.push(s)}return t},t.LET=function LET(...e){if(e.length<3||e.length%2==0)throw new s.ParserError((0,s.message)("letRequiresBindingsAndBody"));const t=new Map,i=new Set,n=[];let r;try{for(let r=0;r<e.length-1;r+=2){const l=e[r]({inheritValues:!1,substitute:!1});if(!o.Expression.isExpression(l))throw new s.UnexpectedInputError((0,s.message)("plainVariableExpected",{input:l.text()}));const u=(0,a.assertPlainVariableAndGetString)(l),p=e[r+1]({excludeValues:n});t.has(u)||i.has(u)||(Object.prototype.hasOwnProperty.call(c.Parser.KNOWN_VALUES,u)?t.set(u,c.Parser.KNOWN_VALUES[u]):i.add(u)),assign(l,p),n.includes(u)||n.push(u)}try{r=e[e.length-1]({excludeValues:n})}catch(e){if(!(0,m.shouldConsumeLocalReturn)()||!m.ReturnSignal.isReturnSignal(e))throw e;r=e.value}}finally{for(const[e,i]of t)c.Parser.KNOWN_VALUES[e]=i;for(const e of i)delete c.Parser.KNOWN_VALUES[e]}return r},t.unassign=function unassign(e){let t,i;if("function"==typeof e){const i=e({inheritValues:!1,substitute:!1});if(!o.Expression.isExpression(i))throw new s.UnexpectedInputError((0,s.message)("plainVariableExpected",{input:i.text()}));t=i}else t=e;i=o.Expression.isExpression(t)?(0,a.assertPlainVariableAndGetString)(t):t;return delete c.Parser.KNOWN_VALUES[i],o.Expression.create(t)};const n=i(2809),s=i(4703),r=i(5817),o=i(296),a=i(1897),l=i(8300),u=i(567),c=i(238),p=i(12),m=i(294);function assign(e,t){if(e=o.Expression.create(e),o.Expression.isExpression(e)&&!e.isPlainVariable())throw new s.UnexpectedInputError((0,s.message)("plainVariableExpected",{input:String(e)}));if(r.RESTRICTED.includes(e.value))throw new s.AssignmentError((0,s.message)("restrictedVariableName",{name:e.value}));let i;try{i="function"==typeof t?t():"string"==typeof t?c.Parser.parse(t):t}catch(t){if(u.NullSignal.isNullSignal(t))return c.Parser.KNOWN_VALUES[e.value]?.copy()??e;throw t}return c.Parser.KNOWN_VALUES[e.value]=i,i}},8054(e,t,i){"use strict";t.IndexedReference=void 0;const n=i(6441),s=i(8300);t.IndexedReference=class IndexedReference{target;indices;targetName;_resolved=null;dataType=s.INDEXED_REFERENCE;isEnumerable=!1;constructor(e,t,i){this.target=e,this.indices=t,this.targetName=i}static isIndexedReference(e){return(0,n.isNerdamerNativeType)(e,s.INDEXED_REFERENCE)}copy(){return this.resolve().copy()}eq(e){return this.resolve().eq(e)}evaluate(){return this.resolve().evaluate()}expand(){return this.resolve().expand()}gt(e){return this.resolve().gt(e)}gte(e){return this.resolve().gte(e)}lt(e){return this.resolve().lt(e)}lte(e){return this.resolve().lte(e)}resolve(){return null===this._resolved&&(this.indices,this._resolved=this.target.__get__(this.indices)),this._resolved}text(){return this.resolve().text()}}},8584(e,t,i){"use strict";t.KeyValuePair=void 0;const n=i(6441),s=i(8300);class KeyValuePair{key;value;dataType=s.KEY_VALUE_PAIR;isEnumerable=!1;constructor(e,t){this.key=e,this.value=t}static isKeyValuePair(e){return(0,n.isNerdamerNativeType)(e,s.KEY_VALUE_PAIR)}copy(){return new KeyValuePair(this.key,this.value.copy())}eq(){return!1}evaluate(){return this.value.evaluate()}expand(){return this.value.expand()}gt(){return!1}gte(){return!1}lt(){return!1}lte(){return!1}text(){return`${this.key} => ${this.value.text()}`}}t.KeyValuePair=KeyValuePair},2116(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Polynomial=void 0;const s=n(i(3110)),r=i(8891),o=i(8015),a=i(6441),l=i(4703),u=i(7741),c=i(5869),p=i(6056),m=i(296),g=i(6099),d=i(8300),h=i(5584),E=i(6105),x=i(5640),y=i(9565);class Polynomial{static defaultOrdering="lex";dataType=d.POLYNOMIAL;expression;isMultivariate;ordering="none";terms;variables;constructor(e,t,i){if(Polynomial.isPolynomial(e))this.expression=e.expression.copy(),this.variables=[...e.variables],this.ordering=e.ordering,this.isMultivariate=e.isMultivariate,this.terms=e.terms.map(e=>e.copy());else{i??=Polynomial.defaultOrdering;let n=m.Expression.create(e);if(!m.Expression.isExpression(n))throw new l.UnsupportedOperationError((0,l.message)("unsupportedType",{type:typeof n}));if(!n.isPolynomialLike())throw new l.PolynomialError((0,l.message)("notAPolynomial"));let s,r=!1;(n.value.includes("(")||n.isSum()&&n.getPower().gt("1"))&&(n=(0,u.expand)(n),r=!0),this.expression=n,t?s=t:(s=n.variables(),(0,c.isSorted)(s)||s.sort()),this.variables=s,this.isMultivariate=this.variables.length>1,this.terms=[],(0,p.coeffs)(n,this.variables,void 0,!r).each((e,t)=>{this.terms.push(new x.Term(e,t,this.variables))}),this.variables=this.variables||[],this.order(i)}}static fromArray(e,t){const i=[];let n,s=!1;for(const n of e){const e=m.Expression.isExpression(n)?n:m.Expression.create(String(n));i.push(e),t.some(t=>e.hasVariable(t))&&(s=!0)}if(s)n=Polynomial.fromArrayCanonicalized(i,t);else{n=new Polynomial((0,g.zero)(),t),n.terms=[];for(let e=0;e<i.length;e++){const s=i[e];if(!s.isZero()){const i={};for(const n of t)i[n]=e;n.terms.push(new x.Term(s.copy(),i,t))}}n.order(),n.updateExpression()}return n}static fromArrayCanonicalized(e,t){let i=(0,g.one)();for(const e of t)i=i.times(m.Expression.Variable(e));let n=(0,g.zero)();for(let t=0;t<e.length;t++)n=n.plus(e[t].times(i.pow(t)));return new Polynomial(n,t)}static grevlex(e,t){return e.getTotalPower()===t.getTotalPower()?Polynomial.revlex(e,t):e.getTotalPower()>t.getTotalPower()?-1:1}static grlex(e,t){return e.getTotalPower()===t.getTotalPower()?Polynomial.lex(e,t):e.getTotalPower()>t.getTotalPower()?-1:1}static isPolynomial(e){return(0,a.isNerdamerNativeType)(e,d.POLYNOMIAL)}static lex(e,t){const i=e.difference(t);for(let e=0;e<i.length;e++)if(0!==i[e])return-1===Math.sign(i[e])?1:-1;return 1}static polyArraySort(e,t){let i;switch(t??=Polynomial.defaultOrdering,e=e.map(e=>e.order(t)),t){case"lex":i=Polynomial.lex;break;case"grevlex":i=Polynomial.grevlex;break;case"revlex":i=Polynomial.revlex;break;default:i=Polynomial.grlex}return e=e.sort((e,t)=>i(e.LT(),t.LT()))}static rationalToString(e){return 1n===e.denominator?e.numerator.toString():`(${e.numerator}/${e.denominator})`}static revlex(e,t){const i=e.difference(t);for(let e=i.length-1;e>=0;e--)if(0!==i[e])return Math.sign(i[e]);return-1}static toExpression(e){return Polynomial.isPolynomial(e)?e.getExpression():m.Expression.create(e)}static toPolynomial(e,t,i){return Polynomial.isPolynomial(e)?e.ordering!==t&&e.order(t):e=new Polynomial(e,i,t||Polynomial.defaultOrdering),e}append(e,t){const i=new Polynomial(this);if(i.variables=(0,c.arrayAddUnique)(e.variables,i.variables),i.variables&&e.variables&&i.variables.length>e.variables.length&&i.variables.sort(),i.isMultivariate=i.variables.length>1,Polynomial.isPolynomial(e))for(const n of e.terms)i.appendTerm(n,t);else i.appendTerm(e,t);return 0!==i.terms.length&&i.updateExpression(),0===i.terms.length?new Polynomial("0"):i}appendTerm(e,t){for(let i=0;i<this.terms.length;i++){const n=this.terms[i];if(n.canAddOrSubtract(e))return n.coeff=n.coeff[t](e.coeff),void(n.coeff.isZero()&&(0,r.remove)(this.terms,n))}const i=e.copy();"minus"===t&&(i.coeff=i.coeff.neg()),this.terms.push(i),this.order()}monomialGCDTerm(e){const t=[...new Set([...this.variables,...e.variables])].sort(),i=this.commonTermVariables(),n=e.commonTermVariables(),s={};for(const e of t){const t=i[e]??0,r=n[e]??0,o=Math.min(t,r);o>0&&(s[e]=o)}return new x.Term("1",s,t)}updateExpression(){let e=(0,g.zero)();for(const t of this.terms)e=e.plus(t.copy().getExpression());this.expression=e}at(e){if(this.variables.length>1)throw new l.UnsupportedOperationError((0,l.message)("univariatePolynomialOnly"));let t=0;const i=this.variables[0];for(let n=0;n<this.terms.length;n++){const s=this.terms[n],r=s.powers[i];t+=Math.pow(e,r)*Number(s.coeff)}return t}coeffs(e){return(0,p.coeffs)(this.getExpression(),e?[e]:this.variables)}commonTermVariables(){const e={};for(const t of this.variables){let i;for(const e of this.terms){const n=e.deg(t);if(0===n){i=void 0;break}i=void 0===i?n:Math.min(i,n)}i&&(e[t]=i)}return e}constantTerm(){const e=this.terms.at(-1);return e&&e.isConstant()?e.coeff:(0,g.zero)()}content(){const e=this.numericCoeffs();return 0===e.length?h.Rational.create("1"):h.Rational.GCD(...e)}deg(e){let t=0;for(const i of this.terms){const n=void 0===e?i.getTotalPower():i.deg(e);t=Math.max(t,n)}return t}diff(e,t=1){if(e=e||this.variables[0],0===t)return new Polynomial(this);if(!e)return new Polynomial("0");const i=[];for(const n of this.terms){const s=n.diff(e,t);s.isZero()||(s.variables=[...this.variables],i.push(s))}if(0===i.length)return new Polynomial("0");const n=new Polynomial("0",this.variables,this.ordering);n.terms=[];for(const e of i)n.terms.push(e);return n.order(this.ordering),n.updateExpression(),n}div(e){return(0,y.divide)(this,e).map(e=>new Polynomial(e))}divides(e){return this.LT().divides(e.LT())}eq(e){return this.minus(e).isZero()}evaluate(e){const t=this.variables.filter(t=>!(t in e)),i={};for(const t in e){const n=e[t];h.Rational.isRational(n)?i[t]=n:i[t]=h.Rational.create(n.toString())}const n=new Map;for(const e of this.terms){let s=e.coeff.getMultiplier();const r={};for(const t of this.variables){const n=e.deg(t);if(t in i){if(0!==n){const e=i[t].pow(n.toString());s=s.times(e)}}else 0!==n&&(r[t]=n)}if(s.isZero())continue;const o=t.length>0?t.map(e=>`${e}:${r[e]||0}`).join(","):"constant",a=n.get(o);a?a.coefficient=a.coefficient.plus(s):n.set(o,{coefficient:s,powers:r})}let s;if(0===n.size)s=new Polynomial((0,g.zero)());else if(0===t.length){const e=n.get("constant"),t=e?e.coefficient:h.Rational.create("0");s=new Polynomial(m.Expression.Number(t.value))}else{s=new Polynomial((0,g.zero)(),t,this.ordering),s.terms=[];for(const e of n.values())e.coefficient.isZero()||s.terms.push(new x.Term(m.Expression.Number(e.coefficient.value),{...e.powers},t));s.order(this.ordering),s.updateExpression()}return s}evaluateToRational(e){for(const t of this.variables)if(!(t in e))throw new l.UnsupportedOperationError((0,l.message)("unknownVariable",{variable:t}));const t={};for(const i in e){const n=e[i];h.Rational.isRational(n)?t[i]=n:t[i]=h.Rational.create(n.toString())}let i=h.Rational.create("0");for(const e of this.terms){let n=e.coeff.getMultiplier();for(const i of this.variables){const s=e.deg(i);0!==s&&(n=n.times(t[i].pow(s.toString())))}i=i.plus(n)}return i}gcdFree(e=!1,t=!1){const i=t?this:new Polynomial(this);if(i.isConstant())return i;let n,s=i.content();-1===i.LC().sign()&&(s=s.neg()),e&&(n=i.commonTermVariables());for(let e=0;e<i.terms.length;e++){const t=i.terms[e];if(n)for(const e in n)t.powers[e]-=n[e];const r=t.coeff.getMultiplier().div(s);t.coeff=m.Expression.fromRational(r)}return i.updateExpression(),i}getExpression(){return this.expression}grevlexSort(){return this.terms.sort((e,t)=>Polynomial.grevlex(e,t)),this.ordering="grevlex",this}grlexSort(){return this.terms.sort((e,t)=>Polynomial.grlex(e,t)),this.ordering="grlex",this}isConstant(){return 1===this.terms.length&&this.terms[0].isConstant()}isZero(){return 0===this.terms.length||this.LT().isZero()}LC(){return this.LT().coeff}lexSort(){return this.terms.sort((e,t)=>Polynomial.lex(e,t)),this.ordering="lex",this}LM(){const e=this.LT();return new x.Term("1",{...e.powers},[...e.variables])}LT(){return this.terms[0]}maxVariableFrequency(){const e=this.variableFrequency();let t=[];for(const i in e){const n=e[i].count;!t[0]||t[0].count<n?t=[e[i]]:t[0].count===n&&t.push(e[i])}return(0,o.arrayToObject)(t,e=>e.variable)}minus(e){return this.append(e,"minus")}mod(e){e=m.Expression.create(e);const t=this.coeffs();return t.each((i,n)=>{t.coeffs[n]=i.mod(e)}),t}monic(){const e=new Polynomial(this),t=this.LT();if(t&&!t.isConstant()){const i=t.coeff;for(const t of e.terms)t.coeff=t.coeff.div(i);e.updateExpression()}return e}multideg(){return this.terms[0].multidegArray}numericCoeffs(){return this.terms.map(e=>e.coeff.getMultiplier())}order(e){if(this.variables.length<2)this.sort(),this.ordering="deg";else switch(e&&(this.ordering=e),this.ordering){case"lex":this.lexSort();break;case"grevlex":this.grevlexSort();break;case"revlex":this.revlexSort();break;default:this.grlexSort()}return this}plus(e){return this.append(e,"plus")}pow(e){const t=m.Expression.create(e),i=this.getExpression();let n;if(t.isNUM()&&t.isInteger()&&t.sign()>=0&&!i.hasDecimal())try{const e=t.getMultiplier().numerator,s=[...this.variables],r=(0,E.expressionToIntegerSparsePolynomial)(i,s),o=r.denominator**e;let a=(0,E.sparsePolynomialToExpression)(r.polynomial.pow(e),s);1n!==o&&(a=a.div(m.Expression.Number(o))),n=new Polynomial(a,void 0,this.ordering)}catch{}return n??new Polynomial(i.pow(t),void 0,this.ordering)}revlexSort(){return this.terms.sort((e,t)=>Polynomial.revlex(e,t)),this.ordering="revlex",this}sort(){return this.terms.sort((e,t)=>t.getTotalPower()>e.getTotalPower()?1:-1),this}stripMonomialGCD(e){const t=this.monomialGCDTerm(e),i=new Polynomial(this),n=new Polynomial(e);for(let e=0;e<i.terms.length;e++)i.terms[e]=i.terms[e].div(t);for(let e=0;e<n.terms.length;e++)n.terms[e]=n.terms[e].div(t);const s=new Polynomial(t.getExpression());return i.updateExpression(),n.updateExpression(),{mGCD:s,p:i,q:n}}text(){if(0===this.terms.length||1===this.terms.length&&this.terms[0].isZero())return"0";const e=[];for(const t of this.terms){const i=t.text(this.variables);"0"!==i&&e.push(i)}return e.join("+").replace(/\+-/g,"-")}times(e){let t;if(x.Term.isTerm(e)){t=new Polynomial(this),t.variables=(0,c.arrayAddUnique)(t.variables,e.variables),(0,c.isSorted)(this.variables)&&t.variables.sort(),t.isMultivariate=t.variables.length>1;for(let i=0;i<t.terms.length;i++)t.terms[i]=t.terms[i].times(e);t.updateExpression()}else{const i=this.getExpression(),n=e.getExpression();let s;if(!i.hasDecimal()&&!n.hasDecimal())try{const t=[...new Set([...this.variables,...e.variables])].sort(),r=(0,E.expressionToIntegerSparsePolynomial)(i,t),o=(0,E.expressionToIntegerSparsePolynomial)(n,t),a=r.denominator*o.denominator;let l=(0,E.sparsePolynomialToExpression)(r.polynomial.multiply(o.polynomial),t);1n!==a&&(l=l.div(m.Expression.Number(a))),s=new Polynomial(l,void 0,this.ordering)}catch{}t=s??new Polynomial(i.times(n),void 0,this.ordering)}return t}toArray(e=!1,t){const i=[],n=Number(this.deg(t)),s=this.coeffs(t);for(let e=0;e<=n;e++)i.push(s.hasPower(e)?s.getPower(e):(0,g.zero)());return e?i.map(e=>Number(e)):i}toBigIntArray(e=!0,t){return this.toArray(!1,t).map(t=>{if(e&&!t.isInteger())throw new Error((0,l.message)("integerRequired"));return t.getMultiplier().numerator})}toDecimalArray(){return this.toArray().map(e=>new s.default(e.text()))}toString(){return this.text()}variableFrequency(){const e={};for(const t of this.terms)for(const i in t.powers){let n=e[i];n||(e[i]=n={variable:i,count:0,deg:0});const s=t.powers[i];0!==s&&(n.count++,n.deg+=s)}return e}}t.Polynomial=Polynomial},7248(e,t,i){"use strict";t.SparsePolynomial=void 0;const n=i(4703),s=i(551);class SparsePolynomial{termsByKey;variableCount;constructor(e,t=[]){if(!Number.isSafeInteger(e)||e<0)throw new RangeError((0,n.message)("sparseVariableCountInvalid"));this.variableCount=e,this.termsByKey=new Map;for(const i of t){SparsePolynomial.assertExponents(e,i.exponents);const t=i.exponents.map(e=>e),n=Object.freeze(t),s=SparsePolynomial.keyOf(n),r=(this.termsByKey.get(s)?.coefficient??0n)+i.coefficient;0n===r?this.termsByKey.delete(s):this.termsByKey.set(s,Object.freeze({coefficient:r,exponents:n}))}}static assertExponents(e,t){if(t.length!==e)throw new RangeError((0,n.message)("sparseExponentVectorLengthMismatch"));for(const e of t)if("bigint"!=typeof e||e<0n)throw new RangeError((0,n.message)("sparseExponentsNonNegativeBigInt"))}static compareMonomials(e,t,i){if("lex"===i){for(let i=0;i<e.length;i++)if(e[i]!==t[i])return e[i]>t[i]?1:-1;return 0}let n=0n,s=0n;for(let i=0;i<e.length;i++)n+=e[i],s+=t[i];if(n!==s)return n>s?1:-1;if("grlex"===i){for(let i=0;i<e.length;i++)if(e[i]!==t[i])return e[i]>t[i]?1:-1;return 0}for(let i=e.length-1;i>=0;i--)if(e[i]!==t[i])return e[i]<t[i]?1:-1;return 0}static constant(e,t){return new SparsePolynomial(e,[{coefficient:t,exponents:new Array(e).fill(0n)}])}static keyOf(e){return e.join(",")}static monomial(e,t,i){return new SparsePolynomial(e,[{coefficient:t,exponents:i}])}static variable(e,t){if(!Number.isSafeInteger(t)||t<0||t>=e)throw new RangeError((0,n.message)("sparseVariableIndexOutOfRing"));const i=new Array(e).fill(0n);return i[t]=1n,new SparsePolynomial(e,[{coefficient:1n,exponents:i}])}static zero(e){return new SparsePolynomial(e)}add(e){if(this.variableCount!==e.variableCount)throw new RangeError((0,n.message)("sparseAdditionRingMismatch"));const t=SparsePolynomial.zero(this.variableCount);for(const[e,i]of this.termsByKey)t.termsByKey.set(e,i);for(const[i,n]of e.termsByKey){const e=t.termsByKey.get(i),s=(e?.coefficient??0n)+n.coefficient;0n===s?t.termsByKey.delete(i):void 0!==e&&s===e.coefficient||t.termsByKey.set(i,Object.freeze({coefficient:s,exponents:e?.exponents??n.exponents}))}return t}coefficient(e){return SparsePolynomial.assertExponents(this.variableCount,e),this.termsByKey.get(SparsePolynomial.keyOf(e))?.coefficient??0n}coefficientIn(e,t){if(this.degree(e),t<0n)throw new RangeError((0,n.message)("sparseCoefficientExponentNonNegative"));const i=[];for(const n of this.termsByKey.values()){if(n.exponents[e]!==t)continue;const s=[...n.exponents];s[e]=0n,i.push({coefficient:n.coefficient,exponents:s})}return new SparsePolynomial(this.variableCount,i)}constantTerm(){const e=new Array(this.variableCount).fill(0n);return this.termsByKey.get(SparsePolynomial.keyOf(e))?.coefficient??0n}content(){let e=0n;for(const t of this.termsByKey.values())if(e=(0,s.GCD)(e,t.coefficient),1n===e)break;return e}degree(e){if(!Number.isSafeInteger(e)||e<0||e>=this.variableCount)throw new RangeError((0,n.message)("sparseVariableIndexOutOfRing"));if(this.isZero())return null;let t=0n;for(const i of this.termsByKey.values())i.exponents[e]>t&&(t=i.exponents[e]);return t}derivative(e){this.degree(e);const t=[];for(const i of this.termsByKey.values()){const n=i.exponents[e];if(0n===n)continue;const s=i.exponents.map(e=>e);s[e]=n-1n,t.push({coefficient:i.coefficient*n,exponents:s})}return new SparsePolynomial(this.variableCount,t)}divideByMonomial(e){if(0n===e.coefficient)throw new RangeError((0,n.message)("sparseZeroMonomialDivision"));SparsePolynomial.assertExponents(this.variableCount,e.exponents);const t=[];for(const i of this.termsByKey.values()){if(i.coefficient%e.coefficient!==0n)return null;const n=new Array(this.variableCount);for(let t=0;t<this.variableCount;t++){if(i.exponents[t]<e.exponents[t])return null;n[t]=i.exponents[t]-e.exponents[t]}t.push({coefficient:i.coefficient/e.coefficient,exponents:n})}return new SparsePolynomial(this.variableCount,t)}divideByScalarExact(e){if(0n===e)throw new RangeError((0,n.message)("sparseZeroScalarDivision"));const t=SparsePolynomial.zero(this.variableCount);for(const[i,s]of this.termsByKey){if(s.coefficient%e!==0n)throw new RangeError((0,n.message)("sparseScalarDivisionExact"));t.termsByKey.set(i,Object.freeze({coefficient:s.coefficient/e,exponents:s.exponents}))}return t}divideExact(e,t="lex"){if(this.variableCount!==e.variableCount)throw new RangeError((0,n.message)("sparseDivisionRingMismatch"));const i=e.leadingTerm(t);if(null===i)throw new RangeError((0,n.message)("sparseZeroPolynomialDivision"));let s=SparsePolynomial.zero(this.variableCount),r=new SparsePolynomial(this.variableCount,this.termsByKey.values());for(;!r.isZero();){const n=r.leadingTerm(t);if(null===n)break;const o=SparsePolynomial.monomial(this.variableCount,n.coefficient,n.exponents).divideByMonomial(i);if(null===o)return null;s=s.add(o),r=r.subtract(e.multiply(o))}return s}equals(e){if(this.variableCount!==e.variableCount||this.termCount!==e.termCount)return!1;for(const[t,i]of this.termsByKey)if(e.termsByKey.get(t)?.coefficient!==i.coefficient)return!1;return!0}evaluateVariable(e,t){this.degree(e);const i=SparsePolynomial.zero(this.variableCount);for(const[n,s]of this.termsByKey){const r=s.exponents[e];let o=0;for(let t=0;t<e;t++)o=n.indexOf(",",o)+1;const a=n.indexOf(",",o),l=-1===a?n.length:a,u=n.slice(0,o)+"0"+n.slice(l),c=i.termsByKey.get(u),p=s.coefficient*t**r,m=(c?.coefficient??0n)+p;if(0n===m)i.termsByKey.delete(u);else if(void 0!==c)m!==c.coefficient&&i.termsByKey.set(u,Object.freeze({coefficient:m,exponents:c.exponents}));else if(0n!==p)if(0n===r)i.termsByKey.set(u,s);else{const t=[...s.exponents];t[e]=0n,i.termsByKey.set(u,Object.freeze({coefficient:m,exponents:Object.freeze(t)}))}}return i}evaluateVariables(e,t){if(e.length!==t.length)throw new RangeError((0,n.message)("wrongInput",{expected:`${e.length} evaluation values`,received:`${t.length}`}));if(0===e.length)return this;const i=new Set;for(const t of e){if(this.degree(t),i.has(t))throw new RangeError((0,n.message)("wrongInput",{expected:"unique evaluation variables",received:"duplicate variable index"}));i.add(t)}const s=SparsePolynomial.zero(this.variableCount);for(const[i,n]of this.termsByKey){let r=n.coefficient,o=!1;for(let i=0;i<e.length;i++){const s=e[i],a=n.exponents[s];if(0n===a)continue;o=!0;const l=t[i];if(0n===l){r=0n;break}1n!==l&&(-1n!==l?r*=l**a:1n==(1n&a)&&(r=-r))}if(0n===r)continue;let a=i,l=n.exponents;if(o){const t=[...n.exponents];for(const i of e)t[i]=0n;l=Object.freeze(t),a=SparsePolynomial.keyOf(l)}const u=s.termsByKey.get(a),c=(u?.coefficient??0n)+r;0n===c?s.termsByKey.delete(a):void 0===u?s.termsByKey.set(a,o||r!==n.coefficient?Object.freeze({coefficient:r,exponents:l}):n):c!==u.coefficient&&s.termsByKey.set(a,Object.freeze({coefficient:c,exponents:u.exponents}))}return s}isConstant(){if(this.isZero())return!0;if(1!==this.termsByKey.size)return!1;const e=this.termsByKey.values().next().value;return void 0!==e&&e.exponents.every(e=>0n===e)}isZero(){return 0===this.termsByKey.size}leadingCoefficientIn(e){const t=this.degree(e);return null===t?null:this.coefficientIn(e,t)}leadingTerm(e="lex"){if("lex"!==e&&"grlex"!==e&&"grevlex"!==e)throw new RangeError((0,n.message)("sparseMonomialOrderUnsupported"));let t=null;for(const i of this.termsByKey.values())(null===t||SparsePolynomial.compareMonomials(i.exponents,t.exponents,e)>0)&&(t=i);return t}mapCoefficients(e){const t=SparsePolynomial.zero(this.variableCount);for(const[i,n]of this.termsByKey){const s=e(n.coefficient);0n!==s&&t.termsByKey.set(i,s===n.coefficient?n:Object.freeze({coefficient:s,exponents:n.exponents}))}return t}maxAbsoluteCoefficient(){let e=0n;for(const t of this.termsByKey.values()){const i=t.coefficient<0n?-t.coefficient:t.coefficient;i>e&&(e=i)}return e}multiply(e){if(this.variableCount!==e.variableCount)throw new RangeError((0,n.message)("sparseMultiplicationRingMismatch"));if(this.isZero()||e.isZero())return SparsePolynomial.zero(this.variableCount);const t=[];for(const i of this.termsByKey.values())for(const n of e.termsByKey.values()){const e=new Array(this.variableCount);for(let t=0;t<this.variableCount;t++)e[t]=i.exponents[t]+n.exponents[t];t.push({coefficient:i.coefficient*n.coefficient,exponents:e})}return new SparsePolynomial(this.variableCount,t)}monomialScaleSubtract(e,t,i,s,r){if(this.variableCount!==i.variableCount)throw new RangeError((0,n.message)("sparseSubtractionRingMismatch"));SparsePolynomial.assertExponents(this.variableCount,t),SparsePolynomial.assertExponents(this.variableCount,r);const o=SparsePolynomial.zero(this.variableCount),accumulate=(e,t,i)=>{if(0n!==t)for(const n of e.termsByKey.values()){const e=new Array(this.variableCount);for(let t=0;t<this.variableCount;t++)e[t]=n.exponents[t]+i[t];const s=Object.freeze(e),r=SparsePolynomial.keyOf(s),a=o.termsByKey.get(r),l=(a?.coefficient??0n)+n.coefficient*t;0n===l?o.termsByKey.delete(r):o.termsByKey.set(r,Object.freeze({coefficient:l,exponents:a?.exponents??s}))}};return accumulate(this,e,t),accumulate(i,-s,r),o}scaleSubtractMonomial(e,t,i,s){if(this.variableCount!==t.variableCount)throw new RangeError((0,n.message)("sparseSubtractionRingMismatch"));SparsePolynomial.assertExponents(this.variableCount,s);const r=SparsePolynomial.zero(this.variableCount);if(0n!==e)for(const[t,i]of this.termsByKey){const n=i.coefficient*e;0n!==n&&r.termsByKey.set(t,Object.freeze({coefficient:n,exponents:i.exponents}))}if(0n===i)return r;for(const e of t.termsByKey.values()){const t=new Array(this.variableCount);for(let i=0;i<this.variableCount;i++)t[i]=e.exponents[i]+s[i];const n=Object.freeze(t),o=SparsePolynomial.keyOf(n),a=r.termsByKey.get(o),l=(a?.coefficient??0n)-e.coefficient*i;0n===l?r.termsByKey.delete(o):r.termsByKey.set(o,Object.freeze({coefficient:l,exponents:a?.exponents??n}))}return r}negate(){return this.scale(-1n)}normalizeLeadingSign(e="lex"){const t=this.leadingTerm(e);return null!==t&&t.coefficient<0n?this.negate():this}pow(e){if(e<0n)throw new RangeError((0,n.message)("sparseExponentNonNegative"));let t=SparsePolynomial.constant(this.variableCount,1n),i=e;if(0n===i)return t;if(1n==(1n&i)&&(t=t.multiply(this)),i>>=1n,0n===i)return t;let s=this.multiply(this);for(;i>0n;)1n==(1n&i)&&(t=t.multiply(s)),i>>=1n,i>0n&&(s=s.multiply(s));return t}primitivePart(){const e=this.content();return 0n===e||1n===e?this:this.divideByScalarExact(e)}scale(e){if(0n===e||this.isZero())return SparsePolynomial.zero(this.variableCount);const t=SparsePolynomial.zero(this.variableCount);for(const[i,n]of this.termsByKey)t.termsByKey.set(i,Object.freeze({coefficient:n.coefficient*e,exponents:n.exponents}));return t}subtract(e){if(this.variableCount!==e.variableCount)throw new RangeError((0,n.message)("sparseSubtractionRingMismatch"));const t=SparsePolynomial.zero(this.variableCount);for(const[e,i]of this.termsByKey)t.termsByKey.set(e,i);for(const[i,n]of e.termsByKey){const e=t.termsByKey.get(i),s=(e?.coefficient??0n)-n.coefficient;0n===s?t.termsByKey.delete(i):void 0!==e&&s===e.coefficient||t.termsByKey.set(i,Object.freeze({coefficient:s,exponents:e?.exponents??n.exponents}))}return t}get termCount(){return this.termsByKey.size}terms(){return Array.from(this.termsByKey.values())}totalDegree(){if(this.isZero())return null;let e=0n;for(const t of this.termsByKey.values()){let i=0n;for(const e of t.exponents)i+=e;i>e&&(e=i)}return e}variables(){const e=new Set;for(const t of this.termsByKey.values())for(let i=0;i<this.variableCount;i++)0n!==t.exponents[i]&&e.add(i);return Array.from(e).sort((e,t)=>e-t)}}t.SparsePolynomial=SparsePolynomial},6105(e,t,i){"use strict";t.expressionToIntegerSparsePolynomial=expressionToIntegerSparsePolynomial,t.sparsePolynomialToExpression=function sparsePolynomialToExpression(e,t){if(t.length!==e.variableCount)throw new RangeError((0,n.message)("sparseExpressionConversionNameCount"));let i=(0,o.zero)();for(const n of e.terms()){let e=r.Expression.Number(n.coefficient);for(let i=0;i<t.length;i++){const s=n.exponents[i];if(0n===s)continue;const o=r.Expression.Variable(t[i]);e=e.times(1n===s?o:o.pow(r.Expression.Number(s)))}i=i.plus(e)}return i};const n=i(4703),s=i(551),r=i(296),o=i(6099),a=i(7248);function expressionToIntegerSparsePolynomial(e,t){const i=new Set;for(const e of t){if(i.has(e))throw new RangeError((0,n.message)("sparseAdapterVariablesUnique"));i.add(e)}for(const t of e.variables())if(!i.has(t))throw new RangeError((0,n.message)("sparseAdapterVariablesIncludeEvery"));const r=t.length,o=new Map(t.map((e,t)=>[e,t]));function powerOf(e){const t=e.getPower();if(!t.isInteger()||t.sign()<0)throw new n.PolynomialError((0,n.message)("notAPolynomial"));return t.getMultiplier().numerator}function normalize(e,t){if(e.isZero())return{polynomial:e,denominator:1n};const i=(0,s.GCD)(e.content(),t);return 1n===i?{polynomial:e,denominator:t}:{polynomial:e.divideByScalarExact(i),denominator:t/i}}function applyPowerAndMultiplier(e,t,i){const n=powerOf(e),s=e.getMultiplier();return normalize(t.pow(n).scale(s.numerator),i**n*s.denominator)}const l=function convert(e){const t=e.getMultiplier();if(e.isNUM())return normalize(a.SparsePolynomial.constant(r,t.numerator),t.denominator);if(e.isVAR()){const i=o.get(e.value);if(void 0===i)throw new n.PolynomialError((0,n.message)("notAPolynomial"));const s=new Array(r).fill(0n);return s[i]=powerOf(e),normalize(a.SparsePolynomial.monomial(r,t.numerator,s),t.denominator)}if(e.isSum()){let t=a.SparsePolynomial.zero(r),i=1n;for(const n of e.elementsArray()){const e=convert(n),r=(0,s.LCM)(i,e.denominator);t=t.scale(r/i).add(e.polynomial.scale(r/e.denominator)),i=r}return applyPowerAndMultiplier(e,t,i)}if(e.isProduct()){let t=a.SparsePolynomial.constant(r,1n),i=1n;for(const n of e.elementsArray()){const e=convert(n);t=t.multiply(e.polynomial),i*=e.denominator}return applyPowerAndMultiplier(e,t,i)}throw new n.PolynomialError((0,n.message)("notAPolynomial"))}(e),u=[...l.polynomial.terms()].sort((e,t)=>-a.SparsePolynomial.compareMonomials(e.exponents,t.exponents,"lex"));return{polynomial:new a.SparsePolynomial(r,u),denominator:l.denominator}}function polynomialToIntegerSparsePolynomial(e,t){return expressionToIntegerSparsePolynomial(e.getExpression(),t)}},5640(e,t,i){"use strict";t.Term=void 0;const n=i(6441),s=i(551),r=i(3703),o=i(5869),a=i(296),l=i(8300);class Term{coeff;dataType=l.TERM;expression;length;multidegArray;powers;totalPower;valueString;variables;constructor(e,t,i){"string"==typeof t?(this.powers={},t.split(",").forEach((e,t)=>{this.powers[i[t]]=Number(e)})):this.powers=t,this.coeff="string"==typeof e?a.Expression.create(e):e,this.length=this.getLength(),this.variables=[...i].sort()}static isTerm(e){return(0,n.isNerdamerNativeType)(e,l.TERM)}getLength(){let e=0;for(const t in this.powers)this.powers[t]>0&&e++;return e}update(){return this.updateMultiDegArray(),this.updateTotalPower(),this.length=this.getLength(),this}updateMultiDegArray(){const e=this.multideg(this.variables);return this.multidegArray=e,e}updateTotalPower(){let e=0;for(const t in this.powers)e+=this.deg(t);return this.totalPower=e,e}canAddOrSubtract(e){return this.getValueString()===e.getValueString()}copy(){return new Term(this.coeff.copy(),{...this.powers},this.variables)}deg(e,t){return void 0!==t?(this.powers[e]=t,this):this.powers[e]||0}diff(e,t=1){const i=this.deg(e);let n;if(t>i)n=new Term("0","0",[]);else{n=this.copy(),n.powers[e]=i-t;const r=t-1,o=(0,s.productInRange)(i-r,i);n.coeff=n.coeff.times(BigInt(o))}return n}difference(e){const t=this.getMultidegArray(),i=e.getMultidegArray(),n=[];for(let e=0;e<t.length;e++)n[e]=t[e]-i[e];return n}div(e){const t=this.copy();t.coeff=t.coeff.div(e.coeff);for(const i in e.powers)t.variables.includes(i)||t.variables.push(i),t.deg(i,t.deg(i)-e.deg(i));return t.update()}divides(e){if(0===this.getTotalPower())return!0;for(const t in this.powers)if(this.deg(t)>e.deg(t))return!1;return!0}eq(e){return this.div(e).eqNumber(1)}eqNumber(e){return 0===(0,r.sum)(...Object.values(this.powers))&&this.coeff.eq(e)}getExpression(){if(void 0===this.expression){let e=this.coeff.copy();for(const t of this.variables){const i=this.deg(t);0!==i&&(e=e.times(a.Expression.Variable(t).pow(i)))}this.expression=e}return this.expression}getMultidegArray(){let e=this.multidegArray;return void 0===e&&(e=this.updateMultiDegArray()),e}getTotalPower(){let e=this.totalPower;return void 0===e&&(e=this.updateTotalPower()),e}getValueString(e){if(void 0===this.valueString||void 0!==e)if(0===this.getTotalPower())this.valueString="1";else{const t=e||[...this.variables].sort(),i=[];for(const e of t){const t=this.deg(e),n=1===t?"":a.Expression.POW_OPR+t;0!==t&&i.push(`${e}${n}`)}this.valueString=i.join("*")}return this.valueString}isConstant(){for(const e in this.powers)if(0!==this.powers[e])return!1;return!0}isZero(){return this.coeff.isZero()}LCM(e,t=!1){const i=(0,o.arrayAddUnique)([...this.variables],e.variables),n={};for(const t of i)n[t]=Math.max(this.deg(t),e.deg(t));const s=t?a.Expression.fromRational(this.coeff.getMultiplier().LCM(e.coeff.getMultiplier())):"1";return new Term(s,n,i)}max(){return Object.keys(this.powers).reduce((e,t)=>this.powers[e]>this.powers[t]?e:t)}min(){return Object.keys(this.powers).reduce((e,t)=>this.powers[e]<this.powers[t]?e:t)}multideg(e){const t=[];for(const i of e)t.push(this.deg(i));return t}text(e){let t,i=this.coeff.text();if(this.coeff.isSum()&&(i=`(${i})`),"0"===i)t=i;else{let n=this.getValueString(e);"1"===n&&(n=""),n&&("1"===i?i="":"-1"===i?i="-":i+="*"),t=`${i}${n}`}return t}times(e){const t=this.copy();t.coeff=t.coeff.times(e.coeff);for(const i in e.powers)t.variables.includes(i)||t.variables.push(i),t.deg(i,t.deg(i)+e.deg(i));return t.update()}toString(){return this.text()}}t.Term=Term},1808(e,t,i){"use strict";t.loadPolynomialFunctions=function loadPolynomialFunctions(){Object.assign(n.mathFunctionRegistry,{deg:(0,n.systemFunction)({fn:s.deg,minArgs:1,maxArgs:2,distElWise:!0}),content:(0,n.systemFunction)({fn:s.content,minArgs:1,maxArgs:1,distElWise:!0}),coeffs:(0,n.systemFunction)({fn:s.coeffs,minArgs:1,maxArgs:2,distElWise:!1}),div:(0,n.systemFunction)({fn:s.div,minArgs:2,maxArgs:2,distElWise:!1}),divide:(0,n.systemFunction)({fn:s.divide,minArgs:2,maxArgs:2,distElWise:!1})})};const n=i(9426),s=i(6913)},6913(e,t,i){"use strict";t.deg=function deg(e,t){let i,s;void 0!==t&&(i=n.Expression.create(t),s=(0,r.assertPlainVariableAndGetString)(i));let a;if(l.Polynomial.isPolynomial(e))a=n.Expression.create(e.deg(s));else{const t=n.Expression.create(e);try{const e=t.variables().sort(),i=(0,u.expressionToIntegerSparsePolynomial)(t,e);let r;if(void 0===s)r=i.polynomial.totalDegree()??0n;else{const t=e.indexOf(s);r=-1===t?0n:i.polynomial.degree(t)??0n}a=n.Expression.Number(r)}catch{try{a=n.Expression.create(new l.Polynomial(t).deg(s))}catch{}}}const c=l.Polynomial.isPolynomial(e)?e.getExpression():e,p=void 0===i?[c]:[c,i];return a??n.Expression.toFunction(o.DEG,p)},t.content=function content(e){let t;if(l.Polynomial.isPolynomial(e))t=n.Expression.create(e.content());else{const i=n.Expression.create(e);try{if(i.isZero())t=n.Expression.create(new l.Polynomial(i).content());else{const e=i.variables().sort(),s=(0,u.expressionToIntegerSparsePolynomial)(i,e);t=n.Expression.Number(s.polynomial.content()).div(n.Expression.Number(s.denominator)),t.getMultiplier().asDecimal=i.hasDecimal()}}catch{try{t=n.Expression.create(new l.Polynomial(i).content())}catch{}}}return t??n.Expression.toFunction(o.CONTENT,[l.Polynomial.isPolynomial(e)?e.getExpression():e])},t.coeffs=function coeffs(e,t){const i=n.Expression.create(e);let s;s=void 0!==t?(0,r.assertPlainVariableAndGetString)(n.Expression.create(t)):i.variables()[0];return void 0===s?new a.Vector([i.copy()]):i.coeffs(s).toVector()},t.div=function div(e,t){const i=n.Expression.create(e),r=n.Expression.create(t);let o;if(i.isPolynomialLike()&&r.isPolynomialLike()){const[e,t]=(0,c.divide)(i,r);o=new a.Vector([e,t])}else o=new a.Vector([(0,s.zero)(),i]);return o},t.divide=function divide(e,t){const i=n.Expression.create(e),s=n.Expression.create(t);let r;if(i.isPolynomialLike()&&s.isPolynomialLike()){const[e,t]=(0,c.divide)(i,s);r=e.plus(t.div(s))}else r=i.div(s);return r};const n=i(296),s=i(6099),r=i(1897),o=i(8300),a=i(3982),l=i(2116),u=i(6105),c=i(9565)},9565(e,t,i){"use strict";t.divide=divide,t.polyMod=function polyMod(e,t,i,n){const{variables:s}=normalizePolynomialInputs([e,t],i,n),[,r]=divide(e,t,i,s);return o.Polynomial.toPolynomial(r,i,s).order(i)},t.maxCommonVariableOccurrence=function maxCommonVariableOccurrence(e,t){const i=o.Polynomial.toPolynomial(e).maxVariableFrequency(),n=o.Polynomial.toPolynomial(t).maxVariableFrequency();for(const e in i)if(e in n)return e};const n=i(4703),s=i(5869),r=i(6099),o=i(2116);function normalizePolynomialInputs(e,t,i){const n=e.map(e=>o.Polynomial.toPolynomial(e,t,i));if(void 0!==i)return{polynomials:n,variables:i};const s=combinePolynomialVariables(n);return 0===s.length?{polynomials:n,variables:void 0}:{polynomials:e.map(e=>o.Polynomial.toPolynomial(e,t,s)),variables:s}}function polyDiv(e,t,i,s){const{polynomials:o}=normalizePolynomialInputs([...e,t],i,s),a=o.slice(0,e.length);let l=o[e.length].order(i);const u=e.map(()=>(0,r.zero)());let c=(0,r.zero)(),p=0;const m=1e3*e.length;for(;!l.isZero();){if(p++>m)throw new Error((0,n.message)("polynomialMaximumIterations"));let e=!1;const t=a.length;let s=0;for(;s<t&&!e;){const t=a[s],n=t.LT(),r=l.LT();if(n.divides(r)){const o=r.div(n);u[s]=u[s].plus(o.getExpression()),l=l.minus(t.times(o)).order(i),e=!0}else s++}const r=l.LT();e||(c=c.plus(r.getExpression()),l=l.minus(r).order(i))}return[u,c]}function divide(e,t,i,n){const[s,r]=polyDiv([t],e,i,n);return[s[0],r]}function combinePolynomialVariables(e){let t=[];return e.forEach(e=>{t=(0,s.arrayAddUnique)(t,e.variables)}),t.sort(),t}},5584(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Rational=t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS=void 0,t.validateScientificSignificantDigits=validateScientificSignificantDigits;const s=n(i(3110)),r=i(6441),o=i(4703),a=i(551),l=i(551),u=i(7103),c=i(296),p=i(8300);function validateScientificSignificantDigits(e,i=String(e)){if("number"!=typeof e||!Number.isInteger(e)||e<1||e>t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS)throw new o.UnexpectedInputError((0,o.message)("wrongInput",{expected:`an integer from 1 to ${t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS}`,received:i}));return e}t.MAX_SCIENTIFIC_SIGNIFICANT_DIGITS=1e9;class Rational{static E=Rational.create(p.PARSER_CONSTANTS.e());static PI=Rational.create(p.PARSER_CONSTANTS.pi());static precision=s.default.precision;asDecimal=!1;dataType=p.RATIONAL;denominator;numerator;value;constructor(e,t){this.numerator=e,this.denominator=t,this.value=1n===t?String(e):`${e}/${t}`}static allNegative(...e){for(const t of e)if(-1!==t.sign())return!1;return!0}static create(e){let t,i,n=!1;if("bigint"==typeof e)t=e,i=1n,e=String(t);else if(/^[+-]?\d+$/.test(e))t=BigInt(e),i=1n;else if(e.includes("/")){if([t,i]=e.split("/").map(e=>BigInt(e)),0n===i)throw new o.DivisionByZeroError((0,o.message)("divisionByZero"));i<0n&&(t=-t,i=-i),[t,i]=(0,a.simplifyRatio)(t,i),e=1n===i?String(t):`${t}/${i}`}else{const s=e.toLocaleLowerCase().includes("e");n=s||e.includes(p.DOT),s&&(e=(0,u.scientificToDecimal)(e),n=!0),[t,i]=(0,a.convert)(e)}const s=new Rational(t,i);return s.value=e,s.asDecimal=n,s}static GCD(...e){let t=e[0];for(let i=1;i<e.length;i++)t=t.GCD(e[i]);return t}static getPrecision(){return Rational.precision}static hook(e){return e}static isRational(e){return(0,r.isNerdamerNativeType)(e,p.RATIONAL)}static LCM(...e){let t=e[0];for(let i=1;i<e.length;i++)t=t.LCM(e[i]);return t}static set(e){if("precision"in e){const t=Number(e.precision);s.default.set({precision:t}),Rational.precision=t,Rational.PI=Rational.create(p.PARSER_CONSTANTS.pi()),Rational.E=Rational.create(p.PARSER_CONSTANTS.e())}}static toRational(e,t=!1){return"string"==typeof e?Rational.create(e):t?e.copy():e}abs(){const e=this.copy();return e.numerator=(0,a.abs)(e.numerator),e.updateValue(),e}copy(){const e=new Rational(this.numerator,this.denominator);return e.value=this.value,e.asDecimal=this.asDecimal,e}div(e){let t;return c.Expression.isExpression(e)?t=c.Expression.create(this).div(e):(e=Rational.toRational(e,!0),t=this.times(e.invert())),t}eq(e){return c.Expression.isExpression(e)?c.Expression.create(this).eq(e):(e=Rational.toRational(e),this.numerator*e.denominator===e.numerator*this.denominator)}evenDenominator(){return(0,a.isEven)(this.denominator)}evenNumerator(){return(0,a.isEven)(this.numerator)}GCD(e){e=Rational.toRational(e);const[t,i]=(0,a.simplifyRatio)((0,l.GCD)(this.numerator*e.denominator,this.denominator*e.numerator),this.denominator*e.denominator),n=new Rational(t,i);return n.asDecimal=this.asDecimal||e.asDecimal,n}gt(e){return c.Expression.isExpression(e)?c.Expression.create(this).gt(e):(e=Rational.toRational(e),this.numerator*e.denominator>e.numerator*this.denominator)}gte(e){return e=Rational.toRational(e),this.numerator*e.denominator>=e.numerator*this.denominator}invert(){if(this.isZero())throw new o.DivisionByZeroError((0,o.message)("divisionByZero"));const e=this.copy(),t=e.sign();return e.numerator=(0,a.abs)(e.numerator),[e.numerator,e.denominator]=[e.denominator,e.numerator],-1===t?e.neg():e.updateValue()}isEven(){return this.isInteger()&&this.evenNumerator()}isInteger(){return 1n===this.denominator}isMinusOne(){return-1n===this.numerator&&1n===this.denominator}isNegative(){return this.numerator<0n}isOne(){return 1n===this.numerator&&1n===this.denominator}isZero(){return 0n===this.numerator}LCM(e){e=Rational.toRational(e);let t=0n,i=1n;this.isZero()||e.isZero()||([t,i]=(0,a.simplifyRatio)((0,a.abs)(this.numerator*e.numerator),(0,l.GCD)(this.numerator*e.denominator,this.denominator*e.numerator)));const n=new Rational(t,i);return n.asDecimal=this.asDecimal||e.asDecimal,n}lt(e){return e=Rational.toRational(e),this.numerator*e.denominator<e.numerator*this.denominator}lte(e){return e=Rational.toRational(e),this.numerator*e.denominator<=e.numerator*this.denominator}minus(e){let t;return c.Expression.isExpression(e)?t=c.Expression.create(this).minus(e):(e=Rational.toRational(e,!0),t=this.plus(e.neg())),t}mod(e){e=Rational.toRational(e);const t=(0,l.mod)(this.numerator*e.denominator,e.numerator*this.denominator),i=this.denominator*e.denominator,n=new Rational(...(0,a.simplifyRatio)(t,i));return n.asDecimal=this.asDecimal||e.asDecimal,n}neg(){const e=this.copy();return e.numerator*=-1n,e.updateValue(),e}plus(e){let t;if(c.Expression.isExpression(e))t=c.Expression.create(this).plus(e);else{let i,n;(e=Rational.toRational(e)).denominator===this.denominator?(i=e.numerator+this.numerator,n=e.denominator):(i=this.numerator*e.denominator+e.numerator*this.denominator,n=this.denominator*e.denominator),[i,n]=(0,a.simplifyRatio)(i,n),t=new Rational(i,n),t.asDecimal=this.asDecimal||e.asDecimal}return t}pow(e){let t;if(c.Expression.isExpression(e))t=c.Expression.create(this).pow(e);else{if(e=Rational.toRational(e),this.isZero()&&e.isZero())throw new o.ZeroToZeroPowerError((0,o.message)("zeroToZeroPower"));if(e.isInteger()){let i=e.numerator,n=this.numerator,s=this.denominator;if(i<0n){const e=this.invert();n=e.numerator,s=e.denominator,i=(0,a.abs)(i)}const[r,o]=(0,a.simplifyRatio)(n**i,s**i);t=new Rational(r,o),t.asDecimal=this.asDecimal}else{const i=this.toDecimal().toPower(e.toDecimal()).toString();t=Rational.create(i),t.asDecimal=this.asDecimal||t.asDecimal}}return t}sign(){return(0,a.sign)(this.numerator)}text(e){let t,i;const n=this.isInteger(),r=n?(this.numerator<0n?-this.numerator:this.numerator).toString().length:0,o=!0===e?.exactScientific,a=e&&"scientific"in e&&void 0!==e.scientific?validateScientificSignificantDigits(e.scientific):void 0;if(void 0!==a)if(this.isZero())i="0";else{const e=s.default.precision,t=Math.max(e,a);try{t!==e&&s.default.set({precision:t});const l=this.toDecimal().toExponential(a-1),[u,c]=l.split("e"),p=BigInt(c),m=0n===p?u:`${u}e${p}`;(!o||n&&r>a&&0n!==p&&Rational.create(m).eq(this))&&(i=m)}finally{s.default.precision!==e&&s.default.set({precision:e})}}if(void 0!==i)t=i;else if(this.asDecimal||e?.decimal)if(n)t=`${this.numerator}.0`;else{const i=s.default.precision,n=Number(e?.precision)||i;if(n===i)t=this.toDecimal().toString();else try{s.default.set({precision:n}),t=this.toDecimal().toString()}finally{s.default.set({precision:i})}t.includes(".")||/[eE]/.test(t)||(t+=".0")}else t=n?`${this.numerator}`:`${this.numerator}/${this.denominator}`;return t}times(e){let t;if(c.Expression.isExpression(e))t=e.times(this);else{e=Rational.toRational(e);const[i,n]=(0,a.simplifyRatio)(this.numerator*e.numerator,this.denominator*e.denominator);t=new Rational(i,n),t.asDecimal=this.asDecimal||e.asDecimal}return t}toDecimal(){let e=new s.default(String(this.numerator));return 1n!==this.denominator&&(e=e.div(String(this.denominator))),e}toDecimalString(e){const t=(0,a.sign)(this.numerator),i=(0,a.abs)(this.numerator),n=this.denominator,s=i/n,r=i%n,o=e??Rational.precision,l=(10n**BigInt(o)*r/n).toString();return`${t<0?"-":""}${s}.${"0".repeat(Math.max(0,o-l.length))}${l}`.replace(/0+$/g,"").replace(/\.$/g,"")}toString(e){return this.text(e)}updateValue(){return this.value=1n===this.denominator?String(this.numerator):`${this.numerator}/${this.denominator}`,this}valueOf(){const e=Number(this.numerator),t=Number(this.denominator);let i;return i=Number.isSafeInteger(e)&&Number.isSafeInteger(t)?e/t:Number(this.toDecimal()),i}}t.Rational=Rational},5598(e,t,i){"use strict";t.ValuesSet=void 0;const n=i(6746),s=i(6441),r=i(4703),o=i(296),a=i(8300);class ValuesSet extends n.MathematicalAggregate{_elements=[];dataType=a.SET;isEnumerable=!0;precision;constructor(e){if(super(),e)for(const t of e)this.add(t)}static isValuesSet(e){return(0,s.isNerdamerNativeType)(e,a.SET)||(0,s.isNerdamerNativeType)(e,a.SOLUTIONS_SET)}addKnownUnique(e){this._elements.push(e.copy())}getValuesArray(){return this.elements}setValuesArray(e){this.clear();for(const t of e)this.add(t)}indexOf(e){for(let t=0;t<this._elements.length;t++)if(this.membersEqual(this._elements[t],e))return t;return-1}membersEqual(e,t){let i=!1;try{i=e.eq(t)&&t.eq(e)}catch(e){if(!(e instanceof r.UnexpectedDataType))throw e}return i}__get__(e){const t=e[0];if(t<0||t>=this._elements.length)throw new RangeError((0,r.message)("indexOutOfBounds",{index:String(t),type:String(this.dataType),length:String(this._elements.length)}));return this._elements[t].copy()}__set__(e,t){const i=e[0];if(i<0||i>=this._elements.length)throw new RangeError((0,r.message)("indexOutOfBounds",{index:String(i),type:String(this.dataType),length:String(this._elements.length)}));const n=t.copy(),s=this.indexOf(n);-1!==s&&s!==i?this._elements.splice(i,1):this._elements[i]=n}add(e){return this.has(e)||this._elements.push(e.copy()),this}addMany(e){for(const t of e)this.add(t);return this}at(e){const t=this._elements[e];return t?t.copy():void 0}clear(){return this._elements.length=0,this}copy(){return new ValuesSet(this._elements)}count(){return this._elements.length}delete(e){const t=this.indexOf(e);return-1!==t&&(this._elements.splice(t,1),!0)}difference(e){const t=new ValuesSet;for(const i of this._elements)e.has(i)||t.add(i);return t}dimensions(){return[this._elements.length]}div(e){throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"))}each(e){const t=[];for(let i=0;i<this._elements.length;i++){const n=e(this._elements[i].copy(),i),s=void 0===n?this._elements[i]:n;let r=!1;for(let e=0;e<t.length;e++)if(this.membersEqual(t[e],s)){r=!0;break}r||t.push(s.copy())}return this._elements=t,this}get elements(){return this._elements.map(e=>e.copy())}eq(e){return!!ValuesSet.isValuesSet(e)&&(e.count()===this.count()&&this.isSubsetOf(e))}evaluate(e){return this.copy().each(t=>o.Expression.isExpression(t)?t.evaluate(e):t.evaluate())}expand(){return this.copy().each(e=>e.expand())}gt(e){return ValuesSet.isValuesSet(e)&&this.isProperSupersetOf(e)}gte(e){return ValuesSet.isValuesSet(e)&&this.isSupersetOf(e)}has(e){return-1!==this.indexOf(e)}intersection(e){const t=new ValuesSet;for(const i of this._elements)e.has(i)&&t.add(i);return t}isDisjointFrom(e){for(const t of this._elements)if(e.has(t))return!1;return!0}isProperSubsetOf(e){return this.count()<e.count()&&this.isSubsetOf(e)}isProperSupersetOf(e){return this.count()>e.count()&&this.isSupersetOf(e)}isSubsetOf(e){for(const t of this._elements)if(!e.has(t))return!1;return!0}isSupersetOf(e){return e.isSubsetOf(this)}lt(e){return ValuesSet.isValuesSet(e)&&this.isProperSubsetOf(e)}lte(e){return ValuesSet.isValuesSet(e)&&this.isSubsetOf(e)}minus(e){throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"))}plus(e){throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"))}pow(e){throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"))}sort(e){return e?this._elements.sort((t,i)=>e(t.copy(),i.copy())):this._elements.sort((e,t)=>{const i=e&&"function"==typeof e.text?e.text():String(e),n=t&&"function"==typeof t.text?t.text():String(t);return i<n?-1:i>n?1:0}),this}symmetricDifference(e){const t=this.difference(e);return t.addMany(e.difference(this)._elements),t}text(){return`{${this._elements.map(e=>e.text()).join(", ")}}`}times(e){throw new r.UnsupportedOperationError((0,r.message)("unsupportedOperation"))}union(e){const t=new ValuesSet(this._elements);return t.addMany(e._elements),t}}t.ValuesSet=ValuesSet},3982(e,t,i){"use strict";t.Vector=void 0;const n=i(6746),s=i(6441),r=i(4861),o=i(4703),a=i(6284),l=i(296),u=i(6099),c=i(8300),p=i(2116);class Vector extends n.MathematicalAggregate{dataType=c.VECTOR;elements;isEnumerable=!0;precision;constructor(e){super(),a.Collection.isCollection(e)?this.elements=e.elements.map(e=>e.copy()):this.elements=e?(0,r.toParserEntities)(e):[]}static create(e){return new Vector(e.map(e=>l.Expression.create(e)))}static isVector(e){return(0,s.isNerdamerNativeType)(e,c.VECTOR)}getValuesArray(){return[...this.elements]}setValuesArray(e){this.elements=e}__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new o.UnexpectedDataType((0,o.message)("indexOutOfBounds",{index:String(t),type:"Vector",length:String(this.elements.length)}));return this.elements[t]}add(e){return this.append(e)}append(e){return this.elements.push(e),this}arrayMap(e){const t=[];for(let i=0;i<this.elements.length;i++)t.push(e(this.elements[i]));return t}at(e){return this.elements[e]}clear(){return this.elements=[],this}copy(){const e=new Vector;return this.each((t,i)=>(e.elements[i]=t.copy(),t)),this.copySymbolicAccessTo(e)}count(){return this.elements.length}cross(e){if(3!==this.elements.length||3!==e.elements.length)throw new o.DimensionError((0,o.message)("incorrectCrossDimension"));const t=this.getExpressionAt(0),i=this.getExpressionAt(1),n=this.getExpressionAt(2),s=e.getExpressionAt(0),r=e.getExpressionAt(1),a=e.getExpressionAt(2);return Vector.create([i.times(a).minus(n.times(r)),n.times(s).minus(t.times(a)),t.times(r).minus(i.times(s))])}delete(e){const t=this.indexOf(e);return-1!==t&&(this.elements.splice(t,1),!0)}dimensions(){return[this.elements.length]}div(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.div"}));return super.div(e)}dot(e){if(this.elements.length!==e.elements.length)throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.dot"}));let t=(0,u.zero)();for(let i=0;i<this.elements.length;i++)t=t.plus(this.getExpressionAt(i).times(e.getExpressionAt(i)));return t}each(e){for(let t=0;t<this.elements.length;t++){const i=e(this.elements[t],t);void 0!==i&&(this.elements[t]=i)}return this}eq(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].eq(e.elements[t]))return!1;return!0}evaluate(e){let t;const i=l.Expression.fromSymbolicAccess(this);if(i&&e)t=i.evaluate(e);else{const i=this.copy();i.each(t=>l.Expression.isExpression(t)?t.evaluate(e):t.evaluate()),t=i}return t}expand(){const e=this.copy();return e.each(e=>e.expand()),e}extend(e){if(!Vector.isVector(e))throw new o.UnexpectedDataType((0,o.message)("vectorExpected",{type:c.dataTypes[e.dataType]}));return this.elements.push(...e.elements),this}getExpressionAt(e){const t=this.elements[e];if(!l.Expression.isExpression(t))throw new o.UnexpectedDataType((0,o.message)("expressionExpected",{type:c.dataTypes[t.dataType]}));return t}gt(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].gt(e.elements[t]))return!1;return!0}gte(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].gte(e.elements[t]))return!1;return!0}indexOf(e){for(let t=0;t<this.elements.length;t++){if(this.elements[t].eq(e))return t}return-1}insert(e,t){return this.elements.splice(e,0,t),this}lt(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].lt(e.elements[t]))return!1;return!0}lte(e){if(!Vector.isVector(e)||e.elements.length!==this.elements.length)return!1;for(let t=0;t<this.elements.length;t++)if(!this.elements[t].lte(e.elements[t]))return!1;return!0}minus(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.minus"}));return super.minus(e)}norm(){let e=(0,u.zero)();for(let t=0;t<this.elements.length;t++)e=e.plus(this.getExpressionAt(t).abs().sq());return e.pow("1/2")}plus(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.plus"}));return super.plus(e)}pop(e){let t;return t=void 0!==e?this.elements.splice(e,1)[0]:this.elements.pop(),t}pow(e){if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.pow"}));return super.pow(e)}prod(){let e=(0,u.one)();return this.each(t=>{e=e.times(l.Expression.create(t))}),e}remove(e){const t=this.indexOf(e);return-1!==t&&this.elements.splice(t,1),this}reverse(){return this.elements.reverse(),this}sum(){let e=(0,u.zero)();return this.each(t=>{e=e.plus(l.Expression.create(t))}),e}text(){const e=`[${this.elements.map(e=>e.text()).join(", ")}]`;return this.formatSymbolicAccess(e)}times(e){let t;if((0,s.isNerdamerNativeType)(e,c.MATRIX)){const i=e;if(0===i.cols()){if(this.count()!==i.rows())throw new o.MathError((0,o.message)("mismatchedDimensions",{function:"Matrix.times"}));t=new Vector}else t=i.transpose().times(this)}else{if(Vector.isVector(e)&&!this.dimensionsMatch(e))throw new o.DimensionError((0,o.message)("mismatchedDimensions",{function:"Vector.times"}));t=super.times(e)}return t}toPolynomial(e=["x"]){return p.Polynomial.fromArray(this.elements,e)}trim(){const e=[];for(const t of this.elements)t.eq((0,u.zero)())||e.push(t);return this.elements=e,this}}t.Vector=Vector},1027(e,t,i){"use strict";t.loadVectorFunctions=function loadVectorFunctions(){Object.assign(n.mathFunctionRegistry,{dot:(0,n.systemFunction)({fn:s.dot,minArgs:2,maxArgs:2,distElWise:!1}),cross:(0,n.systemFunction)({fn:s.cross,minArgs:2,maxArgs:2,distElWise:!1})})};const n=i(9426),s=i(3552)},3552(e,t,i){"use strict";t.dot=function dot(e,t){let i;if(o.Vector.isVector(e)&&o.Vector.isVector(t))i=e.dot(t);else{if(!s.Expression.isExpression(e)||!s.Expression.isExpression(t)){const i=o.Vector.isVector(e)?t:e;throw new n.UnexpectedDataType((0,n.message)("vectorExpected",{type:r.dataTypes[i.dataType]}))}i=s.Expression.toFunction(r.DOT_PRODUCT,[e,t])}return i},t.cross=function cross(e,t){let i;if(o.Vector.isVector(e)&&o.Vector.isVector(t))i=e.cross(t);else{if(!s.Expression.isExpression(e)||!s.Expression.isExpression(t)){const i=o.Vector.isVector(e)?t:e;throw new n.UnexpectedDataType((0,n.message)("vectorExpected",{type:r.dataTypes[i.dataType]}))}i=s.Expression.toFunction(r.CROSS,[e,t])}return i};const n=i(4703),s=i(296),r=i(8300),o=i(3982)},6746(e,t,i){"use strict";t.MathematicalAggregate=void 0;const n=i(4703),s=i(8505);class MathematicalAggregate extends s.StructuredEntity{__get__(e){const t=e[0];if(t<0||t>=this.elements.length)throw new RangeError((0,n.message)("indexOutOfBounds",{index:String(t),type:String(this.dataType),length:String(this.elements.length)}));return this.elements[t]}__set__(e,t){const i=e[0];if(i<0||i>=this.elements.length)throw new RangeError((0,n.message)("indexOutOfBounds",{index:String(i),type:String(this.dataType),length:String(this.elements.length)}));this.elements[i]=t}clear(){return this.elements.length=0,this}count(){return this.elements.length}dimensions(){return[this.elements.length]}each(e){for(let t=0;t<this.elements.length;t++){const i=e(this.elements[t],t);void 0!==i&&(this.elements[t]=i)}return this}eq(e){if(!this.dimensionsMatch(e))return!1;const t=e.elements;for(let e=0;e<this.elements.length;e++)if(!this.elements[e].eq(t[e]))return!1;return!0}forEach(e){const t=this.elements;for(let i=0;i<t.length;i++)e(t[i],i)}gt(e){if(!this.dimensionsMatch(e))return!1;const t=e.elements;for(let e=0;e<this.elements.length;e++)if(!this.elements[e].gt(t[e]))return!1;return!0}gte(e){return this.gt(e)||this.eq(e)}lt(e){if(!this.dimensionsMatch(e))return!1;const t=e.elements;for(let e=0;e<this.elements.length;e++)if(!this.elements[e].lt(t[e]))return!1;return!0}lte(e){return this.lt(e)||this.eq(e)}sort(e){return e?(this.elements.sort(e),this):(this.elements.sort((e,t)=>{const i=e&&"function"==typeof e.text?e.text():String(e),n=t&&"function"==typeof t.text?t.text():String(t);return i<n?-1:i>n?1:0}),this)}[Symbol.iterator](){return this.elements[Symbol.iterator]()}toArray(){return[...this.elements]}}t.MathematicalAggregate=MathematicalAggregate},2809(e,t,i){"use strict";t.Scope=void 0;const n=i(8300),s=i(6441);class Scope extends Array{column;dataType;deferLHSResolution=!1;deferRHSResolution=!1;depth=0;implicitMultiply=!1;isOpen=!1;parent;type;constructor(e,t,i){super(),this.dataType=n.SCOPE,this.column=t,this.type=e,this.parent=i}static isScope(e){return(0,s.isNerdamerNativeType)(e,n.SCOPE)}addScope(e,t){const i=new Scope(e,t,this);return i.depth=this.depth+1,i.isOpen=!0,this.push(i),i}text(e=!0){return this.map(t=>{if(!Scope.isScope(t))return e?t.toString():`<${t.toString()}, ${t.type}>`;{const i=t.text(e);switch(t.type){case"parenthesis":return`( ${i} )`;case"square":return`[ ${i} ]`;case"curly":return`{ ${i} }`;case"pipe":return`| ${i} |`;default:return i}}}).join(e?" ":", ").replace(/\s+/gi," ")}upperScope(){this.isOpen=!1;const e=this.parent;return delete this.parent,e}}t.Scope=Scope},8505(e,t){"use strict";function isEnumerableLike(e){if("object"!=typeof e||null===e)return!1;const t=e;return!0===t.isEnumerable&&"string"==typeof t.dataType&&Array.isArray(t.elements)}t.StructuredEntity=void 0;t.StructuredEntity=class StructuredEntity{symbolicAccessor;symbolicTarget;copySymbolicAccessTo(e){return this.symbolicTarget&&(e.symbolicTarget=this.symbolicTarget.copy()),this.symbolicAccessor&&(e.symbolicAccessor=this.symbolicAccessor.map(e=>e.copy())),e}formatSymbolicAccess(e){let t=e;if(this.symbolicAccessor&&this.symbolicAccessor.length>0){t=`${this.symbolicTarget?this.symbolicTarget.text():e}[${this.symbolicAccessor.map(e=>e.text()).join(", ")}]`}return t}binaryOp(e,t){const i=isEnumerableLike(t)&&t.dataType===this.dataType?t:void 0;return this.copy().each((n,s,r)=>{const o=i?function getAggregateElement(e,t,i){if(void 0===t)return;const n="number"==typeof t?t:Number(t);if(!Number.isFinite(n))return;const s=e.elements[n];if(void 0!==s){if(Array.isArray(s)){if(void 0===i)return;const e="number"==typeof i?i:Number(i);if(!Number.isFinite(e))return;return s[e]}return s}}(i,s,r)??t:t;return function applyBinaryOp(e,t,i){switch(e){case"plus":return t.plus(i);case"minus":return t.minus(i);case"times":return t.times(i);case"div":return t.div(i);case"pow":return t.pow(i)}}(e,n,o)})}abs(){return this.copy().each(e=>e.abs())}dimensionsMatch(e){return!(!isEnumerableLike(e)||this.dataType!==e.dataType)&&e.elements.length===this.elements.length}div(e){return this.binaryOp("div",e)}minus(e){return this.binaryOp("minus",e)}plus(e){return this.binaryOp("plus",e)}pow(e){return this.binaryOp("pow",e)}times(e){return this.binaryOp("times",e)}toString(){return this.text()}withSymbolicAccessor(e,t){const i=this.copy();return i.symbolicTarget||(i.symbolicTarget=e.copy()),i.symbolicAccessor=[...i.symbolicAccessor??[],...t.map(e=>e.copy())],i}}},6441(e,t){"use strict";t.ASSERTIVE_FUNCTIONS=t.operators=t.brackets=void 0,t.isNerdamerNativeType=function isNerdamerNativeType(e,t){let i=!1;"object"==typeof e&&null!==e&&"dataType"in e&&(i=e.dataType===t);return i},t.brackets={"(":{type:"parenthesis",id:1,isOpen:!0,isClose:!1,matches:")"},")":{type:"parenthesis",id:2,isOpen:!1,isClose:!0,matches:"("},"[":{type:"square",id:3,isOpen:!0,isClose:!1,matches:"]"},"]":{type:"square",id:4,isOpen:!1,isClose:!0,matches:"["},"{":{type:"curly",id:5,isOpen:!0,isClose:!1,matches:"}"},"}":{type:"curly",id:6,isOpen:!1,isClose:!0,matches:"{"},"|":{type:"pipe",id:7,isOpen:!0,isClose:!0,matches:"|"}},t.operators={".":{precedence:9,operator:".",action:"dot",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!1},"!!":{precedence:7,operator:"!!",action:"doubleFactorial",isPrefix:!1,isPostfix:!0,leftAssoc:!1,iterates:!0},"!":{precedence:7,operator:"!",action:"factorial",isPrefix:!1,isPostfix:!0,leftAssoc:!1,iterates:!0},"^":{precedence:6,operator:"^",action:"pow",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!0},"**":{precedence:6,operator:"**",action:"pow",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!0},"%":{precedence:4,operator:"%",action:"mod",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!0,postfixVariant:{precedence:7,operator:"%",action:"percent",isPrefix:!1,isPostfix:!0,leftAssoc:!1,iterates:!0}},"*":{precedence:4,operator:"*",action:"times",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!0},"/":{precedence:4,operator:"/",action:"div",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!0},"+":{precedence:3,operator:"+",action:"plus",isPrefix:!0,isPostfix:!1,leftAssoc:!0,iterates:!0},"-":{precedence:3,operator:"-",action:"minus",isPrefix:!0,isPostfix:!1,leftAssoc:!0,iterates:!0},"=":{precedence:2,operator:"=",action:"setEqual",assertiveAction:"assertEQ",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"==":{precedence:1,operator:"==",action:"eq",assertiveAction:"assertEQ",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"<":{precedence:1,operator:"<",action:"lt",assertiveAction:"assertLT",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"<=":{precedence:1,operator:"<=",action:"lte",assertiveAction:"assertLTE",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},">":{precedence:1,operator:">",action:"gt",assertiveAction:"assertGT",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},">=":{precedence:1,operator:">=",action:"gte",assertiveAction:"assertGTE",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},"=>":{precedence:0,operator:"=>",action:"mapTo",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},",":{precedence:0,operator:",",action:"comma",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1},":":{precedence:0,operator:":",action:"assign",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1,deferLHSResolution:!0,deferRHSResolution:!0},":=":{precedence:0,operator:":=",action:"functionAssign",isPrefix:!1,isPostfix:!1,leftAssoc:!1,iterates:!1,deferLHSResolution:!0,deferRHSResolution:!0},in:{precedence:0,operator:"in",action:"in",isPrefix:!1,isPostfix:!1,leftAssoc:!0,iterates:!1}},t.ASSERTIVE_FUNCTIONS=["assume"]},9725(e,t,i){"use strict";t.getOperatorSymbolArray=function getOperatorSymbolArray(){const e=new Set(Object.keys(n.operators).join("").split(""));return[...e].filter(e=>!/[a-z]/i.test(e))},t.getOperators=function getOperators(){return n.operators};const n=i(6441)},4861(e,t,i){"use strict";t.isEnumerable=isEnumerable,t.toParserEntities=function toParserEntities(e){const t=[];for(let i=0;i<e.length;i++){const s=e[i];t.push(isEnumerable(s)?s:n.Expression.create(s))}return t};const n=i(296);function isEnumerable(e){return void 0!==e&&!!e.isEnumerable}},9426(e,t){"use strict";t.mathFunctionRegistry=void 0,t.systemFunction=function systemFunction(e){return{fn:e.fn,minArgs:e.minArgs,maxArgs:e.maxArgs,maxPrecision:e.maxPrecision,equationArgs:e.equationArgs,distElWise:e.distElWise,deferArguments:e.deferArguments,normalizeDeferredArguments:e.normalizeDeferredArguments,bracketlessStatement:e.bracketlessStatement,returnBoundary:e.returnBoundary,usage:e.usage??"notation",level:"system"}},t.mathFunctionRegistry={}},4703(e,t,i){"use strict";t.f9=t.PS=t.AssignmentError=t.ZeroToZeroPowerError=t.DimensionError=t.NaNError=t.MathError=t.UnsupportedOperationError=t.PolynomialError=t.UndefinedError=t.NullError=t.ParserError=t.DivisionByZeroError=t.UnexpectedInputError=t.UnexpectedDataType=t.UnexpectedTokenError=void 0,t.message=function message(e,i){const r=t.f9[s.Settings.LANGUAGE]??t.f9.eng;return(0,n.format)(r[e],i||{})};const n=i(7103),s=i(5817);class UnexpectedTokenError extends Error{}t.UnexpectedTokenError=UnexpectedTokenError;class UnexpectedDataType extends Error{}t.UnexpectedDataType=UnexpectedDataType;class UnexpectedInputError extends Error{}t.UnexpectedInputError=UnexpectedInputError;class DivisionByZeroError extends Error{}t.DivisionByZeroError=DivisionByZeroError;class OperatorError extends Error{}class ParserError extends Error{}t.ParserError=ParserError;class NullError extends Error{}t.NullError=NullError;class UndefinedError extends Error{}t.UndefinedError=UndefinedError;class PolynomialError extends Error{}t.PolynomialError=PolynomialError;class UnsupportedOperationError extends Error{}t.UnsupportedOperationError=UnsupportedOperationError;class ParserSyntaxError extends Error{}class MathError extends Error{}t.MathError=MathError;class NaNError extends Error{}t.NaNError=NaNError;class DimensionError extends Error{}t.DimensionError=DimensionError;class NotImplementedError extends Error{}class MissingReferenceError extends Error{}class ZeroToZeroPowerError extends Error{}t.ZeroToZeroPowerError=ZeroToZeroPowerError;class AssignmentError extends Error{}t.AssignmentError=AssignmentError,t.PS={notImplemented:"This method has not yet been implemented.",noInverse:"Unable to calculate inverse!",undefinedValue:"The requested value is undefined!",nullValue:"Value expected but received null.",univariateInputOnly:"The input for this function must be univariate!",differentSignsAtEndPointsRequired:"Function must have opposite signs at endpoints a and b!",integerRequired:"This function requires the coefficient to be an integer!",plainVariableExpected:"Expected plain variable! Received {{input}}.",missingReference:'The reference "{{ref}}" does not exist on this pattern!!',undefinedDivision:"Division not defined expression of this type! {{type}}",restrictedVariableName:'Cannot assign the requested value to the reserved name "{{name}}"!',noVariableInExpression:"No variable found in expression!",quadraticExpressionExpected:"Expression must be quadratic!",wrongInput:"Wrong input! Expected {{expected}} but received {{received}}.",unsupportedFunction:"Unsupported function {{function}}",functionMinArgs:"{{function}} requires a minimum of {{min}} arguments but {{actual}} provided!",functionMaxArgs:"{{function}} allows a maximum of {{max}} arguments but {{actual}} provided!",invalidFunctionDeclaration:"Invalid function declaration {{declaration}}.",indexOutOfBounds:"Index {{index}} out of bounds for {{type}} of length {{length}}",matrixRowIndexOutOfBounds:"Row index {{index}} out of bounds for Matrix with {{length}} rows",matrixColumnIndexOutOfBounds:"Column index {{index}} out of bounds for Matrix with {{length}} columns",dictionaryKeyNotFound:'Key "{{key}}" not found in Dictionary. Available keys: {{keys}}',rangeValuesFinite:"Range values must be finite.",rangeStepNonzero:"Step cannot be zero",rangeStepNoAdvance:"Step does not advance range at current precision",sparseVariableCountInvalid:"SparsePolynomial variableCount must be a non-negative safe integer.",sparseExponentVectorLengthMismatch:"SparsePolynomial exponent vector length must equal variableCount.",sparseExponentsNonNegativeBigInt:"SparsePolynomial exponents must be non-negative bigints.",sparseVariableIndexOutOfRing:"SparsePolynomial variable index is outside the polynomial ring.",sparseAdditionRingMismatch:"SparsePolynomial addition requires the same polynomial ring.",sparseCoefficientExponentNonNegative:"SparsePolynomial coefficient exponent must be non-negative.",sparseZeroMonomialDivision:"SparsePolynomial cannot divide by a zero monomial.",sparseZeroScalarDivision:"SparsePolynomial cannot divide by zero.",sparseScalarDivisionExact:"SparsePolynomial scalar division must be exact for every coefficient.",sparseDivisionRingMismatch:"SparsePolynomial division requires the same polynomial ring.",sparseZeroPolynomialDivision:"SparsePolynomial cannot divide by the zero polynomial.",sparseMonomialOrderUnsupported:"SparsePolynomial monomial order is not supported.",sparseMultiplicationRingMismatch:"SparsePolynomial multiplication requires the same polynomial ring.",sparseExponentNonNegative:"SparsePolynomial exponent must be non-negative.",sparseSubtractionRingMismatch:"SparsePolynomial subtraction requires the same polynomial ring.",invalidDecimal:'Invalid Decimal: "{{value}}"',invalidInterval:"Invalid interval: ({{start}}, {{end}})",invalidAssumption:'Invalid assumption: "{{input}}"',assumptionIdentifierExpected:"Expected identifier",assumptionOperatorMissing:"Missing operator",assumptionValueMissing:"Missing value",assumptionOperatorUnsupported:'Unsupported operator "{{operator}}"',matrixStringKeyUnsupported:"Matrix does not support string key access",matrixTraceUnavailable:"Unable to calculate trace for the matrix",defintMaxEvals:"defint: maxEvals exceeded ({{max}}).",defintNonFiniteValue:"defint: non-finite f(x) at x={{x}}",defintEndpointSingularity:"defint: endpoint singularity could not be regularized near x={{x}}",defintSingularity:"defint: singular/non-finite encountered near [{{a}}, {{b}}]",defintInfiniteBounds:"defint: infinite bounds require allowInfinite: true",defintUnsupportedInfiniteBounds:"defint: unsupported infinite bound configuration",symbolicAccessNamedTargetRequired:"Symbolic indexed access requires a named Vector or Matrix target.",symbolicVectorIndexCount:"Symbolic Vector access requires exactly one index.",symbolicMatrixRowNonScalar:"Symbolic Matrix row access is not scalar and cannot be deferred as an Expression.",symbolicMatrixCellIndexCount:"Symbolic Matrix cell access requires exactly two indices.",symbolicAccessMaxIndices:"Symbolic indexed access supports at most two unresolved indices.",symbolicAccessIndexScalar:"Symbolic accessor indices must evaluate to scalar expressions.",symbolicAccessTargetType:"Symbolic indexed access target must resolve to a Vector or Matrix.",expectedOperatorOrFunction:'Expected operator or function name but "{{value}}" found!',missingOpeningBracket:'Missing opening bracket for "{{bracket}}":{{position}}',missingClosingBracket:'Missing closing bracket for "{{bracket}}":{{position}}',prefixOperatorExpected:"Prefix operator expected but {{operator}} encountered.",groebnerBasisSizeBudgetExceeded:"Groebner budget exceeded: basis size > {{max}}",groebnerPairsBudgetExceeded:"Groebner budget exceeded: pairsPopped > {{max}}",unsupportedParserEntity:"Unsupported parser entity",factorialNegativeUndefined:"Factorial is undefined for negative integers.",erfConvergenceFailed:"erf not converging. Exiting!",defintInfiniteBoundsDecimal:"defint: infinite bounds require allowInfinite:true",seqStartsAtInteger:"startsAt must be an integer",seqPolynomialOrMaxPower:"Sequence is not a polynomial or exceeds maxPower",seqInsufficientData:"Insufficient data points for detected degree",arithPowNegativeExponent:"pow: negative exponent",arithPowNNonnegativeInteger:"powN: exponent must be a nonnegative integer",arithBigIntSqrtNegative:"bigIntSqrt: negative input",arithNthRootPositiveInteger:"intNthRootExact: n must be a positive integer",arithDivisorsPositive:"getDivisors: n must be positive",arithModNormNonzeroModulus:"modNorm: modulus must be nonzero",arithModSymmetricNonzeroModulus:"modSymmetric: modulus must be nonzero",arithModInvZeroNoninvertible:"modInv: non-invertible (0)",arithModInvNoninvertible:"modInv: non-invertible",integerSqrtNonnegative:"Integer square root requires a non-negative value.",modularExponentiationPositiveModulus:"Modular exponentiation requires a positive modulus.",modularExponentiationNonnegativeExponent:"Modular exponentiation requires a non-negative exponent.",maxBigIntRequiresArgument:"maxBigInt() requires at least one argument",minBigIntEmpty:"Min of empty list is not defined for BigInt.",binomBigIntNonnegativeN:"binomBigInt: n must be non-negative",invalidDecimalValue:"Invalid decimal value: {{value}}",subtractionNotDefined:"Subtraction not defined for {{leftType}}-{{rightType}} | {{left}}-{{right}}",sparseAdapterVariablesUnique:"Sparse polynomial adapter variables must be unique.",sparseAdapterVariablesIncludeEvery:"Sparse polynomial adapter variables must include every polynomial variable.",sparseExpressionConversionNameCount:"Sparse polynomial expression conversion requires one name per ring variable.",converterMissingArgumentScope:"Missing argument scope for function {{function}}",converterMissingPrefixOperand:"Missing operand for prefix operator {{operator}}",converterMissingOperandMetadata:"Missing operand or metadata for operator {{operator}}",converterMissingLeftOperand:"Missing left operand for operator {{operator}}",converterTexConversionFailed:"Unable to convert source expression to TeX",unknownOperator:"Unknown operator {{operator}}",polynomialMaximumIterations:"Maximum iterations reached",polyRequires:"{{operation}} requires {{requirement}}.",polyVariablesUnique:"{{operation}} variables must be unique.",polyVariablesRingOrder:"{{operation}} variables must follow polynomial-ring order.",polyVariablesIncludeActive:"{{operation}} variables must include every active variable.",polyInputsSelectedOnly:"{{operation}} inputs may use only the selected variables.",polyCannotFactorZeroPolynomial:"{{operation}} cannot factor the zero polynomial.",polyCannotFactorZero:"{{operation}} cannot factor zero.",polyModulusGreaterThanOne:"ModularSparsePolynomial modulus must be greater than one.",polyVariableCountMatch:"ModularSparsePolynomial variableCount must match the supplied sparse polynomial.",polyInterpolationCannotDepend:"ModularSparsePolynomial interpolation samples cannot depend on the interpolated variable.",polyInterpolationInvertibleDifferences:"ModularSparsePolynomial interpolation points must have invertible pairwise differences.",polyCoefficientExponentNonnegative:"ModularSparsePolynomial coefficient exponent must be non-negative.",polyCannotDivideZero:"ModularSparsePolynomial cannot divide by the zero polynomial.",polyDivisorLeadingCoefficientInvertible:"ModularSparsePolynomial divisor leading coefficient is not invertible.",polyLeadingCoefficientInvertible:"ModularSparsePolynomial leading coefficient is not invertible.",polyExponentNonnegative:"ModularSparsePolynomial exponent must be non-negative.",polyDegreeMatrixLimit:"Modular factorization degree exceeds the supported matrix dimension.",polyExtendedGcdTwoZeroUndefined:"Modular extended GCD is undefined for two zero polynomials.",polyHenselPrimeExceedsTailDegree:"Multivariate Hensel lifting prime must exceed every tail-variable degree.",polyHenselTargetNotSmaller:"Hensel lifting target modulus cannot be smaller than the base prime.",polyHenselTargetRepeatedSquaring:"Hensel lifting target modulus must be obtained by repeated squaring of the base prime.",polyHenselFactorsReconstructModuloBase:"Hensel lifting factors do not reconstruct the integer polynomial modulo the base prime.",polyZassenhausFactorsReconstructModuloLift:"Zassenhaus recombination factors do not reconstruct the input modulo the lift modulus.",polyWangCannotSpecializeZero:"Wang evaluation search cannot specialize zero.",polyModularContentExactDivision:"Modular polynomial content must divide the polynomial exactly.",factorizationNoFactors:"Nonconstant factorization returned no factors.",polyCrtModuliInvertible:"Polynomial CRT moduli must be invertible.",polyIntegerFactorPrimeZero:"Integer factorization cannot choose a prime for zero.",polySquareFreeNonExactDivision:"Square-free factorization encountered a non-exact polynomial division.",polyZassenhausLostRemaining:"Zassenhaus recombination lost the remaining polynomial.",polyZassenhausReconstructionFailed:"Zassenhaus recombination factors do not reconstruct the integer polynomial.",polyIntegerFactorLostLeading:"Integer factorization lost the leading term.",parserMalformedSymbolicAccessor:"Malformed internal symbolic accessor.",parserMalformedSymbolicAccessorIndex:"Malformed internal symbolic accessor index.",unknownOperatorAction:"Unknown operator action {{action}}",parserBracketTokenMissingCharacter:"Bracket token is missing its character.",polyWangLeadingEvaluationInteger:"Wang leading-coefficient evaluation did not produce an integer.",polyWangSpecializedLeadingInteger:"Wang specialized factor did not have an integer leading coefficient.",polyMultivariateContentDivisionFailed:"Multivariate factorization could not divide a square-free block by its main-variable content.",polyMultivariateContentVariableMissing:"Multivariate main-variable content did not retain an active coefficient variable.",polyMultivariateReconstructionFailed:"Complete multivariate factorization does not reconstruct the input polynomial.",polyBerlekampNoninvertiblePivot:"Berlekamp elimination encountered a noninvertible pivot.",polyHenselZeroFactorGroup:"Hensel lifting cannot lift a zero factor group.",polyHenselCannotLiftZero:"Hensel lifting cannot lift the zero polynomial.",polyHenselModulusExceeded:"Hensel lifting exceeded the requested prime-power modulus.",polyHenselLeadingLost:"Hensel lifting lost the target leading coefficient.",polyHenselReconstructionFailed:"Hensel-lifted factors do not reconstruct the target polynomial.",polyBerlekampNonExactSplit:"Berlekamp splitting produced a non-exact factor division.",polyBerlekampIncompleteSplit:"Berlekamp factorization did not fully split the polynomial.",polyBerlekampReconstructionFailed:"Berlekamp factors do not reconstruct the input polynomial.",expressionKeyValueUnsupported:"The function 'keyValue' is not implemented for type {{type}}.",solveLinearNonlinearDegree:"Nonlinear term detected in equation {{equation}}: degree {{degree}} term found. solveLinearSystem only handles linear systems.",solveLinearNonPolynomialVariable:'Nonlinear term detected in equation {{equation}}: variable "{{variable}}" appears in a non-polynomial position. solveLinearSystem only handles linear systems.',polyReqPrimeModulus:"a prime modulus",polyReqUnivariatePolynomial:"a univariate polynomial",polyReqSquareFreeInput:"square-free input",polyReqSamePolynomialRing:"the same polynomial ring",polyReqAtLeastOneVariable:"at least one variable",polyReqAtLeastTwoSelectedVariables:"at least two selected variables",polyReqOneEvaluationPerTailVariable:"one evaluation value per tail variable",polyReqMatchingFactorLeadingLists:"matching factor and leading-coefficient lists",polyReqPairwiseCoprimeModularFactors:"pairwise coprime modular factors",polyReqPrimeBaseModulus:"a prime base modulus",polyReqAtLeastOneModularFactor:"at least one modular factor",polyReqUnivariateIntegerPolynomial:"a univariate integer polynomial",polyReqFactorsSameRingAndPrime:"factors from the same integer polynomial ring and base prime",polyReqUnivariateFactors:"univariate factors",polyReqMonicModularFactors:"monic modular factors",polyReqPrimitiveIntegerPolynomial:"a primitive integer polynomial",polyReqPositiveLeadingCoefficient:"a positive leading coefficient",polyReqLiftedModularFactors:"lifted modular factors",polyReqLiftedFactorsSameRing:"lifted factors from one polynomial ring",polyReqUnivariateLiftedFactors:"univariate lifted factors",polyReqMonicLiftedFactors:"monic lifted factors",polyReqLargerHenselModulus:"a larger Hensel lifting modulus",polyReqPrimitivePolynomial:"a primitive polynomial",polyReqPositiveLexLeadingSign:"positive lexicographic leading sign",polyReqSquareFreeMainVariable:"square-free input in the main variable",polyReqExactlyTwoSelectedVariables:"exactly two selected variables",polyReqExactlyTwoVariables:"exactly two variables",polyReqOneValuePerNonMainVariable:"one value for every non-main selected variable",polyReqOneValuePerTailVariable:"one value for every tail variable",polyReqPositiveDegreeMainVariable:"positive degree in the main variable",polyReqAllOtherVariablesDormant:"all other variables to be dormant",polyReqPositiveModuli:"positive moduli",polyReqCoprimeModuli:"coprime moduli",polyReqAtLeastOneSample:"at least one sample",polyReqInvertibleLeadingCoefficient:"an invertible leading coefficient",polyReqIntegerLeadingCoefficientInvertible:"the integer leading coefficient to be invertible modulo the base prime",infinityMinusInfinityUndefined:"Infinity-Infinity is undefined!",inconsistentAssumptions:"Assumptions are inconsistent (empty intersection)!",unsupportedType:"The provided type ({{type}}) is not supported for this function!",unsupportedOperation:"This operation is currently not supported!",buildFunctionUnsupportedFunction:'buildFunction cannot compile the function "{{function}}" to JavaScript number arithmetic!',buildFunctionComplexUnsupported:"buildFunction cannot compile expressions containing the imaginary unit to JavaScript number arithmetic!",nonMatchingDimensions:"This operation cannot be completed because the dimensions don't match!",malformedExpression:"Unable to parse malformed expression!",unsupportedCharacter:'Unsupported character "{{character}}" at position {{position}}.',missingCommentDelimiter:'Missing closing comment delimiter "{{delimiter}}".',divisionByZero:"Division by zero is not defined!",zeroToZeroPower:"0^0 is undefined!",infinityToPowerZero:"Infinity^0 is not defined!",infinityTimesZero:"0*Infinity is not defined!",infinityToInfinity:"Infinity^Infinity is not defined!",valueToInfinityUndefined:"{{value}}^Infinity is not defined!",atan2Undefined:"atan2 is undefined for 0, 0!",tanUndefined:"tan is undefined for multiples of pi/2!",loopIterationLimitExceeded:"Loop exceeded the maximum of {{max}} iterations.",breakOutsideLoop:"break can only be used inside a loop.",continueOutsideLoop:"continue can only be used inside a loop.",letRequiresBindingsAndBody:"let requires one or more name/value pairs followed by a body expression.",secUndefined:"sec is undefined for odd multiples of pi/2!",cscUndefined:"csc is undefined for multiples of pi!",cotUndefined:"cot is undefined for multiples of pi!",cothUndefined:"coth is undefined for 0!",cschUndefined:"csch is undefined for 0!",atanhUndefined:"atanh is undefined for 0!",cannotCreateArrayFromNaN:"Cannot create array from NaN!",expressionExpected:"Expression expected!. Received {{type}}!",unrecognizedMode:'"{{mode}}" is is not a valid mode!',notAPolynomial:"The expression is not a valid polynomial!",multidegreeMismatch:"The number of variables must match the multidegree of the polynomial!",cannotCreateMatrix:"Unable to create Matrix. Row dimensions do not match!",cannotMultiplyMatrix:"Cannot multiply matrix!",squareMatrixRequired:"The matrix must be square!",rowsMustMatch:"The rows of the matrices must match!",columnsMustMatch:"The columns of the matrices must match!",singularMatrix:"The provided matrix is singular!",matrixExpected:"Matrix expected! Received {{type}}.",mismatchedDimensions:'The dimensions must match for the function "{{function}}"!',incorrectCrossDimension:"The cross product is only defined for vectors of dimension 3!",vectorExpected:"Expected Vector! Received {{type}}.",univariatePolynomialOnly:"This function is only supported for univariate polynomials!",unknownVariable:'Unknown variable! "{{variable}}"',convergenceFailed:"Failed to converge! {{iters}} iterations were tried.",endPointIsRoot:"End point is root.",zeroDerivative:"The derivative is zero at x = {{x}}. Cannot continue.",tooManyUnknowns:"Too many unknowns!",solveSystemInfiniteSolutions:"This system does not have a finite isolated solution set!",solveSystemPolynomialOnly:"solveSystem currently supports only linear or polynomial systems!",solveSystemNonRationalUnsupported:"This nonlinear polynomial system requires non-rational or non-symbolic solving, which is not yet supported!",setJSFunctionExpectsFunction:"The function parameter when setting a JS function must be of type function!",functionRequiresMinAndMaxArgs:"You must provide a min and max arg when setting the function!"},t.f9={eng:t.PS}},551(e,t,i){"use strict";t.factorial=void 0,t.abs=abs,t.GCD=GCD,t.LCM=function LCM(...e){let t=(e=uniqueSortedArray(e))[0];for(let i=1;i<e.length;i++){const n=e[i];t=t*n/GCD(t,n)}return t},t.simplifyRatio=simplifyRatio,t.convert=function convert(e){const[t,i]=(0,s.decimalSplit)(e),n=10n**BigInt(i.length);return simplifyRatio(BigInt(t+i),n)},t.sign=sign,t.isEven=isEven,t.fibonacci=function fibonacci(e){const t=e<0n,i=t?-e:e;let n=0n,s=1n;for(const e of i.toString(2)){const t=n*(2n*s-n),i=n*n+s*s;"0"===e?(n=t,s=i):(n=i,s=t+i)}let r=n;t&&isEven(i)&&(r=-r);return r},t.mod=mod,t.powMod=function powMod(e,t,i){if(i<=0n)throw new RangeError((0,n.message)("modularExponentiationPositiveModulus"));if(t<0n)throw new RangeError((0,n.message)("modularExponentiationNonnegativeExponent"));let s=1n%i,r=mod(e,i),o=t;for(;o>0n;)o%2n==1n&&(s=s*r%i),r=r*r%i,o/=2n;return s},t.productInRange=function productInRange(e,t,i=1){let n=BigInt(e),s=BigInt(e);const r=BigInt(i);for(;s<t;)s+=r,n*=s;return n};const n=i(4703),s=i(7103),r=i(5869);function abs(e){return e<0n?-e:e}function uniqueSortedArray(e){return(0,r.arrayUnique)([].slice.call(e).map(function(e){return abs(e)})).sort()}function GCD(...e){let t=(e=uniqueSortedArray(e))[0];for(let i=1;i<e.length;i++){let n=e[i];for(;;){if(t%=n,0n===t){t=n;break}if(n%=t,0n===n)break}}return t}function simplifyRatio(e,t){if(1n!==t){const i=GCD(t,e);return[e/i,t/i]}return[e,t]}function sign(e){return 0n===e?0:e<0n?-1:1}function isEven(e){return e%2n==0n}function integerSquareRoot(e){if(e<0n)throw new RangeError((0,n.message)("integerSqrtNonnegative"));if(e<2n)return e;let t=1n<<(BigInt(e.toString(2).length)+1n>>1n);for(;;){const i=t+e/t>>1n;if(i>=t)return t;0}}function mod(e,t){let i;return i=sign(e)===sign(t)?e%t:(e%t+t)%t,i}t.factorial=function(){const e=[1n,1n];let t=2;function bigFactorial(i){if("bigint"==typeof i&&(i=Number(i)),i<0)throw new RangeError((0,n.message)("factorialNegativeUndefined"));if(void 0!==e[i])return e[i];let s=e[t-1];for(;t<=i;t++)e[t]=s*=BigInt(t);return s}return bigFactorial(100),bigFactorial}()},982(e,t,i){"use strict";t.isPrimeBig=isPrimeBig,t.primeFactorCounts=function primeFactorCounts(e){const t={},i=primeFactorsBig(e).factors;for(const e of i){const i=String(e);i in t?t[i]++:t[i]=1n}return t};const n=i(551);function isPrimeBig(e){if(e<2n)return!1;if(2n===e||3n===e)return!0;if(e%2n==0n)return!1;let t=0n,i=e-1n;for(;i%2n==0n;)t++,i/=2n;const s=e<18446744073709551616n?[2n,325n,9375n,28178n,450775n,9780504n,1795265022n]:[2n,3n,5n,7n,11n,13n,17n,19n,23n,29n,31n,37n];for(const r of s){const s=r%e;if(s<2n)continue;let o=(0,n.powMod)(s,i,e);if(1n===o||o===e-1n)continue;let a=!1;for(let i=0n;i<t-1n;i++)if(o=o*o%e,o===e-1n){a=!0;break}if(!a)return!1}return!0}function trialDivisionBig(e){if(e<=1n)return[];const t=[];for(;e%2n==0n;)t.push(2n),e/=2n;let i=3n;const n=(e=>{if(e<2n)return e;let t=e,i=(t+1n)/2n;for(;i<t;)t=i,i=(t+e/t)/2n;return t})(e);for(;i<=n;){for(;e%i===0n;)t.push(i),e/=i;i+=2n}return e>1n&&t.push(e),t}function pollardRhoBig(e){if(e%2n==0n)return 2n;let t=2n,i=2n,n=1n;const f=t=>(t*t+1n)%e,gcd=(e,t)=>{for(;0n!==t;)[e,t]=[t,e%t];return e};for(;1n===n;)t=f(t),i=f(f(i)),n=gcd(t>i?t-i:i-t,e);return n===e?0n:n}function primeFactorsBig(e,t){const i=(0,n.sign)(e);e=(0,n.abs)(e);const s=[];if(1n===e||2n===e||isPrimeBig(e))s.push(e);else{const factorize=e=>{if(1n===e)return;if(isPrimeBig(e))return void s.push(e);const t=pollardRhoBig(e);if(0n===t){const t=trialDivisionBig(e);return void s.push(...t)}factorize(t),factorize(e/t)};factorize(e)}return s.sort((e,t)=>e<t?-1:1),{sign:i,factors:t?s.map(e=>Number(e)):s}}},417(e,t,i){"use strict";t.definitions=void 0;const n=i(2348),s=i(3703);t.definitions={cos:[e=>Math.cos(e)],sin:[e=>Math.sin(e)],tan:[e=>Math.tan(e)],sec:[e=>1/Math.cos(e)],csc:[e=>0===e?NaN:1/Math.sin(e)],cot:[e=>0===e?NaN:1/Math.tan(e)],acos:[e=>Math.acos(e)],asin:[e=>Math.asin(e)],atan:[e=>Math.atan(e)],asec:[e=>Math.acos(1/e)],acsc:[e=>Math.asin(1/e)],acot:[e=>e<0?Math.PI+Math.atan(1/e):Math.atan(1/e)],atan2:[(e,t)=>0===e&&0===t||!Number.isFinite(e)&&!Number.isFinite(t)?NaN:Math.atan2(e,t)],cosh:[e=>Math.cosh(e)],sinh:[e=>Math.sinh(e)],tanh:[e=>Math.tanh(e)],sech:[e=>1/Math.cosh(e)],csch:[e=>0===e?NaN:1/Math.sinh(e)],coth:[e=>0===e?NaN:1/Math.tanh(e)],acosh:[e=>Math.acosh(e)],asinh:[e=>Math.asinh(e)],atanh:[e=>1===e?NaN:Math.atanh(e)],asech:[e=>0===e?NaN:Math.acosh(1/e)],acsch:[e=>0===e?NaN:Math.asinh(1/e)],acoth:[e=>Math.atanh(1/e)],abs:[e=>Math.abs(e)],sqrt:[e=>Math.sqrt(e)],cbrt:[e=>Math.cbrt(e)],nthroot:[(e,t)=>0===t?NaN:Math.pow(e,1/t)],log:[(e,t)=>void 0===t?Math.log(e):t<=0||1===t?NaN:Math.log(e)/Math.log(t)],exp:[e=>Math.exp(e)],hypot:[(e,t)=>Math.hypot(e,t)],round:[s.round,["isInt"]],sign:[e=>Math.sign(e)],floor:[e=>Math.floor(e)],ceil:[e=>Math.ceil(e)],ceiling:[e=>Math.ceil(e)],trunc:[e=>Math.trunc(e)],mod:[s.mod],modinv:[s.modInv,["mod"]],max:[(...e)=>Math.max(...e)],min:[(...e)=>Math.min(...e)],avg:[(...e)=>e.reduce((e,t)=>e+t,0)/e.length],heaviside:[s.heaviside],step:[e=>Number.isNaN(e)?NaN:e<0?0:1],rect:[e=>{const t=Math.abs(e);return t<.5?1:.5===t?.5:0}],tri:[e=>Math.max(1-Math.abs(e),0)],realpart:[e=>e],imagpart:[()=>0],arg:[e=>Number.isNaN(e)?NaN:e<0?Math.PI:0],conjugate:[e=>e],polarform:[e=>e],rectform:[e=>e],csgn:[e=>Math.sign(e)],isInt:[s.isInt],GCD:[s.GCD],gcd:[s.GCD],LCM:[s.LCM,["GCD"]],lcm:[s.LCM,["GCD"]],modInv:[s.modInv,["mod"]],isPrime:[s.isPrime],isprime:[s.isPrime],fib:[e=>{let t=NaN;if(Number.isSafeInteger(e)){const i=e<0,n=Math.abs(e);let s=0,r=1;for(let e=0;e<n;e++){const e=s+r;if(s=r,r=e,!Number.isSafeInteger(s))break}Number.isSafeInteger(s)&&(t=i&&n%2==0?-s:s)}return t}],fact:[s.factorial,["isInt","gamma"]],factorial:[s.factorial,["isInt","gamma"]],dfact:[s.doubleFactorial,["isInt","gamma"]],erf:[s.erf,["erfc"]],erfc:[s.erfc],gammaLN:[s.gammaLN],gamma:[s.gamma,["gammaLN","isInt","factorial"]],sinc:[s.sinc],Si:[s.Si],Shi:[s.Shi],Ci:[s.Ci],Chi:[s.Chi],Ei:[s.Ei],Li:[s.Li],fresnelIntegral:[n.fresnelIntegral],S:[n.fresnelS,["fresnelIntegral"]],C:[n.fresnelC,["fresnelIntegral"]]}},4895(e,t,i){"use strict";t.build=function build(e,t){if((e=n.Expression.create(e)).hasVariable(n.Expression.imaginary))throw new r.UnsupportedOperationError((0,r.message)("buildFunctionComplexUnsupported"));const i=function collectConstants(e){const t="EULER_GAMMA",i=[],n={[s.PI_NAME]:Math.PI,[s.E]:Math.E};function setConstant(e,t){i.push(`var ${e} = ${t};\n`)}[s.PI_NAME,s.E].forEach(t=>{e.hasVariable(t)&&setConstant(t,n[t])}),[s.CI,s.CHI,s.SI,s.SHI,s.LI,s.EI].some(t=>e.hasFunction(t,!0))&&setConstant(t,o.EULER_GAMMA);return i.join(" ")}(e),a=`${e.text({wrapPow:!0})};`.replace(/\^/g,"**"),l=[[],[]];e.functions().forEach(e=>{importDeps(e,l)});let u="";for(let e=0;e<l[0].length;e++)u+=`var ${l[0][e]} = ${l[1][e]};\n`;const c=t||e.variables().sort();return new Function(...c,`${i}${u} return ${a}`)};const n=i(296),s=i(8300),r=i(4703),o=i(3703),a=i(417);function importDeps(e,t,i=new Set){if(""===e)return t;const n=t[0],s=t[1];if(n.includes(e))return t;const o=a.definitions[e];if(void 0===o)throw new r.UnsupportedOperationError((0,r.message)("buildFunctionUnsupportedFunction",{function:e}));if(i.has(e))return t;i.add(e);const[l,u]=o;if(void 0!==u)for(const e of u)importDeps(e,t,i);return i.delete(e),n.includes(e)||(n.push(e),s.push(l)),t}},8522(e,t,i){"use strict";t.loadComplexFunctions=function loadComplexFunctions(){Object.assign(n.mathFunctionRegistry,{imagpart:(0,n.systemFunction)({fn:s.imagPart,minArgs:1,maxArgs:1,distElWise:!0}),realpart:(0,n.systemFunction)({fn:s.realPart,minArgs:1,maxArgs:1,distElWise:!0}),polarform:(0,n.systemFunction)({fn:s.polarForm,minArgs:1,maxArgs:1,distElWise:!0}),rectform:(0,n.systemFunction)({fn:s.rectForm,minArgs:1,maxArgs:1,distElWise:!0}),arg:(0,n.systemFunction)({fn:s.arg,minArgs:1,maxArgs:1,distElWise:!0}),csgn:(0,n.systemFunction)({fn:s.csgn,minArgs:1,maxArgs:1,distElWise:!0}),conjugate:(0,n.systemFunction)({fn:s.conjugate,minArgs:1,maxArgs:1,distElWise:!0})})};const n=i(9426),s=i(4600)},4600(e,t,i){"use strict";t.realPart=realPart,t.imagPart=imagPart,t.simplifyImaginary=function simplifyImaginary(e){const t=e.getPower();if(e.isI()&&t.isInteger()){let i;switch(t.mod("4").abs().text()){case"1":i=r.Expression.Img();break;case"2":i=(0,o.minusOne)();break;case"3":i=r.Expression.Img().neg();break;default:i=(0,o.one)()}return i=(0,c.multiply)(i,r.Expression.fromRational(e.getMultiplier())),i}return e},t.toPolarFormArray=toPolarFormArray,t.polarForm=function polarForm(e){let t;if(e.isNUM()||e.isI()&&e.isLinear())t=e.copy();else{const[i,n]=toPolarFormArray((0,m.expand)(e)),s=(0,c.multiply)(r.Expression.Img(),n),o=(0,p.power)(r.Expression.Variable(a.E),s);t=(0,c.multiply)(o,i)}return t},t.rectForm=function rectForm(e){let t;if((e=r.Expression.create(e)).isE()){const i=e.getPower(),n=e.getMultiplier();if(i.isComplex()){const e=function toTheta(e){const t=e.elementsArray();let i=(0,o.one)(),n=(0,o.one)();for(const e of t)e.isComplex()?i=i.times(e):n=n.times(e);if(i.value===r.Expression.imaginary)return n.isFunction(a.ATAN)?n:n.times(e.getMultiplier());if(i.isFunction(a.ATAN)&&i.getArguments()[0].value===r.Expression.imaginary){const t=i.getArguments()[0];return r.Expression.toFunction(a.ATANH,[r.Expression.fromRational(t.getMultiplier())]).times(e.getMultiplier())}}(i);e&&(t=(0,s.cos)(e).times(n).plus((0,s.sin)(e).times(n).i()))}}else if(e.isProduct()){let i=r.Expression.fromRational(e.getMultiplier());e.each(e=>{i=i.times(rectForm(e))}),t=i}else if(e.isSum()){let i=(0,o.zero)();e.each(e=>{i=i.plus(rectForm(e))}),t=i}return t?t.expand():e.isComplex()?e.evaluate():e},t.arg=function arg(e){e=r.Expression.create(e);const[,t]=toPolarFormArray(e);return t},t.conjugate=function conjugate(e){e=r.Expression.create(e);const t=(0,m.expand)(e);let i;const n=t.getPower();if(t.isEXP()||!t.isNUM()&&!n.isOne()){const e=r.Expression.fromRational(t.getMultiplier()),s=t.getBase(),o=realPart(s),l=imagPart(s),u=o.isConstant()&&l.isConstant()&&(!l.isZero()||!o.isZero()&&o.sign()>0);if(n.isInteger()||u){const t=conjugate(s),r=n.isComplex()?conjugate(n):n;i=e.times(t.pow(r))}else i=r.Expression.toFunction(a.CONJUGATE,[t])}else if(t.isVAR()&&t.isI())i=t.neg();else if(t.isSum()){i=(0,o.zero)();for(const e of t.elementsArray())i=i.plus(conjugate(e))}else if(t.isProduct()){i=r.Expression.fromRational(t.getMultiplier());for(const e of t.elementsArray())i=i.times(conjugate(e))}return i??e},t.csgn=function csgn(e){e=r.Expression.create(e);const t=(0,m.expand)(e),i=realPart(t),n=imagPart(t);let s;i.isZero()&&n.isZero()?s=(0,o.zero)():!i.isZero()&&i.isConstant()?s=i.sign()>0?(0,o.one)():(0,o.minusOne)():i.isZero()&&n.isConstant()&&(s=n.sign()>0?(0,o.one)():(0,o.minusOne)());return s??r.Expression.toFunction(a.CSGN,[t])};const n=i(7867),s=i(1649),r=i(296),o=i(6099),a=i(8300),l=i(6255),u=i(3171),c=i(6498),p=i(3957),m=i(7741);function realPart(e){let t;const i=(0,m.expand)(e);if(i.isVAR()&&i.isI()){const e=i.getPower(),n=(0,u.divide)(r.Expression.Pi(),(0,o.two)()),a=(0,s.cos)((0,c.multiply)(e,n));t=(0,c.multiply)(r.Expression.fromRational(i.getMultiplier()),a)}else if(i.isEXP()){const e=i.getPower(),n=r.Expression.fromRational(i.getMultiplier());if(e.isInteger())t=(0,c.multiply)(n,realPart((0,p.power)(i.getBase(),e)));else{const[r,o]=toPolarFormArray(i.getBase()),a=(0,p.power)(r,e),l=(0,s.cos)((0,c.multiply)(e,o));t=(0,c.multiply)(n,(0,c.multiply)(a,l))}}else if(i.isComplexComponentFunction())t=i.copy();else if(i.isFunction())t=i.isComplex()?r.Expression.toFunction(a.REALPART,[i]):i.copy();else if(i.isProduct()&&i.isComplex()){const e=r.Expression.fromRational(i.getMultiplier());let n,s=(0,o.one)(),a=0;const l=i.getElements();for(const e in l){const t=l[e];t.isComplex()?(n=t,a++):s=(0,c.multiply)(s,t)}if(1===a&&n)t=(0,c.multiply)(e,(0,c.multiply)(s,realPart(n)));else{let i=(0,o.one)(),n=(0,o.zero)();for(const e in l){const t=l[e];if(t.isComplex()){const e=realPart(t),s=imagPart(t),r=i,o=n;i=(0,c.multiply)(r,e).minus((0,c.multiply)(o,s)),n=(0,c.multiply)(r,s).plus((0,c.multiply)(o,e))}}t=(0,c.multiply)(e,(0,c.multiply)(s,i))}}else if(i.isConstant()||i.isVAR()&&!i.isI()||i.isProduct()&&!i.isComplex())t=e.copy();else if(i.isSum())if(i.getPower().isOne()){t=(0,o.zero)();const e=i.getElements();for(const i in e){const n=realPart(e[i]);t=(0,l.add)(t,n)}}else t=e.copy();else t=(0,o.zero)();return t}function imagPart(e){let t;const i=(0,m.expand)(e);if(i.isVAR()&&i.isI()){const e=i.getPower(),n=(0,u.divide)(r.Expression.Pi(),(0,o.two)()),a=(0,s.sin)((0,c.multiply)(e,n));t=(0,c.multiply)(r.Expression.fromRational(i.getMultiplier()),a)}else if(i.isEXP()){const e=i.getPower(),n=r.Expression.fromRational(i.getMultiplier());if(e.isInteger())t=(0,c.multiply)(n,imagPart((0,p.power)(i.getBase(),e)));else{const[r,o]=toPolarFormArray(i.getBase()),a=(0,p.power)(r,e),l=(0,s.sin)((0,c.multiply)(e,o));t=(0,c.multiply)(n,(0,c.multiply)(a,l))}}else if(i.isComplexComponentFunction())t=(0,o.zero)();else if(i.isFunction()&&i.isComplex())t=r.Expression.toFunction(a.IMAGPART,[i]);else if(i.isSum()){t=(0,o.zero)();const e=i.getElements();for(const i in e)t=(0,l.add)(t,imagPart(e[i]))}else if(i.isProduct())if(i.isComplex()){const e=r.Expression.fromRational(i.getMultiplier());let n,s=(0,o.one)(),a=0;const l=i.getElements();for(const e in l){const t=l[e];t.isComplex()?(n=t,a++):s=(0,c.multiply)(s,t)}if(1===a&&n)t=(0,c.multiply)(e,(0,c.multiply)(s,imagPart(n)));else{let i=(0,o.one)(),n=(0,o.zero)();for(const e in l){const t=l[e];if(t.isComplex()){const e=realPart(t),s=imagPart(t),r=i,o=n;i=(0,c.multiply)(r,e).minus((0,c.multiply)(o,s)),n=(0,c.multiply)(r,s).plus((0,c.multiply)(o,e))}}t=(0,c.multiply)(e,(0,c.multiply)(s,n))}}else t=(0,o.zero)();else t=(0,o.zero)();return t}function toPolarFormArray(e){const t=e.realPart(),i=e.imagPart(),a=(0,n.hypot)(t,i);let l;return l=t.isZero()?i.isZero()?(0,o.zero)():i.isConstant()?i.sign()<0?(0,c.multiply)((0,o.minusOne)(),(0,u.divide)(r.Expression.Pi(),(0,o.two)())):(0,u.divide)(r.Expression.Pi(),(0,o.two)()):(0,s.atan2)(i,t):(0,s.atan2)(i,t),[a,l]}},9571(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.EULER_GAMMA=void 0,t.erf=function erf(e){e=new s.default(e);const t=s.default.acos(-1),i=new s.default(2).div(t.sqrt()),n=getSeriesError(),a=s.default.sign(e);if((e=e.abs()).isZero())return new s.default(0);if(e.lt(2)){let t=new s.default(0),l=0,u=e;const c=Math.max(1e3,8*s.default.precision);for(;u.gte(n);){const i=new s.default(-1).pow(l).times(e.pow(2*l+1)),n=new s.default(2*l+1).times(String((0,o.factorial)(l))),a=t.plus(i.div(n));if(u=a.minus(t).abs(),t=a,l++,l>c)throw new Error((0,r.message)("erfConvergenceFailed"))}let p=s.default.min(i.times(t),1);return-1===a&&(p=p.neg()),p}const l=e.mul(e).mul(2);let u=new s.default(1),c=u,p=u.abs();const m=Math.max(1e3,8*s.default.precision);for(let e=1;e<m;e++){u=u.mul(-(2*e-1)).div(l);const t=u.abs();if(t.gt(p))break;if(p=t,c=c.plus(u),t.lt(n))break}const g=e.neg().mul(e).exp().div(t.sqrt().mul(e)).times(c);let d=new s.default(1).minus(g);-1===a&&(d=d.neg());return d},t.gamma=function gamma(e){if((e=new s.default(e)).isInteger())return e.lte(0)?new s.default(1/0):new s.default(String((0,o.factorial)(Number(e.minus(1)))));if(e.lt(0)){const t=s.default.acos(-1);return t.div(t.times(e).sin().times(gammaSpouge(new s.default(1).minus(e))))}return gammaSpouge(e)},t.sinc=function sinc(e){const t=new s.default(e);if(t.isZero())return new s.default(1);if(t.abs().lt("1e-8")){const e=t.mul(t);return new s.default(1).minus(e.div(6)).plus(e.mul(e).div(120)).minus(e.mul(e).mul(e).div(5040))}return t.sin().div(t)},t.Si=function Si(e){let t=new s.default(e);if(t.isZero())return new s.default(0);let i=new s.default(1);t.isNeg()&&(i=new s.default(-1),t=t.neg());function polevl(e,t){let i=t[0];for(let n=1;n<t.length;n++)i=i.mul(e).plus(t[n]);return i}function p1evl(e,t){let i=e.plus(t[0]);for(let n=1;n<t.length;n++)i=i.mul(e).plus(t[n]);return i}if(t.gt(a)){const e=s.default.acos(-1).div(2);return i.mul(e.minus(t.cos().div(t)))}if(t.lte(4)){const e=[new s.default("-8.39167827910303881427e-11"),new s.default("4.62591714427012837309e-8"),new s.default("-9.75759303843632795789e-6"),new s.default("9.76945438170435310816e-4"),new s.default("-4.13470316229406538752e-2"),new s.default("1.00000000000000000302")],n=[new s.default("2.03269266195951942049e-12"),new s.default("1.27997891179943299903e-9"),new s.default("4.41827842801218905784e-7"),new s.default("9.96412122043875552487e-5"),new s.default("1.42085239326149893930e-2"),new s.default("9.99999999999999996984e-1")],r=t.mul(t),o=t.mul(polevl(r,e)).div(polevl(r,n));return i.mul(o)}const n=t.sin(),r=t.cos(),o=new s.default(1).div(t.mul(t));let l,u;if(t.lt(8)){const e=[new s.default("4.23612862892216586994"),new s.default("5.45937717161812843388"),new s.default("1.62083287701538329132"),new s.default("1.67006611831323023771e-1"),new s.default("6.81020132472518137426e-3"),new s.default("1.08936580650328664411e-4"),new s.default("5.48900223421373614008e-7")],i=[new s.default("8.16496634205391016773"),new s.default("7.30828822505564552187"),new s.default("1.86792257950184183883"),new s.default("1.78792052963149907262e-1"),new s.default("7.01710668322789753610e-3"),new s.default("1.10034357153915731354e-4"),new s.default("5.48900252756255700982e-7")],n=[new s.default("8.71001698973114191777e-2"),new s.default("6.11379109952219284151e-1"),new s.default("3.97180296392337498885e-1"),new s.default("7.48527737628469092119e-2"),new s.default("5.38868681462177273157e-3"),new s.default("1.61999794598934024525e-4"),new s.default("1.97963874140963632189e-6"),new s.default("7.82579040744090311069e-9")],r=[new s.default("1.64402202413355338886"),new s.default("6.66296701268987968381e-1"),new s.default("9.88771761277688796203e-2"),new s.default("6.22396345441768420760e-3"),new s.default("1.73221081474177119497e-4"),new s.default("2.02659182086343991969e-6"),new s.default("7.82579218933534490868e-9")];l=polevl(o,e).div(t.mul(p1evl(o,i))),u=o.mul(polevl(o,n)).div(p1evl(o,r))}else{const e=[new s.default("4.55880873470465315206e-1"),new s.default("7.13715274100146711374e-1"),new s.default("1.60300158222319456320e-1"),new s.default("1.16064229408124407915e-2"),new s.default("3.49556442447859055605e-4"),new s.default("4.86215430826454749482e-6"),new s.default("3.20092790091004902806e-8"),new s.default("9.41779576128512936592e-11"),new s.default("9.70507110881952024631e-14")],i=[new s.default("9.17463611873684053703e-1"),new s.default("1.78685545332074536321e-1"),new s.default("1.22253594771971293032e-2"),new s.default("3.58696481881851580297e-4"),new s.default("4.92435064317881464393e-6"),new s.default("3.21956939101046018377e-8"),new s.default("9.43720590350276732376e-11"),new s.default("9.70507110881952025725e-14")],n=[new s.default("6.97359953443276214934e-1"),new s.default("3.30410979305632063225e-1"),new s.default("3.84878767649974295920e-2"),new s.default("1.71718239052347903558e-3"),new s.default("3.48941165502279436777e-5"),new s.default("3.47131167084116673800e-7"),new s.default("1.70404452782044526189e-9"),new s.default("3.85945925430276600453e-12"),new s.default("3.14040098946363334640e-15")],r=[new s.default("1.68548898811011640017"),new s.default("4.87852258695304967486e-1"),new s.default("4.67913194259625806320e-2"),new s.default("1.90284426674399523638e-3"),new s.default("3.68475504442561108162e-5"),new s.default("3.57043223443740838771e-7"),new s.default("1.72693748966316146736e-9"),new s.default("3.87830166023954706752e-12"),new s.default("3.14040098946363335242e-15")];l=polevl(o,e).div(t.mul(p1evl(o,i))),u=o.mul(polevl(o,n)).div(p1evl(o,r))}const c=s.default.acos(-1).div(2);return i.mul(c.minus(l.mul(r)).minus(u.mul(n)))},t.Shi=function Shi(e){const i=new s.default(e);if(i.isZero())return new s.default(0);const n=i.isNeg()?new s.default(-1):new s.default(1),r=i.abs();if(r.lt(8)){let e=r,t=e,i=0;for(let n=0;n<200;n++){const n=2*i+1;if(e=e.mul(r).mul(r).mul(n).div(new s.default(n+2).mul(n+2).mul(n+1)),t=t.plus(e),i++,e.abs().lt(getSeriesError()))break}return n.mul(t)}function EiLocal(e){if(e.isZero())return new s.default(-1/0);if(e.gt(l)||e.lt(-40)){let t=new s.default(1),i=new s.default(1),n=t.abs();for(let s=1;s<u;s++){t=t.mul(s).div(e);const r=t.abs();if(r.gt(n))break;if(n=r,i=i.plus(t),r.lt(getSeriesError()))break}return e.exp().mul(i).div(e)}let i=e,n=i;for(let t=1;t<c&&(i=i.mul(e).mul(t).div(new s.default(t+1).mul(t+1)),n=n.plus(i),!i.abs().lt(getSeriesError()));t++);return t.EULER_GAMMA.plus(e.abs().ln()).plus(n)}return EiLocal(i).minus(EiLocal(i.neg())).div(2)},t.Ci=function Ci(e){let i=new s.default(e);if(i.isZero())return new s.default(-1/0);i.isNeg()&&(i=i.neg());function polevl(e,t){let i=t[0];for(let n=1;n<t.length;n++)i=i.mul(e).plus(t[n]);return i}function p1evl(e,t){let i=e.plus(t[0]);for(let n=1;n<t.length;n++)i=i.mul(e).plus(t[n]);return i}if(i.gt(a))return i.sin().div(i);if(i.lte(4)){const e=[new s.default("2.02524002389102268789e-11"),new s.default("-1.35249504915790756375e-8"),new s.default("3.59325051419993077021e-6"),new s.default("-4.74007206873407909465e-4"),new s.default("2.89159652607555242092e-2"),new s.default("-1.00000000000000000080")],n=[new s.default("4.07746040061880559506e-12"),new s.default("3.06780997581887812692e-9"),new s.default("1.23210355685883423679e-6"),new s.default("3.17442024775032769882e-4"),new s.default("5.10028056236446052392e-2"),new s.default("4.00000000000000000080")],r=i.mul(i),o=r.mul(polevl(r,e)).div(polevl(r,n));return t.EULER_GAMMA.plus(i.ln()).plus(o)}const n=i.sin(),r=i.cos(),o=new s.default(1).div(i.mul(i));let l,u;if(i.lt(8)){const e=[new s.default("4.23612862892216586994"),new s.default("5.45937717161812843388"),new s.default("1.62083287701538329132"),new s.default("1.67006611831323023771e-1"),new s.default("6.81020132472518137426e-3"),new s.default("1.08936580650328664411e-4"),new s.default("5.48900223421373614008e-7")],t=[new s.default("8.16496634205391016773"),new s.default("7.30828822505564552187"),new s.default("1.86792257950184183883"),new s.default("1.78792052963149907262e-1"),new s.default("7.01710668322789753610e-3"),new s.default("1.10034357153915731354e-4"),new s.default("5.48900252756255700982e-7")],n=[new s.default("8.71001698973114191777e-2"),new s.default("6.11379109952219284151e-1"),new s.default("3.97180296392337498885e-1"),new s.default("7.48527737628469092119e-2"),new s.default("5.38868681462177273157e-3"),new s.default("1.61999794598934024525e-4"),new s.default("1.97963874140963632189e-6"),new s.default("7.82579040744090311069e-9")],r=[new s.default("1.64402202413355338886"),new s.default("6.66296701268987968381e-1"),new s.default("9.88771761277688796203e-2"),new s.default("6.22396345441768420760e-3"),new s.default("1.73221081474177119497e-4"),new s.default("2.02659182086343991969e-6"),new s.default("7.82579218933534490868e-9")];l=polevl(o,e).div(i.mul(p1evl(o,t))),u=o.mul(polevl(o,n)).div(p1evl(o,r))}else{const e=[new s.default("4.55880873470465315206e-1"),new s.default("7.13715274100146711374e-1"),new s.default("1.60300158222319456320e-1"),new s.default("1.16064229408124407915e-2"),new s.default("3.49556442447859055605e-4"),new s.default("4.86215430826454749482e-6"),new s.default("3.20092790091004902806e-8"),new s.default("9.41779576128512936592e-11"),new s.default("9.70507110881952024631e-14")],t=[new s.default("9.17463611873684053703e-1"),new s.default("1.78685545332074536321e-1"),new s.default("1.22253594771971293032e-2"),new s.default("3.58696481881851580297e-4"),new s.default("4.92435064317881464393e-6"),new s.default("3.21956939101046018377e-8"),new s.default("9.43720590350276732376e-11"),new s.default("9.70507110881952025725e-14")],n=[new s.default("6.97359953443276214934e-1"),new s.default("3.30410979305632063225e-1"),new s.default("3.84878767649974295920e-2"),new s.default("1.71718239052347903558e-3"),new s.default("3.48941165502279436777e-5"),new s.default("3.47131167084116673800e-7"),new s.default("1.70404452782044526189e-9"),new s.default("3.85945925430276600453e-12"),new s.default("3.14040098946363334640e-15")],r=[new s.default("1.68548898811011640017"),new s.default("4.87852258695304967486e-1"),new s.default("4.67913194259625806320e-2"),new s.default("1.90284426674399523638e-3"),new s.default("3.68475504442561108162e-5"),new s.default("3.57043223443740838771e-7"),new s.default("1.72693748966316146736e-9"),new s.default("3.87830166023954706752e-12"),new s.default("3.14040098946363335242e-15")];l=polevl(o,e).div(i.mul(p1evl(o,t))),u=o.mul(polevl(o,n)).div(p1evl(o,r))}return l.mul(n).minus(u.mul(r))},t.Chi=function Chi(e){const i=new s.default(e),n=i.abs();if(n.isZero())return new s.default(-1/0);if(n.lt(8)){let e=1,i=n.mul(n).div(4),r=i;for(let t=0;t<200&&(i=i.mul(n).mul(n).mul(e).div(new s.default(e+1).mul(2*e+1).mul(2*e+2)),r=r.plus(i),e++,!i.abs().lt(getSeriesError()));t++);return t.EULER_GAMMA.plus(n.ln()).plus(r)}function EiLocal(e){if(e.isZero())return new s.default(-1/0);if(e.gt(l)||e.lt(-40)){let t=new s.default(1),i=new s.default(1),n=t.abs();for(let s=1;s<u;s++){t=t.mul(s).div(e);const r=t.abs();if(r.gt(n))break;if(n=r,i=i.plus(t),r.lt(getSeriesError()))break}return e.exp().mul(i).div(e)}let i=e,n=i;for(let t=1;t<c&&(i=i.mul(e).mul(t).div(new s.default(t+1).mul(t+1)),n=n.plus(i),!i.abs().lt(getSeriesError()));t++);return t.EULER_GAMMA.plus(e.abs().ln()).plus(n)}return EiLocal(i).plus(EiLocal(i.neg())).div(2)},t.Ei=function Ei(e){const i=new s.default(e);if(i.isZero())return new s.default(-1/0);if(i.gt(l)||i.lt(-40)){let e=new s.default(1),t=new s.default(1),n=e.abs();for(let s=1;s<u;s++){e=e.mul(s).div(i);const r=e.abs();if(r.gt(n))break;if(n=r,t=t.plus(e),r.lt(getSeriesError()))break}return i.exp().mul(t).div(i)}let n=i,r=n;for(let e=1;e<c&&(n=n.mul(i).mul(e).div(new s.default(e+1).mul(e+1)),r=r.plus(n),!n.abs().lt(getSeriesError()));e++);return t.EULER_GAMMA.plus(i.abs().ln()).plus(r)},t.Li=function Li(e){const i=new s.default(e);if(i.lte(0))return new s.default(NaN);if(i.eq(1))return new s.default(-1/0);const n=i.ln();if(n.isZero())return new s.default(-1/0);if(n.gt(l)||n.lt(-40)){let e=new s.default(1),t=new s.default(1),i=e.abs();for(let s=1;s<u;s++){e=e.mul(s).div(n);const r=e.abs();if(r.gt(i))break;if(i=r,t=t.plus(e),r.lt(getSeriesError()))break}return n.exp().mul(t).div(n)}let r=n,o=r;for(let e=1;e<c&&(r=r.mul(n).mul(e).div(new s.default(e+1).mul(e+1)),o=o.plus(r),!r.abs().lt(getSeriesError()));e++);return t.EULER_GAMMA.plus(n.abs().ln()).plus(o)};const s=n(i(3110)),r=i(4703),o=i(551);t.EULER_GAMMA=new s.default("0.5772156649015328606065120900824024310421593359399235988057672348848677267776646709369470632917467495");const a=1e9,l=40,u=100,c=500;function getSeriesError(e=8){return new s.default(10).pow(-(s.default.precision+e))}function gammaSpouge(e){const t=s.default.precision;s.default.set({precision:Math.floor(1.45*t)});try{const i=t,n=function calcCoeffs(e){const t=[];let i=new s.default(1);const n=s.default.acos(-1);t[0]=n.times(2).sqrt();for(let n=1;n<e;n++)t[n]=s.default.exp(e-n).times(s.default.pow(e-n,n-.5)).div(i),i=i.times(-n);return t}(i);let r=n[0];for(let t=1;t<i;t++)r=r.plus(n[t].div(e.plus(t)));return r=r.times(s.default.exp(e.plus(i).neg())).times(s.default.pow(e.plus(i),e.plus(.5))),r.div(e)}finally{s.default.set({precision:t})}}},7741(e,t,i){"use strict";t.expand=expand;const n=i(296),s=i(6099),r=i(8300);function powerExpandToArray(e,t){let i=function constructRow(){return e.map((t,i)=>{const n=new Array(e.length).fill(0);return n.push(1),n[i]=1,n})}();for(let n=0;n<t-1;n++){const t=[];for(let n=0;n<i.length;n++)for(let s=0;s<e.length;s++){const e=[...i[n]];e[s]++,t.push(e)}const n=new Map;for(const e of t){const t=e.slice(0,-1).join(","),i=n.get(t);i?i[i.length-1]+=e[e.length-1]:n.set(t,[...e])}i=Array.from(n.values())}return i}function expandArrayToExpression(e,t,i){const n=[],s=i?`${i}*`:"";for(let i=0;i<e.length;i++){const r=e[i],o=[];for(let e=0;e<r.length-1;e++){const i=t[e],n=r[e];1===n?o.push(`(${i})`):0!==n&&o.push(`(${i})^${n}`)}let a=o.join("*");const l=r[r.length-1];1!==l&&(a=`(${l})*${a}`),n.push(s+a)}return n.join("+")}function isExpandable(e){return e.isComplex()||!e.getMultiplier().isOne()||e.value.includes("(")||!e.isLinear()}function powerExpand(e){let t=e;if(e.isSum()&&e.getPower().isInteger()){const i=e.getPower().sign(),s=e.getPower().abs(),r=e.elementsArray().map(e=>e.text()),o=e.getMultiplier().isOne()?void 0:(i<0?e.getMultiplier().invert():e.getMultiplier()).text(),a=expandArrayToExpression(powerExpandToArray(r,Number(s)),r,o);t=n.Expression.create(a),-1===i&&(t=t.invert())}return t}function sumExpandMultiply(e,t){let i;return t.isSum()&&!e.isSum()?i=sumExpandMultiply(t,e):e.isSum()?(e.isLinear()||(e=powerExpand(e)),e.isLinear()?(i=(0,s.zero)(),e.each(e=>{if(isExpandable(e)&&(e=expand(e)),t.isSum()||e.isSum())i=i.plus(sumExpandMultiply(t,e));else{const n=t.times(e);i=i.plus(n)}})):i=t.isSum()&&t.isLinear()?sumExpandMultiply(t,e):e.times(t)):i=expand(e).times(expand(t)),i}function unwrap(e){if(e.isFunction(r.WRAP)){return e.getArguments()[0].pow(e.getPower()).times(e.getMultiplier())}return e}function expand(e){let t;if(isExpandable(e=unwrap(e)))if(e.isNUM()||e.isVAR())t=e.copy();else{if(t=e.distributeMultiplier(),t.isSum()&&(t=powerExpand(t),t.isSum()&&(t=function expandTerms(e){if(!e.isLinear())return e;let t=(0,s.zero)();return e.each(e=>{t=t.plus(expand(e))}),t}(t))),t.isProduct()&&(t=function productExpand(e){let t;t=n.Expression.fromRational(e.getMultiplier());const i=e.getPower(),s=i.isOne();return e.each(e=>{s||(e=e.pow(i));const n=(e=expand(e=unwrap(e))).getPower();e.isProduct()&&n.isInteger()&&!n.isOne()?e.each(e=>{t=t.times(e.pow(n))}):t=t.isSum()||e.isSum()?sumExpandMultiply(t,e):t.times(e)}),t}(t)),t.isFunction()){const e=t.getArguments().map(e=>expand(e));if(t.name===r.FACTORIAL)t=function factorialExpand(e){const t=e.getArguments();let i=e;const s=t[0].elementsArray().sort((e,t)=>e.isNUM()?1:-1);if(2===s.length){const o=s[0],a=s[1];if(o.isVAR()&&o.isLinear()&&a.isInteger()){const t=e.getPower(),s=Number(a.getMultiplier().numerator);i=n.Expression.toFunction(r.FACTORIAL,[o]);for(let e=1;e<=s;e++){const t=o.plus(e);i=i.times(t)}i=i.pow(t)}else{let e=n.Expression.toFunction(i.name,t);e.multiplier=i.multiplier,e=n.Expression.setPower(e,i.getPower()),i=e}}else{let e=n.Expression.toFunction(i.name,t);e.multiplier=i.multiplier,e=n.Expression.setPower(e,i.getPower()),i=e}return i}(t);else{let i=n.Expression.toFunction(t.name,e);i.multiplier=t.multiplier,i=n.Expression.setPower(i,t.getPower()),t=i}}if(t.isEXP()){const e=expand(t.getPower()),i=expand(t.getBase()).pow(e);i.multiplier=i.getMultiplier().times(t.getMultiplier()),t=i}}else t=e.copy();return t}},2348(e,t){"use strict";function fresnelIntegral(e,t){const i=[1,-3,105,-10395],n=[1,-15,945,-135135],s=.5;let r;if(Number.isNaN(e))r=NaN;else if(Number.isFinite(e))if(0===e)r=0;else{const o=e<0?-1:1;e=Math.abs(e);const a=Math.PI*e*e*s,l=0!==t;if(e>=8){const t=1/(Math.PI*Math.PI*e**4),[u,c,p,m]=i,[g,d,h,E]=n,x=(u+c*t+p*t**2+m*t**3)/(Math.PI*e),y=(g+d*t+h*t**2+E*t**3)/(Math.PI**2*e**3);r=o*(l?s-x*Math.cos(a)-y*Math.sin(a):s+x*Math.sin(a)-y*Math.cos(a))}else{const t=l?e=>Math.sin(Math.PI*e*e*s):e=>Math.cos(Math.PI*e*e*s),i=Math.max(1,Math.ceil(2*e));let n=0,a=0;for(let r=0;r<i;r++){const o=e*(r+1)/i,l=(a+o)*s,u=t(a),c=t(l),p=t(o),m=[[a,o,u,c,p,(o-a)/6*(u+4*c+p),0]];for(;m.length>0;){const e=m.pop(),[r,o,a,l,u,c,p]=e,g=(r+o)*s,d=(g+o)*s,h=t((r+g)*s),E=t(d),x=(g-r)/6*(a+4*h+l),y=(o-g)/6*(l+4*E+u),v=x+y;p>=20||Math.abs(v-c)<=15e-13/i?n+=v+(v-c)/15:(m.push([g,o,l,E,u,y,p+1]),m.push([r,g,a,h,l,x,p+1]))}a=o}r=o*n}}else r=Math.sign(e)*s;return r}t.fresnelIntegral=fresnelIntegral,t.fresnelS=function fresnelS(e){return fresnelIntegral(e,1)},t.fresnelC=function fresnelC(e){return fresnelIntegral(e,0)}},3703(e,t){"use strict";t.EULER_GAMMA=void 0,t.factorial=factorial,t.gammaLN=gammaLN,t.gamma=gamma,t.erfc=erfc,t.erf=function erf(e){if(0===e)return 0;return 1-erfc(e)},t.GCD=GCD,t.isInt=isInt,t.doubleFactorial=function doubleFactorial(e){if(isInt(e)){if(!Number.isSafeInteger(e)||e<0)return NaN;let t=1;for(let i=e;i>1&&(t*=i,Number.isFinite(t));i-=2);return t}const t=Math.cos(Math.PI*e);return Math.pow(2,(2*e+1-t)/4)*Math.pow(Math.PI,(t-1)/4)*gamma(e/2+1)},t.LCM=function LCM(...e){let t=1;for(const i of e){if(!Number.isSafeInteger(i)){t=NaN;break}if(0===i){t=0;break}const e=GCD(t,i),n=Math.abs(t/e*i);if(!Number.isSafeInteger(n)){t=NaN;break}t=n}return t},t.modInv=function modInv(e,t){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||0===t)return NaN;let i=0,n=1,s=Math.abs(t),r=mod(e,s);for(;0!==r;){const e=Math.floor(s/r);[i,n]=[n,i-e*n],[s,r]=[r,s-e*r]}return 1===s?mod(i,Math.abs(t)):NaN},t.isPrime=function isPrime(e){if(!Number.isSafeInteger(e)||e<2)return 0;if(2===e)return 1;if(e%2==0)return 0;for(let t=3;t*t<=e;t+=2)if(e%t===0)return 0;return 1},t.heaviside=function heaviside(e){return Number.isNaN(e)?NaN:e<0?0:e>0?1:.5},t.round=function round(e,t=0){let i=e;if(!isInt(e)){const n=Math.pow(10,t),s=e*n;i=(s<0?-Math.round(-s):Math.round(s))/n}return i},t.sum=sum,t.getRandomInt=function getRandomInt(e,t){return e=Math.ceil(e),t=Math.floor(t),Math.floor(Math.random()*(t-e+1))+e},t.mod=mod,t.sinc=function sinc(e){if(0===e)return 1;if(Math.abs(e)<1e-4){const t=e*e;return 1-t/6+t*t/120-t*t*t/5040}return Math.sin(e)/e},t.Si=function Si(e){if(0===e)return 0;let t=1;e<0&&(t=-1,e=-e);function polevl(e,t){let i=t[0];for(let n=1;n<t.length;n++)i=i*e+t[n];return i}function p1evl(e,t){let i=e+t[0];for(let n=1;n<t.length;n++)i=i*e+t[n];return i}if(e>1e9)return t*(Math.PI/2-Math.cos(e)/e);if(e<=4){const i=[20326926619595193e-28,1.279978911799433e-9,4.418278428012189e-7,9964121220438756e-20,.01420852393261499,1],n=e*e;return t*(e*polevl(n,[-8391678279103039e-26,4.625917144270128e-8,-9757593038436328e-21,.0009769454381704354,-.04134703162294066,1])/polevl(n,i))}const i=Math.sin(e),n=Math.cos(e),s=1/(e*e);let r,o;if(e<8){const t=[8.16496634205391,7.308288225055645,1.867922579501842,.1787920529631499,.007017106683227897,.00011003435715391573,5.489002527562557e-7],i=[.08710016989731142,.6113791099522193,.3971802963923375,.07485277376284691,.005388686814621773,.00016199979459893403,19796387414096365e-22,7.825790407440903e-9],n=[1.6440220241335535,.666296701268988,.09887717612776888,.006223963454417684,.0001732210814741771,20265918208634397e-22,7.825792189335346e-9];r=polevl(s,[4.236128628922166,5.4593771716181285,1.6208328770153833,.16700661183132304,.006810201324725182,.00010893658065032867,5.489002234213736e-7])/(e*p1evl(s,t)),o=s*polevl(s,i)/p1evl(s,n)}else{const t=[.9174636118736841,.17868554533207454,.012225359477197129,.00035869648188185157,4924350643178815e-21,3.21956939101046e-8,9437205903502767e-26,970507110881952e-28],i=[.6973599534432762,.33041097930563207,.03848787676499743,.001717182390523479,34894116550227946e-21,3.471311670841167e-7,1.7040445278204452e-9,3859459254302766e-27,31404009894636335e-31],n=[1.6854889881101165,.48785225869530496,.04679131942596258,.0019028442667439953,3684755044425611e-20,3.5704322344374083e-7,1.7269374896631615e-9,3878301660239547e-27,31404009894636335e-31];r=polevl(s,[.4558808734704653,.7137152741001467,.16030015822231947,.01160642294081244,.00034955644244785906,48621543082645475e-22,3.200927900910049e-8,941779576128513e-25,970507110881952e-28])/(e*p1evl(s,t)),o=s*polevl(s,i)/p1evl(s,n)}const a=Math.PI/2-r*n-o*i;return t*a},t.Shi=function Shi(e){const t=1e-16;if(0===e)return 0;const n=e<0?-1:1,s=Math.abs(e);if(s<8){let e=s,i=e,r=0;for(let n=0;n<200;n++){const n=2*r+1;if(e*=s*s*n/((n+2)*(n+2)*(n+1)),i+=e,r++,Math.abs(e)<Math.abs(i)*t)break}return n*i}function Ei(e){if(0===e)return-1/0;if(e>40||e<-40){let i=1,n=1,s=Math.abs(i);for(let r=1;r<100;r++){i*=r/e;const o=Math.abs(i);if(o>s)break;if(s=o,n+=i,o<Math.abs(n)*t)break}return Math.exp(e)*n/e}let n=e,s=n;for(let i=1;i<500&&(n*=e*i/((i+1)*(i+1)),s+=n,!(Math.abs(n)<Math.abs(s)*t));i++);return i+Math.log(Math.abs(e))+s}return.5*(Ei(e)-Ei(-e))},t.Ci=function Ci(e){if(0===e)return-1/0;e<0&&(e=-e);function polevl(e,t){let i=t[0];for(let n=1;n<t.length;n++)i=i*e+t[n];return i}function p1evl(e,t){let i=e+t[0];for(let n=1;n<t.length;n++)i=i*e+t[n];return i}if(e>1e9)return Math.sin(e)/e;if(e<=4){const t=[4077460400618806e-27,3.067809975818878e-9,12321035568588342e-22,.00031744202477503275,.051002805623644606,4],n=e*e,s=n*polevl(n,[20252400238910228e-27,-1.3524950491579076e-8,3593250514199931e-21,-.0004740072068734079,.028915965260755523,-1])/polevl(n,t);return i+Math.log(e)+s}const t=Math.sin(e),n=Math.cos(e),s=1/(e*e);let r,o;if(e<8){const t=[8.16496634205391,7.308288225055645,1.867922579501842,.1787920529631499,.007017106683227897,.00011003435715391573,5.489002527562557e-7],i=[.08710016989731142,.6113791099522193,.3971802963923375,.07485277376284691,.005388686814621773,.00016199979459893403,19796387414096365e-22,7.825790407440903e-9],n=[1.6440220241335535,.666296701268988,.09887717612776888,.006223963454417684,.0001732210814741771,20265918208634397e-22,7.825792189335346e-9];r=polevl(s,[4.236128628922166,5.4593771716181285,1.6208328770153833,.16700661183132304,.006810201324725182,.00010893658065032867,5.489002234213736e-7])/(e*p1evl(s,t)),o=s*polevl(s,i)/p1evl(s,n)}else{const t=[.9174636118736841,.17868554533207454,.012225359477197129,.00035869648188185157,4924350643178815e-21,3.21956939101046e-8,9437205903502767e-26,970507110881952e-28],i=[.6973599534432762,.33041097930563207,.03848787676499743,.001717182390523479,34894116550227946e-21,3.471311670841167e-7,1.7040445278204452e-9,3859459254302766e-27,31404009894636335e-31],n=[1.6854889881101165,.48785225869530496,.04679131942596258,.0019028442667439953,3684755044425611e-20,3.5704322344374083e-7,1.7269374896631615e-9,3878301660239547e-27,31404009894636335e-31];r=polevl(s,[.4558808734704653,.7137152741001467,.16030015822231947,.01160642294081244,.00034955644244785906,48621543082645475e-22,3.200927900910049e-8,941779576128513e-25,970507110881952e-28])/(e*p1evl(s,t)),o=s*polevl(s,i)/p1evl(s,n)}return r*t-o*n},t.Chi=function Chi(e){const t=1e-16,n=Math.abs(e);if(0===n)return-1/0;if(n<8){let e=1,s=n*n/4,r=s;for(let i=0;i<200&&(s*=n*n*e/((e+1)*(2*e+1)*(2*e+2)),r+=s,e++,!(Math.abs(s)<Math.abs(r)*t));i++);return i+Math.log(n)+r}function Ei(e){if(0===e)return-1/0;if(e>40||e<-40){let i=1,n=1,s=Math.abs(i);for(let r=1;r<100;r++){i*=r/e;const o=Math.abs(i);if(o>s)break;if(s=o,n+=i,o<Math.abs(n)*t)break}return Math.exp(e)*n/e}let n=e,s=n;for(let i=1;i<500&&(n*=e*i/((i+1)*(i+1)),s+=n,!(Math.abs(n)<Math.abs(s)*t));i++);return i+Math.log(Math.abs(e))+s}return.5*(Ei(e)+Ei(-e))},t.Ei=function Ei(e){if(0===e)return-1/0;if(e>40||e<-40){let t=1,i=1,n=Math.abs(t);for(let s=1;s<100;s++){t*=s/e;const r=Math.abs(t);if(r>n)break;if(n=r,i+=t,r<1e-16*Math.abs(i))break}return Math.exp(e)*i/e}let t=e,n=t;for(let i=1;i<500&&(t*=e*i/((i+1)*(i+1)),n+=t,!(Math.abs(t)<1e-16*Math.abs(n)));i++);return i+Math.log(Math.abs(e))+n},t.Li=function Li(e){if(e<=0)return NaN;if(1===e)return-1/0;const t=Math.log(e);if(0===t)return-1/0;if(t>40||t<-40){let e=1,i=1,n=Math.abs(e);for(let s=1;s<100;s++){e*=s/t;const r=Math.abs(e);if(r>n)break;if(n=r,i+=e,r<1e-16*Math.abs(i))break}return Math.exp(t)*i/t}let n=t,s=n;for(let e=1;e<500&&(n*=t*e/((e+1)*(e+1)),s+=n,!(Math.abs(n)<1e-16*Math.abs(s)));e++);return i+Math.log(Math.abs(t))+s};const i=.5772156649015329;t.EULER_GAMMA=i;function factorial(e){if(!isInt(e))return gamma(e+1);if(!Number.isSafeInteger(e)||e<0)return NaN;if(e>170)return 1/0;const t=[1,1,2,6,24,120,720,5040,40320,362880,3628800,39916800,479001600,6227020800,87178291200,1307674368e3,20922789888e3,355687428096e3,6402373705728e3,0x1b02b9306890000,243290200817664e4,5109094217170944e4,11240007277776077e5,2585201673888498e7,6204484017332394e8,15511210043330986e9,40329146112660565e10,10888869450418352e12,30488834461171384e13,8.841761993739701e30,26525285981219103e16];if(void 0!==t[e])return t[e];const i=t.length-1;let n=t[i];for(let t=i+1;t<=e;t++)n*=t;return n}function gammaLN(e){const t=[.9999999999999953,57.15623566586292,-59.59796035547549,14.136097974741746,-.4919138160976202,3399464998481189e-20,4652362892704858e-20,-9837447530487956e-20,.0001580887032249125,-.00021026444172410488,.00021743961811521265,-.0001643181065367639,8441822398385275e-20,-26190838401581408e-21,36899182659531625e-22];let i=0;if(e<.5)return Math.log(Math.PI/Math.sin(e*Math.PI))-gammaLN(1-e);const n=(e-=1)+607/128+.5;for(let n=14;n>=1;n--)i+=t[n]/(e+n);return i+=t[0],Math.log(Math.sqrt(2*Math.PI))+Math.log(i)-n+Math.log(n)*(e+.5)}function gamma(e){return isInt(e)&&e>1?factorial(e-1):Math.exp(gammaLN(e))}function erfc(e){if(e<0)return 2-erfc(-e);const t=e**2;return.5641895835477563/(e+2.0695502313291416)*((t+2.710785400451478*e+5.807556131303016)/(t+3.4795405709951894*e+12.061668872862395))*((t+3.474695137774396*e+12.074020364063815)/(t+3.720684439602251*e+8.443197810039685))*((t+4.0056150920225955*e+9.305966594858878)/(t+3.902257040299241*e+6.361616309538805))*((t+5.167227058178126*e+9.126616176736732)/(t+4.032968931092625*e+5.135785305856816))*((t+5.959087954466333*e+9.194356128869693)/(t+4.112409429574509*e+4.486403295234087))*Math.exp(-t)}function GCD(...e){let t=0;const i=[...new Set(e)].map(e=>Math.abs(e));for(const e of i){if(!Number.isSafeInteger(e)){t=NaN;break}let i=e;for(;0!==i;){const e=t%i;t=i,i=e}}return t}function isInt(e){return e%1==0}function sum(...e){let t=0;for(let i=0;i<e.length;i++)t+=e[i];return t}function mod(e,t){return(e%t+t)%t}},5523(e,t,i){"use strict";t.toCommonDenominator=function toCommonDenominator(e){let t=e;if(e.isProduct())t=n.Expression.fromRational(e.getMultiplier()),e.each(i=>{i=i.pow(e.getPower()),t=i.isSum()?t.times(toCommonDenominator(i)):t.times(i)});else if(e.isSum()){if(e=function groupByDenominator(e){let t=e;if(e.isSum()){let i=(0,s.zero)();const r={};e.each(e=>{const t=e.getNumerator(),n=e.getDenominator();if(e.getMultiplier().asDecimal&&(t.getMultiplier().asDecimal=!0),n.isOne())i=i.plus(t);else{const e=n.text();r[e]=r[e]?r[e].plus(t):t}}),t=i;for(const e in r)t=t.plus(r[e].div(n.Expression.create(e)));t=t.pow(e.getPower()).times(e.getMultiplier())}return t}(e),!e.isSum())return e;const i=e.getPower().abs(),r=e.getMultiplier(),o=e.elementsArray();let a=!1,l=!1;for(const e of o){const t=e.getDenominator();t.isOne()||(a=!0,t.isNUM()||(l=!0))}if(!a)return e;if(!l&&!e.isPolynomialLike())return e;let u=(0,s.zero)(),c=(0,s.one)();for(const e of o){const t=toCommonDenominator(e),i=t.getNumerator(),n=t.getDenominator();e.getMultiplier().asDecimal&&(i.getMultiplier().asDecimal=!0),u=u.times(n).plus(c.times(i)),c=c.times(n)}-1===e.getPower().sign()&&([c,u]=[u,c]),t=u.div(c),i.isOne()||(t=t.pow(i)),r.isOne()||(t=t.times(n.Expression.fromRational(r)))}return t};const n=i(296),s=i(6099)},3148(e,t,i){"use strict";t.setFunction=function setFunction(e){const t=r.mathFunctionRegistry[e.name];if("system"===t?.level)throw new o.AssignmentError((0,o.message)("restrictedVariableName",{name:e.name}));if("js"===e.type){const t=e.name;if("function"!=typeof e.fn)throw new o.UnexpectedInputError((0,o.message)("setJSFunctionExpectsFunction"));if(!e.minArgs||!e.maxArgs)throw new o.UnexpectedInputError((0,o.message)("functionRequiresMinAndMaxArgs"));r.mathFunctionRegistry[t]=entry(e.minArgs,e.maxArgs,function jsWrapper(e,t){return(...i)=>{const s=[];for(const t of i){if(!t.isNUM())return n.Expression.toFunction(e,i);s.push(Number(t.getMultiplier().toDecimal()))}return n.Expression.create(Number(t(...s)))}}(t,e.fn),17)}else if("symbolic"===e.type)if("string"==typeof e.fn){const t=e.argsOrder??n.Expression.create(e.fn).variables().sort();r.mathFunctionRegistry[e.name]=entry(e.minArgs??t.length,e.maxArgs??t.length,(0,s.wrappedFunction)(e.fn,t))}else{const t=e.name;if(void 0===e.minArgs||void 0===e.maxArgs)throw new o.UnexpectedInputError((0,o.message)("functionRequiresMinAndMaxArgs"));r.mathFunctionRegistry[t]=entry(e.minArgs,e.maxArgs,e.fn)}};const n=i(296),s=i(266),r=i(9426),o=i(4703);function entry(e,t,i,n){return{minArgs:e,maxArgs:t,fn:i,maxPrecision:n,usage:"notation",level:"user"}}},7103(e,t,i){"use strict";t.scientificToDecimal=function scientificToDecimal(e){let t;[t,e]=function stripSign(e){const t="-"===e.charAt(0);(t||"+"===e.charAt(0))&&(e=e.substring(1));return[t,e]}(e);const[i,n]=e.toLowerCase().split("e");let[s,r]=i.split(".");r=r||"";const o=s.length+(r?r.length:0),a=s+r,l=s.length+Number(n),u=l===o?"":".";let c;c=l<=0?`0${u}${"0".repeat(Math.abs(l))}${a}`:l>o?`${a}${"0".repeat(Math.abs(l-o))}`:`${a.substring(0,l)}${u}${a.substring(l)}`;return t?"-"+c:c},t.decimalSplit=function decimalSplit(e){const t=e.split(".");if(t.length>2)throw new SyntaxError((0,n.message)("invalidDecimalValue",{value:e}));1===t.length&&t.push("");return t},t.format=function format(e,t){const replace=function(e,t,i){return e.replace(new RegExp(`{{${t}}}`,"g"),i)};if(Array.isArray(t))for(let i=0;i<t.length;i++)e=replace(e,String(i),t[i]);else for(const i in t)e=replace(e,i,t[i]);return e};const n=i(4703)},886(e,t,i){"use strict";t.subst=subst;const n=i(296),s=i(6099),r=i(1897),o=i(7056),a=i(5817);function prodSubst(e,t,i,n){let s;if(e.isProduct())if(t.isProduct()){const o=e.getMultiplier().div(t.getMultiplier());if(o.isInteger()||a.Settings.ALLOW_RAT_SUBS){let a,l=e.elementsArray();const u=t.elementsArray();let c=!1,p=[],m=u.length;for(;u.length>0;){p=[],c=!1;const e=u[u.length-1];u.pop();for(const s of l)if(s.value===e.value){const t=s.getPower().div(e.getPower());if(void 0===a&&(a=t),!(t.isInteger()&&t.eq(a)||s.isEXP()))break;c=!0,m--}else p.push(subst(s,t,i,n));if(!c)break;l=p}0!==m||void 0===a?s=(0,r.product)(...e.elementsArray(!0).map(e=>subst(e,t,i,n))).pow(e.getPower()):(p.push(i.pow(a)),s=(0,r.product)(...p),s.multiplier=s.getMultiplier().times(o)),s=s.pow(subst(e.getPower(),t,i,n))}else s=e.copy()}else s=(0,r.product)(...e.elementsArray(!0).map(e=>subst(e,t,i,n))).pow(e.getPower());return s||e}function sumSubst(e,t,i,n){let o;if(!e.isSum())return e;const a=e.getPower(),l=e.getMultiplier();if(t.isSum()){const u=e.elementsArray().slice(),c=t.isSum()&&t.isLinear()?t.elementsArray():[t.toUnitMultiplier()],p=[];let m;for(const s of c){const o=u.findIndex(e=>e.value===s.value&&e.getPower().eq(s.getPower()));if(-1===o){return(0,r.sum)(...e.elementsArray().map(e=>subst(e,t,i,n))).pow(a).times(l)}const c=u[o];u.splice(o,1),p.push(c);const g=c.div(s);if(m){if(!g.eq(m)){return(0,r.sum)(...e.elementsArray().map(e=>subst(e,t,i,n))).pow(a).times(l)}}else m=g}const g=i.times(m||(0,s.one)()),d=u.map(e=>subst(e,t,i,n));d.push(g),o=(0,r.sum)(...d).pow(a).times(l)}else o=(0,r.sum)(...e.elementsArray().map(e=>subst(e,t,i,n))).pow(a).times(l);return o||e}function subst(e,t,i,r=!1){let o;if(e=n.Expression.create(e),t=n.Expression.create(t),i=n.Expression.create(i),e.isNUM()&&!r)o=e;else if(e.eq(t))o=i;else if(t.isVAR()&&t.getPower().isOne()&&t.getMultiplier().isOne()&&e.isVAR()&&e.value===t.value){const n=subst(e.getPower(),t,i,r),a=e.getMultiplier();o=n.isNUM()&&n.getMultiplier().isNegative()?(0,s.one)().div(i.copy().pow(n.abs())):i.copy().pow(n),a.isOne()||(o=o.times(a))}else if(e.isProduct())o=prodSubst(e,t,i,r);else if(e.isSum())o=sumSubst(e,t,i,r);else if(e.isFunction())e.value===t.value?o=i.copy():(o=n.Expression.Function(e.name),o.args=e.getArguments().map(e=>subst(e,t,i,r)),o.updateValue()),o=o.pow(e.getPower()).times(e.getMultiplier());else if(e.isEXP()){const n=subst(e.getBase(),t,i,!0),s=subst(e.getPower(),t,i,r);o=n.pow(s).times(e.getMultiplier())}return o||e}function getU(e,t){const i=n.Expression.create(e).variables();t??={};let s,r=0;do{0}while(i.includes(s)||s in t);return s}function uSub(e,t,i){i??={},n.Expression.create(e),n.Expression.create(t);const s=getU(e,i),r=subst(e,t,(0,o._)(s));return r.eq(e)||(i[s]=t),[r,i]}function rewriteRadicals(e,t,i,r){let o=e;if((e.isVAR()||e.isEXP())&&e.value===t){const t=e.getMultiplier(),s=e.getPower();if(s.isNUM()){const e=s.getMultiplier(),o=r*e.numerator,a=e.denominator<0n?-e.denominator:e.denominator;if(o%a!==0n)n.Expression.fromRational(t).times(i.pow(`${o}/${a}`));else{const e=o/a;n.Expression.fromRational(t).times(i.pow(e.toString()))}}else n.Expression.fromRational(t).times(i.pow(s.times(r.toString())))}else if(e.isEXP()){const s=rewriteRadicals(e.getBase(),t,i,r),a=rewriteRadicals(e.getPower(),t,i,r);n.Expression.toEXP(s,a),e.getMultiplier().isOne()||o.times(n.Expression.fromRational(e.getMultiplier()))}else if(e.isSum()){const a=e.getMultiplier(),l=e.getPower();(0,s.zero)();for(const n of e.elementsArray())o.plus(rewriteRadicals(n,t,i,r));l.isOne()||o.pow(l),a.isOne()||o.times(n.Expression.fromRational(a))}else if(e.isProduct()){const a=e.getMultiplier(),l=e.getPower();(0,s.one)();for(const n of e.elementsArray())o.times(rewriteRadicals(n,t,i,r));l.isOne()||o.pow(l),a.isOne()||o.times(n.Expression.fromRational(a))}else if(e.isFunction()){const s=e.getArguments();if(s.length>0){const a=s.map(e=>rewriteRadicals(e,t,i,r));n.Expression.toFunction(e.name,a),o.multiplier=e.getMultiplier().copy(),n.Expression.setPower(o,e.getPower())}}return o}},5869(e,t){"use strict";t.arrayUnique=function arrayUnique(e){return[...new Set(e)]},t.arrayAddUnique=function arrayAddUnique(e,t){for(const i of e)t.includes(i)||t.push(i);return t},t.isSorted=function isSorted(e){if(e.length<=1)return!0;for(let t=1;t<e.length;t++)if(e[t-1]>e[t])return!1;return!0}},9390(e,t,i){"use strict";t.loadParserFunctions=function loadParserFunctions(){(0,o.loadScriptingFunctions)(),(0,n.loadAssumptionFunctions)(),(0,s.loadMatrixFunctions)(),(0,a.loadVectorFunctions)(),(0,r.loadPolynomialFunctions)(),(0,l.loadComplexFunctions)(),(0,u.loadMathFunctions)()};const n=i(3263),s=i(981),r=i(1808),o=i(1929),a=i(1027),l=i(8522),u=i(6953)},6953(e,t,i){"use strict";t.loadMathFunctions=function loadMathFunctions(){Object.assign(n.mathFunctionRegistry,{cos:(0,n.systemFunction)({fn:c.cos,minArgs:1,maxArgs:1,distElWise:!0}),sin:(0,n.systemFunction)({fn:c.sin,minArgs:1,maxArgs:1,distElWise:!0}),tan:(0,n.systemFunction)({fn:c.tan,minArgs:1,maxArgs:1,distElWise:!0}),sec:(0,n.systemFunction)({fn:c.sec,minArgs:1,maxArgs:1,distElWise:!0}),csc:(0,n.systemFunction)({fn:c.csc,minArgs:1,maxArgs:1,distElWise:!0}),cot:(0,n.systemFunction)({fn:c.cot,minArgs:1,maxArgs:1,distElWise:!0}),acos:(0,n.systemFunction)({fn:c.acos,minArgs:1,maxArgs:1,distElWise:!0}),asin:(0,n.systemFunction)({fn:c.asin,minArgs:1,maxArgs:1,distElWise:!0}),atan:(0,n.systemFunction)({fn:c.atan,minArgs:1,maxArgs:1,distElWise:!0}),asec:(0,n.systemFunction)({fn:c.asec,minArgs:1,maxArgs:1,distElWise:!0}),acsc:(0,n.systemFunction)({fn:c.acsc,minArgs:1,maxArgs:1,distElWise:!0}),acot:(0,n.systemFunction)({fn:c.acot,minArgs:1,maxArgs:1,distElWise:!0}),atan2:(0,n.systemFunction)({fn:c.atan2,minArgs:2,maxArgs:2,distElWise:!0}),cosh:(0,n.systemFunction)({fn:c.cosh,minArgs:1,maxArgs:1,distElWise:!0}),sinh:(0,n.systemFunction)({fn:c.sinh,minArgs:1,maxArgs:1,distElWise:!0}),tanh:(0,n.systemFunction)({fn:c.tanh,minArgs:1,maxArgs:1,distElWise:!0}),sech:(0,n.systemFunction)({fn:c.sech,minArgs:1,maxArgs:1,distElWise:!0}),csch:(0,n.systemFunction)({fn:c.csch,minArgs:1,maxArgs:1,distElWise:!0}),coth:(0,n.systemFunction)({fn:c.coth,minArgs:1,maxArgs:1,distElWise:!0}),acosh:(0,n.systemFunction)({fn:c.acosh,minArgs:1,maxArgs:1,distElWise:!0}),asinh:(0,n.systemFunction)({fn:c.asinh,minArgs:1,maxArgs:1,distElWise:!0}),atanh:(0,n.systemFunction)({fn:c.atanh,minArgs:1,maxArgs:1,distElWise:!0}),asech:(0,n.systemFunction)({fn:c.asech,minArgs:1,maxArgs:1,distElWise:!0}),acsch:(0,n.systemFunction)({fn:c.acsch,minArgs:1,maxArgs:1,distElWise:!0}),acoth:(0,n.systemFunction)({fn:c.acoth,minArgs:1,maxArgs:1,distElWise:!0}),line:(0,n.systemFunction)({fn:l.line,minArgs:2,maxArgs:3,distElWise:!1}),abs:(0,n.systemFunction)({fn:u.abs,minArgs:1,maxArgs:1,distElWise:!0}),sqrt:(0,n.systemFunction)({fn:u.sqrt,minArgs:1,maxArgs:1,distElWise:!0}),nthroot:(0,n.systemFunction)({fn:u.nthroot,minArgs:2,maxArgs:2,distElWise:!0}),cbrt:(0,n.systemFunction)({fn:u.cbrt,minArgs:1,maxArgs:1,distElWise:!0}),subst:(0,n.systemFunction)({fn:a.subst,minArgs:3,maxArgs:3,distElWise:!0}),log:(0,n.systemFunction)({fn:u.log,minArgs:1,maxArgs:2,distElWise:!0}),log10:(0,n.systemFunction)({fn:u.log10,minArgs:1,maxArgs:1,distElWise:!0}),radians:(0,n.systemFunction)({fn:u.radians,minArgs:1,maxArgs:1,distElWise:!0}),degrees:(0,n.systemFunction)({fn:u.degrees,minArgs:1,maxArgs:1,distElWise:!0}),exp:(0,n.systemFunction)({fn:u.exp,minArgs:1,maxArgs:1,distElWise:!0}),erf:(0,n.systemFunction)({fn:u.erf,minArgs:1,maxArgs:1,distElWise:!0}),erfc:(0,n.systemFunction)({fn:u.erfc,minArgs:1,maxArgs:1,distElWise:!0}),gamma:(0,n.systemFunction)({fn:u.gamma,minArgs:1,maxArgs:1,distElWise:!0}),gamma_incomplete:(0,n.systemFunction)({fn:u.gammaIncomplete,minArgs:2,maxArgs:2,distElWise:!0}),gamma_incomplete_lower:(0,n.systemFunction)({fn:u.gammaIncompleteLower,minArgs:2,maxArgs:2,distElWise:!0}),[s.DIRAC]:(0,n.systemFunction)({fn:u.dirac,minArgs:1,maxArgs:1,distElWise:!0}),[s.HEAVISIDE]:(0,n.systemFunction)({fn:u.heaviside,minArgs:1,maxArgs:1,distElWise:!0}),step:(0,n.systemFunction)({fn:u.step,minArgs:1,maxArgs:1,distElWise:!0}),rect:(0,n.systemFunction)({fn:u.rect,minArgs:1,maxArgs:1,distElWise:!0}),tri:(0,n.systemFunction)({fn:u.tri,minArgs:1,maxArgs:1,distElWise:!0}),continued_fraction:(0,n.systemFunction)({fn:m.continuedFraction,minArgs:1,maxArgs:2,distElWise:!1}),scientific:(0,n.systemFunction)({fn:u.scientific,minArgs:1,maxArgs:2,distElWise:!0}),hypot:(0,n.systemFunction)({fn:l.hypot,minArgs:2,maxArgs:2,distElWise:!0}),[s.FACTORIAL]:(0,n.systemFunction)({fn:u.factorial,minArgs:1,maxArgs:1,distElWise:!0}),factorial:(0,n.systemFunction)({fn:u.factorial,minArgs:1,maxArgs:1,distElWise:!0}),[s.DOUBLE_FACTORIAL]:(0,n.systemFunction)({fn:u.doubleFactorial,minArgs:1,maxArgs:1,distElWise:!0}),expand:(0,n.systemFunction)({fn:o.expand,minArgs:1,maxArgs:1,distElWise:!0}),numeric:(0,n.systemFunction)({fn:r.numeric,minArgs:1,maxArgs:2,equationArgs:[0],distElWise:!1,deferArguments:!0}),round:(0,n.systemFunction)({fn:u.round,minArgs:1,maxArgs:2,distElWise:!0}),sign:(0,n.systemFunction)({fn:u.sign,minArgs:1,maxArgs:1,distElWise:!0}),floor:(0,n.systemFunction)({fn:u.floor,minArgs:1,maxArgs:1,distElWise:!0}),ceil:(0,n.systemFunction)({fn:u.ceiling,minArgs:1,maxArgs:1,distElWise:!0}),ceiling:(0,n.systemFunction)({fn:u.ceiling,minArgs:1,maxArgs:1,distElWise:!0}),trunc:(0,n.systemFunction)({fn:p.trunc,minArgs:1,maxArgs:1,distElWise:!0}),mod:(0,n.systemFunction)({fn:u.mod,minArgs:2,maxArgs:2,distElWise:!0}),modinv:(0,n.systemFunction)({fn:u.modInv,minArgs:2,maxArgs:2,distElWise:!0}),parens:(0,n.systemFunction)({fn:u.parens,minArgs:1,maxArgs:1,distElWise:!0}),count:(0,n.systemFunction)({fn:m.count,minArgs:1,maxArgs:1,distElWise:!1}),size:(0,n.systemFunction)({fn:m.size,minArgs:1,maxArgs:1,distElWise:!1}),contains:(0,n.systemFunction)({fn:u.contains,minArgs:2,maxArgs:2,distElWise:!1}),max:(0,n.systemFunction)({fn:u.max,minArgs:2,maxArgs:-1,distElWise:!0}),min:(0,n.systemFunction)({fn:u.min,minArgs:2,maxArgs:-1,distElWise:!0}),isprime:(0,n.systemFunction)({fn:m.isprime,minArgs:1,maxArgs:1,distElWise:!0}),fib:(0,n.systemFunction)({fn:u.fibonacci,minArgs:1,maxArgs:1,distElWise:!0}),sinc:(0,n.systemFunction)({fn:u.sinc,minArgs:1,maxArgs:1,distElWise:!0}),Shi:(0,n.systemFunction)({fn:u.Shi,minArgs:1,maxArgs:1,distElWise:!0}),Si:(0,n.systemFunction)({fn:u.Si,minArgs:1,maxArgs:1,distElWise:!0}),Chi:(0,n.systemFunction)({fn:u.Chi,minArgs:1,maxArgs:1,distElWise:!0}),Ci:(0,n.systemFunction)({fn:u.Ci,minArgs:1,maxArgs:1,distElWise:!0}),Ei:(0,n.systemFunction)({fn:u.Ei,minArgs:1,maxArgs:1,distElWise:!0}),[s.LI]:(0,n.systemFunction)({fn:u.Li,minArgs:1,maxArgs:1,distElWise:!0})})};const n=i(9426),s=i(8300),r=i(1668),o=i(7741),a=i(886),l=i(7867),u=i(8533),c=i(1649),p=i(6925),m=i(706)},7867(e,t,i){"use strict";t.hypot=function hypot(e,t){const i=[r.SIN,r.COS];let l;if(e.isFunction(i)&&t.isFunction(i)&&e.name!==t.name&&e.isLinear()&&t.isLinear()&&e.getMultiplier().eq(t.getMultiplier()))l=n.Expression.fromRational(e.getMultiplier());else{const i=(0,a.power)(e,(0,s.two)()),n=(0,a.power)(t,(0,s.two)());l=(0,a.power)((0,o.add)(i,n),(0,s.half)())}return l},t.line=function line(e,t,i="x"){if(!e||!t||e.dataType!==r.VECTOR||t.dataType!==r.VECTOR||2!==e.count()||2!==t.count())throw new l.DimensionError((0,l.message)("mismatchedDimensions",{function:"line"}));const s=e.elements[0],o=e.elements[1],a=t.elements[0],u=t.elements[1];if(!(n.Expression.isExpression(s)&&n.Expression.isExpression(o)&&n.Expression.isExpression(a)&&n.Expression.isExpression(u)))throw new l.UnexpectedInputError((0,l.message)("wrongInput",{expected:"two-dimensional vectors of scalar expressions",received:`${e.text()}, ${t.text()}`}));const c=n.Expression.create(i);return o.plus(u.minus(o).div(a.minus(s)).times(c.minus(s)))};const n=i(296),s=i(6099),r=i(8300),o=i(6255),a=i(3957),l=i(4703)},8533(e,t,i){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.sqrt=sqrt,t.scientific=function scientific(e,t=10){const i=o.Expression.create(t),n=i.isNUM()&&i.isInteger()?Number(i.getMultiplier().numerator):Number.NaN,s=(0,E.validateScientificSignificantDigits)(n,i.text()),r=o.Expression.create(e,void 0,!0);return r.scientific=s,r},t.nthroot=function nthroot(e,t){return(0,g.power)(o.Expression.create(e),(0,a.one)().div(o.Expression.create(t)))},t.radians=function radians(e){return o.Expression.create(e).times(o.Expression.Pi()).div(180)},t.degrees=function degrees(e){return o.Expression.create(e).times(180).div(o.Expression.Pi())},t.log10=function log10(e){return log(e,10)},t.cbrt=function cbrt(e){if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();if(e.isOne())return(0,a.one)();if(e.isZero())return(0,a.zero)();if(A.Settings.EVALUATE&&e.isConstant()){const t=e.isNUM()||e.isComplex()?e:e.evaluate();if(t.isNUM()){const e=t.getMultiplier().toDecimal(),i=new s.default(1).div(3),n=e.isNeg()?e.abs().pow(i).neg():e.pow(i);return o.Expression.create(n)}if(t.isComplex()){const e=t.realPart(),i=t.imagPart(),n=Number(e.getMultiplier().toDecimal()),s=Number(i.getMultiplier().toDecimal()),r=Math.hypot(n,s),a=Math.atan2(s,n),l=Math.cbrt(r),u=a/3,c=l*Math.cos(u),p=l*Math.sin(u);return o.Expression.create(c).plus(o.Expression.create(p).times(o.Expression.Img()))}}if(e.isFunction(c.CBRT))return(0,m.multiply)(cbrt(o.Expression.fromRational(e.getMultiplier())),(0,g.power)(e.toUnitMultiplier(),(0,a.third)()));return o.Expression.toFunction(c.CBRT,[e])},t.parens=function parens(e){return o.Expression.toFunction(c.WRAP,[o.Expression.create(e)])},t.fibonacci=function fibonacci(e){let t;t=(e=o.Expression.create(e)).isNUM()&&e.isInteger()?o.Expression.Number((0,y.fibonacci)(e.getMultiplier().numerator)):o.Expression.toFunction(p.FIB,[o.Expression.create(e)]);return t},t.factorial=factorial,t.doubleFactorial=function doubleFactorial(e){let t;if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new x.UndefinedError((0,x.message)("undefinedValue"));return o.Expression.Inf()}if(A.Settings.EVALUATE)if(e.isInteger()){const i=e.isEven(),n=Number(e.getMultiplier().toDecimal()),s=i?n/2:(n+1)/2;let r=(0,a.one)();for(let e=1;e<=s;e++){let t=(0,a.two)().times(e);i||(t=t.minus(1)),r=r.times(t)}t=r}else{const i=o.Expression.Pi(!0),n=(0,a.two)().pow(e.times((0,a.two)()).plus((0,a.one)()).minus((0,P.cos)(i.times(e))).div((0,a.four)())),s=i.pow((0,P.cos)(i.times(e)).minus((0,a.one)()).div((0,a.four)())),r=gamma(e.div((0,a.two)()).plus(1));t=n.times(s).times(r)}else t=o.Expression.toFunction(c.DOUBLE_FACTORIAL,[o.Expression.create(e)]);return t},t.heaviside=function heaviside(e){let t;const i=!e.isConstant()&&!e.isComplex()&&(0,r.hasAssumptions)();if(e.isPosInf()||e.isNegInf())t=e.isNegInf()?(0,a.zero)():(0,a.one)();else if(e.isNUM()){const i=e.sign();t=1===i?(0,a.one)():-1===i?(0,a.zero)():(0,a.half)()}else t=i&&e.gt(0)?(0,a.one)():i&&e.lt(0)?(0,a.zero)():i&&e.gte(0)&&e.lte(0)?(0,a.half)():o.Expression.toFunction(c.HEAVISIDE,[o.Expression.create(e)]);return t},t.step=function step(e){const t=!(e=o.Expression.create(e)).isConstant()&&!e.isComplex()&&(0,r.hasAssumptions)();if(e.isPosInf()||e.isNegInf())return e.isNegInf()?(0,a.zero)():(0,a.one)();if(e.isNUM())return e.sign()<0?(0,a.zero)():(0,a.one)();if(t&&e.lt((0,a.zero)()))return(0,a.zero)();if(t&&e.gte((0,a.zero)()))return(0,a.one)();return o.Expression.toFunction("step",[e])},t.rect=function rect(e){const t=o.Expression.create(e),i=abs(t);if(i.lt((0,a.half)()))return(0,a.one)();if(i.eq((0,a.half)()))return(0,a.half)();if(i.gt((0,a.half)()))return(0,a.zero)();return o.Expression.toFunction("rect",[t])},t.tri=function tri(e){const t=o.Expression.create(e),i=abs(t);if(i.lt((0,a.one)()))return(0,a.one)().minus(i);if(i.gte((0,a.one)()))return(0,a.zero)();return o.Expression.toFunction("tri",[t])},t.dirac=function dirac(e){let t;const i=!e.isConstant()&&!e.isComplex()&&(0,r.hasAssumptions)();t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isNUM()?e.isZero()?o.Expression.toFunction(c.DIRAC,[o.Expression.create(e)]):(0,a.zero)():i&&(e.gt(0)||e.lt(0))?(0,a.zero)():o.Expression.toFunction(c.DIRAC,[o.Expression.create(e)]);return t},t.numeric=function numeric(e,t){return e=o.Expression.create(e),(0,A.scopedBlock)("DEFER_SIMPLIFICATION",!1,()=>{let i=E.Rational.getPrecision();if(void 0!==t){const e=o.Expression.create(t).evaluate();if(!e.isNUM()||!e.isInteger())throw new x.UnexpectedInputError((0,x.message)("wrongInput",{expected:b,received:e.text()}));const n=e.getMultiplier();if(n.numerator<=0n||n.numerator>BigInt(Number.MAX_SAFE_INTEGER))throw new x.UnexpectedInputError((0,x.message)("wrongInput",{expected:b,received:e.text()}));i=Number(n.numerator)}const n=E.Rational.getPrecision();let r;try{i!==n&&E.Rational.set({precision:i});const t=e.isNUM()?e:e.evaluate();if(t.variables().length>0)r=t;else if(t.isNUM()){const e=t.getMultiplier(),n=new s.default(e.numerator.toString()).div(e.denominator.toString()).toSignificantDigits(i);r=o.Expression.Number(n),r.getMultiplier().asDecimal=!0,r.precision=i}else if(t.isComplex()){const e=numeric(t.realPart(),i),n=numeric(t.imagPart(),i);r=e.plus(n.times(o.Expression.Img())),r.precision=i}else r=t}finally{i!==n&&E.Rational.set({precision:n})}return r})},t.round=function round(e,t){if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();let i;if(t=t?o.Expression.create(t):(0,a.zero)(),e.isNUM()&&t.isInteger()){const n=e.getMultiplier().toDecimal(),r=t.getMultiplier().toDecimal(),a=new s.default(10).pow(r);i=o.Expression.create(s.default.round(n.times(a)).div(a))}else i=o.Expression.toFunction(c.ROUND,[e,t]);return i},t.sign=function sign(e){let t;t=(e=o.Expression.create(e)).isComplex()?(0,w.csgn)(e):e.isPosInf()||e.isNegInf()?o.Expression.create(e.isNegInf()?-1:1):e.isConstant()?o.Expression.create((e.isNUM()?e:e.evaluate()).getMultiplier().sign()):(0,r.hasAssumptions)()?e.gt(0)?(0,a.one)():e.lt(0)?(0,a.one)().neg():e.eq(0)?(0,a.zero)():o.Expression.toFunction(c.SGN,[e]):o.Expression.toFunction(c.SGN,[e]);return t},t.floor=floor,t.ceiling=function ceiling(e){let t;if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())t=e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();else if(e.isNUM()){const i=e.getMultiplier().toDecimal();t=o.Expression.create(i.ceil())}else t=o.Expression.toFunction(c.CEIL,[e]);return t},t.abs=abs,t.modInv=function modInv(e,t){let i=(0,a.zero)(),n=(0,a.one)(),s=t,r=mod(e,t);for(;!r.isZero();){const e=floor(s.div(r));[i,n]=[n,i.minus(e.times(n))],[s,r]=[r,s.minus(e.times(r))]}if(s.gt(1))throw new x.MathError((0,x.message)("noInverse"));return mod(i,t)},t.mod=mod,t.gammaIncomplete=gammaIncomplete,t.gammaIncompleteLower=function gammaIncompleteLower(e,t){const i=o.Expression.create(e),n=o.Expression.create(t);if(!i.isNUM()||!i.isInteger()||i.lte((0,a.zero)()))return o.Expression.toFunction("gamma_incomplete_lower",[i,n]);if(i.getMultiplier().numerator>BigInt(A.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION))return o.Expression.toFunction("gamma_incomplete_lower",[i,n]);return gamma(i).minus(gammaIncomplete(i,n))},t.gamma=gamma,t.erfc=function erfc(e){return(0,d.subtract)((0,a.one)(),erf(e))},t.erf=erf,t.sinc=function sinc(e){let t;t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isZero()?(0,a.one)():(0,P.sin)(e).isZero()?(0,a.zero)():-1===e.sign()?sinc(e.neg()):e.isNUM()&&A.Settings.EVALUATE?o.Expression.Number((0,S.sinc)(e.getMultiplier().toDecimal())):A.Settings.EVALUATE?(0,P.sin)(e).div(e):o.Expression.toFunction(c.SINC,[o.Expression.create(e)]);return t},t.Si=function Si(e){let t;e.isPosInf()||e.isNegInf()?(t=o.Expression.Pi().div((0,a.two)()),e.isNegInf()&&(t=t.neg())):t=e.isZero()?(0,a.zero)():-1===e.sign()?Si(e.neg()).neg():e.isNUM()&&A.Settings.EVALUATE?o.Expression.Number((0,S.Si)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.SI,[o.Expression.create(e)]);return t},t.Shi=function Shi(e){let t;t=e.isPosInf()||e.isNegInf()?e.isNegInf()?o.Expression.NegInf():o.Expression.Inf():e.isZero()?(0,a.zero)():-1===e.sign()?Shi(e.neg()).neg():e.isNUM()&&A.Settings.EVALUATE?o.Expression.Number((0,S.Shi)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.SHI,[o.Expression.create(e)]);return t},t.Ci=function Ci(e){let t;t=e.isPosInf()||e.isNegInf()?(0,a.zero)():e.isZero()?o.Expression.NegInf():-1===e.sign()?Ci(e.neg()):e.isNUM()&&A.Settings.EVALUATE?o.Expression.Number((0,S.Ci)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.CI,[o.Expression.create(e)]);return t},t.Chi=function Chi(e){let t;t=e.isPosInf()||e.isNegInf()?o.Expression.Inf():e.isZero()?o.Expression.NegInf():-1===e.sign()?Chi(e.neg()):e.isNUM()&&A.Settings.EVALUATE?o.Expression.Number((0,S.Chi)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.CHI,[o.Expression.create(e)]);return t},t.Ei=function Ei(e){let t;t=e.isPosInf()||e.isNegInf()?e.isNegInf()?(0,a.zero)():o.Expression.Inf():e.isZero()?o.Expression.NegInf():e.isNUM()&&A.Settings.EVALUATE?o.Expression.Number((0,S.Ei)(e.getMultiplier().toDecimal())):o.Expression.toFunction(c.EI,[o.Expression.create(e)]);return t},t.Li=function Li(e){let t;if(e.isPosInf())t=o.Expression.Inf();else if(e.isOne())t=o.Expression.NegInf();else if(e.isNUM()&&A.Settings.EVALUATE){const i=e.getMultiplier();t=i.isNegative()?o.Expression.toFunction(c.LI,[o.Expression.create(e)]):o.Expression.Number((0,S.Li)(i.toDecimal()))}else t=o.Expression.toFunction(c.LI,[o.Expression.create(e)]);return t},t.log=log,t.max=function max(...e){return aggregator(e,(e,t)=>e.gt(t),(e,t)=>e.gte(t))??o.Expression.toFunction(c.MAX,e)},t.min=function min(...e){return aggregator(e,(e,t)=>e.lt(t),(e,t)=>e.lte(t))??o.Expression.toFunction(c.MIN,e)},t.exp=exp,t.matrix=function matrix(...e){return new u.Matrix(...e)},t.sum=function sum(e,t,i,n){if(!t.isPlainVariable())return o.Expression.toFunction(c.SUM_FUNCTION,[e,t,i,n]);e=o.Expression.create(e),t=o.Expression.create(t),i=o.Expression.create(i),n=o.Expression.create(n);const s=t.text(),r=toIntegerBigint(i),l=toIntegerBigint(n);if(null===r||null===l)return o.Expression.toFunction(c.SUM_FUNCTION,[e,t,i,n]);if(r>l)return(0,a.zero)();const u=l-r+1n;if(u>A.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION)return o.Expression.toFunction(c.SUM_FUNCTION,[e,t,i,n]);if(!e.hasVariable(s)){const t=o.Expression.create(u);return e.times(t)}let p=(0,a.zero)(),m=r;for(;m<=l;){const t={};t[s]=m;const i=e.evaluate(t);p=p.plus(i),m+=1n}return p},t.product=function product(e,t,i,n){if(!t.isPlainVariable())return o.Expression.toFunction(c.PRODUCT_FUNCTION,[e,t,i,n]);e=o.Expression.create(e),t=o.Expression.create(t),i=o.Expression.create(i),n=o.Expression.create(n);const s=t.text(),r=toIntegerBigint(i),l=toIntegerBigint(n);if(null===r||null===l)return o.Expression.toFunction(c.PRODUCT_FUNCTION,[e,t,i,n]);if(r>l)return(0,a.one)();const u=l-r+1n;if(u>A.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION)return o.Expression.toFunction(c.PRODUCT_FUNCTION,[e,t,i,n]);if(!e.hasVariable(s)){const t=o.Expression.create(u);return(0,g.power)(e,t)}let p=(0,a.one)(),m=r;for(;m<=l;){const t={};t[s]=m;const i=e.evaluate(t);p=p.times(i),m+=1n}return p},t.contains=function contains(e,t){let i;t=o.Expression.create(t),i=e.dataType===c.VECTOR?o.Expression.create(Number(-1!==e.indexOf(t))):e.dataType===c.SET||e.dataType===c.SOLUTIONS_SET?o.Expression.create(Number(e.has(t))):e.dataType===c.DICTIONARY?o.Expression.create(Number(e.has(t.text()))):o.Expression.toFunction(c.CONTAINS,[e,t]);return i};const s=n(i(3110)),r=i(6351),o=i(296),a=i(6099),l=i(1897),u=i(4462),c=i(8300),p=i(8300),m=i(6498),g=i(3957),d=i(6910),h=i(9565),E=i(5584),x=i(4703),y=i(551),v=i(982),w=i(4600),S=i(9571),A=i(5817),N=i(7867),P=i(1649),I=i(706),b="a positive integer precision";function sqrt(e){let t;if((e=o.Expression.create(e)).isPosInf()||e.isNegInf()){if(e.isNegInf())throw new x.UndefinedError((0,x.message)("undefinedValue"));t=o.Expression.Inf()}else t=e.isOne()?(0,a.one)():e.isZero()?(0,a.zero)():e.isFunction(c.SQRT)?(0,m.multiply)(sqrt(o.Expression.fromRational(e.getMultiplier())),(0,g.power)((0,g.sqrtToPow)(e.toUnitMultiplier()),(0,a.half)())):(0,g.power)(e,(0,a.half)());return t}function factorial(e){let t;if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new x.UndefinedError((0,x.message)("undefinedValue"));return o.Expression.Inf()}if(e.isInteger())t=o.Expression.Number((0,y.factorial)(e.getMultiplier().numerator));else if(A.Settings.EVALUATE)t=gamma(e.plus((0,a.one)()));else{let i=e.getMultiplier();if(e.isNUM()&&2n===i.denominator){const e=i.sign();i=i.abs();const n=o.Expression.create(i.numerator-1n).div((0,a.two)()),s=sqrt(o.Expression.Pi());t=-1===e?(0,a.four)().neg().pow(n).times(factorial(n)).div(factorial(n.times((0,a.two)()))).times(s):factorial(n.times((0,a.two)()).plus((0,a.one)())).div((0,a.four)().pow(n).times(factorial(n)).times((0,a.two)())).times(s)}else t=o.Expression.toFunction(p.FACTORIAL,[o.Expression.create(e)])}return t}function floor(e){let t;if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())t=e.isNegInf()?o.Expression.NegInf():o.Expression.Inf();else if(e.isNUM()){const i=e.getMultiplier().toDecimal();t=o.Expression.create(i.floor())}else t=o.Expression.toFunction(c.FLOOR,[e]);return t}function abs(e){if((e=o.Expression.create(e)).isPosInf()||e.isNegInf())return o.Expression.Inf();let t=e,i=!0;const n=!e.isConstant()&&(0,r.hasAssumptions)();if(!e.isConstant()&&e.getPower().isEven())t=e,-1===t.sign()&&(t=t.neg()),i=!1;else if(e.isComplex())t=(0,N.hypot)(e.realPart(),e.imagPart());else if(n&&e.gte(0))t=e,i=!1;else if(n&&e.lte(0))t=e.neg(),i=!1;else if(e.isSum()){const n=[],s=[],r=e.elementsArray();let o=!0,a=1;for(let l=0;l<r.length;l++){const u=r[l];u.isConstant()?n.push(u):s.push(u),-1!==u.sign()&&(o=!1),(o||1===s.length&&-1===s[0].sign())&&(t=e.neg().expand(),a=-1);const c=r[l+1],p=c&&1===s.length&&c.value===s[0].value;if(1===s.length&&s[0].getPower().isEven()&&!p){i=!1;for(let e=0;e<n.length;e++)if(n[e].sign()*a===-1){i=!0;break}}}}else-1===e.sign()&&(t=e.neg());return t||(t=e),!t.isConstant()&&i&&(t=o.Expression.toFunction(c.ABS,[t])),t}function roundRatioToNearestEven(e,t){const i=e/t,n=e%t,s=2n*(0,y.abs)(n),r=BigInt((0,y.sign)(e));return s<t?i:s>t?i+r:(0,y.isEven)(i)?i:i+r}function mod(e,t){let i;if(e.isPosInf()||e.isNegInf()||t.isPosInf()||t.isNegInf())throw new x.UndefinedError((0,x.message)("undefinedValue"));if(e.isNUM()&&t.isNUM())i=o.Expression.create(e.getMultiplier().mod(t.getMultiplier()));else if(e.isComplex()||t.isComplex()){const n=e.realPart(),s=e.imagPart(),r=t.realPart(),a=t.imagPart();if(n.isNUM()&&n.isInteger()&&s.isNUM()&&s.isInteger()&&r.isNUM()&&r.isInteger()&&a.isNUM()&&a.isInteger()){const l=n.getMultiplier().numerator,u=s.getMultiplier().numerator,p=r.getMultiplier().numerator,m=a.getMultiplier().numerator,g=p*p+m*m;if(0n===g)i=o.Expression.toFunction(c.MOD,[o.Expression.create(e),o.Expression.create(t)]);else{const e=roundRatioToNearestEven(l*p+u*m,g),t=roundRatioToNearestEven(u*p-l*m,g),n=l-p*e+m*t,s=u-p*t-m*e;i=o.Expression.Number(n).plus(o.Expression.Number(s).i())}}else i=o.Expression.toFunction(c.MOD,[o.Expression.create(e),o.Expression.create(t)])}else i=e.isPolynomialLike()&&t.isPolynomialLike()&&(0,h.maxCommonVariableOccurrence)(e,t)?(0,h.polyMod)(e,t).getExpression():o.Expression.toFunction(c.MOD,[o.Expression.create(e),o.Expression.create(t)]);return i}function gammaIncomplete(e,t){const i=o.Expression.create(e),n=o.Expression.create(t);if(!i.isNUM()||!i.isInteger()||i.lte((0,a.zero)()))return o.Expression.toFunction("gamma_incomplete",[i,n]);const s=i.getMultiplier().numerator;if(s>BigInt(A.Settings.MAX_PRODUCT_AND_SUMMATION_ITERATION))return o.Expression.toFunction("gamma_incomplete",[i,n]);let r=(0,a.one)(),l=(0,a.one)(),u=1n;for(;u<s;)r=r.times(n).div(o.Expression.Number(u)),l=l.plus(r),u++;return factorial(o.Expression.Number(s-1n)).times(exp(n.neg())).times(l)}function gamma(e){let t;if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new x.UndefinedError((0,x.message)("undefinedValue"));return o.Expression.Inf()}if(e.isNUM()){const i=e.getMultiplier();if(e.isInteger()&&!e.isNegative())t=e.isZero()?o.Expression.toFunction(c.GAMMA,[e]):factorial(e.minus((0,a.one)()));else if(2n===i.denominator){const n=sqrt(o.Expression.Pi()),s=i.numerator;if(s<=0n&&s%2n==0n)t=o.Expression.toFunction(c.GAMMA,[e]);else if(1n===s)t=n;else if(s>1n){let i=(0,a.half)(),s=n;for(;!i.eq(e);)s=i.times(s),i=i.plus((0,a.one)());t=s}else{let i=(0,a.half)(),s=n;for(;!i.eq(e);)i=i.minus((0,a.one)()),s=s.div(i);t=s}}else t=o.Expression.Number((0,S.gamma)(i.toDecimal()))}else t=o.Expression.toFunction(c.GAMMA,[e]);return t}function erf(e){let t;if(e.isPosInf()||e.isNegInf())t=e.isNegInf()?(0,a.one)().neg():(0,a.one)();else if(e.isNUM()){const i=e.getMultiplier();t=i.gt("6.5")?(0,a.one)():o.Expression.Number((0,S.erf)(i.toDecimal()))}else t=o.Expression.toFunction(c.ERF,[o.Expression.create(e)]);return t}function log(e,t,i=!1){e=o.Expression.create(e);const n=void 0===t?void 0:o.Expression.create(t);let s,r;if(n&&e.isInteger()&&n.isInteger()&&e.gt(0)&&n.gt(1)){const t=e.getMultiplier().numerator,i=n.getMultiplier().numerator;let r=1n,a=0n;for(;r<t;)r*=i,a++;r===t&&(s=o.Expression.Number(a))}if(e.isPosInf()||e.isNegInf()){if(e.isNegInf())throw new x.UndefinedError((0,x.message)("undefinedValue"));r=o.Expression.Inf()}else if(e.isOne())r=(0,a.zero)();else if(s)r=s;else if(e.isE()&&e.getMultiplier().isOne()){const t=e.getPower();r=t.isComplex()?o.Expression.toFunction(o.Expression.LOG,[o.Expression.create(e)]):(0,a.one)().times(t)}else if(!e.isComplex()&&e.lt(0))r=o.Expression.Pi().times(o.Expression.Img()).plus(log(e.abs()));else if(e.isComplex()){const t=e.realPart(),i=e.imagPart();r=log(sqrt(t.sq().plus(i.sq()))).plus((0,P.atan2)(i,t).i())}else if(A.Settings.EVALUATE){if(e.isNUM())if(n&&n.isNUM()){const t=e.getMultiplier().toDecimal().ln(),i=n.getMultiplier().toDecimal().ln();r=o.Expression.Number(t.div(i))}else r=o.Expression.Number(e.getMultiplier().toDecimal().ln())}else if(e.isNUM()){const t=e.getMultiplier(),n=t.numerator<0n?-t.numerator:t.numerator,s=t.denominator<0n?-t.denominator:t.denominator;if(1n!==s)r=log(o.Expression.Number(n)).minus(log(o.Expression.Number(s)));else if(i){const e=(0,v.primeFactorCounts)(n),t=Object.keys(e);if(t.length>0&&(t.length>1||e[t[0]]>1n)){r=(0,a.zero)();for(const t in e){const i=e[t],n=o.Expression.toFunction(o.Expression.LOG,[o.Expression.Number(t)]);r=r.plus(n.times(o.Expression.Number(i)))}}}}else{const t=e.getMultiplier(),i=e.toUnitMultiplier();let n,s=!1;if(i.isProduct()&&i.isLinear()){const e=i.elementsArray();let t=!0;for(const i of e){let e=!1;if(i.isNUM())e=i.gt(0);else{const t=i.getPower(),n=i.isEXP()?i.getBase():(0,I.stripPower)(i);e=!t.isComplex()&&!n.isComplex()&&n.gt(0)}if(!e){t=!1;break}}if(t){let t=(0,a.zero)();for(const i of e)t=t.plus(log(i));n=t,s=!0}}else{const e=i.getPower(),t=i.isEXP()?i.getBase():(0,I.stripPower)(i);e.isOne()?(n=o.Expression.toFunction(o.Expression.LOG,[i]),s=!i.isComplex()&&i.gt(0)):e.isComplex()||t.isComplex()||!t.gt(0)||(n=log(t).times(e),s=!0)}void 0===n||t.isOne()?r=n:t.sign()>0&&s&&(r=n.plus(log(o.Expression.fromRational(t))))}return r=r||o.Expression.toFunction(o.Expression.LOG,[o.Expression.create(e)]),n&&r&&!s&&(r=r.div(log(n))),r}function aggregator(e,t,i){let n;const s=e.map(e=>o.Expression.create(e));let a=!0;const u=s.map(e=>{const t=(0,l.getNumericOrAssumedValue)(e);return void 0===t&&(a=!1),t});if(!0===a&&u.length>0&&u.every(e=>void 0!==e)){let e=u[0];for(let i=1;i<u.length;i++){const n=u[i];t(n,e)&&(e=n)}n=e}else{if((0,r.hasAssumptions)()&&s.every(e=>!e.isComplex())&&s.some(e=>e.variables().some(e=>void 0!==(0,r.getAssumptionFor)(e))))for(const e of s)if(s.every(t=>i(e,t))){n=e;break}void 0===n&&s.length>0&&s.every(e=>e.eq(s[0]))&&(n=s[0])}return n}function exp(e){let t,i,n,s,r,l,u;return(e=o.Expression.create(e)).isPosInf()||e.isNegInf()?e.isNegInf()?(0,a.zero)():o.Expression.Inf():(e.isZero()?t=(0,a.one)():A.Settings.EVALUATE&&(e.isComplex()?(i=e.evaluate(),n=i.realPart(),s=i.imagPart(),n.isNUM()&&s.isNUM()&&(u=o.Expression.Number(n.getMultiplier().toDecimal().exp()),r=(0,P.cos)(s),l=(0,P.sin)(s),t=u.times(r.plus(l.i())))):e.isNUM()&&(t=o.Expression.Number(e.getMultiplier().toDecimal().exp()))),t??o.Expression.create(`e^(${e})`))}function toIntegerBigint(e){if(!e.isInteger())return null;const t=e.getMultiplier();if(1n!==t.denominator)return null;return t.numerator}},1649(e,t,i){"use strict";t.cos=cos,t.sin=sin,t.tan=function tan(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));if(-1===e.sign()&&!e.isNUM())return tan(e.neg()).neg();const i=Math.abs(+e.getMultiplier());if(1===i&&e.isFunction(r.ATAN))t=e.getArguments()[0].times(e.sign());else if(1===i&&e.isFunction(r.ASIN)){const[i,n]=argNumDen(e);t=i.div((0,p.sqrt)(n.sq().minus(i.sq()))).times(e.sign())}else if(1===i&&e.isFunction(r.ACOS)){const[i,n]=argNumDen(e);t=(0,p.sqrt)(n.sq().minus(i.sq())).div(i).times(e.sign())}else{const i=toPiValue(e).getMultiplier().div(o.Rational.PI).denominator;if(1n===i||e.isZero())t=(0,s.zero)();else{if(2n===i)throw new a.UndefinedError((0,a.message)("tanUndefined"));if(u.Settings.EVALUATE&&e.isNUM())t=n.Expression.Number(e.getMultiplier().toDecimal().tan());else if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart().times(2),n=e.imagPart().times(2),s=cos(i).plus(cosh(n));t=sin(i).div(s).plus(sinh(n).div(s).i())}else t=sin(e).div(cos(e)),t.hasFunction(r.COS)&&(t=n.Expression.toFunction(r.TAN,[e]))}}return t},t.sec=function sec(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart(),s=cos(i),r=cosh(n),o=sin(i),a=sinh(n),l=s.sq().times(r.sq()).plus(o.sq().times(a.sq()));t=s.times(r).div(l).plus(o.times(a).div(l).i())}else{const i=cos(e);if(i.isZero())throw new a.UndefinedError((0,a.message)("secUndefined"));t=i.invert(),t.hasFunction(r.COS)&&(t=n.Expression.toFunction(r.SEC,[e]))}return t},t.csc=function csc(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart(),s=sin(i),r=cosh(n),o=cos(i),a=sinh(n),l=s.sq().times(r.sq()).plus(o.sq().times(a.sq()));t=s.times(r).div(l).minus(o.times(a).div(l).i())}else{const i=sin(e);if(i.isZero())throw new a.UndefinedError((0,a.message)("cscUndefined"));t=i.invert(),t.hasFunction(r.SIN)&&(t=n.Expression.toFunction(r.CSC,[e]))}return t},t.cot=function cot(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart(),r=sin(i),o=cos(i),a=sinh(n.times((0,s.two)())),l=cosh(n.times((0,s.two)())),u=cos(i.times((0,s.two)())),c=l.minus(u);t=r.times(o).times((0,s.two)()).div(c).plus(a.neg().div(c).i())}else{const i=sin(e);if(i.isZero())throw new a.UndefinedError((0,a.message)("cotUndefined"));t=cos(e).div(i),t.hasFunction(r.COS)&&(t=n.Expression.toFunction(r.COT,[e]))}return t},t.acos=acos,t.asin=asin,t.atan=atan,t.asec=function asec(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return n.Expression.Pi().div((0,s.two)());const t=acos(e.invert());if(t.isFunction(r.ACOS)&&t.getArguments()[0].eq(e.invert()))return n.Expression.toFunction(r.ASEC,[e]);return t},t.acsc=function acsc(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return(0,s.zero)();const t=asin(e.invert());if(t.isFunction(r.ASIN)&&t.getArguments()[0].eq(e.invert()))return n.Expression.toFunction(r.ACSC,[e]);return t},t.acot=function acot(e){let t;(e=n.Expression.create(e)).isPosInf()||e.isNegInf()?t=e.isNegInf()?n.Expression.Pi():(0,s.zero)():e.isZero()?t=n.Expression.Pi().div((0,s.two)()):(t=atan(e.invert()),t.isFunction(r.ATAN)&&t.getArguments()[0].eq(e.invert())?t=n.Expression.toFunction(r.ACOT,[e]):e.isNUM()&&-1===e.sign()&&(t=n.Expression.Pi().plus(t)));return t},t.atan2=function atan2(e,t){if(t=n.Expression.create(t),e=n.Expression.create(e),t.isZero()&&e.isZero())throw new a.UndefinedError((0,a.message)("atan2Undefined"));if((t.isPosInf()||t.isNegInf())&&(e.isPosInf()||e.isNegInf()))throw new a.UndefinedError((0,a.message)("atan2Undefined"));if(t.isPosInf()||t.isNegInf())return t.isNegInf()?-1===e.sign()?n.Expression.Pi().neg():n.Expression.Pi():(0,s.zero)();if(e.isPosInf()||e.isNegInf()){const t=n.Expression.Pi().div((0,s.two)());return e.isNegInf()?t.neg():t}let i;if(t.isNUM()&&e.isNUM()){const r=e.getMultiplier(),o=t.getMultiplier();i=o.gt((0,s.zero)())?atan(e.div(t)):o.lt("0")&&r.gte("0")?atan(e.div(t)).plus(n.Expression.Pi()):o.lt("0")&&r.lt("0")?atan(e.div(t)).plus(n.Expression.Pi().neg()):o.eq("0")&&r.gt((0,s.zero)())?n.Expression.Pi().div((0,s.two)()):n.Expression.Pi().neg().div((0,s.two)())}else i=n.Expression.toFunction(r.ATAN2,[e,t]);return i},t.cosh=cosh,t.sinh=sinh,t.tanh=tanh,t.sech=function sech(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return(0,s.zero)();let t=(0,s.one)().div(cosh(e));t.hasFunction(r.COSH)&&(t=n.Expression.toFunction(r.SECH,[e]));return t},t.csch=function csch(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return(0,s.zero)();if(e.isZero())throw new a.UndefinedError((0,a.message)("cschUndefined"));let t=(0,s.one)().div(sinh(e));t.hasFunction(r.SINH)&&(t=n.Expression.toFunction(r.CSCH,[e]));return t},t.coth=function coth(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?(0,s.one)().neg():(0,s.one)();if(e.isZero())throw new a.UndefinedError((0,a.message)("cothUndefined"));let t=(0,s.one)().div(tanh(e));t.hasFunction(r.TANH)&&(t=n.Expression.toFunction(r.COTH,[e]));return t},t.acosh=acosh,t.asinh=asinh,t.atanh=atanh,t.asech=function asech(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE)if(e.isComplex())t=acosh(e.invert());else{const i=(0,s.one)().div(e),n=(0,p.sqrt)((0,s.one)().div(e.sq()).minus((0,s.one)()));t=(0,m.log)(n.plus(i))}t||(t=n.Expression.toFunction(r.ASECH,[e]));return t},t.acsch=function acsch(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return(0,s.zero)();let t;if(u.Settings.EVALUATE)if(e.isComplex())t=asinh(e.invert());else{const i=(0,s.one)().div(e),n=(0,p.sqrt)((0,s.one)().div(e.sq()).plus((0,s.one)()));t=(0,m.log)(n.plus(i))}t||(t=n.Expression.toFunction(r.ACSCH,[e]));return t},t.acoth=function acoth(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return(0,s.zero)();let t;u.Settings.EVALUATE&&(t=e.isComplex()?atanh(e.invert()):(0,m.log)(e.plus((0,s.one)()).div(e.minus((0,s.one)()))).div((0,s.two)()).expand());t||(t=n.Expression.toFunction(r.ACOTH,[e]));return t};const n=i(296),s=i(6099),r=i(8300),o=i(5584),a=i(4703),l=i(551),u=i(5817),c=i(7867),p=i(8533),m=i(8533);var g=i(8300);function getQuadrant(e){const t=o.Rational.PI.toDecimal(),i=t.times(2);let n=e.toDecimal().mod(i);n.lt(0)&&(n=n.plus(i));const s=Math.floor(Number(n.div(t.div(2))))+1;return Math.min(s,4)}function toPiValue(e){let t=e;return r.PI.includes(e.value)&&e.isLinear()&&(t=e.evaluate({[e.value]:`${o.Rational.PI}`})),t}function argNumDen(e,t=!1){const i=e.getArguments()[0],n=i.getNumerator(),s=i.getDenominator(),r=[n,s];return t&&r.push((0,c.hypot)(n,s)),r}function cos(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));if(-1===e.sign()&&!e.isNUM())return cos(e.neg());const i=Math.abs(+e.getMultiplier());if(1===i&&e.isFunction(r.ATAN)){const[,i,n]=argNumDen(e,!0);t=i.div(n)}else if(1===i&&e.isFunction(r.ACOS))t=e.getArguments()[0];else if(1===i&&e.isFunction(r.ASIN)){const[i,n]=argNumDen(e);t=(0,p.sqrt)(n.sq().minus(i.sq())).div(n)}else{const i=toPiValue(e);let a=!0;const c=[2,3];if(i.isNUM()){const m=i.getMultiplier(),g=m.div(o.Rational.PI);if(g.isInteger())t=n.Expression.Number((0,l.isEven)(g.numerator)?"1":"-1");else{switch(g.denominator){case 2n:t=(0,s.zero)();break;case 3n:t=(0,s.one)().div((0,s.two)());break;case 4n:t=(0,s.one)().div((0,p.sqrt)((0,s.two)()));break;case 6n:t=(0,p.sqrt)((0,s.three)()).div((0,s.two)());break;default:a=!1,t=u.Settings.EVALUATE?n.Expression.Number(m.toDecimal().cos()):n.Expression.toFunction(r.COS,[e])}a&&2n!==g.denominator&&c.includes(getQuadrant(m))&&(t=t.neg())}}else if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart();t=cos(i).times(cosh(n)).minus(sin(i).times(sinh(n)).i())}else t=n.Expression.toFunction(r.COS,[e])}return t}function sin(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));if(-1===e.sign()&&!e.isNUM())return sin(e.neg()).neg();const i=Math.abs(+e.getMultiplier());if(1===i&&e.isFunction(r.ATAN)){const[i,,n]=argNumDen(e,!0);t=i.div(n).times(e.sign())}else if(1===i&&e.isFunction(r.ASIN))t=e.getArguments()[0].times(e.sign());else if(1===i&&e.isFunction(r.ACOS)){const[i,n]=argNumDen(e);t=(0,p.sqrt)(n.sq().minus(i.sq())).div(n).times(e.sign())}else{const i=toPiValue(e);let a=!0;const l=[3,4];if(i.isNUM()){const c=i.getMultiplier(),m=c.div(o.Rational.PI);if(m.isInteger())t=(0,s.zero)();else{switch(m.denominator){case 2n:t=(0,s.one)();break;case 3n:t=(0,p.sqrt)((0,s.three)()).div((0,s.two)());break;case 4n:t=(0,s.one)().div((0,p.sqrt)((0,s.two)()));break;case 6n:t=(0,s.one)().div((0,s.two)());break;default:a=!1,t=u.Settings.EVALUATE?n.Expression.Number(c.toDecimal().sin()):n.Expression.toFunction(r.SIN,[e])}a&&l.includes(getQuadrant(c))&&(t=t.neg())}}else if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart();t=sin(i).times(cosh(n)).plus(cos(i).times(sinh(n)).i())}else t=n.Expression.toFunction(r.SIN,[e])}return t}function acos(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isNUM())if(e.lt(-1)||e.gt(1)){const i=e.sign(),r=n.Expression.Pi().div((0,s.two)());let o=asin(e.abs());1===i&&(o=o.neg()),t=r.plus(o)}else t=n.Expression.Number(e.getMultiplier().toDecimal().acos());else if(u.Settings.EVALUATE&&e.isComplex()){const i=n.Expression.Img(),r=(0,p.sqrt)((0,s.one)().minus(e.pow((0,s.two)()))),o=i.times(e);t=n.Expression.Pi().div((0,s.two)()).minus(i.times((0,m.log)(r.minus(o)))).expand()}else if(!e.isComplex()){const i=[[(0,s.zero)(),n.Expression.Pi().div((0,s.two)())],[(0,s.one)().div((0,s.two)()),n.Expression.Pi().div((0,s.three)())],[(0,s.one)().div((0,p.sqrt)((0,s.two)())),n.Expression.Pi().div((0,s.four)())],[(0,p.sqrt)((0,s.three)()).div((0,s.two)()),n.Expression.Pi().div((0,s.six)())],[(0,s.one)(),(0,s.zero)()]],r=e.abs();for(const[s,o]of i)if(r.eq(s)){t=-1===e.sign()?n.Expression.Pi().minus(o):o;break}}return void 0===t&&(t=n.Expression.toFunction(r.ACOS,[e])),t}function asin(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(u.Settings.EVALUATE&&e.isNUM())if(e.lt((0,s.minusOne)())||e.gt((0,s.one)())){const i=e.sign();e=e.abs();const r=(0,p.sqrt)(e.sq().minus((0,s.one)()));let o=n.Expression.Pi().div((0,s.two)()),a=n.Expression.Img();-1===i?o=o.neg():a=a.neg(),t=o.plus(a.times((0,m.log)(e.plus(r))))}else t=n.Expression.Number(e.getMultiplier().toDecimal().asin());else if(u.Settings.EVALUATE&&e.isComplex()){const i=n.Expression.Img(),r=(0,p.sqrt)((0,s.one)().minus(e.pow((0,s.two)()))),o=i.times(e);t=i.times((0,m.log)(r.minus(o))).expand()}else if(!e.isComplex()){const i=[[(0,s.zero)(),(0,s.zero)()],[(0,s.one)().div((0,s.two)()),n.Expression.Pi().div((0,s.six)())],[(0,s.one)().div((0,p.sqrt)((0,s.two)())),n.Expression.Pi().div((0,s.four)())],[(0,p.sqrt)((0,s.three)()).div((0,s.two)()),n.Expression.Pi().div((0,s.three)())],[(0,s.one)(),n.Expression.Pi().div((0,s.two)())]],r=e.abs();for(const[n,s]of i)if(r.eq(n)){t=-1===e.sign()?s.neg():s;break}}return void 0===t&&(t=n.Expression.toFunction(r.ASIN,[e])),t}function atan(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf()){const t=n.Expression.Pi().div((0,s.two)());return e.isNegInf()?t.neg():t}if(u.Settings.EVALUATE&&e.isNUM())t=n.Expression.Number(e.getMultiplier().toDecimal().atan());else if(u.Settings.EVALUATE&&e.isComplex()){const i=n.Expression.Img(),r=(0,m.log)(i.minus(e).div(i.plus(e)));t=i.neg().div((0,s.two)()).times(r).expand()}else if(!e.isComplex()){const i=[[(0,s.zero)(),(0,s.zero)()],[(0,p.sqrt)((0,s.three)()).invert(),n.Expression.Pi().div((0,s.six)())],[(0,s.one)(),n.Expression.Pi().div((0,s.four)())],[(0,p.sqrt)((0,s.three)()),n.Expression.Pi().div((0,s.three)())]],r=e.abs();for(const[n,s]of i)if(r.eq(n)){t=-1===e.sign()?s.neg():s;break}}return t||(t=n.Expression.toFunction(r.ATAN,[e])),t}function cosh(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return n.Expression.Inf();if(e.isZero())t=(0,s.one)();else if(u.Settings.EVALUATE&&e.isNUM())t=n.Expression.Number(e.getMultiplier().toDecimal().cosh());else if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart();t=cosh(i).times(cos(n)).plus(sinh(i).times(sin(n)).i())}else t=n.Expression.toFunction(r.COSH,[e]);return t}function sinh(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?n.Expression.NegInf():n.Expression.Inf();if(e.isZero())t=(0,s.zero)();else if(u.Settings.EVALUATE&&e.isNUM())t=n.Expression.Number(e.getMultiplier().toDecimal().sinh());else if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart();t=sinh(i).times(cos(n)).plus(cosh(i).times(sin(n)).i())}else t=n.Expression.toFunction(r.SINH,[e]);return t}function tanh(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?(0,s.one)().neg():(0,s.one)();if(e.isZero())t=(0,s.zero)();else if(u.Settings.EVALUATE&&e.isNUM())t=n.Expression.Number(e.getMultiplier().toDecimal().tanh());else if(u.Settings.EVALUATE&&e.isComplex()){const i=e.realPart(),n=e.imagPart(),s=sinh(i).times(cos(n)).plus(cosh(i).times(sin(n)).i()),r=cosh(i).times(cos(n)).plus(sinh(i).times(sin(n)).i());t=s.div(r)}else t=n.Expression.toFunction(r.TANH,[e]);return t}function acosh(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf()){if(e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));return n.Expression.Inf()}let t;if(e.isOne())t=(0,s.zero)();else if(e.isZero())t=n.Expression.Pi().div((0,s.two)()).times(n.Expression.Img());else if(u.Settings.EVALUATE)if(e.isComplex()||e.lt("1")){const i=(0,p.sqrt)(e.plus((0,s.one)())),n=(0,p.sqrt)(e.minus((0,s.one)())),r=e.plus(i.times(n));t=(0,m.log)(r)}else t=n.Expression.Number(e.getMultiplier().toDecimal().acosh());return t||(t=n.Expression.toFunction(r.ACOSH,[e])),t}function asinh(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())return e.isNegInf()?n.Expression.NegInf():n.Expression.Inf();let t;return e.isZero()?t=(0,s.zero)():u.Settings.EVALUATE&&(t=e.isComplex()?(0,m.log)(e.plus((0,p.sqrt)(e.sq().plus((0,s.one)())))):n.Expression.Number(e.getMultiplier().toDecimal().asinh())),t||(t=n.Expression.toFunction(r.ASINH,[e])),t}function atanh(e){if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())throw new a.UndefinedError((0,a.message)("undefinedValue"));let t;if(e.isZero())t=(0,s.zero)();else{if(e.isOne())throw new a.UndefinedError((0,a.message)("atanhUndefined"));u.Settings.EVALUATE&&(t=e.isComplex()||e.lt((0,s.minusOne)())||e.gt((0,s.one)())?(0,m.log)((0,s.one)().plus(e).div((0,s.one)().minus(e))).div((0,s.two)()).expand():n.Expression.Number(e.getMultiplier().toDecimal().atanh()))}return t||(t=n.Expression.toFunction(r.ATANH,[e])),t}},6925(e,t,i){"use strict";t.trunc=function trunc(e){let t;if((e=n.Expression.create(e)).isPosInf()||e.isNegInf())t=e.isNegInf()?n.Expression.NegInf():n.Expression.Inf();else if(e.isNUM()){const i=e.getMultiplier();t=n.Expression.Number(i.numerator/i.denominator)}else t=n.Expression.toFunction(s.TRUNC,[e]);return t};const n=i(296),s=i(8300)},706(e,t,i){"use strict";t.stripPower=void 0,t.continuedFraction=function continuedFraction(e,t=10){const i=r.Expression.create(e),s=r.Expression.create(t);if(!s.isNUM()||!s.isInteger()||s.lt((0,o.zero)())||s.getMultiplier().numerator>BigInt(Number.MAX_SAFE_INTEGER))throw new m.UnexpectedInputError((0,m.message)("wrongInput",{expected:"a non-negative integer",received:s.text()}));const a=Number(s.getMultiplier().numerator),l=i.isConstant()?i.evaluate():i;if(!l.isNUM())return new n.Collection([(0,o.one)(),i,new p.Vector]);const u=l.getMultiplier(),c=r.Expression.Number(u.sign()),g=u.numerator<0n?-u.numerator:u.numerator;let d=u.denominator;const h=g/d;let E=g%d;const x=[];for(let e=0;e<a&&0n!==E;e++){const e=d/E;x.push(r.Expression.Number(e));const t=d%E;d=E,E=t}return new n.Collection([c,r.Expression.Number(h),new p.Vector(x)])},t.count=function count(e){if(p.Vector.isVector(e)||c.ValuesSet.isValuesSet(e)||s.Dictionary.isDictionary(e))return r.Expression.Number(e.count());return r.Expression.toFunction(u.COUNT,[e])},t.size=function size(e){if(p.Vector.isVector(e)||l.Matrix.isMatrix(e)||n.Collection.isCollection(e)||c.ValuesSet.isValuesSet(e)||s.Dictionary.isDictionary(e))return p.Vector.create(e.dimensions());return r.Expression.toFunction(u.SIZE,[e])},t.isprime=function isprime(e){const t=r.Expression.create(e);let i;i=t.isInteger()?r.Expression.Number(Number((0,g.isPrimeBig)(t.getMultiplier().numerator))):r.Expression.toFunction(u.ISPRIME,[t]);return i};const n=i(6284),s=i(6528),r=i(296),o=i(6099);var a=i(1897);Object.defineProperty(t,"stripPower",{enumerable:!0,get:function(){return a.stripPower}});const l=i(4462),u=i(8300),c=i(5598),p=i(3982),m=i(4703),g=i(982)},8891(e,t){"use strict";t.remove=function remove(e,t){const i=e.indexOf(t);i>-1&&e.splice(i,1);return e}},8015(e,t,i){"use strict";t.arrayToObject=function arrayToObject(e,t){const i={};for(let n=0;n<e.length;n++){const s=e[n];i[t(s,n)]=s}return i};const n=i(3703)}};const t={};function __webpack_require__(i){const n=t[i];if(void 0!==n)return n.exports;const s=t[i]={exports:{}};return e[i].call(s.exports,s,s.exports,__webpack_require__),s.exports}let i={};return(()=>{"use strict";let e=i;Object.defineProperty(e,"__esModule",{value:!0}),e.Parser=void 0;const t=__webpack_require__(238);(0,__webpack_require__(9390).loadParserFunctions)(),e.Parser=t.Parser})(),i})());