1 | function is(n){return"bigint"==typeof n}function compare(n,r){return Number(n-r)}function abs(n){return n<0n?-n:n}function sign(n){return n<0n?-1n:n>0n?1n:0n}function floorDiv(n,r){return r<0n&&(n=-n,r=-r),n>=0n?n/r:(n-r+1n)/r}function ceilDiv(n,r){return r<0n&&(n=-n,r=-r),n>=0n?(n+r-1n)/r:n/r}function roundDiv(n,r){return r<0n&&(n=-n,r=-r),n>=0n?(n+r/2n)/r:(n-r/2n)/r}function rem(n,r){return n%r}function mod(n,r){return n-r*floorDiv(n,r)}function modp(n,r){return n-abs(r)*floorDiv(n,abs(r))}function constrain(n,r,t){return min(max(n,r),t)}function remap(n,r,t,o,e){return o+(n-r)*(e-o)/(t-r)}function lerp(n,r,t){return n+BigInt(Math.floor(t*Number(r-n)))}function isPow2(n){return/^10*$/.test(n.toString(2))}function isPow10(n){return/^10*$/.test(n.toString())}function prevPow2(n){if(n<=1n)return 0n;var r=n.toString(2).length;return BigInt("0b1"+"0".repeat(r-1))}function prevPow10(n){if(n<=1n)return 0n;var r=n.toString(10).length;return BigInt("1"+"0".repeat(r-1))}function nextPow2(n){if(n<=0n)return 1n;var r=(n-1n).toString(2).length;return BigInt("0b1"+"0".repeat(r))}function nextPow10(n){if(n<=0n)return 1n;var r=(n-1n).toString(10).length;return BigInt("1"+"0".repeat(r))}function log2(n){var r=n.toString(2).length-1;return n<=0n?0n:BigInt(r)}function log10(n){var r=n.toString().length-1;return n<=0n?0n:BigInt(r)}function sqrt(n){return 0n===n?0n:n>0n?sqrtPos(n):null}function sqrtPos(n){for(var r=1n<<log2(n)/2n+1n,t=1n+r;r<t;)r=((t=r)+n/t)/2n;return t}function cbrt(n){return root(n,3n)}function root(n,r=1n){return 0n===n?0n:n>0n?rootPos(n,r):r%2n!==0n?-rootPos(-n,r):null}function rootPos(n,r){var t=1n<<log2(n)/r+1n,o=1n+t,e=r-1n;if(2n===t)return 1n;for(;t<o;)t=(e*(o=t)+n/o**e)/r;return o}function properDivisors(n){n=abs(n);for(var r=[],t=1n;t<n;t++)n%t===0n&&r.push(t);return r}function aliquotSum(n){n=abs(n);for(var r=0n,t=1n;t<n;t++)n%t===0n&&(r+=t);return r}function minPrimeFactor(n){if((n=abs(n))<=1n)return 0n;if(n<=3n)return n;if(n%2n===0n)return 2n;if(n%3n===0n)return 3n;for(var r=6n,t=sqrt(n)+1n;r<=t;r+=6n){if(n%(r-1n)===0n)return r-1n;if(n%(r+1n)===0n)return r+1n}return n}function maxPrimeFactor(n){var r=0n;if((n=abs(n))<=1n)return 0n;if(n<=3n)return n;for(;n%2n===0n;r=2n)n/=2n;for(;n%3n===0n;r=3n)n/=3n;for(var t=6n,o=sqrt(n)+1n;n>1n&&t<=o;t+=6n){for(;n%(t-1n)==0n;r=t-1n)n/=t-1n;for(;n%(t+1n)==0n;r=t+1n)n/=t+1n}return n<=1n?r:n}function primeFactors(n){var r=[];if((n=abs(n))<=1n)return[];if(n<=3n)return[n];n=pushPrimeFactorTo$(r,n,2n);for(var t=6n,o=sqrt(n=pushPrimeFactorTo$(r,n,3n))+1n;n>1n&&t<=o;t+=6n)n=pushPrimeFactorTo$(r,n,t-1n),n=pushPrimeFactorTo$(r,n,t+1n);return n>1n&&r.push(n),r}function pushPrimeFactorTo$(n,r,t){if(r%t!==0n)return r;do{r/=t}while(r%t===0n);return n.push(t),r}function primeExponentials(n){var r=[];if((n=abs(n))<=1n)return[];if(n<=3n)return[[n,1n]];n=pushPrimeExponentialTo$(r,n,2n);for(var t=6n,o=sqrt(n=pushPrimeExponentialTo$(r,n,3n))+1n;n>1n&&t<=o;t+=6n)n=pushPrimeExponentialTo$(r,n,t-1n),n=pushPrimeExponentialTo$(r,n,t+1n);return n>1n&&r.push([n,1n]),r}function pushPrimeExponentialTo$(n,r,t){if(r%t!==0n)return r;var o=0n;do{r/=t,++o}while(r%t===0n);return n.push([t,o]),r}function isPrime(n){return 0n!==n&&minPrimeFactor(n)===abs(n)}function gcd(...n){for(var r=n[0]||1n,t=1,o=n.length;t<o;t++)r=gcdPair(r,n[t]);return r}function gcdPair(n,r){for(;0n!==r;){var t=r;r=n%r,n=t}return n}function lcm(...n){for(var r=n[0]||1n,t=1,o=n.length;t<o;t++)r=r*n[t]/gcdPair(r,n[t]);return r}function factorial(n,r=0n){if(n<0n)return 0n;for(var t=r+1n,o=1n;t<=n;t++)o*=t;return o}function binomial(n,r){if(r<0n||r>abs(n))return 0n;if(n<0n)return(-1n)**r*binomial(-n,r);r=r>n-r?n-r:r;for(var t=1n,o=1n,e=1n;e<=r;e++,n--)t*=n,o*=e;return t/o}function multinomial(...n){for(var r=sum(...n),t=1n,o=1n,e=0,i=0n,u=n.length;e<u;)i<=0n?i=n[e++]:(t*=r--,o*=i--);return t/o}function hypot(...n){var r=0n;for(var t of n)r+=t*t;return sqrt(r)}function sum(...n){var r=0n;for(var t of n)r+=t;return r}function product(...n){var r=1n;for(var t of n)r*=t;return r}function median(...n){if(0===n.length)return 0n;n.sort(compare);var r=n.length>>1;return 1==(1&n.length)?n[r]:(n[r-1]+n[r])/2n}function modes(...n){return n.sort(compare),getRepeats(n,maxRepeat(n))}function maxRepeat(n){for(var r=Math.min(n.length,1),t=r,o=1,e=n.length;o<e;o++)n[o-1]===n[o]?r++:(t=Math.max(t,r),r=1);return Math.max(t,r)}function getRepeats(n,r){var t=[];r--;for(var o=0,e=n.length-r;o<e;o++)n[o]===n[o+r]&&t.push(n[o+=r]);return t}function min(...n){if(0===n.length)return 0n;var r=n[0];for(var t of n)r=t<r?t:r;return r}function max(...n){if(0===n.length)return 0n;var r=n[0];for(var t of n)r=t>r?t:r;return r}function range(...n){if(0===n.length)return[0n,0n];var r=n[0],t=r;for(var o of n)r=o<r?o:r,t=o>t?o:t;return[r,t]}function variance(...n){if(0===n.length)return 0n;var r=arithmeticMean(...n),t=0n;for(var o of n)t+=(o-r)**2n;return t/BigInt(n.length)}function arithmeticMean(...n){var r=BigInt(n.length);return sum(...n)/r}function geometricMean(...n){var r=BigInt(n.length);return root(product(...n),r)}function harmonicMean(...n){var r=BigInt(n.length),t=product(...n),o=0n;for(var e of n)o+=t/e;return r*t/o}function quadriaticMean(...n){var r=BigInt(n.length),t=0n;for(var o of n)t+=o*o;return sqrt(t/r)}function cubicMean(...n){var r=BigInt(n.length),t=0n;for(var o of n)t+=o**3n;return cbrt(t/r)}export{abs,properDivisors as aliquotParts,aliquotSum,arithmeticMean,binomial,cbrt,ceilDiv,constrain as clamp,compare,constrain,cubicMean,factorial,floorDiv,gcd,geometricMean,maxPrimeFactor as greatestPrimeFactor,harmonicMean,gcd as hcf,hypot,is,isPow10,isPow2,isPrime,lcm,minPrimeFactor as leastPrimeFactor,lerp,log10,log2,remap as map,max,maxPrimeFactor,arithmeticMean as mean,median,min,minPrimeFactor,mod,modes,modp,multinomial,nextPow10,nextPow2,prevPow10,prevPow2,primeExponentials,primeFactors,product,properDivisors,quadriaticMean,range,rem,remap,root,quadriaticMean as rootMeanSquare,roundDiv,sign,sqrt,sum,variance}; |