qilisdk.functionals.digital_propagation

Classes

DigitalPropagation

Propagate a quantum state through a digital circuit.

Module Contents

class DigitalPropagation(circuit: qilisdk.digital.circuit.Circuit, initial_state: qilisdk.core.qtensor.QTensor | qilisdk.core.qtensor.InitialState = InitialState.ZERO)[font]

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().

Nota

initial_state is only used by simulator backends. When the functional is executed on hardware, the initial state is ignored and the circuit is propagated from the zero state.

Exemple

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]
Paràmetres:
  • circuit (Circuit) – Circuit to propagate.

  • initial_state (QTensor | InitialState) – Quantum state used as the simulation starting point. Ignored when the functional is executed on hardware.

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

Concrete FunctionalResult subclass returned.

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

Assign parameter values by position and clear caches.

Paràmetres:
  • 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[font]

Assign parameter values by name and clear caches.

Paràmetres:

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

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

Update parameter bounds and clear caches.

Paràmetres:

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