braket.experimental.algorithms.chsh_inequality.chsh_inequality module
- braket.experimental.algorithms.chsh_inequality.chsh_inequality.create_chsh_inequality_circuits(qubit0: Qubit = 0, qubit1: Qubit = 1, *, a1: float = 1.5707963267948966, a2: float = 0, b1: float = 0.7853981633974483, b2: float = 2.356194490192345) List[Circuit][source]
Create the four circuits for CHSH inequality. Default angles will give maximum violation of the inequality.
- Parameters:
qubit0 (Qubit) – First qubit.
qubit1 (Qubit) – Second qubit.
a1 (float) – First basis rotation angle for first qubit.
a2 (float) – Second basis rotation angle for first qubit.
b1 (float) – First basis rotation angle for second qubit.
b2 (float) – Second basis rotation angle for second qubit.
- Returns:
List[Circuit] – List of quantum circuits.
- braket.experimental.algorithms.chsh_inequality.chsh_inequality.run_chsh_inequality(circuits: List[Circuit], device: Device, shots: int = 1000) List[QuantumTask][source]
Submit four CHSH circuits to a device.
- Parameters:
circuits (List[Circuit]) – Four CHSH inequality circuits to run.
device (Device) – Quantum device or simulator.
shots (int) – Number of shots. Defaults to 1_000.
- Returns:
List[QuantumTask] – List of quantum tasks.
- braket.experimental.algorithms.chsh_inequality.chsh_inequality.get_chsh_results(tasks: List[QuantumTask], verbose: bool = True) Tuple[float, List[Counter], float, float, float][source]
Return CHSH task results after post-processing.
- Parameters:
tasks (List[QuantumTask]) – List of quantum tasks.
verbose (bool) – Controls printing of the inequality result. Defaults to True.
- Returns:
Tuple[float, List[Counter], float, float, float] – The chsh_value, list of results, and the four probabilities: E_a1b1, E_a1b2, E_a2b1, E_a2b2.