コード例 #1
0
ファイル: test_tensor_gen.py プロジェクト: zeta1999/quimb
 def test_ghz_state(self, dtype):
     mps = qtn.MPS_ghz_state(5, dtype=dtype)
     assert mps.dtype == dtype
     psi = qu.ghz_state(5, dtype=dtype)
     assert mps.H @ mps == pytest.approx(1.0)
     assert mps.bond_sizes() == [2, 2, 2, 2]
     assert qu.fidelity(psi, mps.to_dense()) == pytest.approx(1.0)
コード例 #2
0
 def test_prepare_GHZ(self):
     qc = qtn.Circuit(3)
     gates = [
         ('H', 0),
         ('H', 1),
         ('CNOT', 1, 2),
         ('CNOT', 0, 2),
         ('H', 0),
         ('H', 1),
         ('H', 2),
     ]
     qc.apply_circuit(gates)
     assert qu.expec(qc.psi.to_dense(), qu.ghz_state(3)) == pytest.approx(1)
コード例 #3
0
ファイル: test_circuit.py プロジェクト: zizai/quimb
 def test_prepare_GHZ(self):
     qc = qtn.Circuit(3)
     gates = [
         ('H', 0),
         ('H', 1),
         ('CNOT', 1, 2),
         ('CNOT', 0, 2),
         ('H', 0),
         ('H', 1),
         ('H', 2),
     ]
     qc.apply_circuit(gates)
     assert qu.expec(qc.psi.to_dense(), qu.ghz_state(3)) == pytest.approx(1)
     counts = qc.simulate_counts(1024)
     assert len(counts) == 2
     assert '000' in counts
     assert '111' in counts
     assert counts['000'] + counts['111'] == 1024
コード例 #4
0
ファイル: test_calc.py プロジェクト: zeta1999/quimb
 def test_basic(self):
     psi = qu.ghz_state(2)
     qu.cprint(psi)
コード例 #5
0
ファイル: test_calc.py プロジェクト: zeta1999/quimb
 def test_ghz(self, qtype):
     psi = qu.ghz_state(3, qtype=qtype)
     results = qu.simulate_counts(psi, 1024)
     assert len(results) == 2
     assert '000' in results
     assert '111' in results
コード例 #6
0
ファイル: test_states.py プロジェクト: caidish/quimb
 def test_n2(self):
     p = ghz_state(2)
     assert_allclose(p, bell_state('phi+'))