blob: 6395ebb960a23f5da587d72a16f4836d06e22810 [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[8421],{3905:(t,e,a)=>{a.d(e,{Zo:()=>o,kt:()=>d});var n=a(7294);function r(t,e,a){return e in t?Object.defineProperty(t,e,{value:a,enumerable:!0,configurable:!0,writable:!0}):t[e]=a,t}function p(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,n)}return a}function m(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?p(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):p(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function l(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},p=Object.keys(t);for(n=0;n<p.length;n++)a=p[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var p=Object.getOwnPropertySymbols(t);for(n=0;n<p.length;n++)a=p[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var i=n.createContext({}),k=function(t){var e=n.useContext(i),a=e;return t&&(a="function"==typeof t?t(e):m(m({},e),t)),a},o=function(t){var e=k(t.components);return n.createElement(i.Provider,{value:e},t.children)},s="mdxType",u={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},b=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,p=t.originalType,i=t.parentName,o=l(t,["components","mdxType","originalType","parentName"]),s=k(a),b=r,d=s["".concat(i,".").concat(b)]||s[b]||u[b]||p;return a?n.createElement(d,m(m({ref:e},o),{},{components:a})):n.createElement(d,m({ref:e},o))}));function d(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var p=a.length,m=new Array(p);m[0]=b;var l={};for(var i in e)hasOwnProperty.call(e,i)&&(l[i]=e[i]);l.originalType=t,l[s]="string"==typeof t?t:r,m[1]=l;for(var k=2;k<p;k++)m[k]=a[k];return n.createElement.apply(null,m)}return n.createElement.apply(null,a)}b.displayName="MDXCreateElement"},6269:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>o,contentTitle:()=>i,default:()=>b,frontMatter:()=>l,metadata:()=>k,toc:()=>s});var n=a(7462),r=a(3366),p=(a(7294),a(3905)),m=["components"],l={id:"big",title:"BIG",sidebar_label:"BIG"},i=void 0,k={unversionedId:"cryptojs/big",id:"cryptojs/big",title:"BIG",description:"BIG",source:"@site/../docs/cryptojs/big.md",sourceDirName:"cryptojs",slug:"/cryptojs/big",permalink:"/docs/cryptojs/big",draft:!1,tags:[],version:"current",frontMatter:{id:"big",title:"BIG",sidebar_label:"BIG"},sidebar:"docs",previous:{title:"AES",permalink:"/docs/cryptojs/aes"},next:{title:"BLS",permalink:"/docs/cryptojs/bls"}},o={},s=[{value:"BIG",id:"big",level:2},{value:"new BIG()",id:"new-big",level:3},{value:"biG.zero() \u21d2",id:"bigzero-",level:3},{value:"biG.one() \u21d2",id:"bigone-",level:3},{value:"biG.iszilch() \u21d2",id:"bigiszilch-",level:3},{value:"biG.isunity() \u21d2",id:"bigisunity-",level:3},{value:"biG.cswap()",id:"bigcswap",level:3},{value:"biG.cmove()",id:"bigcmove",level:3},{value:"biG.copy() \u21d2",id:"bigcopy-",level:3},{value:"biG.hcopy() \u21d2",id:"bighcopy-",level:3},{value:"biG.rcopy() \u21d2",id:"bigrcopy-",level:3},{value:"biG.norm() \u21d2",id:"bignorm-",level:3},{value:"biG.fshr() \u21d2",id:"bigfshr-",level:3},{value:"biG.shr() \u21d2",id:"bigshr-",level:3},{value:"biG.fshl() \u21d2",id:"bigfshl-",level:3},{value:"biG.shl() \u21d2",id:"bigshl-",level:3},{value:"biG.nbits() \u21d2",id:"bignbits-",level:3},{value:"biG.toString() \u21d2",id:"bigtostring-",level:3},{value:"biG.add() \u21d2",id:"bigadd-",level:3},{value:"biG.or() \u21d2",id:"bigor-",level:3},{value:"biG.plus() \u21d2",id:"bigplus-",level:3},{value:"biG.inc() \u21d2",id:"biginc-",level:3},{value:"biG.sub() \u21d2",id:"bigsub-",level:3},{value:"biG.rsub() \u21d2",id:"bigrsub-",level:3},{value:"biG.dec() \u21d2",id:"bigdec-",level:3},{value:"biG.minus() \u21d2",id:"bigminus-",level:3},{value:"biG.imul() \u21d2",id:"bigimul-",level:3},{value:"biG.tobytearray()",id:"bigtobytearray",level:3},{value:"biG.toBytes()",id:"bigtobytes",level:3},{value:"biG.muladd()",id:"bigmuladd",level:3},{value:"biG.pmul() \u21d2",id:"bigpmul-",level:3},{value:"biG.pxmul() \u21d2",id:"bigpxmul-",level:3},{value:"biG.div3() \u21d2",id:"bigdiv3-",level:3},{value:"biG.mod2m() \u21d2",id:"bigmod2m-",level:3},{value:"biG.invmod2m() \u21d2",id:"biginvmod2m-",level:3},{value:"biG.mod() \u21d2",id:"bigmod-",level:3},{value:"biG.div() \u21d2",id:"bigdiv-",level:3},{value:"biG.parity() \u21d2",id:"bigparity-",level:3},{value:"biG.bit() \u21d2",id:"bigbit-",level:3},{value:"biG.lastbits() \u21d2",id:"biglastbits-",level:3},{value:"biG.jacobi() \u21d2",id:"bigjacobi-",level:3},{value:"biG.invmodp() \u21d2",id:"biginvmodp-",level:3},{value:"biG.powmod() \u21d2",id:"bigpowmod-",level:3},{value:"BIG.frombytearray() \u21d2",id:"bigfrombytearray-",level:3},{value:"BIG.smul() \u21d2",id:"bigsmul-",level:3},{value:"BIG.comp() \u21d2",id:"bigcomp-",level:3},{value:"BIG.random() \u21d2",id:"bigrandom-",level:3},{value:"BIG.randomnum() \u21d2",id:"bigrandomnum-",level:3},{value:"BIG.mul() \u21d2",id:"bigmul-",level:3},{value:"BIG.sqr() \u21d2",id:"bigsqr-",level:3},{value:"BIG.modmul() \u21d2",id:"bigmodmul-",level:3},{value:"BIG.modsqr() \u21d2",id:"bigmodsqr-",level:3},{value:"BIG.modneg() \u21d2",id:"bigmodneg-",level:3},{value:"BIG.invmod256() \u21d2",id:"biginvmod256-",level:3}],u={toc:s};function b(t){var e=t.components,a=(0,r.Z)(t,m);return(0,p.kt)("wrapper",(0,n.Z)({},u,a,{components:e,mdxType:"MDXLayout"}),(0,p.kt)("a",{name:"BIG"}),(0,p.kt)("h2",{id:"big"},"BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": global class",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("ul",null,(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG"},"BIG"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#new_BIG_new"},"new BIG()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("em",{parentName:"li"},"instance"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+zero"},".zero()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+one"},".one()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+iszilch"},".iszilch()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+isunity"},".isunity()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+cswap"},".cswap()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+cmove"},".cmove()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+copy"},".copy()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+hcopy"},".hcopy()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+rcopy"},".rcopy()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+norm"},".norm()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+fshr"},".fshr()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+shr"},".shr()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+fshl"},".fshl()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+shl"},".shl()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+nbits"},".nbits()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+toString"},".toString()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+add"},".add()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+or"},".or()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+plus"},".plus()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+inc"},".inc()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+sub"},".sub()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+rsub"},".rsub()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+dec"},".dec()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+minus"},".minus()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+imul"},".imul()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+tobytearray"},".tobytearray()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+toBytes"},".toBytes()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+muladd"},".muladd()")),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+pmul"},".pmul()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+pxmul"},".pxmul()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+div3"},".div3()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+mod2m"},".mod2m()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+invmod2m"},".invmod2m()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+mod"},".mod()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+div"},".div()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+parity"},".parity()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+bit"},".bit()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+lastbits"},".lastbits()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+jacobi"},".jacobi()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+invmodp"},".invmodp()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG+powmod"},".powmod()")," \u21d2"))),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("em",{parentName:"li"},"static"),(0,p.kt)("ul",{parentName:"li"},(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.frombytearray"},".frombytearray()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.smul"},".smul()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.comp"},".comp()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.random"},".random()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.randomnum"},".randomnum()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.mul"},".mul()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.sqr"},".sqr()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.modmul"},".modmul()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.modsqr"},".modsqr()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.modneg"},".modneg()")," \u21d2"),(0,p.kt)("li",{parentName:"ul"},(0,p.kt)("a",{parentName:"li",href:"#BIG.invmod256"},".invmod256()")," \u21d2")))))),(0,p.kt)("a",{name:"new_BIG_new"}),(0,p.kt)("h3",{id:"new-big"},"new BIG()"),(0,p.kt)("p",null,"General purpose Constructor"),(0,p.kt)("a",{name:"BIG+zero"}),(0,p.kt)("h3",{id:"bigzero-"},"biG.zero() \u21d2"),(0,p.kt)("p",null,"set to zero"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+one"}),(0,p.kt)("h3",{id:"bigone-"},"biG.one() \u21d2"),(0,p.kt)("p",null,"set to one"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+iszilch"}),(0,p.kt)("h3",{id:"bigiszilch-"},"biG.iszilch() \u21d2"),(0,p.kt)("p",null,"test for zero"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": True if zero",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+isunity"}),(0,p.kt)("h3",{id:"bigisunity-"},"biG.isunity() \u21d2"),(0,p.kt)("p",null,"test for unity"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": True if one",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+cswap"}),(0,p.kt)("h3",{id:"bigcswap"},"biG.cswap()"),(0,p.kt)("p",null,"Conditional swap of two BIGs depending on d using XOR - no branches"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": d BIG number "),(0,p.kt)("a",{name:"BIG+cmove"}),(0,p.kt)("h3",{id:"bigcmove"},"biG.cmove()"),(0,p.kt)("p",null,"Conditional move of BIG depending on d using XOR - no branches"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": d BIG number "),(0,p.kt)("a",{name:"BIG+copy"}),(0,p.kt)("h3",{id:"bigcopy-"},"biG.copy() \u21d2"),(0,p.kt)("p",null,"Copy from another BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": The BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": y BIG number "),(0,p.kt)("a",{name:"BIG+hcopy"}),(0,p.kt)("h3",{id:"bighcopy-"},"biG.hcopy() \u21d2"),(0,p.kt)("p",null,"copy from bottom half of ctx.DBIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": The new BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": y BIG number "),(0,p.kt)("a",{name:"BIG+rcopy"}),(0,p.kt)("h3",{id:"bigrcopy-"},"biG.rcopy() \u21d2"),(0,p.kt)("p",null,"copy from ROM"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": The BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": y BIG number in ROM "),(0,p.kt)("a",{name:"BIG+norm"}),(0,p.kt)("h3",{id:"bignorm-"},"biG.norm() \u21d2"),(0,p.kt)("p",null,"normalise BIG - force all digits ","<"," 2^BASEBITS"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+fshr"}),(0,p.kt)("h3",{id:"bigfshr-"},"biG.fshr() \u21d2"),(0,p.kt)("p",null,"Quick Fast shifts a BIG right by a small number of bits - input must be normalised, output will be normalised"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": r The shifted out part",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": k Number of bits to shift "),(0,p.kt)("a",{name:"BIG+shr"}),(0,p.kt)("h3",{id:"bigshr-"},"biG.shr() \u21d2"),(0,p.kt)("p",null,"General shift right by k bits"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": k Number of bits to shift "),(0,p.kt)("a",{name:"BIG+fshl"}),(0,p.kt)("h3",{id:"bigfshl-"},"biG.fshl() \u21d2"),(0,p.kt)("p",null,"Fast shifts a BIG left by a small number of bits - input must be normalised, output will be normalised"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": r The shifted out part",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": k Number of bits to shift "),(0,p.kt)("a",{name:"BIG+shl"}),(0,p.kt)("h3",{id:"bigshl-"},"biG.shl() \u21d2"),(0,p.kt)("p",null,"General shift left by k bits"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": k Number of bits to shift "),(0,p.kt)("a",{name:"BIG+nbits"}),(0,p.kt)("h3",{id:"bignbits-"},"biG.nbits() \u21d2"),(0,p.kt)("p",null,"length in bits"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": The number of bigs in BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+toString"}),(0,p.kt)("h3",{id:"bigtostring-"},"biG.toString() \u21d2"),(0,p.kt)("p",null,"Convert to string"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": string representation of a BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+add"}),(0,p.kt)("h3",{id:"bigadd-"},"biG.add() \u21d2"),(0,p.kt)("p",null,"Sum two BIG mumbers"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this+=y",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": y BIG object "),(0,p.kt)("a",{name:"BIG+or"}),(0,p.kt)("h3",{id:"bigor-"},"biG.or() \u21d2"),(0,p.kt)("p",null,"OR two BIG mumbers"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this|=y",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": y BIG object "),(0,p.kt)("a",{name:"BIG+plus"}),(0,p.kt)("h3",{id:"bigplus-"},"biG.plus() \u21d2"),(0,p.kt)("p",null,"Sum two BIG mumbers"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this+x",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": x BIG object "),(0,p.kt)("a",{name:"BIG+inc"}),(0,p.kt)("h3",{id:"biginc-"},"biG.inc() \u21d2"),(0,p.kt)("p",null,"Sum BIG and integer"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this+=i",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": i Integer to add "),(0,p.kt)("a",{name:"BIG+sub"}),(0,p.kt)("h3",{id:"bigsub-"},"biG.sub() \u21d2"),(0,p.kt)("p",null,"Subtract BIG from one another"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this-=y",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": y BIG object "),(0,p.kt)("a",{name:"BIG+rsub"}),(0,p.kt)("h3",{id:"bigrsub-"},"biG.rsub() \u21d2"),(0,p.kt)("p",null,"Reverse subtract BIG from one another"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this=x-this",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": x BIG object "),(0,p.kt)("a",{name:"BIG+dec"}),(0,p.kt)("h3",{id:"bigdec-"},"biG.dec() \u21d2"),(0,p.kt)("p",null,"Subtract integer from BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this-=i",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": i Integer to subtract "),(0,p.kt)("a",{name:"BIG+minus"}),(0,p.kt)("h3",{id:"bigminus-"},"biG.minus() \u21d2"),(0,p.kt)("p",null,"Subtract BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": New BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": x BIG object "),(0,p.kt)("a",{name:"BIG+imul"}),(0,p.kt)("h3",{id:"bigimul-"},"biG.imul() \u21d2"),(0,p.kt)("p",null,"Multiply by small integer"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this","*","c",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": c small integer "),(0,p.kt)("a",{name:"BIG+tobytearray"}),(0,p.kt)("h3",{id:"bigtobytearray"},"biG.tobytearray()"),(0,p.kt)("p",null,"convert this BIG to byte array"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+toBytes"}),(0,p.kt)("h3",{id:"bigtobytes"},"biG.toBytes()"),(0,p.kt)("p",null,"convert this to byte array"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+muladd"}),(0,p.kt)("h3",{id:"bigmuladd"},"biG.muladd()"),(0,p.kt)("p",null,"this","[i]","+=x","*","y+c, and return high part"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+pmul"}),(0,p.kt)("h3",{id:"bigpmul-"},"biG.pmul() \u21d2"),(0,p.kt)("p",null,"multiply by larger int"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": carry value",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": c large integer "),(0,p.kt)("a",{name:"BIG+pxmul"}),(0,p.kt)("h3",{id:"bigpxmul-"},"biG.pxmul() \u21d2"),(0,p.kt)("p",null,"multiply by still larger int - results requires a DBIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": DBIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": c large integer "),(0,p.kt)("a",{name:"BIG+div3"}),(0,p.kt)("h3",{id:"bigdiv3-"},"biG.div3() \u21d2"),(0,p.kt)("p",null,"divide by 3"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": carry value",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+mod2m"}),(0,p.kt)("h3",{id:"bigmod2m-"},"biG.mod2m() \u21d2"),(0,p.kt)("p",null,"set x = x mod 2^m"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": m Exponent "),(0,p.kt)("a",{name:"BIG+invmod2m"}),(0,p.kt)("h3",{id:"biginvmod2m-"},"biG.invmod2m() \u21d2"),(0,p.kt)("p",null,"a=1/a mod 2^256. This is very fast!"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+mod"}),(0,p.kt)("h3",{id:"bigmod-"},"biG.mod() \u21d2"),(0,p.kt)("p",null,"reduce this mod m"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+div"}),(0,p.kt)("h3",{id:"bigdiv-"},"biG.div() \u21d2"),(0,p.kt)("p",null,"this/=m1"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Paramter"),": m1 divisor "),(0,p.kt)("a",{name:"BIG+parity"}),(0,p.kt)("h3",{id:"bigparity-"},"biG.parity() \u21d2"),(0,p.kt)("p",null,"return parity of this"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}')," "),(0,p.kt)("a",{name:"BIG+bit"}),(0,p.kt)("h3",{id:"bigbit-"},"biG.bit() \u21d2"),(0,p.kt)("p",null,"return n-th bit of this"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": bit value",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": nth bit to return "),(0,p.kt)("a",{name:"BIG+lastbits"}),(0,p.kt)("h3",{id:"biglastbits-"},"biG.lastbits() \u21d2"),(0,p.kt)("p",null,"return last n bits of this"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": bit values",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": n bits to return "),(0,p.kt)("a",{name:"BIG+jacobi"}),(0,p.kt)("h3",{id:"bigjacobi-"},"biG.jacobi() \u21d2"),(0,p.kt)("p",null,"Jacobi Symbol (this/p)"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": 0, 1 or -1",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": p BIG number "),(0,p.kt)("a",{name:"BIG+invmodp"}),(0,p.kt)("h3",{id:"biginvmodp-"},"biG.invmodp() \u21d2"),(0,p.kt)("p",null,"this=1/this mod p. Binary method"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": p The BIG Modulus "),(0,p.kt)("a",{name:"BIG+powmod"}),(0,p.kt)("h3",{id:"bigpowmod-"},"biG.powmod() \u21d2"),(0,p.kt)("p",null,"Exponentation modulo m"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": this^e mod m",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": e1 BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": m The BIG Modulus "),(0,p.kt)("a",{name:"BIG.frombytearray"}),(0,p.kt)("h3",{id:"bigfrombytearray-"},"BIG.frombytearray() \u21d2"),(0,p.kt)("p",null,"convert from byte array to BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG object",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b Bytearray "),(0,p.kt)("a",{name:"BIG.smul"}),(0,p.kt)("h3",{id:"bigsmul-"},"BIG.smul() \u21d2"),(0,p.kt)("p",null,"return a","*","b where product fits a BIG"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": a","*","b",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b BIG number "),(0,p.kt)("a",{name:"BIG.comp"}),(0,p.kt)("h3",{id:"bigcomp-"},"BIG.comp() \u21d2"),(0,p.kt)("p",null,"Compare a and b"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": 0 if a==b, -1 if a","<","b, +1 if a",">","b",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a BIG number (normalised)",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b BIG number (normalised "),(0,p.kt)("a",{name:"BIG.random"}),(0,p.kt)("h3",{id:"bigrandom-"},"BIG.random() \u21d2"),(0,p.kt)("p",null,"Get 8","*","MODBYTES size random number"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": rng Cryptographically Secure Random Number Generator "),(0,p.kt)("a",{name:"BIG.randomnum"}),(0,p.kt)("h3",{id:"bigrandomnum-"},"BIG.randomnum() \u21d2"),(0,p.kt)("p",null,"Create random BIG in portable way, one bit at a time"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": rng Cryptographically Secure Random Number Generator",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": q The BIG Modulus "),(0,p.kt)("a",{name:"BIG.mul"}),(0,p.kt)("h3",{id:"bigmul-"},"BIG.mul() \u21d2"),(0,p.kt)("p",null,"Multiple two BIG numbers"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": a","*","b as a DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b BIG number "),(0,p.kt)("a",{name:"BIG.sqr"}),(0,p.kt)("h3",{id:"bigsqr-"},"BIG.sqr() \u21d2"),(0,p.kt)("p",null,"Square two BIG numbers"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": a","*","2 as a DBIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a BIG number "),(0,p.kt)("a",{name:"BIG.modmul"}),(0,p.kt)("h3",{id:"bigmodmul-"},"BIG.modmul() \u21d2"),(0,p.kt)("p",null,"Multiple two BIG numbers modulo m"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": a1","*","b1 mod m as a BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a1 BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": b1 BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": m The BIG Modulus "),(0,p.kt)("a",{name:"BIG.modsqr"}),(0,p.kt)("h3",{id:"bigmodsqr-"},"BIG.modsqr() \u21d2"),(0,p.kt)("p",null,"Square a BIG number modulo m"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": a","*","2 mod m as a BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a1 BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": m The BIG Modulus "),(0,p.kt)("a",{name:"BIG.modneg"}),(0,p.kt)("h3",{id:"bigmodneg-"},"BIG.modneg() \u21d2"),(0,p.kt)("p",null,"Inversion"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": -a1 mod m",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a1 BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": m The BIG Modulus "),(0,p.kt)("a",{name:"BIG.invmod256"}),(0,p.kt)("h3",{id:"biginvmod256-"},"BIG.invmod256() \u21d2"),(0,p.kt)("p",null,"Arazi and Qi inversion mod 256"),(0,p.kt)("p",null,(0,p.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,p.kt)("a",{parentName:"p",href:"#BIG"},(0,p.kt)("code",null,"BIG")),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Returns"),": BIG number",(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"this"),": ",(0,p.kt)("code",null,'{"{"}BIG{"}"}'),(0,p.kt)("br",{parentName:"p"}),"\n",(0,p.kt)("strong",{parentName:"p"},"Parameter"),": a BIG number"))}b.isMDXComponent=!0}}]);