def circuit(p, alpha, tampered_wire): """A quantum circuit that will be able to identify bitflip errors. DO NOT MODIFY any already-written lines in this function. Args: p (float): The bit flip probability alpha (float): The parameter used to calculate `density_matrix(alpha)` tampered_wire (int): The wire that may or may not be flipped (zero-index) Returns: Some expectation value, state, probs, ... you decide! """ qml.QubitDensityMatrix(density_matrix(alpha), wires=[0, 1, 2]) # QHACK # # put any input processing gates here qml.CNOT(wires=(0,1)) qml.CNOT(wires=(0,2)) qml.BitFlip(p, wires=int(tampered_wire)) # put any gates here after the bitflip error has occurred ### No gates after bitflip # return something! return qml.density_matrix((0,1,2))
def circuit_without_tardigrade(): """ Circuit without Tardigrade Prepares |010> + |100> """ qml.Hadamard(wires=0) qml.PauliX(wires=1) qml.CNOT(wires=(0, 1)) return qml.density_matrix(wires=1)
def circuit_with_tardigrade(theta): """ Circuit with Tardigrade Prepares cos(theta/2) |010> + sin(theta/2) |001> + |100> """ qml.Hadamard(wires=0) qml.CRY(np.pi + theta, wires=(0, 1)) qml.CNOT(wires=(0, 2)) qml.CNOT(wires=(1, 2)) qml.PauliX(wires=0) return qml.density_matrix(wires=1)
def circuit(inputs, w1, w2, w3, w4, w5, w6, w7): """Sample circuit to be used for testing density_matrix() return type.""" qml.templates.AngleEmbedding(inputs, wires=list(range(n_qubits))) qml.templates.StronglyEntanglingLayers(w1, wires=list(range(n_qubits))) qml.RX(w2[0], wires=0 % n_qubits) qml.RX(w3, wires=1 % n_qubits) qml.Rot(*w4, wires=2 % n_qubits) qml.templates.StronglyEntanglingLayers(w5, wires=list(range(n_qubits))) qml.Rot(*w6, wires=3 % n_qubits) qml.RX(w7, wires=4 % n_qubits) # Using np.log2() here because output_dim is sampled from varying the number of # qubits (say, nq) and calculated as (2 ** nq, 2 ** nq) return qml.density_matrix(wires=[i for i in range(int(np.log2(output_dim[0])))])
def func(): qml.Hadamard(0) qml.CNOT(wires=[0, 1]) return qml.density_matrix(wires=[0, 1])
def circuit(): qml.Hadamard(wires=0) qml.CNOT(wires=[0, 1]) qml.CRX(np.pi / 2, wires=[0, 1]) return qml.density_matrix(wires=[0])
def circuit(features, weights): self.apply(features, weights) return qml.density_matrix(self.wires)