bigint-mod-arith/dist/index.node.esm.js

3 lines
5.1 KiB
JavaScript

function n(n){return n>=0?n:-n}function t(n){if("number"==typeof n&&(n=BigInt(n)),1n===n)return 1;let t=1;do{t++}while((n>>=1n)>1n);return t}function r(n,t){if("number"==typeof n&&(n=BigInt(n)),"number"==typeof t&&(t=BigInt(t)),n<=0n||t<=0n)throw new RangeError("a and b MUST be > 0");let r=0n,e=1n,o=1n,u=0n;for(;0n!==n;){const i=t/n,f=t%n,g=r-o*i,b=e-u*i;t=n,n=f,r=o,e=u,o=g,u=b}return{g:t,x:r,y:e}}function e(t,r){let e="number"==typeof t?BigInt(n(t)):n(t),o="number"==typeof r?BigInt(n(r)):n(r);if(0n===e)return o;if(0n===o)return e;let u=0n;for(;0n===(1n&(e|o));)e>>=1n,o>>=1n,u++;for(;0n===(1n&e);)e>>=1n;do{for(;0n===(1n&o);)o>>=1n;if(e>o){const n=e;e=o,o=n}o-=e}while(0n!==o);return e<<u}function o(t,r){return"number"==typeof t&&(t=BigInt(t)),"number"==typeof r&&(r=BigInt(r)),0n===t&&0n===r?BigInt(0):n(t/e(t,r)*r)}function u(n,t){return n>=t?n:t}function i(n,t){return n>=t?t:n}function f(n,t){if("number"==typeof n&&(n=BigInt(n)),"number"==typeof t&&(t=BigInt(t)),t<=0n)throw new RangeError("n must be > 0");const r=n%t;return r<0n?r+t:r}function g(n,t){const e=r(f(n,t),t);if(1n!==e.g)throw new RangeError(`${n.toString()} does not have inverse modulo ${t.toString()}`);return f(e.x,t)}function b(t,r,e){if("number"==typeof t&&(t=BigInt(t)),"number"==typeof r&&(r=BigInt(r)),"number"==typeof e&&(e=BigInt(e)),e<=0n)throw new RangeError("n must be > 0");if(1n===e)return 0n;if(t=f(t,e),r<0n)return g(b(t,n(r),e),e);let o=1n;for(;r>0;)r%2n===1n&&(o=o*t%e),r/=2n,t=t**2n%e;return o}export{n as abs,t as bitLength,r as eGcd,e as gcd,o as lcm,u as max,i as min,g as modInv,b as modPow,f as toZn};
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgubm9kZS5lc20uanMiLCJzb3VyY2VzIjpbIi4uL3NyYy90cy9hYnMudHMiLCIuLi9zcmMvdHMvYml0TGVuZ3RoLnRzIiwiLi4vc3JjL3RzL2VnY2QudHMiLCIuLi9zcmMvdHMvZ2NkLnRzIiwiLi4vc3JjL3RzL2xjbS50cyIsIi4uL3NyYy90cy9tYXgudHMiLCIuLi9zcmMvdHMvbWluLnRzIiwiLi4vc3JjL3RzL3RvWm4udHMiLCIuLi9zcmMvdHMvbW9kSW52LnRzIiwiLi4vc3JjL3RzL21vZFBvdy50cyJdLCJzb3VyY2VzQ29udGVudCI6bnVsbCwibmFtZXMiOlsiYWJzIiwiYSIsImJpdExlbmd0aCIsIkJpZ0ludCIsImJpdHMiLCJlR2NkIiwiYiIsIlJhbmdlRXJyb3IiLCJ4IiwieSIsInUiLCJ2IiwicSIsInIiLCJtIiwibiIsImciLCJnY2QiLCJhQWJzIiwiYkFicyIsInNoaWZ0IiwibGNtIiwibWF4IiwibWluIiwidG9abiIsImFabiIsIm1vZEludiIsImVnY2QiLCJ0b1N0cmluZyIsIm1vZFBvdyIsImUiXSwibWFwcGluZ3MiOiJBQU9NLFNBQVVBLEVBQUtDLEdBQ25CLE9BQVFBLEdBQUssRUFBS0EsR0FBS0EsQ0FDekIsQ0NITSxTQUFVQyxFQUFXRCxHQUd6QixHQUZpQixpQkFBTkEsSUFBZ0JBLEVBQUlFLE9BQU9GLElBRTVCLEtBQU5BLEVBQVksT0FBTyxFQUN2QixJQUFJRyxFQUFPLEVBQ1gsR0FDRUEsV0FDUUgsSUFBTSxJQUFNLElBQ3RCLE9BQU9HLENBQ1QsQ0NDZ0IsU0FBQUMsRUFBTUosRUFBb0JLLEdBSXhDLEdBSGlCLGlCQUFOTCxJQUFnQkEsRUFBSUUsT0FBT0YsSUFDckIsaUJBQU5LLElBQWdCQSxFQUFJSCxPQUFPRyxJQUVsQ0wsR0FBSyxJQUFNSyxHQUFLLEdBQUksTUFBTSxJQUFJQyxXQUFXLHVCQUU3QyxJQUFJQyxFQUFJLEdBQ0pDLEVBQUksR0FDSkMsRUFBSSxHQUNKQyxFQUFJLEdBRVIsS0FBYSxLQUFOVixHQUFVLENB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