Skip to Content

API Usage Overview

This page lists public entry points by task, their return forms, and corresponding references. Ordinary circuit workflows import from the unitarylab top level; algorithm and application capabilities are imported from unitarylab.library and its submodules.

Circuits and registers

from unitarylab import Circuit, Register, ClassicalRegister
TaskEntryReturn or behaviorDocumentation
Create a circuitCircuit(...)New CircuitCreating Circuits and Registers
Add gates or circuit measurementsh(), cx(), measure(), etc.Mutates the circuitQuantum Gates and Measurement
Copy, invert, or decomposecopy(), inverse(), decompose(), etc.New CircuitCircuit Transformations
Compose or initializeappend(), prepend(), initialize()Mutates the circuitCircuit Transformations

Execution and results

TaskEntryReturn valueDocumentation
Pure-state or MPS executionCircuit.execute()ExecutionResultExecuting Circuits and Reading Results
Density-matrix executionCircuit.execute_density()DensityMatrixResultDensity Matrices and Noise Models
Select execution engine and devicebackend, device, dtypeExecution configurationExecution Backends and Parameters
Query probabilities, samples, and expectationsprobability(), sample(), expectation()Scalar, dictionary, or listExecuting Circuits and Reading Results

execute() uses shots for the number of circuit-measurement samples. Terminal-only measurement reuses a single evolution, while mid-circuit measurement executes independently for each shot. ExecutionResult.sample() samples from an existing result distribution; it does not execute the circuit again.

Drawing, analysis, and format conversion

TaskEntryReturn valueDocumentation
Draw a circuitCircuit.draw()Drawing object or text representationCircuit Analysis and Drawing
Analyze a circuitCircuit.analyze()CircuitInfoCircuit Analysis and Drawing
Import or export OpenQASMfrom_qasm*(), to_qasm*()Circuit, string, or fileOpenQASM and Python Import/Export
Generate UnitaryLab/CUDA-Q Python codeto_python*(), to_cudaq()String, file, or CUDA-Q kernelOpenQASM and Python Import/Export

Compilation and hardware

from unitarylab import QCompiler, CompileConfig, CompilationResult, HardwareJob, HardwareResult
StageEntryReturn valueSubmits a job?
Rule-based optimizationCircuit.optimize()New CircuitNo
Gate-basis transpilationCircuit.transpile()New CircuitNo
Mapping and compilationCircuit.compile()CompilationResultNo
Hardware submissionCircuit.submit()HardwareJob; job.result() queries HardwareResultYes

See Circuit Optimization and Compilation and Submitting Hardware Jobs for compilation/submission parameters, credentials, and quota risks.

Top-level algorithm entries

from unitarylab.library import ( QFT, IQFT, QPE, LCU, block_encode, hamiltonian_simulation, solve, QSVT, QSP, QSP_hamiltonian_simulation, )
Return formEntries
CircuitQFT(), IQFT(), LCU()
Circuit or three-element tupleQPE()
Result objectblock_encode(), hamiltonian_simulation(), solve(), QSVT()
Low-level circuit or tupleQSP(), QSP_hamiltonian_simulation()

See Algorithm Library Overview for parameters and result fields.

Application submodules

TaskModuleMain return form
Pauli decomposition and circuit constructionunitarylab.library.pauli_operatorList, matrix, or Circuit
Fermi–Hubbard utilitiesunitarylab.library.fermi_hubbardDictionary, string, or result object
Ising/QUBO optimizationunitarylab.library.qubocoreDictionary
PDE solvingunitarylab.library.equationDictionary and generated files
Quantum machine learningunitarylab.library.qmlPyTorch tensors, models, and training records
Quantum chemistry extensionunitarylab_chemistryStaged result object

The corresponding references are Pauli Utilities, Fermi–Hubbard Utilities, QUBO and Ising Solvers, PDE Solver Framework, QML Overview and Backends, and Chemistry Extension.

Last updated on