blob: 9dec63fe08e77b8d7a31b233949c998c1aa761e6 [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4075],{3905:(t,e,a)=>{a.d(e,{Zo:()=>m,kt:()=>c});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 l(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 p(t){for(var e=1;e<arguments.length;e++){var a=null!=arguments[e]?arguments[e]:{};e%2?l(Object(a),!0).forEach((function(e){r(t,e,a[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(a)):l(Object(a)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(a,e))}))}return t}function o(t,e){if(null==t)return{};var a,n,r=function(t,e){if(null==t)return{};var a,n,r={},l=Object.keys(t);for(n=0;n<l.length;n++)a=l[n],e.indexOf(a)>=0||(r[a]=t[a]);return r}(t,e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(t);for(n=0;n<l.length;n++)a=l[n],e.indexOf(a)>=0||Object.prototype.propertyIsEnumerable.call(t,a)&&(r[a]=t[a])}return r}var k=n.createContext({}),i=function(t){var e=n.useContext(k),a=e;return t&&(a="function"==typeof t?t(e):p(p({},e),t)),a},m=function(t){var e=i(t.components);return n.createElement(k.Provider,{value:e},t.children)},u="mdxType",d={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},s=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,k=t.parentName,m=o(t,["components","mdxType","originalType","parentName"]),u=i(a),s=r,c=u["".concat(k,".").concat(s)]||u[s]||d[s]||l;return a?n.createElement(c,p(p({ref:e},m),{},{components:a})):n.createElement(c,p({ref:e},m))}));function c(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,p=new Array(l);p[0]=s;var o={};for(var k in e)hasOwnProperty.call(e,k)&&(o[k]=e[k]);o.originalType=t,o[u]="string"==typeof t?t:r,p[1]=o;for(var i=2;i<l;i++)p[i]=a[i];return n.createElement.apply(null,p)}return n.createElement.apply(null,a)}s.displayName="MDXCreateElement"},9661:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>m,contentTitle:()=>k,default:()=>s,frontMatter:()=>o,metadata:()=>i,toc:()=>u});var n=a(7462),r=a(3366),l=(a(7294),a(3905)),p=["components"],o={id:"fp",title:"FP",sidebar_label:"FP"},k=void 0,i={unversionedId:"cryptojs/fp",id:"cryptojs/fp",title:"FP",description:"FP",source:"@site/../docs/cryptojs/fp.md",sourceDirName:"cryptojs",slug:"/cryptojs/fp",permalink:"/docs/cryptojs/fp",draft:!1,tags:[],version:"current",frontMatter:{id:"fp",title:"FP",sidebar_label:"FP"},sidebar:"docs",previous:{title:"FF",permalink:"/docs/cryptojs/ff"},next:{title:"FP2",permalink:"/docs/cryptojs/fp2"}},m={},u=[{value:"FP",id:"fp",level:2},{value:"new FP(x)",id:"new-fpx",level:3},{value:"fP.zero()",id:"fpzero",level:3},{value:"fP.rcopy(x)",id:"fprcopyx",level:3},{value:"fP.bcopy(x)",id:"fpbcopyx",level:3},{value:"fP.copy(x)",id:"fpcopyx",level:3},{value:"fP.cswap()",id:"fpcswap",level:3},{value:"fP.cmove(g, d)",id:"fpcmoveg-d",level:3},{value:"fP.nres()",id:"fpnres",level:3},{value:"fP.redc()",id:"fpredc",level:3},{value:"fP.toString()",id:"fptostring",level:3},{value:"fP.iszilch()",id:"fpiszilch",level:3},{value:"fP.reduce()",id:"fpreduce",level:3},{value:"fP.one()",id:"fpone",level:3},{value:"fP.norm()",id:"fpnorm",level:3},{value:"fP.mul(b)",id:"fpmulb",level:3},{value:"fP.imul(s)",id:"fpimuls",level:3},{value:"fP.sqr()",id:"fpsqr",level:3},{value:"fP.neg(x)",id:"fpnegx",level:3},{value:"fP.sub(x)",id:"fpsubx",level:3},{value:"fP.div2()",id:"fpdiv2",level:3},{value:"fP.fpow()",id:"fpfpow",level:3},{value:"fP.inverse()",id:"fpinverse",level:3},{value:"fP.equals(x)",id:"fpequalsx",level:3},{value:"fP.pow(e)",id:"fppowe",level:3},{value:"fP.jacobi()",id:"fpjacobi",level:3},{value:"fP.sqrt()",id:"fpsqrt",level:3},{value:"FP.mod()",id:"fpmod",level:3}],d={toc:u};function s(t){var e=t.components,a=(0,r.Z)(t,p);return(0,l.kt)("wrapper",(0,n.Z)({},d,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("a",{name:"FP"}),(0,l.kt)("h2",{id:"fp"},"FP"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": global class",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP"},"FP"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#new_FP_new"},"new FP(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"instance"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+zero"},".zero()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+rcopy"},".rcopy(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+bcopy"},".bcopy(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+copy"},".copy(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+cswap"},".cswap()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+cmove"},".cmove(g, d)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+nres"},".nres()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+redc"},".redc()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+toString"},".toString()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+iszilch"},".iszilch()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+reduce"},".reduce()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+one"},".one()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+norm"},".norm()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+mul"},".mul(b)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+imul"},".imul(s)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+sqr"},".sqr()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+neg"},".neg(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+sub"},".sub(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+div2"},".div2()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+fpow"},".fpow()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+inverse"},".inverse()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+equals"},".equals(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+pow"},".pow(e)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+jacobi"},".jacobi()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP+sqrt"},".sqrt()")))),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("em",{parentName:"li"},"static"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP.mod"},".mod()"))))))),(0,l.kt)("a",{name:"new_FP_new"}),(0,l.kt)("h3",{id:"new-fpx"},"new FP(x)"),(0,l.kt)("p",null,"Creates an instance of FP."),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP / BIG instance")))),(0,l.kt)("a",{name:"FP+zero"}),(0,l.kt)("h3",{id:"fpzero"},"fP.zero()"),(0,l.kt)("p",null,"Set FP to zero"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+rcopy"}),(0,l.kt)("h3",{id:"fprcopyx"},"fP.rcopy(x)"),(0,l.kt)("p",null,"copy from a ctx.BIG in ROM"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance to be copied")))),(0,l.kt)("a",{name:"FP+bcopy"}),(0,l.kt)("h3",{id:"fpbcopyx"},"fP.bcopy(x)"),(0,l.kt)("p",null,"copy from another ctx.BIG"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance to be copied")))),(0,l.kt)("a",{name:"FP+copy"}),(0,l.kt)("h3",{id:"fpcopyx"},"fP.copy(x)"),(0,l.kt)("p",null,"Copy FP to another FP"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance to be copied")))),(0,l.kt)("a",{name:"FP+cswap"}),(0,l.kt)("h3",{id:"fpcswap"},"fP.cswap()"),(0,l.kt)("p",null,"Conditional constant time swap of two FP numbers"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}BIG{"}"}'),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"Parameter"),": b FP number",(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"Parameter"),": d Integer "),(0,l.kt)("a",{name:"FP+cmove"}),(0,l.kt)("h3",{id:"fpcmoveg-d"},"fP.cmove(g, d)"),(0,l.kt)("p",null,"Conditional copy of FP number"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"g"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"d"),(0,l.kt)("td",{parentName:"tr",align:null},"copy depends on this value")))),(0,l.kt)("a",{name:"FP+nres"}),(0,l.kt)("h3",{id:"fpnres"},"fP.nres()"),(0,l.kt)("p",null,"Converts from BIG integer to residue form mod Modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+redc"}),(0,l.kt)("h3",{id:"fpredc"},"fP.redc()"),(0,l.kt)("p",null,"Converts from residue form back to BIG integer form"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+toString"}),(0,l.kt)("h3",{id:"fptostring"},"fP.toString()"),(0,l.kt)("p",null,"convert to hex string"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+iszilch"}),(0,l.kt)("h3",{id:"fpiszilch"},"fP.iszilch()"),(0,l.kt)("p",null,"Tests for FP equal to zero"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+reduce"}),(0,l.kt)("h3",{id:"fpreduce"},"fP.reduce()"),(0,l.kt)("p",null,"Reduces all components of possibly unreduced FP mod Modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+one"}),(0,l.kt)("h3",{id:"fpone"},"fP.one()"),(0,l.kt)("p",null,"Set FP to unity"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+norm"}),(0,l.kt)("h3",{id:"fpnorm"},"fP.norm()"),(0,l.kt)("p",null,"Normalises the components of an FP"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+mul"}),(0,l.kt)("h3",{id:"fpmulb"},"fP.mul(b)"),(0,l.kt)("p",null,"Fast Modular multiplication of two FPs, mod Modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"b"),(0,l.kt)("td",{parentName:"tr",align:null},"FP number, the multiplier")))),(0,l.kt)("a",{name:"FP+imul"}),(0,l.kt)("h3",{id:"fpimuls"},"fP.imul(s)"),(0,l.kt)("p",null,"Multiplication of an FP by a small integer"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"s"),(0,l.kt)("td",{parentName:"tr",align:null},"integer")))),(0,l.kt)("a",{name:"FP+sqr"}),(0,l.kt)("h3",{id:"fpsqr"},"fP.sqr()"),(0,l.kt)("p",null,"Fast Squaring of an FP"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+neg"}),(0,l.kt)("h3",{id:"fpnegx"},"fP.neg(x)"),(0,l.kt)("p",null,"negate this"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance to be set to one")))),(0,l.kt)("a",{name:"FP+sub"}),(0,l.kt)("h3",{id:"fpsubx"},"fP.sub(x)"),(0,l.kt)("p",null,"subtraction of two FPs"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance")))),(0,l.kt)("a",{name:"FP+div2"}),(0,l.kt)("h3",{id:"fpdiv2"},"fP.div2()"),(0,l.kt)("p",null,"Divide an FP by 2"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+fpow"}),(0,l.kt)("h3",{id:"fpfpow"},"fP.fpow()"),(0,l.kt)("p",null,"return this^(p-3)/4 or this^(p-5)/8"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+inverse"}),(0,l.kt)("h3",{id:"fpinverse"},"fP.inverse()"),(0,l.kt)("p",null,"Inverting an FP"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+equals"}),(0,l.kt)("h3",{id:"fpequalsx"},"fP.equals(x)"),(0,l.kt)("p",null,"Tests for equality of two FP instances"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"x"),(0,l.kt)("td",{parentName:"tr",align:null},"FP instance to compare")))),(0,l.kt)("a",{name:"FP+pow"}),(0,l.kt)("h3",{id:"fppowe"},"fP.pow(e)"),(0,l.kt)("p",null,"Raises an FP to the power of a BIG"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("table",null,(0,l.kt)("thead",{parentName:"table"},(0,l.kt)("tr",{parentName:"thead"},(0,l.kt)("th",{parentName:"tr",align:null},"Param"),(0,l.kt)("th",{parentName:"tr",align:null},"Description"))),(0,l.kt)("tbody",{parentName:"table"},(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"BIG instance exponent")))),(0,l.kt)("a",{name:"FP+jacobi"}),(0,l.kt)("h3",{id:"fpjacobi"},"fP.jacobi()"),(0,l.kt)("p",null,"return jacobi symbol (this/Modulus)"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP+sqrt"}),(0,l.kt)("h3",{id:"fpsqrt"},"fP.sqrt()"),(0,l.kt)("p",null,"Fast Modular square root of a an FP, mod Modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')," "),(0,l.kt)("a",{name:"FP.mod"}),(0,l.kt)("h3",{id:"fpmod"},"FP.mod()"),(0,l.kt)("p",null,'reduce a ctx.DBIG to a ctx.BIG using a "special" modulus'),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FP"},(0,l.kt)("code",null,"FP")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP{"}"}')))}s.isMDXComponent=!0}}]);