gnark-plonky2-verifier/goldilocks/utils.go
goldilocks/utils.goRaw
1package goldilocks
2
3import (
4 "math/big"
5
6 "github.com/consensys/gnark/frontend"
7 "github.com/consensys/gnark/std/math/bits"
8)
9
10func StrArrayToBigIntArray(input []string) []big.Int {
11 var output []big.Int
12 for i := 0; i < len(input); i++ {
13 a := new(big.Int)
14 a, _ = a.SetString(input[i], 10)
15 output = append(output, *a)
16 }
17 return output
18}
19
20func StrArrayToFrontendVariableArray(input []string) []frontend.Variable {
21 var output []frontend.Variable
22 for i := 0; i < len(input); i++ {
23 output = append(output, frontend.Variable(input[i]))
24 }
25 return output
26}
27
28func Uint64ArrayToVariableArray(input []uint64) []Variable {
29 var output []Variable
30 for i := 0; i < len(input); i++ {
31 output = append(output, NewVariable(input[i]))
32 }
33 return output
34}
35
36func Uint64ArrayToQuadraticExtension(input []uint64) QuadraticExtensionVariable {
37 return NewQuadraticExtensionVariable(NewVariable(input[0]), NewVariable(input[1]))
38}
39
40func Uint64ArrayToQuadraticExtensionArray(input [][]uint64) []QuadraticExtensionVariable {
41 var output []QuadraticExtensionVariable
42 for i := 0; i < len(input); i++ {
43 output = append(output, NewQuadraticExtensionVariable(NewVariable(input[i][0]), NewVariable(input[i][1])))
44 }
45 return output
46}
47
48type bitDecompChecker struct {
49 api frontend.API
50}
51
52func (pl bitDecompChecker) Check(v frontend.Variable, nbBits int) {
53 bits.ToBinary(pl.api, v, bits.WithNbDigits(nbBits))
54}