ecgo

package
v1.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 23, 2025 License: AGPL-3.0 Imports: 12 Imported by: 1

Documentation

Overview

Package ecgo wraps the most commonly used compiler APIs and provides an entry point for compilation. This package simplifies the interaction with the compiler by exposing a unified API interface.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeserializeInputSolver

func DeserializeInputSolver(buf []byte) *irwg.RootCircuit

DeserializeInputSolver takes a byte buffer and returns a pointer to an ir.InputSolver which represents a deserialized input solver.

func DeserializeLayeredCircuit

func DeserializeLayeredCircuit(buf []byte) *layered.RootCircuit

DeserializeLayeredCircuit takes a byte buffer and returns a pointer to a layered.RootCircuit which represents a deserialized layered circuit.

Types

type API

type API interface {
	frontend.API
	builder.SubCircuitAPI
	builder.API
}

API encapsulates the ecgo's frontend.API along with two new APIs added to facilitate direct invocation of ecgo.API within the codebase.

type CompileResult

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

CompileResult represents the result of a compilation process. It contains unexported fields and provides methods to retrieve various components like the intermediate representation (IR) of the circuit, the WitnessGenerator, and the Layered Circuit.

func Compile

func Compile(field *big.Int, circuit frontend.Circuit, opts ...frontend.CompileOption) (*CompileResult, error)

Compile is similar to gnark's frontend.Compile. It compiles the given circuit and returns a pointer to CompileResult along with any error encountered during the compilation process.

func (*CompileResult) GetCircuitIr

func (c *CompileResult) GetCircuitIr() *irsource.RootCircuit

GetCircuitIr returns the intermediate representation (IR) of the compiled circuit as *ir.RootCircuit.

func (*CompileResult) GetInputSolver

func (c *CompileResult) GetInputSolver() *irwg.RootCircuit

GetLayeredCircuit returns the Layered Circuit component of the compilation result as *layered.RootCircuit.

func (*CompileResult) GetLayeredCircuit

func (c *CompileResult) GetLayeredCircuit() *layered.RootCircuit

GetInputSolver returns the InputSolver component of the compilation result as *ir.InputSolver.

Directories

Path Synopsis
Package builder provides an implementation based on the gnark frontend builder with the following modifications: - LinearExpression has been changed to allow for quadratic terms in the form of Expression.
Package builder provides an implementation based on the gnark frontend builder with the following modifications: - LinearExpression has been changed to allow for quadratic terms in the form of Expression.
gf2
m31
Package layered defines the structures and functions necessary for creating and manipulating layered circuits within the ExpanderCompilerCollection compiler.
Package layered defines the structures and functions necessary for creating and manipulating layered circuits within the ExpanderCompilerCollection compiler.

Jump to

Keyboard shortcuts

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