quairkit.core.state.backend.operator

Source file for base class that emulates quantum states.

class quairkit.core.state.backend.operator.StateOperator(list_operator, sys_dim)

The abstract base class for operating quantum state in QuAIRKit, via emulators or quantum devices.

Parameters:
list_operator : List[OperatorInfoType] | None

the operators of the circuit that applies to the state. Defaults to an empty list.

sys_dim : List[int]

a list of dimensions for each system.

Note

This class is designed to be inherited by specific state emulator classes. Such class should emulate quantum computing via OpenQASM 2.0.

property param : list[Tensor]

The parameters stored in the operators in StateOperator.

apply(list_operator)

Record a list of operators that will be applied to the device.

Parameters:
list_operator : List[OperatorInfoType | List[OperatorInfoType]]

the list of operators that applies to the state.

property qasm2 : str | list[str]

The QASM 2.0 string that represents the circuit stored in this state emulator.

property system_dim : list[int]

The list of dimensions for each system

abstractmethod clone()

Return a copy of the quantum state.

measure(system_idx=None, shots=None, measure_op=None)

Measure the quantum state

Parameters:
system_idx : int | List[int] | None

the system indices to be measured. Defaults to all systems.

shots : int | None

the number of shots to measure, defaults to 1024.

measure_op : str | None

the measurement operator basis to measure. Here we restrict it to be Pauli, which can be a char or a string composed of ‘i’, ‘x’, ‘y’, or ‘z’. Defaults to ‘z’.

Returns:

A tensor containing the measurement results. Simulator backends return dense probabilities, while StateOperator backends return sparse empirical probabilities over the same outcome space.

Return type:

Tensor

expec_val(hamiltonian, shots=None, decompose=False)

The expectation value of the observable with respect to the quantum state.

Parameters:
hamiltonian : Hamiltonian

Input observable.

shots : int | None

the total number of shots to measure, defaults to 1024 times the Hamiltonian terms.

decompose : bool

If decompose is True, it will return the expectation value of each term.

Returns:

The measured expectation value (per term) of the input observable for the quantum state.

Return type:

Tensor

quairkit.core.state.backend.operator.get_shift_rule(gate_name)

Retrieve shift rule for a given quantum gate.

class quairkit.core.state.backend.operator.SimpleStateOperator(list_operator, sys_dim)

A minimal backend built atop the default simulator for quick experimentation.

It executes QASM locally (via the default backend) and returns sparse counts dict. This is primarily for users to try StateOperator without integrating a real device.