arnaucube
arnaucube/gnark-plonky2-verifierPublic Self-hosted repository
gnark-plonky2-verifier/goldilocks/utils.go
goldilocks/utils.goRaw
 1package goldilocks
 2
 3import (
 4	"math/big"
 5
 6	"github.com/consensys/gnark/frontend"
 7)
 8
 9func StrArrayToBigIntArray(input []string) []big.Int {
10	var output []big.Int
11	for i := 0; i < len(input); i++ {
12		a := new(big.Int)
13		a, _ = a.SetString(input[i], 10)
14		output = append(output, *a)
15	}
16	return output
17}
18
19func StrArrayToFrontendVariableArray(input []string) []frontend.Variable {
20	var output []frontend.Variable
21	for i := 0; i < len(input); i++ {
22		output = append(output, frontend.Variable(input[i]))
23	}
24	return output
25}
26
27func Uint64ArrayToVariableArray(input []uint64) []GoldilocksVariable {
28	var output []GoldilocksVariable
29	for i := 0; i < len(input); i++ {
30		output = append(output, NewVariable(input[i]))
31	}
32	return output
33}
34
35func Uint64ArrayToQuadraticExtension(input []uint64) QuadraticExtensionVariable {
36	return NewQuadraticExtensionVariable(NewVariable(input[0]), NewVariable(input[1]))
37}
38
39func Uint64ArrayToQuadraticExtensionArray(input [][]uint64) []QuadraticExtensionVariable {
40	var output []QuadraticExtensionVariable
41	for i := 0; i < len(input); i++ {
42		output = append(output, NewQuadraticExtensionVariable(NewVariable(input[i][0]), NewVariable(input[i][1])))
43	}
44	return output
45}