You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Placeholder for the appropriate quadratic, cubic or sectic non-residue
QuadraticExt*[F] =object
## Quadratic Extension field
coords*: array[2, F]
CubicExt*[F] =object
## Cubic Extension field
coords*: array[3, F]
ExtensionField*[F] =QuadraticExt[F] orCubicExt[F]
Fp2*[Name: staticAlgebra] =
QuadraticExt[Fp[Name]]
Fp4*[Name: staticAlgebra] =
QuadraticExt[Fp2[Name]]
Fp6*[Name: staticAlgebra] =
CubicExt[Fp2[Name]]
Fp12*[Name: staticAlgebra] =
CubicExt[Fp4[Name]]
# QuadraticExt[Fp6[Name]]
However, ideally this config is defined per-curve as for Fp6 BW6 curves are more optimal as Fp -> Fp3 -> Fp6 while for BN and BLS12, the towering is Fp->Fp2->Fp6 (though ultimately Fp->Fp4->Fp12 is better for multiplication).
The text was updated successfully, but these errors were encountered:
Currently the tower of extension fields is globally enforced:
constantine/constantine/math/extension_fields/towers.nim
Lines 34 to 61 in 52a8fc4
However, ideally this config is defined per-curve as for Fp6 BW6 curves are more optimal as Fp -> Fp3 -> Fp6 while for BN and BLS12, the towering is Fp->Fp2->Fp6 (though ultimately Fp->Fp4->Fp12 is better for multiplication).
The text was updated successfully, but these errors were encountered: