init: v1.0.0

This commit is contained in:
yaole
2026-05-27 23:03:00 +08:00
commit 8d97f750eb
466 changed files with 80067 additions and 0 deletions
@@ -0,0 +1,99 @@
package bn256
import (
"fmt"
"math/big"
"testing"
"xdx.jelly/xgcl/gmath"
)
func TestGenCurvePrecompute4(t *testing.T) {
table := make([]*curvePoint, 0, 32)
for i := 0; i < 16; i++ {
c := &curvePoint{}
c.SetInfinity()
for j := 0; j < 4; j++ {
t := &curvePoint{}
k := new(big.Int)
if (i>>j)&1 != 0 {
k.Lsh(gmath.BigInt1, 64*uint(j))
t.Mul(curveGen, k)
c.Add(c, t)
}
}
table = append(table, c)
}
for i := 0; i < 16; i++ {
c := &curvePoint{}
c.SetInfinity()
for j := 0; j < 4; j++ {
t := &curvePoint{}
k := new(big.Int)
if (i>>j)&1 != 0 {
k.Lsh(gmath.BigInt1, 31+64*uint(j))
t.Mul(curveGen, k)
c.Add(c, t)
}
}
table = append(table, c)
}
for _, x := range table {
x.MakeAffine()
fmt.Printf("&curvePoint{gfP{0x%x,0x%x,0x%x,0x%x},gfP{0x%x,0x%x,0x%x,0x%x},*newGFp(1),*newGFp(1)},\n", x.x[0], x.x[1], x.x[2], x.x[3], x.y[0], x.y[1], x.y[2], x.y[3])
}
}
func TestGenCurvePrecompute8(t *testing.T) {
table := make([]*curvePoint, 0, 256)
for i := 0; i < 256; i++ {
c := &curvePoint{}
c.SetInfinity()
for j := 0; j < 8; j++ {
t := &curvePoint{}
k := new(big.Int)
if (i>>j)&1 != 0 {
k.Lsh(gmath.BigInt1, 32*uint(j))
t.Mul(curveGen, k)
c.Add(c, t)
}
}
table = append(table, c)
}
for _, x := range table {
x.MakeAffine()
//fmt.Println(x)
fmt.Printf("&curvePoint{gfP{0x%x,0x%x,0x%x,0x%x},gfP{0x%x,0x%x,0x%x,0x%x},*newGFp(1),*newGFp(1)},\n",
x.x[0], x.x[1], x.x[2], x.x[3],
x.y[0], x.y[1], x.y[2], x.y[3])
}
}
func TestGenTwistCurvePrecompute8(t *testing.T) {
table := make([]*twistPoint, 0, 256)
for i := 0; i < 256; i++ {
c := &twistPoint{}
c.SetInfinity()
for j := 0; j < 8; j++ {
t := &twistPoint{}
k := new(big.Int)
if (i>>j)&1 != 0 {
k.Lsh(gmath.BigInt1, 32*uint(j))
t.Mul(twistGen, k)
c.Add(c, t)
}
}
table = append(table, c)
}
for _, x := range table {
x.MakeAffine()
fmt.Println(x)
//fmt.Printf("&twistPoint{gfP2{gfP{0x%x,0x%x,0x%x,0x%x},gfP{0x%x,0x%x,0x%x,0x%x}},gfP2{gfP{0x%x,0x%x,0x%x,0x%x},gfP{0x%x,0x%x,0x%x,0x%x}},gfP2{gfP{0},*newGFP(1)},gfP2{gfP{0},*newGFP(1)}},\n",
// x.x.x[0],x.x.x[1],x.x.x[2],x.x.x[3],
// x.x.y[0],x.x.y[1],x.x.y[2],x.x.y[3],
// x.y.x[0],x.y.x[1],x.y.x[2],x.y.x[3],
// x.y.y[0],x.y.y[1],x.y.y[2],x.y.y[3])
}
}