pyjuice.nodes.CircuitNodes

class pyjuice.nodes.CircuitNodes(num_node_blocks: int, region_node: RegionGraph, block_size: int = 0, source_node: CircuitNodes | None = None, **kwargs)

The base class for a vector (block) of circuit nodes that share the same scope and structure. Its concrete subclasses are InputNodes, ProdNodes, and SumNodes, which are normally created through the construction helpers inputs(), multiply(), and summate(), respectively.

A CircuitNodes represents num_node_blocks blocks of block_size nodes each (i.e., num_node_blocks * block_size nodes in total); using block_size > 1 enables PyJuice’s block-based, GPU-friendly representation. Together, a set of connected CircuitNodes forms the DAG of a PC, whose root is passed to compile().

__init__(num_node_blocks: int, region_node: RegionGraph, block_size: int = 0, source_node: CircuitNodes | None = None, **kwargs)

Methods

duplicate(*args, **kwargs)

get_params(*args, **kwargs)

init_parameters([perturbation, recursive, ...])

num_parameters([count_input_params, recursive])