blob: db6815a0e5dc4949b4e5a4bdb15b8b011b2b44ed [file] [log] [blame]
"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[4926],{3905:(t,e,a)=>{a.d(e,{Zo:()=>m,kt:()=>N});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 k(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 o=n.createContext({}),i=function(t){var e=n.useContext(o),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(o.Provider,{value:e},t.children)},u="mdxType",s={inlineCode:"code",wrapper:function(t){var e=t.children;return n.createElement(n.Fragment,{},e)}},d=n.forwardRef((function(t,e){var a=t.components,r=t.mdxType,l=t.originalType,o=t.parentName,m=k(t,["components","mdxType","originalType","parentName"]),u=i(a),d=r,N=u["".concat(o,".").concat(d)]||u[d]||s[d]||l;return a?n.createElement(N,p(p({ref:e},m),{},{components:a})):n.createElement(N,p({ref:e},m))}));function N(t,e){var a=arguments,r=e&&e.mdxType;if("string"==typeof t||r){var l=a.length,p=new Array(l);p[0]=d;var k={};for(var o in e)hasOwnProperty.call(e,o)&&(k[o]=e[o]);k.originalType=t,k[u]="string"==typeof t?t:r,p[1]=k;for(var i=2;i<l;i++)p[i]=a[i];return n.createElement.apply(null,p)}return n.createElement.apply(null,a)}d.displayName="MDXCreateElement"},8605:(t,e,a)=>{a.r(e),a.d(e,{assets:()=>m,contentTitle:()=>o,default:()=>d,frontMatter:()=>k,metadata:()=>i,toc:()=>u});var n=a(7462),r=a(3366),l=(a(7294),a(3905)),p=["components"],k={id:"fp48",title:"FP48",sidebar_label:"FP48"},o=void 0,i={unversionedId:"cryptojs/fp48",id:"cryptojs/fp48",title:"FP48",description:"FP48",source:"@site/../docs/cryptojs/fp48.md",sourceDirName:"cryptojs",slug:"/cryptojs/fp48",permalink:"/docs/cryptojs/fp48",draft:!1,tags:[],version:"current",frontMatter:{id:"fp48",title:"FP48",sidebar_label:"FP48"},sidebar:"docs",previous:{title:"FP24",permalink:"/docs/cryptojs/fp24"},next:{title:"GCM",permalink:"/docs/cryptojs/gcm"}},m={},u=[{value:"FP48",id:"fp48",level:2},{value:"new FP48()",id:"new-fp48",level:3},{value:"fP48.reduce()",id:"fp48reduce",level:3},{value:"fP48.norm()",id:"fp48norm",level:3},{value:"fP48.iszilch()",id:"fp48iszilch",level:3},{value:"fP48.isunity()",id:"fp48isunity",level:3},{value:"fP48.cmove(g, d)",id:"fp48cmoveg-d",level:3},{value:"fP48.select()",id:"fp48select",level:3},{value:"fP48.geta()",id:"fp48geta",level:3},{value:"fP48.getb()",id:"fp48getb",level:3},{value:"fP48.getc()",id:"fp48getc",level:3},{value:"fP48.equals(x)",id:"fp48equalsx",level:3},{value:"fP48.copy(x)",id:"fp48copyx",level:3},{value:"fP48.one(x)",id:"fp48onex",level:3},{value:"fP48.zero()",id:"fp48zero",level:3},{value:"fP48.conj()",id:"fp48conj",level:3},{value:"fP48.set(d, e, f)",id:"fp48setd-e-f",level:3},{value:"fP48.seta(c)",id:"fp48setac",level:3},{value:"fP48.usqr()",id:"fp48usqr",level:3},{value:"fP48.sqr()",id:"fp48sqr",level:3},{value:"fP48.mul(y)",id:"fp48muly",level:3},{value:"fP48.smul(y)",id:"fp48smuly",level:3},{value:"fP48.ssmul(y)",id:"fp48ssmuly",level:3},{value:"fP48.inverse()",id:"fp48inverse",level:3},{value:"fP48.frob(f)",id:"fp48frobf",level:3},{value:"fP48.trace()",id:"fp48trace",level:3},{value:"fP48.toString()",id:"fp48tostring",level:3},{value:"fP48.toBytes(w)",id:"fp48tobytesw",level:3},{value:"fP48.pow(e)",id:"fp48powe",level:3},{value:"fP48.pinpow(e, bts)",id:"fp48pinpowe-bts",level:3},{value:"fP48.compow(e, r)",id:"fp48compowe-r",level:3},{value:"FP48.fromBytes(w)",id:"fp48frombytesw",level:3},{value:"FP48.teq()",id:"fp48teq",level:3},{value:"FP48.pow16()",id:"fp48pow16",level:3}],s={toc:u};function d(t){var e=t.components,a=(0,r.Z)(t,p);return(0,l.kt)("wrapper",(0,n.Z)({},s,a,{components:e,mdxType:"MDXLayout"}),(0,l.kt)("a",{name:"FP48"}),(0,l.kt)("h2",{id:"fp48"},"FP48"),(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,'{"{"}FP48{"}"}')," "),(0,l.kt)("ul",null,(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48"},"FP48"),(0,l.kt)("ul",{parentName:"li"},(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#new_FP48_new"},"new FP48()")),(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:"#FP48+reduce"},".reduce()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+norm"},".norm()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+iszilch"},".iszilch()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+isunity"},".isunity()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+cmove"},".cmove(g, d)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+select"},".select()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+geta"},".geta()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+getb"},".getb()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+getc"},".getc()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+equals"},".equals(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+copy"},".copy(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+one"},".one(x)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+zero"},".zero()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+conj"},".conj()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+set"},".set(d, e, f)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+seta"},".seta(c)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+usqr"},".usqr()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+sqr"},".sqr()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+mul"},".mul(y)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+smul"},".smul(y)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+ssmul"},".ssmul(y)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+inverse"},".inverse()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+frob"},".frob(f)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+trace"},".trace()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+toString"},".toString()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+toBytes"},".toBytes(w)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+pow"},".pow(e)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+pinpow"},".pinpow(e, bts)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48+compow"},".compow(e, r)")))),(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:"#FP48.fromBytes"},".fromBytes(w)")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48.teq"},".teq()")),(0,l.kt)("li",{parentName:"ul"},(0,l.kt)("a",{parentName:"li",href:"#FP48.pow16"},".pow16()"))))))),(0,l.kt)("a",{name:"new_FP48_new"}),(0,l.kt)("h3",{id:"new-fp48"},"new FP48()"),(0,l.kt)("p",null,"Creates an instance of FP48."),(0,l.kt)("a",{name:"FP48+reduce"}),(0,l.kt)("h3",{id:"fp48reduce"},"fP48.reduce()"),(0,l.kt)("p",null,"Reduces all components of possibly unreduced FP48 mod Modulus"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+norm"}),(0,l.kt)("h3",{id:"fp48norm"},"fP48.norm()"),(0,l.kt)("p",null,"Normalises the components of an FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+iszilch"}),(0,l.kt)("h3",{id:"fp48iszilch"},"fP48.iszilch()"),(0,l.kt)("p",null,"Tests for FP48 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:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+isunity"}),(0,l.kt)("h3",{id:"fp48isunity"},"fP48.isunity()"),(0,l.kt)("p",null,"Tests for FP48 equal to unity"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+cmove"}),(0,l.kt)("h3",{id:"fp48cmoveg-d"},"fP48.cmove(g, d)"),(0,l.kt)("p",null,"Conditional copy of FP48 number"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"FP48 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:"FP48+select"}),(0,l.kt)("h3",{id:"fp48select"},"fP48.select()"),(0,l.kt)("p",null,"Constant time select from pre-computed table"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+geta"}),(0,l.kt)("h3",{id:"fp48geta"},"fP48.geta()"),(0,l.kt)("p",null,"extract a from this"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+getb"}),(0,l.kt)("h3",{id:"fp48getb"},"fP48.getb()"),(0,l.kt)("p",null,"extract b from this"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+getc"}),(0,l.kt)("h3",{id:"fp48getc"},"fP48.getc()"),(0,l.kt)("p",null,"extract c from this"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+equals"}),(0,l.kt)("h3",{id:"fp48equalsx"},"fP48.equals(x)"),(0,l.kt)("p",null,"Tests for equality of two FP48s"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"FP48 instance to compare")))),(0,l.kt)("a",{name:"FP48+copy"}),(0,l.kt)("h3",{id:"fp48copyx"},"fP48.copy(x)"),(0,l.kt)("p",null,"Copy FP48 to another FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"FP48 instance to be copied")))),(0,l.kt)("a",{name:"FP48+one"}),(0,l.kt)("h3",{id:"fp48onex"},"fP48.one(x)"),(0,l.kt)("p",null,"Set FP48 to unity"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"FP48 instance to be set to one")))),(0,l.kt)("a",{name:"FP48+zero"}),(0,l.kt)("h3",{id:"fp48zero"},"fP48.zero()"),(0,l.kt)("p",null,"Set FP48 to zero"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+conj"}),(0,l.kt)("h3",{id:"fp48conj"},"fP48.conj()"),(0,l.kt)("p",null,"Conjugation of FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+set"}),(0,l.kt)("h3",{id:"fp48setd-e-f"},"fP48.set(d, e, f)"),(0,l.kt)("p",null,"Set FP48 from three FP16 values"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"d"),(0,l.kt)("td",{parentName:"tr",align:null},"FP16 instance")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"e"),(0,l.kt)("td",{parentName:"tr",align:null},"FP16 instance")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"f"),(0,l.kt)("td",{parentName:"tr",align:null},"FP16 instance")))),(0,l.kt)("a",{name:"FP48+seta"}),(0,l.kt)("h3",{id:"fp48setac"},"fP48.seta(c)"),(0,l.kt)("p",null,"Set FP48 from one FP16 value"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"c"),(0,l.kt)("td",{parentName:"tr",align:null},"FP16 instance")))),(0,l.kt)("a",{name:"FP48+usqr"}),(0,l.kt)("h3",{id:"fp48usqr"},"fP48.usqr()"),(0,l.kt)("p",null,'Fast Squaring of an FP48 in "unitary" form'),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+sqr"}),(0,l.kt)("h3",{id:"fp48sqr"},"fP48.sqr()"),(0,l.kt)("p",null,"Fast Squaring of an FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+mul"}),(0,l.kt)("h3",{id:"fp48muly"},"fP48.mul(y)"),(0,l.kt)("p",null,"Full unconditional Multiplication of two FP48s"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"y"),(0,l.kt)("td",{parentName:"tr",align:null},"FP48 instance, the multiplier")))),(0,l.kt)("a",{name:"FP48+smul"}),(0,l.kt)("h3",{id:"fp48smuly"},"fP48.smul(y)"),(0,l.kt)("p",null,"Fast multiplication of two sparse FP48s that arises from ATE pairing line functions"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"y"),(0,l.kt)("td",{parentName:"tr",align:null},"FP48 instance, the multiplier")))),(0,l.kt)("a",{name:"FP48+ssmul"}),(0,l.kt)("h3",{id:"fp48ssmuly"},"fP48.ssmul(y)"),(0,l.kt)("p",null,"Fast multiplication of what may be sparse multiplicands"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"y"),(0,l.kt)("td",{parentName:"tr",align:null},"FP48 instance, the multiplier")))),(0,l.kt)("a",{name:"FP48+inverse"}),(0,l.kt)("h3",{id:"fp48inverse"},"fP48.inverse()"),(0,l.kt)("p",null,"Inverting an FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+frob"}),(0,l.kt)("h3",{id:"fp48frobf"},"fP48.frob(f)"),(0,l.kt)("p",null,"Raises an FP48 to the power of the internal modulus p, using the Frobenius"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"f"),(0,l.kt)("td",{parentName:"tr",align:null},"Modulus")))),(0,l.kt)("a",{name:"FP48+trace"}),(0,l.kt)("h3",{id:"fp48trace"},"fP48.trace()"),(0,l.kt)("p",null,"Calculate the trace of an FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+toString"}),(0,l.kt)("h3",{id:"fp48tostring"},"fP48.toString()"),(0,l.kt)("p",null,"convert this 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:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48+toBytes"}),(0,l.kt)("h3",{id:"fp48tobytesw"},"fP48.toBytes(w)"),(0,l.kt)("p",null,"convert this to byte array"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"w"),(0,l.kt)("td",{parentName:"tr",align:null},"Byte array")))),(0,l.kt)("a",{name:"FP48+pow"}),(0,l.kt)("h3",{id:"fp48powe"},"fP48.pow(e)"),(0,l.kt)("p",null,"Raises an FP48 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:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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:"FP48+pinpow"}),(0,l.kt)("h3",{id:"fp48pinpowe-bts"},"fP48.pinpow(e, bts)"),(0,l.kt)("p",null,"Raises an FP48 instance x to a small integer power, side-channel resistant"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"small integer exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"bts"),(0,l.kt)("td",{parentName:"tr",align:null},"maximum number of bits in exponent")))),(0,l.kt)("a",{name:"FP48+compow"}),(0,l.kt)("h3",{id:"fp48compowe-r"},"fP48.compow(e, r)"),(0,l.kt)("p",null,"Raises an FP48 instance to a BIG power, compressed to FP4"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": instance method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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 exponent")),(0,l.kt)("tr",{parentName:"tbody"},(0,l.kt)("td",{parentName:"tr",align:null},"r"),(0,l.kt)("td",{parentName:"tr",align:null},"BIG group order")))),(0,l.kt)("a",{name:"FP48.fromBytes"}),(0,l.kt)("h3",{id:"fp48frombytesw"},"FP48.fromBytes(w)"),(0,l.kt)("p",null,"convert from byte array to FP48"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(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},"w"),(0,l.kt)("td",{parentName:"tr",align:null},"Byte array")))),(0,l.kt)("a",{name:"FP48.teq"}),(0,l.kt)("h3",{id:"fp48teq"},"FP48.teq()"),(0,l.kt)("p",null,"return 1 if b==c, no branching"),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')," "),(0,l.kt)("a",{name:"FP48.pow16"}),(0,l.kt)("h3",{id:"fp48pow16"},"FP48.pow16()"),(0,l.kt)("p",null,"p=q0^u0.q1^u1.q2^u2.q3^u3..."),(0,l.kt)("p",null,(0,l.kt)("strong",{parentName:"p"},"Kind"),": static method of ",(0,l.kt)("a",{parentName:"p",href:"#FP48"},(0,l.kt)("code",null,"FP48")),(0,l.kt)("br",{parentName:"p"}),"\n",(0,l.kt)("strong",{parentName:"p"},"this"),": ",(0,l.kt)("code",null,'{"{"}FP48{"}"}')))}d.isMDXComponent=!0}}]);