INNER CODE UNIT · Go
betaInvMont
Consensys/gnark-crypto · internal/generator/main.go:124
betaInvMont := new(big.Int).Lsh(betaInv, uint(conf.Fp.NbWords)*uint(conf.Fp.Word.BitSize))
betaInvMont.Mod(betaInvMont, p)
conf.E2CbrtTorusBetaInvNeg = make([]uint64, conf.Fp.NbWords)
mask := new(big.Int).SetUint64(^uint64(0))
tmp := new(big.Int).Set(betaInvMont)
for i := 0; i < conf.Fp.NbWords; i++ {
conf.E2CbrtTorusBetaInvNeg[i] = new(big.Int).And(tmp, mask).Uint64()
tmp.Rsh(tmp, 64)
}
}
// fp
{
outputDir := filepath.Join(curveDir, "fp")
relAsmDir, err := filepath.Rel(outputDir, asmDirBuildPath)
assertNoError(err)
asmConfig := &fieldConfig.Assembly{BuildDir: asmDirBuildPath, IncludeDir: relAsmDir}
assertNoError(field.GenerateFF(conf.Fp, outputDir,