braket.experimental.algorithms.bells_inequality.bells_inequality module
- braket.experimental.algorithms.bells_inequality.bells_inequality.create_bell_inequality_circuits(qubit0: Qubit = 0, qubit1: Qubit = 1, angle_A: float = 0, angle_B: float = 1.0471975511965976, angle_C: float = 2.0943951023931953) List[Circuit][source]
Create the three circuits for Bell’s inequality. Default angles will give maximum violation of Bell’s inequality.
- Parameters:
qubit0 (Qubit) – First qubit.
qubit1 (Qubit) – Second qubit.
angle_A (float) – Angle for the first measurement basis A. Defaults to 0.
angle_B (float) – Angle for the second measurement basis B. Defaults to np.pi/3.
angle_C (float) – Angle for the third measurement basis C. Defaults to 2*np.pi/3 to give maximum violation of Bell’s inequality.
- Returns:
List[Circuit] – Three circuits circAB, circAC, circBC.
- braket.experimental.algorithms.bells_inequality.bells_inequality.run_bell_inequality(circuits: List[Circuit], device: Device, shots: int = 1000) List[QuantumTask][source]
Submit three Bell circuits to a device.
- Parameters:
circuits (List[Circuit]) – Three Bell inequality circuits in order circAB, circAC, circBC.
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.bells_inequality.bells_inequality.get_bell_inequality_results(tasks: List[QuantumTask], verbose: bool = True) Tuple[List[Counter], float, float, float][source]
Return Bell 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[List[Counter], float, float, float] – results, pAB, pAC, pBC
- braket.experimental.algorithms.bells_inequality.bells_inequality.bell_singlet_rotated_basis(qubit0: Qubit, qubit1: Qubit, rotation0: float, rotation1: float) Circuit[source]
Prepare a Bell singlet state in a Rx-rotated meaurement basis.
- Parameters:
qubit0 (Qubit) – First qubit.
qubit1 (Qubit) – Second qubit.
rotation0 (float) – First qubit Rx rotation angle.
rotation1 (float) – Second qubit Rx rotation angle.
- Returns:
Circuit – the Braket circuit that prepares the Bell circuit.
- braket.experimental.algorithms.bells_inequality.bells_inequality.bell_singlet(qubit0: Qubit, qubit1: Qubit) Circuit[source]
Prepare a Bell singlet state.
- Parameters:
qubit0 (Qubit) – First qubit.
qubit1 (Qubit) – Second qubit.
- Returns:
Circuit – the Braket circuit that prepares the Bell single state.