def expand(self): with qml.tape.QuantumTape() as tape: qml.BasisEmbedding(self.init_state, wires=self.wires) weight = self.parameters[0] for layer in range(self.n_layers): for idx, wires in enumerate(self.qwires): if self.include_pi: qml.OrbitalRotation(np.pi, wires=wires) qml.DoubleExcitation(weight[layer][idx][0], wires=wires) qml.OrbitalRotation(weight[layer][idx][1], wires=wires) return tape
def expand(self): with qml.tape.QuantumTape() as tape: qml.BasisEmbedding(self.init_state_flipped, wires=self.wires) weights = self.parameters[0] for layer in range(self.k): for i, (w1, w2) in enumerate(self.d_wires): qml.FermionicDoubleExcitation( weights[layer][len(self.s_wires) + i], wires1=w1, wires2=w2) for j, s_wires_ in enumerate(self.s_wires): qml.FermionicSingleExcitation(weights[layer][j], wires=s_wires_) return tape
def expand(self): nm_wires = [ self.wires[l:l + 2] for l in range(0, len(self.wires) - 1, 2) ] nm_wires += [ self.wires[l:l + 2] for l in range(1, len(self.wires) - 1, 2) ] with qml.tape.QuantumTape() as tape: qml.BasisEmbedding(self.init_state, wires=self.wires) for l in range(self.n_layers): for i, wires_ in enumerate(nm_wires): u1_ex_gate(self.parameters[0][l, i, 0], self.parameters[0][l, i, 1], wires=wires_) return tape
def circuit(x=None): qml.BasisEmbedding(features=x, wires=range(2)) return qml.expval(qml.PauliZ(0))
def circuit2(): qml.BasisEmbedding(features, wires=["z", "a", "k"]) return qml.expval(qml.Identity("z"))
def circuit(): qml.BasisEmbedding(features, wires=range(3)) return qml.expval(qml.Identity(0))
def circuit(x=None): qml.BasisEmbedding(features=x, wires=range(2)) return [qml.expval(qml.PauliZ(i)) for i in range(n_qubits)]
def circuit_template(features): qml.BasisEmbedding(features, wires=range(3)) return qml.state()
def test_id(self): """Tests that the id attribute can be set.""" template = qml.BasisEmbedding([0, 1], wires=[0, 1], id="a") assert template.id == "a"