Skip to main content

Module circuit_impl

Module circuit_impl 

Source
Expand description

§Quantum Circuit Module

This module defines the Circuit struct, which is the primary container for quantum programs in the Cqlib ecosystem. It acts as an intermediate representation (IR) that captures the sequence of quantum operations, qubit management, and symbolic parameters.

§Core Features

  • Instruction Scheduling: Stores a sequence of operations (Operation) including gates, measurements, and barriers.
  • Qubit Management: Efficiently handles qubit allocation using topological ordering.
  • Parametric Circuits: Native support for variational quantum algorithms (VQA) via symbolic parameters. Parameters are “interned” to minimize memory usage and accelerate bulk evaluation.
  • Extensibility: Supports standard gates, custom unitary matrices, and arbitrary control structures.

§Example

use cqlib_core::circuit::circuit_impl::Circuit;
use cqlib_core::circuit::Qubit;

// Create a circuit with 2 qubits
let mut circuit = Circuit::new(2);

let q0 = Qubit::new(0);
let q1 = Qubit::new(1);

// Apply Hadamard gate to q0
circuit.h(q0);

// Apply Controlled-NOT gate (q0 controls q1)
circuit.cx(q0, q1);

// Measure q0 and keep its immutable runtime result
let measured = circuit.measure(q0).unwrap();
assert_eq!(measured.ty().width(), 1);

Structs§

Circuit
A quantum circuit representation serving as the core IR for quantum programs.