github.com/consensys/gnark@v0.11.0/backend/groth16/bn254/icicle/provingkey.go (about)

     1  package icicle_bn254
     2  
     3  import (
     4  	"unsafe"
     5  
     6  	groth16_bn254 "github.com/consensys/gnark/backend/groth16/bn254"
     7  	cs "github.com/consensys/gnark/constraint/bn254"
     8  )
     9  
    10  type deviceInfo struct {
    11  	G1Device struct {
    12  		A, B, K, Z unsafe.Pointer
    13  	}
    14  	DomainDevice struct {
    15  		Twiddles, TwiddlesInv     unsafe.Pointer
    16  		CosetTable, CosetTableInv unsafe.Pointer
    17  	}
    18  	G2Device struct {
    19  		B unsafe.Pointer
    20  	}
    21  	DenDevice             unsafe.Pointer
    22  	InfinityPointIndicesK []int
    23  }
    24  
    25  type ProvingKey struct {
    26  	groth16_bn254.ProvingKey
    27  	*deviceInfo
    28  }
    29  
    30  func Setup(r1cs *cs.R1CS, pk *ProvingKey, vk *groth16_bn254.VerifyingKey) error {
    31  	return groth16_bn254.Setup(r1cs, &pk.ProvingKey, vk)
    32  }
    33  
    34  func DummySetup(r1cs *cs.R1CS, pk *ProvingKey) error {
    35  	return groth16_bn254.DummySetup(r1cs, &pk.ProvingKey)
    36  }