@ -3,7 +3,7 @@ use ark_ec::{
mnt6 ::MNT6Parameters ,
mnt6 ::MNT6Parameters ,
models ::{ ModelParameters , SWModelParameters } ,
models ::{ ModelParameters , SWModelParameters } ,
} ;
} ;
use ark_ff ::{ biginteger ::BigInteger768 , field_new } ;
use ark_ff ::{ field_new } ;
use crate ::{ g1 , Fq , Fq3 , Fr , FQ_ZERO } ;
use crate ::{ g1 , Fq , Fq3 , Fr , FQ_ZERO } ;
@ -20,38 +20,16 @@ impl ModelParameters for Parameters {
}
}
/// MUL_BY_A_C0 = NONRESIDUE * COEFF_A
/// MUL_BY_A_C0 = NONRESIDUE * COEFF_A
/// = 11 * 11
/// = 121
#[ rustfmt::skip ]
#[ rustfmt::skip ]
pub const MUL_BY_A_C0 : Fq = field_new ! ( Fq , BigInteger768 ( [
10895242587870565906 ,
6757387713923212228 ,
12683949709867392876 ,
1229095484098138811 ,
18111217745394181988 ,
3648021353977015866 ,
7900332254549424237 ,
5988529219097278134 ,
11544487525720487778 ,
7317517692149492894 ,
9905728181042915773 ,
470678396104534
] ) ) ;
pub const MUL_BY_A_C0 : Fq = field_new ! ( Fq , "121" ) ;
/// MUL_BY_A_C1 = NONRESIDUE * COEFF_A
/// MUL_BY_A_C1 = NONRESIDUE * COEFF_A
/// = 11 * 11
/// = 121
#[ rustfmt::skip ]
#[ rustfmt::skip ]
pub const MUL_BY_A_C1 : Fq = field_new ! ( Fq , BigInteger768 ( [
10895242587870565906 ,
6757387713923212228 ,
12683949709867392876 ,
1229095484098138811 ,
18111217745394181988 ,
3648021353977015866 ,
7900332254549424237 ,
5988529219097278134 ,
11544487525720487778 ,
7317517692149492894 ,
9905728181042915773 ,
470678396104534
] ) ) ;
pub const MUL_BY_A_C1 : Fq = field_new ! ( Fq , "121" ) ;
/// MUL_BY_A_C2 = COEFF_A
/// MUL_BY_A_C2 = COEFF_A
pub const MUL_BY_A_C2 : Fq = g1 ::Parameters ::COEFF_A ;
pub const MUL_BY_A_C2 : Fq = g1 ::Parameters ::COEFF_A ;
@ -71,20 +49,7 @@ impl SWModelParameters for Parameters {
#[ rustfmt::skip ]
#[ rustfmt::skip ]
const COEFF_B : Fq3 = field_new ! (
const COEFF_B : Fq3 = field_new ! (
Fq3 ,
Fq3 ,
field_new ! ( Fq , BigInteger768 ( [
3284231658830416104 ,
13720030246451177991 ,
6276939417009443243 ,
8340612253649729185 ,
4863511590806861670 ,
15883218135158530927 ,
4865336109262680856 ,
16600307443495218926 ,
10112528487499131659 ,
17308657107605697754 ,
5326857497786417651 ,
206191604157846
] ) ) ,
field_new ! ( Fq , "2189526091197672465268098090392210500740714959757583916377481826443393499947557697773546040576162515434508768057245887856591913752342600919117433675080691499697020523783784738694360040853591723916201150207746019687604267190251" ) ,
FQ_ZERO ,
FQ_ZERO ,
FQ_ZERO ,
FQ_ZERO ,
) ;
) ;
@ -122,20 +87,7 @@ impl SWModelParameters for Parameters {
/// COFACTOR^(-1) mod r =
/// COFACTOR^(-1) mod r =
/// 6983081827986492233724035798540106188028451653325658178630583820170892135428517795509815627298389820236345161981341515817589065927929152555581161598204976128690232061758269440757592419606754539638220064054062394397574161203200
/// 6983081827986492233724035798540106188028451653325658178630583820170892135428517795509815627298389820236345161981341515817589065927929152555581161598204976128690232061758269440757592419606754539638220064054062394397574161203200
#[ rustfmt::skip ]
#[ rustfmt::skip ]
const COFACTOR_INV : Fr = field_new ! ( Fr , BigInteger768 ( [
9418103049026957703 ,
3464743017686961509 ,
7872172759259099794 ,
17514322419398292337 ,
1496353716802911167 ,
16961719271566193274 ,
15426671498718617736 ,
9230857178223113223 ,
11731938389074297274 ,
16450973680014766981 ,
431917267220694852 ,
94637508603012
] ) ) ;
const COFACTOR_INV : Fr = field_new ! ( Fr , "6983081827986492233724035798540106188028451653325658178630583820170892135428517795509815627298389820236345161981341515817589065927929152555581161598204976128690232061758269440757592419606754539638220064054062394397574161203200" ) ;
/// AFFINE_GENERATOR_COEFFS = (G2_GENERATOR_X, G2_GENERATOR_Y)
/// AFFINE_GENERATOR_COEFFS = (G2_GENERATOR_X, G2_GENERATOR_Y)
const AFFINE_GENERATOR_COEFFS : ( Self ::BaseField , Self ::BaseField ) =
const AFFINE_GENERATOR_COEFFS : ( Self ::BaseField , Self ::BaseField ) =
@ -165,98 +117,10 @@ const G2_GENERATOR_Y: Fq3 =
// Y = 2540920530670785421282147216459500299597350984927286541981768941513322907384197363939300669100157141915897390694710534916701460991329498878429407641200901974650893207493883271892985923686300670742888673128384350189165542294615,
// Y = 2540920530670785421282147216459500299597350984927286541981768941513322907384197363939300669100157141915897390694710534916701460991329498878429407641200901974650893207493883271892985923686300670742888673128384350189165542294615,
// 7768974215205248225654340523113146529854477025417883273460270519532499370133542215655437897583245920162220909271982265882784840026754554720358946490360213245668334549692889019612343620295335698052097726325099648573158597797497,
// 7768974215205248225654340523113146529854477025417883273460270519532499370133542215655437897583245920162220909271982265882784840026754554720358946490360213245668334549692889019612343620295335698052097726325099648573158597797497,
// 21014872727619291834131369222699267167761185012487859171850226473555446863681002782100371394603357586906967186931035615146288030444598977758226767063525819170917389755555854704165900869058188909090444447822088242504281789869689,
// 21014872727619291834131369222699267167761185012487859171850226473555446863681002782100371394603357586906967186931035615146288030444598977758226767063525819170917389755555854704165900869058188909090444447822088242504281789869689,
#[ rustfmt::skip ]
pub const G2_GENERATOR_X_C0 : Fq = field_new ! ( Fq , BigInteger768 ( [
12772807549130126376 ,
2873211972983293592 ,
15999100872160401842 ,
5277158980096688998 ,
12258756012310206056 ,
11885883517271414939 ,
6373672746025419911 ,
13662747456330091710 ,
11960680427306056040 ,
15150766304321120168 ,
9480712498131729809 ,
413066879180657
] ) ) ;
#[ rustfmt::skip ]
pub const G2_GENERATOR_X_C1 : Fq = field_new ! ( Fq , BigInteger768 ( [
10478274013728260378 ,
15392361149861123784 ,
17610084573134912261 ,
14474130264887792371 ,
16754378329454263996 ,
3186303078832273968 ,
7143189323629797683 ,
897486443141339765 ,
3675579496642106405 ,
4429391539758461550 ,
18414257413872084180 ,
331209511183940
] ) ) ;
#[ rustfmt::skip ]
pub const G2_GENERATOR_X_C2 : Fq = field_new ! ( Fq , BigInteger768 ( [
5133712986240959624 ,
10763134357204872827 ,
8672341403101541980 ,
18084133226637702602 ,
4689040548070804594 ,
7352115990101270007 ,
14358820512747653623 ,
10167201669589504005 ,
3117673189936726036 ,
9407838052466059644 ,
7246385421116647671 ,
464288782946273
] ) ) ;
pub const G2_GENERATOR_X_C0 : Fq = field_new ! ( Fq , "27250797394340459586637772414334383652934225310678303542554641987990991970766156209996739240400887081904395745019996048910447071686918567661896491214767494514394154061111870331668445455228882471000120574964265209669155206168252" ) ;
pub const G2_GENERATOR_X_C1 : Fq = field_new ! ( Fq , "35762481056967998715733586393399457882827322353696313323665483142561285210083843314423554450886956650265947502285422529615273790981238406393402603210224104850580302463396274854098657541573494421834514772635884262388058080180368" ) ;
pub const G2_GENERATOR_X_C2 : Fq = field_new ! ( Fq , "36955296703808958167583270646821654948157955258947892285629161090141878438357164213613114995903637211606408001037026832604054121847388692538440756596264746452765613740820430501353237866984394057660379098674983614861254438847846" ) ;
#[ rustfmt::skip ]
pub const G2_GENERATOR_Y_C0 : Fq = field_new ! ( Fq , BigInteger768 ( [
710862246533630948 ,
9314168172257972041 ,
4722111556929662508 ,
4408676313209842703 ,
10491088158750500898 ,
13211840969745661306 ,
13985341743807087374 ,
7111198859398088665 ,
158194789363472891 ,
7682183069894584797 ,
9510326135325230913 ,
338826428359581
] ) ) ;
#[ rustfmt::skip ]
pub const G2_GENERATOR_Y_C1 : Fq = field_new ! ( Fq , BigInteger768 ( [
10889422482835557076 ,
6073207585023077555 ,
16059368148547235058 ,
14871121891082823821 ,
15156344465408677175 ,
12695157488434086405 ,
7840105431702704631 ,
4763759818130023465 ,
12295696339556388640 ,
352741974984397506 ,
10581333776569094279 ,
204002329498100
] ) ) ;
#[ rustfmt::skip ]
pub const G2_GENERATOR_Y_C2 : Fq = field_new ! ( Fq , BigInteger768 ( [
11263496889641203707 ,
16306762242042931049 ,
8275973312257833978 ,
12034012818098316014 ,
5392903691498465561 ,
4572635011530974247 ,
696221667645211601 ,
11098678912660456319 ,
5477755854538915619 ,
11442390115310629698 ,
10262065045802790037 ,
17901561410539
] ) ) ;
pub const G2_GENERATOR_Y_C0 : Fq = field_new ! ( Fq , "2540920530670785421282147216459500299597350984927286541981768941513322907384197363939300669100157141915897390694710534916701460991329498878429407641200901974650893207493883271892985923686300670742888673128384350189165542294615" ) ;
pub const G2_GENERATOR_Y_C1 : Fq = field_new ! ( Fq , "7768974215205248225654340523113146529854477025417883273460270519532499370133542215655437897583245920162220909271982265882784840026754554720358946490360213245668334549692889019612343620295335698052097726325099648573158597797497" ) ;
pub const G2_GENERATOR_Y_C2 : Fq = field_new ! ( Fq , "21014872727619291834131369222699267167761185012487859171850226473555446863681002782100371394603357586906967186931035615146288030444598977758226767063525819170917389755555854704165900869058188909090444447822088242504281789869689" ) ;