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,

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…