def test_google_v2_supremacy_circuit(): circuit = supremacy_v2.generate_boixo_2018_supremacy_circuits_v2_grid( n_rows=4, n_cols=5, cz_depth=9, seed=0) # We check that is exactly circuit inst_4x5_10_0 # in github.com/sboixo/GRCS cz_v2 assert len(circuit) == 11 assert len(list(circuit.findall_operations_with_gate_type( ops.CZPowGate))) == 35 assert len(list(circuit.findall_operations_with_gate_type( ops.XPowGate))) == 15 assert len(list(circuit.findall_operations_with_gate_type( ops.YPowGate))) == 23 assert len(list(circuit.findall_operations_with_gate_type( ops.ZPowGate))) == 32 assert len(list(circuit.findall_operations_with_gate_type( ops.HPowGate))) == 40 qubits = [GridQubit(i, j) for i in range(4) for j in range(5)] assert isinstance(circuit.operation_at(qubits[0], 2).gate, ops.YPowGate) assert isinstance(circuit.operation_at(qubits[1], 2).gate, ops.YPowGate) assert isinstance(circuit.operation_at(qubits[8], 2).gate, ops.XPowGate) assert circuit.operation_at(qubits[0], 1).gate == ops.CZ assert circuit.operation_at(qubits[5], 2).gate == ops.CZ assert circuit.operation_at(qubits[8], 3).gate == ops.CZ assert circuit.operation_at(qubits[13], 4).gate == ops.CZ assert circuit.operation_at(qubits[12], 5).gate == ops.CZ assert circuit.operation_at(qubits[13], 6).gate == ops.CZ assert circuit.operation_at(qubits[14], 7).gate == ops.CZ
def test_supremacy_big(): circuit = supremacy_v2.generate_boixo_2018_supremacy_circuits_v2_grid( n_rows=7, n_cols=7, cz_depth=6, seed=0) qubit_order = circuit.all_qubits() q0 = next(iter(qubit_order)) circuit.append(cirq.measure(q0)) mps_simulator_1 = ccq.mps_simulator.MPSSimulator( simulation_options=ccq.mps_simulator.MPSOptions(cutoff=5e-5)) result_1 = mps_simulator_1.simulate(circuit, qubit_order=qubit_order, initial_state=0) assert result_1.final_state.estimation_stats() == { 'estimated_fidelity': 0.997, 'memory_bytes': 11008, 'num_coefs_used': 688, } mps_simulator_2 = ccq.mps_simulator.MPSSimulator( simulation_options=ccq.mps_simulator.MPSOptions( method='isvd', max_bond=1, cutoff_mode='sum2')) result_2 = mps_simulator_2.simulate(circuit, qubit_order=qubit_order, initial_state=0) assert result_2.final_state.estimation_stats() == { 'estimated_fidelity': 1.0, 'memory_bytes': 1568, 'num_coefs_used': 98, }
def test_supremacy_big(): circuit = supremacy_v2.generate_boixo_2018_supremacy_circuits_v2_grid( n_rows=7, n_cols=7, cz_depth=6, seed=0 ) qubit_order = circuit.all_qubits() q0 = next(iter(qubit_order)) circuit.append(cirq.measure(q0)) mps_simulator = ccq.mps_simulator.MPSSimulator(rsum2_cutoff=5e-5) result = mps_simulator.simulate(circuit, qubit_order=qubit_order, initial_state=0) assert result.final_state.estimation_stats() == { 'estimated_fidelity': 0.997, 'memory_bytes': 11008, 'num_svd_splits': 64, 'num_coefs_used': 688, }
def test_supremacy_equal_more_cols(): circuit = supremacy_v2.generate_boixo_2018_supremacy_circuits_v2_grid( n_rows=2, n_cols=3, cz_depth=3, seed=0 ) qubits = circuit.all_qubits() assert_same_output_as_dense(circuit, qubits)