Loading environment.qml.yml +1 −0 Original line number Diff line number Diff line Loading @@ -16,5 +16,6 @@ dependencies: - pennylane-sf - pennylane-qiskit - pennylane-cirq - pylatexenc - pyzx - strawberryfields notebooks/Half-Adder-CI.ipynb +40 −1 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` ``` python import cirq q0, q1, q2, q3 = cirq.LineQubit.range(4) circuit = cirq.Circuit() circuit.append(cirq.X(q1)) circuit.append(cirq.X(q1)) circuit.append(cirq.CNOT(q0, q2)) circuit.append(cirq.CNOT(q1, q2)) circuit.append(cirq.CCNOT(q0, q1, q3)) circuit.append(cirq.measure(q2, q3, key='result')) print(circuit) s = cirq.Simulator() samples = s.run(circuit, repetitions=1000) counts = samples.histogram(key= 'result') print(counts) ``` %% Output ┌──┐ 0: ─────@────────────@───────────────── │ │ 1: ────X┼────X───@───@───────────────── │ │ │ 2: ─────X────────X───┼───M('result')─── │ │ 3: ──────────────────X───M───────────── └──┘ Counter({0: 1000}) %% Cell type:code id: tags: ``` python ``` notebooks/Half-Adder-QI.ipynb +17 −20 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` python from qiskit import * from qiskit.tools.visualization import plot_bloch_multivector from qiskit.tools.visualization import plot_histogram # Creating a circuit with 3 quantum bits and 2 classical bits qc = QuantumCircuit(3,2) # Preparing inputs qc = QuantumCircuit(4,2) qc.x(0) # Comment this line to make Qbit0 = |0> qc.x(1) # Comment this line to make Qbit1 = |0> # no changes to Qbit2 (stays |0> always) qc.barrier() # Applying AND operation and put result to Qbit2 qc.ccx(0,1,2) qc.barrier() # Applying XOR operation and put result to Qbit1 qc.cx(0,1) qc.barrier() # Reading outputs qc.measure(1,0) # Reading XOR value ( sum bit ) qc.measure(2,1) # Reading AND value ( carry-out bit ) #qc.draw(output='mpl') qc.cx(0,2) qc.cx(1,2) qc.ccx(0,1,3) qc.measure(2,0) # Reading XOR value ( sum bit ) qc.measure(3,1) # Reading AND value ( carry-out bit ) # Run the experimient 1024 times and get stats counts = execute(qc,Aer.get_backend('qasm_simulator')).result().get_counts() print(counts) qc.draw(output='mpl') #credit: https://lahirumadushankablog.wordpress.com/2020/02/04/quantum-half-adder-and-full-adder/ ``` %% Output {'10': 1024} <Figure size 621.941x451.5 with 1 Axes> %% Cell type:code id: tags: ``` python ``` notebooks/Half-Adder.ipynb 0 → 100644 +125 −0 File added.Preview size limit exceeded, changes collapsed. Show changes notebooks/pl_notebook.ipynb +5 −1 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` ``` python import pennylane as qml from pennylane import numpy as np dev1 = qml.device('default.qubit', wires = 1) @qml.qnode(dev1, interface="autograd") def circuit(params): qml.RX(params[0], wires=0) qml.RY(params[1], wires=0) return qml.expval(qml.PauliZ(0)) print(circuit([0.54, 0.12])) #print("Hello World!") ``` %% Output 0.8515405859048367 Loading
environment.qml.yml +1 −0 Original line number Diff line number Diff line Loading @@ -16,5 +16,6 @@ dependencies: - pennylane-sf - pennylane-qiskit - pennylane-cirq - pylatexenc - pyzx - strawberryfields
notebooks/Half-Adder-CI.ipynb +40 −1 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` ``` python import cirq q0, q1, q2, q3 = cirq.LineQubit.range(4) circuit = cirq.Circuit() circuit.append(cirq.X(q1)) circuit.append(cirq.X(q1)) circuit.append(cirq.CNOT(q0, q2)) circuit.append(cirq.CNOT(q1, q2)) circuit.append(cirq.CCNOT(q0, q1, q3)) circuit.append(cirq.measure(q2, q3, key='result')) print(circuit) s = cirq.Simulator() samples = s.run(circuit, repetitions=1000) counts = samples.histogram(key= 'result') print(counts) ``` %% Output ┌──┐ 0: ─────@────────────@───────────────── │ │ 1: ────X┼────X───@───@───────────────── │ │ │ 2: ─────X────────X───┼───M('result')─── │ │ 3: ──────────────────X───M───────────── └──┘ Counter({0: 1000}) %% Cell type:code id: tags: ``` python ```
notebooks/Half-Adder-QI.ipynb +17 −20 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` python from qiskit import * from qiskit.tools.visualization import plot_bloch_multivector from qiskit.tools.visualization import plot_histogram # Creating a circuit with 3 quantum bits and 2 classical bits qc = QuantumCircuit(3,2) # Preparing inputs qc = QuantumCircuit(4,2) qc.x(0) # Comment this line to make Qbit0 = |0> qc.x(1) # Comment this line to make Qbit1 = |0> # no changes to Qbit2 (stays |0> always) qc.barrier() # Applying AND operation and put result to Qbit2 qc.ccx(0,1,2) qc.barrier() # Applying XOR operation and put result to Qbit1 qc.cx(0,1) qc.barrier() # Reading outputs qc.measure(1,0) # Reading XOR value ( sum bit ) qc.measure(2,1) # Reading AND value ( carry-out bit ) #qc.draw(output='mpl') qc.cx(0,2) qc.cx(1,2) qc.ccx(0,1,3) qc.measure(2,0) # Reading XOR value ( sum bit ) qc.measure(3,1) # Reading AND value ( carry-out bit ) # Run the experimient 1024 times and get stats counts = execute(qc,Aer.get_backend('qasm_simulator')).result().get_counts() print(counts) qc.draw(output='mpl') #credit: https://lahirumadushankablog.wordpress.com/2020/02/04/quantum-half-adder-and-full-adder/ ``` %% Output {'10': 1024} <Figure size 621.941x451.5 with 1 Axes> %% Cell type:code id: tags: ``` python ```
notebooks/Half-Adder.ipynb 0 → 100644 +125 −0 File added.Preview size limit exceeded, changes collapsed. Show changes
notebooks/pl_notebook.ipynb +5 −1 Original line number Diff line number Diff line %% Cell type:code id: tags: ``` ``` python import pennylane as qml from pennylane import numpy as np dev1 = qml.device('default.qubit', wires = 1) @qml.qnode(dev1, interface="autograd") def circuit(params): qml.RX(params[0], wires=0) qml.RY(params[1], wires=0) return qml.expval(qml.PauliZ(0)) print(circuit([0.54, 0.12])) #print("Hello World!") ``` %% Output 0.8515405859048367