@arithmetic-operations-for/naturals-big-endian
Version:
Arbitrary precision arithmetic for integers in big endian order for JavaScript
3 lines (2 loc) • 14.9 kB
JavaScript
!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t||self).naturalsBigEndian={})}(this,function(t){function n(t,n,o,r,e){for(;n<o;++n,++e)r[e]=t[n]}function o(t,o,r,e,i,c,f,u,l,_){let s=0;for(;--f>=c;){const n=o[--e]+i[f]+s;u[--_]=n%t,s=n>=t|0}if(0!==s){for(;--e>=r&&o[e]===t-1;)u[--_]=0;--_>=l&&(u[_]=e>=r?o[e]+1:1)}n(o,r,e,u,_-e+r)}function r(t,n,r,e,i,c,f,u,l,_){const s=_-(l=Math.max(0,l));return e-(r=Math.max(0,r,e-s))<f-(c=Math.max(0,c,f-s))?o(t,i,c,f,n,r,e,u,l,_):o(t,n,r,e,i,c,f,u,l,_)}function e(t,n,o,r,e,i,c){let f=0;for(;--c>=i;){const o=n[--r]+e[c]+f;n[r]=o%t,f=o>=t|0}if(0!==f){for(;--r>=o&&n[r]===t-1;)n[r]=0;r>=o&&++n[r]}}function i(t,n,o,r,i,c,f){return e(t,n,o,r,i,Math.max(c,f-(r-o)),f)}function c(t,n,o,r){const e=t-1;for(;--r>=o;){if(n[r]<e)return void++n[r];n[r]=0}}function f(t,n,o,r,e,i,c,f){for(;e<i;)n*=t,c[f]=(n+=r[e])/o|0,n%=o,r[e]=0,++f,++e;r[i-1]=n}function u(t,n,o,r,e,i,c){return f(t,0,n,o,r,e,i,c)}function l(t){return new Array(t)}function _(t,n,o,r){for(let e=n;e<o;++e)t[e]=r}function s(t,n,o){_(t,n,o,0)}function a(t){const n=l(t);return s(n,0,t),n}function d(t,n,o,r,e,i,c,f){let u=0;for(;;){if(--f,--e<r)return void(f>=c&&(i[f]=u));if(f<c)return;const l=o[e]*n+u;i[f]=l%t,u=l/t|0}}function h(t,n,o){for(;n<o;++n)if(0!==t[n])return!1;return!0}function m(t,n,o){for(;n<o&&0===t[n];)++n;return n}function v(t,n,o,r,e){for(;n<o;++n,++e){if(t[n]>r[e])return 1;if(t[n]<r[e])return-1}return 0}function g(t,n,o,r,e,i){const c=o-i+e;for(;n<c;++n)if(t[n]>0)return 1;return v(t,n,o,r,e)}function p(t,n,o,r,e,i){return o-n<i-e?-g(r,e,i,t,n,o):g(t,n,o,r,e,i)}var b=(t,n,o,r,e,i)=>p(t,n,o,r,e,i)<0;function M(t,n,o,r,e,i,c){let f=0;for(;--c>=i;){const o=f;f=n[--r]<e[c]+o|0,n[r]=n[r]-e[c]+(f*t-o)}if(0!==f){for(;--r>=o&&0===n[r];)n[r]=t-1;r>=o&&--n[r]}}function x(t,n,o,r){return o>=r||n[o]<t?-1:n[o]>t?1:h(n,o+1,r)?0:1}function w(t,n,o,r){for(;o<r;++o){if(n[o]>t)return 1;if(n[o]<t)return-1}return-1}var k=(t,n,o,r,e,i)=>p(t,n,o,r,e,i)>0;function C(t,n,o,r,e,i,c,f,u){const l=r-o;let _=Math.min(t-1,Math.floor((n[o]*t+n[o+1])/e[i]));const s=a(l);d(t,_,e,i,c,s,0,l),k(s,0,l,n,o,r)&&(--_,M(t,s,0,l,e,i,c),k(s,0,l,n,o,r)&&(--_,M(t,s,0,l,e,i,c))),f[u+l-1]+=_,M(t,n,o,r,s,0,l)}function E(t,n,o,r,e,i,f,u,l){v(n,o,r-1,e,i)>=0?(M(t,n,o,r-1,e,i,f),C(t,n,o,r,e,i,f,u,l),c(t,u,l,l+r-o-1)):C(t,n,o,r,e,i,f,u,l)}function y(t,n,o,r,e,i,c,f,u){for(;;){const l=r-o,_=c-i;if(l<_)return;if(l===_){if(b(n,o,r,e,i,c))return;return++f[u+l-1],void M(t,n,o,r,e,i,c)}if(l===_+1)return E(t,n,o,r,e,i,c,f,u);const s=o+_+1;E(t,n,o,s,e,i,c,f,u);const a=m(n,o,s);u+=a-o,o=a}}function T(t,n,o,r,e,i,c,f){for(;e<i;)n*=t,c[f]=(n+=r[e])/o|0,n%=o,++f,++e}function D(t,o,r,e,i,c,f,u,l){const _=Math.ceil(t/2),s=i[c];if(s<_){const h=Math.ceil(_/s),m=e-r+1,v=f-c,g=a(m);d(t,h,o,r,e,g,0,m);const p=a(v);d(t,h,i,c,f,p,0,v);const b=a(m);y(t,g,0,m,p,0,v,b,0),T(t,g[0],h,g,1,m,o,r),n(b,1,m,u,l)}else y(t,o,r,e,i,c,f,u,l)}function H(t,n,o,r,e){let i=0;for(;--e>=r;){const r=o[e]*n+i;o[e]=r%t,i=r/t|0}}var O=128;function z(t,n,o,r,e,i,c,f,u,l){const _=r-o,s=c-i;--r,--c,--l;for(let o=0;o<_;++o){let i=0;for(let u=0;u<s;++u){const _=f[l-o-u]+i+n[r-o]*e[c-u];f[l-o-u]=_%t,i=_/t|0}f[l-o-s]=i}}function A(t,n,o,r,i,c,f,u,l,_){const s=r-o,d=f-c,h=Math.ceil(s/2),m=h+d,v=s-h+d,g=r-h,p=a(v);R(t,n,g,r,i,c,f,u,_-m,_),d===h?R(t,i,c,f,n,o,g,p,0,v):R(t,n,o,g,i,c,f,p,0,v),e(t,u,l,_-h,p,0,v)}function L(t,o,e,c,f,u,l,_,s,d){const h=c-e,m=l-u,v=Math.ceil(h/2);if(m<=v)return A(t,o,e,c,f,u,l,_,s,d);const g=h+m,p=2*v,b=g-p,x=c-v,w=l-v,k=a(v+1),C=a(v+1),E=a(p+2),y=a(b),T=a(p);R(t,o,e,x,f,u,w,y,0,b),R(t,o,x,c,f,w,l,T,0,p),r(t,o,e,x,o,x,c,k,0,v+1),r(t,f,u,w,f,w,l,C,0,v+1),R(t,k,1,v+1,C,1,v+1,E,2,p+2),n(y,0,b,_,d-g),n(T,0,p,_,d-p),k[0]&&i(t,E,0,v+2,C,0,v+1),C[0]&&i(t,E,0,v+2,k,1,v+1),i(t,_,s,d-v,E,0,p+2),M(t,_,s,d-v,y,0,b),M(t,_,s,d-v,T,0,p)}function R(t,n,o,r,e,i,c,f,u,l){const _=c-i;return 1===_?d(t,e[i],n,o,r,f,u,l):_<16?z(t,n,o,r,e,i,c,f,0,l):L(t,n,o,r,e,i,c,f,u,l)}function S(t,n,o,r){for(;--r>=o;){if(n[r]>0)return void--n[r];n[r]=t-1}}function j(t,n,o,r,e,c,f,u,l,s){const d=f-c>>>1;b(n,o,o+d,e,c,c+d)?V(t,n,o,r-d,e,c,c+d,u,l+d,s):(_(u,s-d,s,t-1),i(t,n,o,r-d,e,c,c+d),M(t,n,o,o+d,e,c,c+d));const h=d<<1,m=a(h);R(t,u,s-d,s,e,c+d,f,m,0,h),M(t,n,o,r,m,0,h),0!==n[o]&&(i(t,n,o,r,e,c,f),S(t,u,s-d,s),0!==n[o]&&(i(t,n,o,r,e,c,f),S(t,u,s-d,s)))}function V(t,n,o,r,e,i,c,f,u,l){if(c-i<O)return y(t,n,o,r,e,i,c,f,u);const _=r-o>>>2;j(t,n,o,r-_,e,i,c,f,u,l-_),j(t,n,o+_,r,e,i,c,f,u+_,l)}function q(t,n,o,r,e){let i=0;for(;r<e;)i*=t,i+=o[r],i%=n,++r;return i}function B(t,o,r,e,i,c,f,u,l,_){const s=e-r,d=f-c;if(s<d||s===d&&v(o,r,e,i,c)<0)return;let h=1;for(;h<d;)h<<=1;const m=h,g=m-d,p=i[c],b=t/2,M=p<b,x=Math.ceil(b/p),w=Math.ceil((s+g+(M||o[r]>=b))/m)*m,k=a(w),C=w-g-s;n(o,r,e,k,C);const E=m,y=a(m);n(i,c,f,y,0),M&&(H(t,x,k,0,w),H(t,x,y,0,E));const D=w,O=a(D);for(let n=0;n<w-m;n+=m)V(t,k,n,n+(m<<1),y,0,E,O,n,n+(m<<1));M?T(t,q(t,x,k,0,C),x,k,C,w-g,o,r):n(k,C,w-g,o,r),n(O,D-s,D,u,l)}function I(t,n,o,r,e,i,c,f,l,_){const s=c-i;return 1===s?u(t,e[i],n,o,r,f,l):s<O?D(t,n,o,r,e,i,c,f,l):B(t,n,o,r,e,i,c,f,l)}function N(t,n,o,r,e){let i=0;for(;r<e;)i*=t,i+=o[r],i%=n,o[r]=0,++r;o[e-1]=i}function U(t,n,o,r,e,i,c){const f=r-o,u=Math.min(t-1,Math.floor((n[o]*t+n[o+1])/e[i])),l=a(f);d(t,u,e,i,c,l,0,f),k(l,0,f,n,o,r)&&(M(t,l,0,f,e,i,c),k(l,0,f,n,o,r)&&M(t,l,0,f,e,i,c)),M(t,n,o,r,l,0,f)}function Z(t,n,o,r,e,i,c){v(n,o,r-1,e,i)>=0&&M(t,n,o,r-1,e,i,c),U(t,n,o,r,e,i,c)}function F(t,n,o,r,e,i,c){for(;;){const f=r-o,u=c-i;if(f<u)return;if(f===u){if(b(n,o,r,e,i,c))return;return void M(t,n,o,r,e,i,c)}if(f===u+1)return Z(t,n,o,r,e,i,c);const l=o+u+1;Z(t,n,o,l,e,i,c),o=m(n,o,l)}}function G(t,n,o,r,e,i,c){const f=Math.ceil(t/2),u=e[i];if(u<f){const l=Math.ceil(f/u),_=r-o+1,s=c-i,h=a(_);d(t,l,n,o,r,h,0,_);const m=a(s);d(t,l,e,i,c,m,0,s),F(t,h,0,_,m,0,s),T(t,h[0],l,h,1,_,n,o)}else F(t,n,o,r,e,i,c)}function J(t,n,o,r,e,i,c,f,u,l){const _=c-i;return 1===_?N(t,e[i],n,o,r):_<O?G(t,n,o,r,e,i,c):(s(f,u,l),B(t,n,o,r,e,i,c,f,u))}function K(t,n,o,r,e,i,c){const f=r-o,u=l(f);for(;;){if(i===c)return[n,o,r];if(J(t,n,o,r,e,i,c,u,f-(r-o),f),(o=m(n,r-(c-i),r))===r)return[e,i,c];J(t,e,i,c,n,o,r,u,f-(c-i),f),i=m(e,c-(r-o),c)}}function P(t,n){const o=l(t),r=l(n),e=a(Math.max(1,n));e[e.length-1]=1;const i=a(t),c=a(n),f=a(t);return f[f.length-1]=1,[o,r,e,i,c,f,a(t),a(2*t)]}function Q(t,n,o,r,e,i,c,f,u,l){return r-o>=c-i?R(t,n,o,r,e,i,c,f,u,l):R(t,e,i,c,n,o,r,f,u,l)}function W(t,o,r,i,f,u,l,_,a){const d=o.length,h=r.length;let v=0;const g=d;let p=0;const b=h;let M=i.length-1;const x=i.length;let w=d;const k=d;let C=h;const E=h;let y=d-1;const T=d;let D=0;const H=d;let O=0;const z=2*d;if(p===b)return[v,M,w,C,y,1];if(I(t,o,v,g,r,p,b,_,D),D=H-(g-b+1),0===_[D]&&++D,v=m(o,g-(b-p),g),w=k-(H-D),n(_,D,H,f,w),v===g)return[p,M,w,C,y,2];D=H-(b-p),s(_,D,H),I(t,r,p,b,o,v,g,_,D),D=H-(b-g+v+1),0===_[D]&&++D,p=m(r,b-(g-v),b),C=E-(H-D),n(_,D,H,u,C),O=z-(H-D)-(k-w),Q(t,f,w,k,_,D,H,a,O,z),c(t,a,O,z),O=m(a,O,z),y=T-(z-O),n(a,O,z,l,y);let A=3;for(;;){if(p===b)return[v,M,w,C,y,A];if(++A,D=H-(g-v),s(_,D,H),I(t,o,v,g,r,p,b,_,D),D=H-(g-v-b+p+1),0===_[D]&&++D,v=m(o,g-(b-p),g),O=z-(H-D)-(E-C),s(a,O,z),Q(t,_,D,H,u,C,E,a,O,z),0===a[O]&&++O,M=x-(z-O+1),M=Math.max(0,M),e(t,i,M,x,a,O,z),0===i[M]&&++M,O=z-(H-D)-(T-y),s(a,O,z),Q(t,_,D,H,l,y,T,a,O,z),0===a[O]&&++O,w=k-(z-O+1),w=Math.max(0,w),e(t,f,w,k,a,O,z),0===f[w]&&++w,v===g)return[p,M,w,C,y,A];++A,D=H-(b-p),s(_,D,H),I(t,r,p,b,o,v,g,_,D),D=H-(b-p-g+v+1),0===_[D]&&++D,p=m(r,b-(g-v),b),O=z-(H-D)-(x-M),s(a,O,z),Q(t,_,D,H,i,M,x,a,O,z),0===a[O]&&++O,C=E-(z-O+1),C=Math.max(0,C),e(t,u,C,E,a,O,z),0===u[C]&&++C,O=z-(H-D)-(k-w),s(a,O,z),Q(t,_,D,H,f,w,k,a,O,z),0===a[O]&&++O,y=T-(z-O+1),y=Math.max(0,y),e(t,l,y,T,a,O,z),0===l[y]&&++y}}function X(t,o,r,e,i,c,f){const[u,l,_,s,a,d,h,m]=P(e-r,f-c);n(o,r,e,u,0),n(i,c,f,l,0);const[v,g,p,b,M,x]=W(t,u,l,_,s,a,d,h,m);return x%2==1?[u,v,_,g,s,p,a,b,d,M,x]:[l,v,a,b,d,M,_,g,s,p,x]}var Y=4096;function $(t,n){let o=0;for(;t>=n&&!(t%n);)t/=n,++o;return[o,t]}function tt(t,n,o,r,e,i,c,f){let u,l,_;const s=f-c,a=e-r,d=s%n;u=s/n|0;const h=u+!!d;for(a>=h?(r=e-h,l=(n-d)%n):(c=f-a*n,l=0);r<e&&c<f;++r){for(u=o[r],_=c+n-1-l,c+=n-l;l<n;++l)i[_]=u%t,u=u/t|0,--_;l=0}}function nt(t,o,r,e,i,c,f,_){let s=1,a=o;for(;a*o<=t;a*=o,++s);const d=i-e;let h=l(d),v=l(d);n(r,e,i,v,0);let g=0;for(;;){u(t,a,v,g,d,h,g);const n=Math.max(f,_-s);let r=v[d-1];do{c[--_]=r%o,r=r/o|0}while(_>n);if(g=m(h,g,d),g===d)return;const e=h;h=v,v=e}}function ot(t,n,o,r){let e=n;const i=t;for(;e>=i;)o[--r]=e%i,e=e/i|0;return o[--r]=e,r}function rt(t,o,r,e,i,c,f,u){if(c[u-1]=1,0===o)return;const _=i-e;if(n(r,e,i,c,u-_),1===o)return;const a=[];do{a.push(1&o),o>>=1}while(1!==o);const d=l(u-f);let h=_;do{const o=h;if(h<<=1,s(d,0,h),R(t,c,u-o,u,c,u-o,u,d,0,h),0===a.pop())n(d,0,h,c,u-h);else{const n=h+_;s(c,u-n,u),R(t,d,0,h,r,e,i,c,u-n,u),h=n}}while(a.length>0)}function et(t,n,o,r,e){let i=o[--e]+n;for(o[e]=i%t;i>=t&&--e>=r;)i=o[e]+1,o[e]=i%t}function it(t,n,o,r,e,i,c,f){let u=1,l=t;for(;l*t<=n;l*=t,++u);const _=(e-r)/u|0,s=(e-r)%u;if(s>0){let n=o[r];for(let e=1;e<s;++e)n*=t,n+=o[r+e];i[f-1]=n}const a=r+s;let d=f-1;for(let r=0;r<_;++r){0!==i[d]&&d>c&&--d,H(n,l,i,d,f),0!==i[d]&&d>c&&--d;let e=0,_=a+r*u;const s=_+u;do{e*=t,e+=o[_]}while(++_<s);et(n,e,i,d,f)}}function ct(t,n,o,r,e,i,c,f){return t>n?nt(t,n,o,r,e,i,c,f):it(t,n,o,r,e,i,c,f)}function ft(t,o,r,i,c,f,u,_,d){const h=f-c,v=d-_,g=Math.log(o)/Math.log(r),p=0|Math.ceil(g*t),b=h/t|0,M=h%t,x=0|Math.ceil(g*M);let w=x?1+x:0;const k=w+b*(1+p);let C=a(k),E=l(k),y=c+M;for(M>0&&ct(o,r,i,c,y,C,1,w);y<f;)ct(o,r,i,y,y+t,C,w+1,w+1+p),y+=t,w+=1+p;let T=b+(M>0?1:0),D=a(v),H=ot(r,o,D,v);const O=t*(v-H),z=a(O);rt(r,t,D,H,v,z,0,O);const A=m(z,0,O);let L=a(v);H=v-(O-A),n(z,A,O,L,H),H=m(L,0,v);let S=p,j=x>0?x:p;for(;2!==T;){s(E,0,k);const t=1&T,o=T>>1;if(0===t){const t=1+j,n=1+t+S;Q(r,L,H,v,C,1,t,E,0,n-1),e(r,E,1,n-1,C,1+t,n),j+=S}else n(C,1,j+1,E,1);let i=j+2-t;for(let n=2-t;n<o+1;++n){const t=i+1+S,o=t+1+S;Q(r,L,H,v,C,1+i,t,E,i-n+1,o-n),e(r,E,i-n+2,o-n,C,1+t,o),i=o}const c=v-2*(v-H);s(D,c,v),R(r,L,H,v,L,H,v,D,c,v),H=m(D,c,v);const f=L;L=D,D=f;const u=C;C=E,E=u,T=o+t,S<<=1}s(E,0,v+1),Q(r,L,H,v,C,m(C,1,1+j),1+j,E,0,v+1),e(r,E,1,v+1,C,2+j,2+j+S),n(E,1,v+1,u,0)}function ut(t,n,o,r,e,i,c,f){const[u,l]=$(t,n);return 1===l?tt(n,u,o,r,e,i,c,f):e-r>=Y?ft(2048,t,n,o,r,e,i,c,f):nt(t,n,o,r,e,i,c,f)}function lt(t,n,o,r,e,i,c,f){let u,l;const _=e-r,s=f-c,a=_%n,d=(_/n|0)+!!a;for(s>=d?(c=f-d,u=(n-a)%n):(r=e-s*n,u=0);r<e&&c<f;++c){for(l=0;u<n;++u)l*=t,l+=o[r],++r;i[c]=l,u=0}}function _t(t,n,o,r,e,i,c,f){const[u,l]=$(n,t);return 1===l?lt(t,u,o,r,e,i,c,f):e-r>=Y?ft(2048,t,n,o,r,e,i,c,f):it(t,n,o,r,e,i,c,f)}function st(t,o,r,e,i,c,f,u){return t>o?ut(t,o,r,e,i,c,f,u):t<o?_t(t,o,r,e,i,c,f,u):n(r,e,i,c,f)}function at(t,n,o,r,e){const i=Math.ceil(Math.log(t)/Math.log(n)*(e-r)),c=a(i-0);return st(t,n,o,r,e,c,0,i),c}function dt(t,o,r){const e=m(t,o,r);if(e>=r)return[0];const i=l(r-e);return n(t,e,r,i,0),i}function ht(t,n,o,r,e){const i=at(t,n,o,r,e);return dt(i,0,i.length)}function mt(t){if(t>="0"&&t<="9")return t.charCodeAt(0)-48;if(t>="A"&&t<="Z")return t.charCodeAt(0)-55;if(t>="a"&&t<="z")return t.charCodeAt(0)-87;throw new Error("invalid literal for _int: "+t)}function vt(t){const n=t.length,o=[];for(let r=0;r<n;++r)o.push(mt(t[r]));return o}function gt(t,n,o){if(t>36)throw new Error("f > 36 not implemented");const r=vt(o);return at(t,n,r,0,r.length)}function pt(t,n,o){const r=gt(t,n,o);return dt(r,0,r.length)}function bt(t){return String.fromCharCode(t<10?48+t:87+t)}function Mt(t){const n=t.length,o=[];for(let r=0;r<n;++r)o.push(bt(t[r]));return o.join("")}function xt(t,n,o,r,e){if(n>36)throw new Error("t > 36 not implemented");return Mt(ht(t,n,o,r,e))}function wt(t,n,o,r,e,i,c,f,u,l){let _,s=0;for(;--c>=i;)--l,_=s,s=n[--r]<e[c]+_|0,f[l]=n[r]-e[c]+(s*t-_);for(;--r>=o;)--l,_=s,s=n[r]<_|0,f[l]=n[r]+(s*t-_);if(s)for(;--l>=u;)f[l]=t-1}var kt=L;t.THRESHOLD_CONVERT_DC=Y,t.THRESHOLD_DIV_DC=O,t.THRESHOLD_MUL_TOOM22=16,t._add=o,t._alloc=l,t._build=ot,t._chr=bt,t._cmp=g,t._cmp_half=function(t,n,o,r){const e=0|Math.floor(t/2);return t%2==0?x(e,n,o,r):w(e,n,o,r)},t._cmp_half_even_radix=x,t._cmp_half_odd_radix=w,t._cmp_n=v,t._convert=st,t._convert_dc=ft,t._convert_slow=ct,t._convert_to_larger=_t,t._convert_to_larger_fast=lt,t._convert_to_larger_slow=it,t._convert_to_smaller=ut,t._convert_to_smaller_fast=tt,t._convert_to_smaller_slow=nt,t._copy=n,t._div_limb_with_prefix=T,t._divmod=function(t,o,r,e,i,c,f,u,l,_,s,a,d){n(o,r,e,s,d-(e-r)),I(t,s,a,d,i,c,f,u,l)},t._euclidean_algorithm_loop=K,t._extended_euclidean_algorithm=X,t._extended_euclidean_algorithm_allocate=P,t._extended_euclidean_algorithm_loop=W,t._fill=_,t._from_string=vt,t._iadd=e,t._iadd_limb=et,t._idivmod=I,t._idivmod_dc=B,t._idivmod_dc_21=V,t._idivmod_dc_32=j,t._idivmod_limb=u,t._idivmod_limb_with_prefix=f,t._idivmod_schoolbook=D,t._idivmod_schoolbook_large_divisor=y,t._idivmod_schoolbook_subroutine=E,t._idivmod_schoolbook_subroutine_do=C,t._idivmod_slow=function(t,n,o,r,e,i,c,f,u){let l;const _=o+1;for(;;){for(;o<r&&0===n[o];)++o;for(l=o+1;l<=r&&b(n,o,l,e,i,c);)++l;if(l>r)break;do{++f[u+l-_],wt(t,n,o,l,e,i,c,n,o,l)}while(!b(n,o,l,e,i,c))}},t._imod=J,t._imod_limb=N,t._imod_schoolbook=G,t._imod_schoolbook_large_divisor=F,t._imod_schoolbook_subroutine=Z,t._imod_schoolbook_subroutine_do=U,t._imul_limb=H,t._int=mt,t._isub=M,t._karatsuba=L,t._karatsuba_right_op_is_small=A,t._log=$,t._mod_limb=q,t._mul=R,t._mul_limb=d,t._pow_double=rt,t._pow_double_recursive=function t(o,r,e,i,c,f,u,l){if(0===r)f[l-1]=1;else if(1===r)n(e,i,c,f,l-(c-i));else if(1&r){const n=r-1,_=(c-i)*n,s=a(_);t(o,n,e,i,c,s,0,_),R(o,s,0,_,e,i,c,f,u,l)}else{const n=r/2|0,_=(c-i)*n,s=a(_);t(o,n,e,i,c,s,0,_),R(o,s,0,_,s,0,_,f,u,l)}},t._reset=s,t._schoolbook_mul=z,t._sub=wt,t._to_string=Mt,t._toom22=kt,t._trim_positive=m,t._validate=function(t,n,o,r){return!0},t._zeros=a,t.add=r,t.cmp=p,t.convert=ht,t.convert_keep_zeros=at,t.decrement=S,t.eq=(t,n,o,r,e,i)=>0===p(t,n,o,r,e,i),t.euclidean_algorithm=function(t,o,r,e,i,c,f){const u=m(o,r,e),_=m(i,c,f),s=e-u,a=f-_,d=l(s);n(o,u,e,d,0);const h=l(a);return n(i,_,f,h,0),s>a||s===a&&v(d,0,s,h,0)>=0?K(t,d,0,s,h,0,a):K(t,h,0,a,d,0,s)},t.extended_euclidean_algorithm=function(t,n,o,r,e,i,c){const f=m(n,o,r),u=m(e,i,c),l=r-f,_=c-u;if(l>_||l===_&&v(n,f,r,e,u)>=0)return X(t,n,f,r,e,u,c);const[s,a,d,h,g,p,b,M,x,w,k]=X(t,e,u,c,n,f,r);return[s,a,g,p,d,h,x,w,b,M,k+1]},t.ge=(t,n,o,r,e,i)=>p(t,n,o,r,e,i)>=0,t.gt=k,t.iadd=i,t.increment=c,t.jz=h,t.le=(t,n,o,r,e,i)=>p(t,n,o,r,e,i)<=0,t.lt=b,t.mul=Q,t.ne=(t,n,o,r,e,i)=>0!==p(t,n,o,r,e,i),t.parse=pt,t.parse_keep_zeros=gt,t.stringify=xt,t.translate=function(t,n,o){const r=pt(t,n,o);return xt(n,n,r,0,r.length)},t.trim_natural=dt});
//# sourceMappingURL=index.umd.js.map