gates

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2024 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BASESUM_GATE_WIRE_SUM    = 0
	BASESUM_GATE_START_LIMBS = 1
)
View Source
const START_COEFFS_REDUCING_EXTENSION_GATE = 3 * gl.D
View Source
const START_COEFFS_REDUCING_GATE = 3 * gl.D
View Source
const START_DELTA = 2*poseidon.SPONGE_WIDTH + 1
View Source
const START_FULL_0 = START_DELTA + 4
View Source
const UNUSED_SELECTOR = uint64(^uint32(0)) // max uint32

Variables

This section is empty.

Functions

This section is empty.

Types

type ArithmeticExtensionGate

type ArithmeticExtensionGate struct {
	// contains filtered or unexported fields
}

func NewArithmeticExtensionGate

func NewArithmeticExtensionGate(numOps uint64) *ArithmeticExtensionGate

func (*ArithmeticExtensionGate) EvalUnfiltered

func (g *ArithmeticExtensionGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*ArithmeticExtensionGate) Id

type ArithmeticGate

type ArithmeticGate struct {
	// contains filtered or unexported fields
}

func NewArithmeticGate

func NewArithmeticGate(numOps uint64) *ArithmeticGate

func (*ArithmeticGate) EvalUnfiltered

func (g *ArithmeticGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*ArithmeticGate) Id

func (g *ArithmeticGate) Id() string

func (*ArithmeticGate) WireIthAddend

func (g *ArithmeticGate) WireIthAddend(i uint64) uint64

func (*ArithmeticGate) WireIthMultiplicand0

func (g *ArithmeticGate) WireIthMultiplicand0(i uint64) uint64

func (*ArithmeticGate) WireIthMultiplicand1

func (g *ArithmeticGate) WireIthMultiplicand1(i uint64) uint64

func (*ArithmeticGate) WireIthOutput

func (g *ArithmeticGate) WireIthOutput(i uint64) uint64

type BaseSumGate

type BaseSumGate struct {
	// contains filtered or unexported fields
}

func NewBaseSumGate

func NewBaseSumGate(numLimbs uint64, base uint64) *BaseSumGate

func (*BaseSumGate) EvalUnfiltered

func (g *BaseSumGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*BaseSumGate) Id

func (g *BaseSumGate) Id() string

type ConstantGate

type ConstantGate struct {
	// contains filtered or unexported fields
}

func NewConstantGate

func NewConstantGate(numConsts uint64) *ConstantGate

func (*ConstantGate) ConstInput

func (g *ConstantGate) ConstInput(i uint64) uint64

func (*ConstantGate) EvalUnfiltered

func (g *ConstantGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*ConstantGate) Id

func (g *ConstantGate) Id() string

func (*ConstantGate) WireOutput

func (g *ConstantGate) WireOutput(i uint64) uint64

type CosetInterpolationGate

type CosetInterpolationGate struct {
	// contains filtered or unexported fields
}

func NewCosetInterpolationGate

func NewCosetInterpolationGate(subgroupBits uint64, degree uint64, barycentricWeights []goldilocks.Element) *CosetInterpolationGate

func (*CosetInterpolationGate) EvalUnfiltered

func (g *CosetInterpolationGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*CosetInterpolationGate) Id

type EvaluateGatesChip

type EvaluateGatesChip struct {
	// contains filtered or unexported fields
}

func NewEvaluateGatesChip

func NewEvaluateGatesChip(
	api frontend.API,
	gates []Gate,
	numGateConstraints uint64,
	selectorsInfo SelectorsInfo,
) *EvaluateGatesChip

func (*EvaluateGatesChip) EvaluateGateConstraints

func (g *EvaluateGatesChip) EvaluateGateConstraints(vars EvaluationVars) []gl.QuadraticExtensionVariable

type EvaluationVars

type EvaluationVars struct {
	// contains filtered or unexported fields
}

func NewEvaluationVars

func NewEvaluationVars(
	localConstants []gl.QuadraticExtensionVariable,
	localWires []gl.QuadraticExtensionVariable,
	publicInputsHash poseidon.GoldilocksHashOut,
) *EvaluationVars

func (*EvaluationVars) GetLocalExtAlgebra

func (e *EvaluationVars) GetLocalExtAlgebra(wireRange Range) gl.QuadraticExtensionAlgebraVariable

func (*EvaluationVars) RemovePrefix

func (e *EvaluationVars) RemovePrefix(numSelectors uint64)

type ExponentiationGate

type ExponentiationGate struct {
	// contains filtered or unexported fields
}

func NewExponentiationGate

func NewExponentiationGate(numPowerBits uint64) *ExponentiationGate

func (*ExponentiationGate) EvalUnfiltered

func (g *ExponentiationGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*ExponentiationGate) Id

func (g *ExponentiationGate) Id() string

type Gate

type Gate interface {
	Id() string
	EvalUnfiltered(
		api frontend.API,
		glApi *gl.Chip,
		vars EvaluationVars,
	) []gl.QuadraticExtensionVariable
}

func GateInstanceFromId

func GateInstanceFromId(gateId string) Gate

type MultiplicationExtensionGate

type MultiplicationExtensionGate struct {
	// contains filtered or unexported fields
}

func NewMultiplicationExtensionGate

func NewMultiplicationExtensionGate(numOps uint64) *MultiplicationExtensionGate

func (*MultiplicationExtensionGate) EvalUnfiltered

func (g *MultiplicationExtensionGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*MultiplicationExtensionGate) Id

type NoopGate

type NoopGate struct {
}

func NewNoopGate

func NewNoopGate() *NoopGate

func (*NoopGate) EvalUnfiltered

func (g *NoopGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*NoopGate) Id

func (g *NoopGate) Id() string

type PoseidonGate

type PoseidonGate struct {
}

func NewPoseidonGate

func NewPoseidonGate() *PoseidonGate

func (*PoseidonGate) EvalUnfiltered

func (g *PoseidonGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*PoseidonGate) Id

func (g *PoseidonGate) Id() string

func (*PoseidonGate) WireDelta

func (g *PoseidonGate) WireDelta(i uint64) uint64

func (*PoseidonGate) WireFullSBox0

func (g *PoseidonGate) WireFullSBox0(round uint64, i uint64) uint64

func (*PoseidonGate) WireFullSBox1

func (g *PoseidonGate) WireFullSBox1(round uint64, i uint64) uint64

func (*PoseidonGate) WireInput

func (g *PoseidonGate) WireInput(i uint64) uint64

func (*PoseidonGate) WireOutput

func (g *PoseidonGate) WireOutput(i uint64) uint64

func (*PoseidonGate) WirePartialSBox

func (g *PoseidonGate) WirePartialSBox(round uint64) uint64

func (*PoseidonGate) WireSwap

func (g *PoseidonGate) WireSwap() uint64

func (*PoseidonGate) WiresEnd

func (g *PoseidonGate) WiresEnd() uint64

type PoseidonMdsGate

type PoseidonMdsGate struct {
}

func NewPoseidonMdsGate

func NewPoseidonMdsGate() *PoseidonMdsGate

func (*PoseidonMdsGate) EvalUnfiltered

func (g *PoseidonMdsGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*PoseidonMdsGate) Id

func (g *PoseidonMdsGate) Id() string

func (*PoseidonMdsGate) WireInput

func (g *PoseidonMdsGate) WireInput(i uint64) Range

func (*PoseidonMdsGate) WireOutput

func (g *PoseidonMdsGate) WireOutput(i uint64) Range

type PublicInputGate

type PublicInputGate struct {
}

func NewPublicInputGate

func NewPublicInputGate() *PublicInputGate

func (*PublicInputGate) EvalUnfiltered

func (g *PublicInputGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*PublicInputGate) Id

func (g *PublicInputGate) Id() string

func (*PublicInputGate) WiresPublicInputsHash

func (g *PublicInputGate) WiresPublicInputsHash() []uint64

type RandomAccessGate

type RandomAccessGate struct {
	// contains filtered or unexported fields
}

func NewRandomAccessGate

func NewRandomAccessGate(bits uint64, numCopies uint64, numExtraConstants uint64) *RandomAccessGate

func (*RandomAccessGate) EvalUnfiltered

func (g *RandomAccessGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*RandomAccessGate) Id

func (g *RandomAccessGate) Id() string

func (*RandomAccessGate) NumRoutedWires

func (g *RandomAccessGate) NumRoutedWires() uint64

func (*RandomAccessGate) WireAccessIndex

func (g *RandomAccessGate) WireAccessIndex(copy uint64) uint64

func (*RandomAccessGate) WireBit

func (g *RandomAccessGate) WireBit(i uint64, copy uint64) uint64

func (*RandomAccessGate) WireClaimedElement

func (g *RandomAccessGate) WireClaimedElement(copy uint64) uint64

func (*RandomAccessGate) WireListItem

func (g *RandomAccessGate) WireListItem(i uint64, copy uint64) uint64

type Range

type Range struct {
	// contains filtered or unexported fields
}

type ReducingExtensionGate

type ReducingExtensionGate struct {
	// contains filtered or unexported fields
}

func NewReducingExtensionGate

func NewReducingExtensionGate(numCoeffs uint64) *ReducingExtensionGate

func (*ReducingExtensionGate) EvalUnfiltered

func (g *ReducingExtensionGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*ReducingExtensionGate) Id

func (g *ReducingExtensionGate) Id() string

type ReducingGate

type ReducingGate struct {
	// contains filtered or unexported fields
}

func NewReducingGate

func NewReducingGate(numCoeffs uint64) *ReducingGate

func (*ReducingGate) EvalUnfiltered

func (g *ReducingGate) EvalUnfiltered(
	api frontend.API,
	glApi *gl.Chip,
	vars EvaluationVars,
) []gl.QuadraticExtensionVariable

func (*ReducingGate) Id

func (g *ReducingGate) Id() string

type SelectorsInfo

type SelectorsInfo struct {
	// contains filtered or unexported fields
}

func NewSelectorsInfo

func NewSelectorsInfo(selectorIndices []uint64, groupStarts []uint64, groupEnds []uint64) *SelectorsInfo

func (*SelectorsInfo) NumSelectors

func (s *SelectorsInfo) NumSelectors() uint64

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL