UNPKG

@arithmetic-operations-for/naturals-big-endian

Version:

Arbitrary precision arithmetic for integers in big endian order for JavaScript

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