qilisdk.functionals.digital_propagation

Classes

DigitalPropagation

Propagate a quantum state through a digital circuit.

Module Contents

class DigitalPropagation(circuit: qilisdk.digital.circuit.Circuit)[source]

Bases: qilisdk.functionals.functional.PrimitiveFunctional

Propagate a quantum state through a digital circuit.

The circuit is executed and results are returned based on the Readout passed to execute().

Example

from qilisdk.digital.circuit import Circuit
from qilisdk.functionals import DigitalPropagation
from qilisdk.readout import Readout

circuit = Circuit(nqubits=2)
circuit.h(0)
functional = DigitalPropagation(circuit)
result = backend.execute(functional, readout=Readout().with_sampling(nshots=1024))
counts = result.samples  # dict[str, int]
Parameters:

circuit (Circuit) – Circuit to propagate.

result_type: ClassVar[type[qilisdk.functionals.functional_result.FunctionalResult]][source]

Concrete FunctionalResult subclass returned.

circuit[source]
set_parameter_values(values: list[float], where: Callable[[qilisdk.core.Parameter], bool] | None = None) None[source]

Assign parameter values by position and clear caches.

Parameters:
  • values (list[float]) – New values ordered consistently with get_parameter_names().

  • where (Callable[[Parameter], bool] | None) – Optional predicate selecting parameters to update.

set_parameters(parameters: dict[str, int | float]) None[source]

Assign parameter values by name and clear caches.

Parameters:

parameters (dict[str, int | float]) – Mapping from parameter labels to numeric values.

set_parameter_bounds(ranges: dict[str, tuple[float, float]]) None[source]

Update parameter bounds and clear caches.

Parameters:

ranges (dict[str, tuple[float, float]]) – Bounds keyed by parameter label.