mimiqcircuits.backends.capabilities¶
Capability vocabulary, numeric limits, topology, and admission types.
A backend’s Backend.capabilities() returns a set of
Capability tokens drawn from CAPABILITY_VOCABULARY.
A backend’s Backend.limits() returns a Limits
instance, and Backend.topology() returns one of the
Topology subclasses (AllToAll,
CouplingMap, LinearChain).
Backend.can_handle() returns an AdmissionResult
(Admissible, Marginal, or Inadmissible).
Module Attributes
Canonical capability tokens a backend may advertise. |
|
Registry of probe-circuit factories keyed by capability. |
Functions
|
|
|
Register a probe-circuit constructor for |
Classes
The backend can execute the circuit. |
|
Base class for |
|
|
All-to-all connectivity (no constraint). |
|
Coupling map: each edge |
|
The backend cannot execute the circuit. |
|
Numeric limits a simulator advertises. |
|
Linear chain of |
|
The backend can execute the circuit but it is near a limit (memory, bond dimension, runtime). |
|
Base class for device / connectivity topologies. |
Exceptions
|
Raised when a backend is asked to run a feature it does not advertise in |
- mimiqcircuits.backends.capabilities.CAPABILITY_VOCABULARY: frozenset[str] = frozenset({'amplitude', 'batch', 'bond_dim', 'calibrated_noise', 'classical_bits', 'expectation_1q', 'expectation_2q', 'expectation_paulistring', 'expectation_state', 'feed_forward', 'final_measure_only', 'loss', 'midcircuit_measure', 'midcircuit_reset', 'noise', 'parametric', 'parametric_batch', 'pass_order_honored', 'reset_after_measure', 'sampling', 'schmidt_rank', 'shared_prefix_batch', 'streaming', 'while_statement', 'zvars'})¶
Canonical capability tokens a backend may advertise. Informational: backends may declare tokens outside this set; conformance tests warn but never fail on extras.
- class mimiqcircuits.backends.capabilities.Limits(max_qubits=None, max_bond_dim=None, max_classical_bits=None, max_zvars=None, max_samples=None, max_circuit_depth=None)[source]¶
Bases:
objectNumeric limits a simulator advertises.
None for any field means “unbounded” (or “not applicable” for fields like max_bond_dim on a state-vector simulator).
- __init__(max_qubits=None, max_bond_dim=None, max_classical_bits=None, max_zvars=None, max_samples=None, max_circuit_depth=None)¶
- class mimiqcircuits.backends.capabilities.Topology[source]¶
Bases:
objectBase class for device / connectivity topologies.
- class mimiqcircuits.backends.capabilities.AllToAll[source]¶
Bases:
TopologyAll-to-all connectivity (no constraint). Default for simulators.
- __init__()¶
- class mimiqcircuits.backends.capabilities.CouplingMap(edges)[source]¶
Bases:
TopologyCoupling map: each edge
(i, j)means qubitsiandjcan interact directly. 1-based qubit indices to match the rest of MIMIQ.- __init__(edges)¶
- class mimiqcircuits.backends.capabilities.LinearChain(n)[source]¶
Bases:
TopologyLinear chain of
nqubits with nearest-neighbor coupling.- __init__(n)¶
- class mimiqcircuits.backends.capabilities.AdmissionResult[source]¶
Bases:
objectBase class for
can_handle(backend, circuit)results.
- class mimiqcircuits.backends.capabilities.Admissible[source]¶
Bases:
AdmissionResultThe backend can execute the circuit.
- __init__()¶
- class mimiqcircuits.backends.capabilities.Marginal(warning)[source]¶
Bases:
AdmissionResultThe backend can execute the circuit but it is near a limit (memory, bond dimension, runtime).
warningis a user-facing message; downstream code still treats this as admissible.- __init__(warning)¶
- class mimiqcircuits.backends.capabilities.Inadmissible(reason)[source]¶
Bases:
AdmissionResultThe backend cannot execute the circuit.
- __init__(reason)¶
- mimiqcircuits.backends.capabilities.is_admissible(result)[source]¶
TrueforAdmissibleandMarginal.
- exception mimiqcircuits.backends.capabilities.UnsupportedCapabilityError(backend_name, capability, detail='')[source]¶
Bases:
ExceptionRaised when a backend is asked to run a feature it does not advertise in
Backend.capabilities().Backends use this to fail loudly rather than silently degrade. Tests rely on it to verify a backend’s capability set is honest (no “positive lies”).
- mimiqcircuits.backends.capabilities.CAP_PROBES: dict[str, Callable] = {'feed_forward': <function _probe_feed_forward>, 'loss': <function _probe_loss>, 'midcircuit_measure': <function _probe_midcircuit_measure>, 'midcircuit_reset': <function _probe_midcircuit_reset>, 'noise': <function _probe_noise>, 'parametric': <function _probe_parametric>, 'reset_after_measure': <function _probe_reset_after_measure>}¶
Registry of probe-circuit factories keyed by capability. Populated lazily by callers (typically the conformance test module) so that importing this module does not drag in the full circuit-construction surface.
- mimiqcircuits.backends.capabilities.register_cap_probe(capability, factory)[source]¶
Register a probe-circuit constructor for
capability.factory()must return a Circuit whose execution requires the named capability. Conformance tests use this registry to assert that backends reject what they do not advertise — silently accepting an undeclared feature would let “positive lies” slip through.