Skip to content
This repository has been archived by the owner on Aug 21, 2024. It is now read-only.

task 1.7 global phase change was added #177

Merged
merged 15 commits into from
Oct 5, 2019
Prev Previous commit
Next Next commit
Changed function parameters
  • Loading branch information
adutchengineer committed Oct 4, 2019
commit 36fd589c859dcfe8e6fe46956d39c299ffdb8856
41 changes: 18 additions & 23 deletions BasicGates/BasicGates.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.1. State flip: $|0\\rangle$ to $|1\\rangle$ and vice versa\n",
"### Task 101. State flip: $|0\\rangle$ to $|1\\rangle$ and vice versa\n",
"\n",
"**Input:** A qubit in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$.\n",
"\n",
Expand Down Expand Up @@ -122,7 +122,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.2. Basis change: $|0\\rangle$ to $|+\\rangle$ and $|1\\rangle$ to $|-\\rangle$ (and vice versa)\n",
"### Task 102. Basis change: $|0\\rangle$ to $|+\\rangle$ and $|1\\rangle$ to $|-\\rangle$ (and vice versa)\n",
"\n",
"**Input**: A qubit in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$.\n",
"\n",
Expand Down Expand Up @@ -153,7 +153,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.3. Sign flip: $|+\\rangle$ to $|-\\rangle$ and vice versa.\n",
"### Task 103. Sign flip: $|+\\rangle$ to $|-\\rangle$ and vice versa.\n",
"\n",
"**Input**: A qubit in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$.\n",
"\n",
Expand All @@ -177,7 +177,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.4. Amplitude change: $|0\\rangle$ to $\\cos{α} |0\\rangle + \\sin{α} |1\\rangle$.\n",
"### Task 104. Amplitude change: $|0\\rangle$ to $\\cos{α} |0\\rangle + \\sin{α} |1\\rangle$.\n",
"\n",
"**Inputs:**\n",
"\n",
Expand Down Expand Up @@ -210,7 +210,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.5. Phase flip\n",
"### Task 105. Phase flip\n",
"\n",
"**Input:** A qubit in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$.\n",
"\n",
Expand All @@ -234,7 +234,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.6. Phase change\n",
"### Task 106. Phase change\n",
"\n",
"**Inputs:**\n",
"\n",
Expand Down Expand Up @@ -264,17 +264,12 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.7. Global Phase Change",
"### Task 107. Global Phase Change",
"\n",
"**Input:** \n",
"1) A qubit in state $|\\psi\\rangle = \\beta |0\\rangle + \\gamma |1\\rangle$.\n",
"\n",
"1) Pauli operator (μ) represented as Pauli.\n",
"\n",
"2) Angle alpha, in radians, represented as Double.\n",
"\n",
"3) A qubit in state β|0⟩ + γ|1⟩.\n",
"\n",
"**Goal**: Change the state of the qubit to - β|0⟩ - γ|1⟩.\n"
"**Goal**: Change the state of the qubit to - $|\\psi\\rangle$.\n"
]
},
{
Expand All @@ -285,7 +280,7 @@
"source": [
"%kata T107_GlobalPhaseChange_Test\n",
"\n",
"operation GlobalPhaseChange (pauli: Pauli, alpha: Double, qs : Qubit[]) : Unit is Adj+Ctl {\n",
"operation GlobalPhaseChange (q : Qubit[]) : Unit is Adj+Ctl {\n",
" // ...\n",
"}"
]
Expand All @@ -294,7 +289,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.8. Bell state change - 1\n",
"### Task 108. Bell state change - 1\n",
"\n",
"**Input:** Two entangled qubits in Bell state $|\\Phi^{+}\\rangle = \\frac{1}{\\sqrt{2}} \\big(|00\\rangle + |11\\rangle\\big)$.\n",
"\n",
Expand All @@ -318,7 +313,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.9. Bell state change - 2\n",
"### Task 109. Bell state change - 2\n",
"\n",
"**Input:** Two entangled qubits in Bell state $|\\Phi^{+}\\rangle = \\frac{1}{\\sqrt{2}} \\big(|00\\rangle + |11\\rangle\\big)$.\n",
"\n",
Expand All @@ -342,7 +337,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 1.10. Bell state change - 3\n",
"### Task 110. Bell state change - 3\n",
"\n",
"**Input:** Two entangled qubits in Bell state $|\\Phi^{+}\\rangle = \\frac{1}{\\sqrt{2}} \\big(|00\\rangle + |11\\rangle\\big)$.\n",
"\n",
Expand Down Expand Up @@ -377,7 +372,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 2.1. Two-qubit gate - 1\n",
"### Task 201. Two-qubit gate - 1\n",
"\n",
"**Input:** Two unentangled qubits (stored in an array of length 2).\n",
"The first qubit will be in state $|\\psi\\rangle = \\alpha |0\\rangle + \\beta |1\\rangle$, the second - in state $|0\\rangle$\n",
Expand Down Expand Up @@ -408,7 +403,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 2.2. Two-qubit gate - 2\n",
"### Task 202. Two-qubit gate - 2\n",
"\n",
"**Input:** Two unentangled qubits (stored in an array of length 2) in state $|+\\rangle \\otimes |+\\rangle = \\frac{1}{2} \\big( |00\\rangle + |01\\rangle + |10\\rangle \\color{blue}+ |11\\rangle \\big)$.\n",
"\n",
Expand Down Expand Up @@ -436,7 +431,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 2.3. Two-qubit gate - 3\n",
"### Task 203. Two-qubit gate - 3\n",
"\n",
"**Input:** Two unentangled qubits (stored in an array of length 2) in an arbitrary two-qubit state $\\alpha |00\\rangle + \\color{blue}\\beta |01\\rangle + \\color{blue}\\gamma |10\\rangle + \\delta |11\\rangle$.\n",
"\n",
Expand All @@ -463,7 +458,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 2.4. Toffoli gate\n",
"### Task 204. Toffoli gate\n",
"\n",
"**Input:** Three qubits (stored in an array of length 3) in an arbitrary three-qubit state \n",
"$\\alpha |000\\rangle + \\beta |001\\rangle + \\gamma |010\\rangle + \\delta |011\\rangle + \\epsilon |100\\rangle + \\zeta|101\\rangle + \\color{blue}\\eta|110\\rangle + \\color{blue}\\theta|111\\rangle$.\n",
Expand All @@ -488,7 +483,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Task 2.5. Fredkin gate\n",
"### Task 205. Fredkin gate\n",
"\n",
"**Input:** Three qubits (stored in an array of length 3) in an arbitrary three-qubit state \n",
"$\\alpha |000\\rangle + \\beta |001\\rangle + \\gamma |010\\rangle + \\delta |011\\rangle + \\epsilon |100\\rangle + \\color{blue}\\zeta|101\\rangle + \\color{blue}\\eta|110\\rangle + \\theta|111\\rangle$.\n",
Expand Down
5 changes: 3 additions & 2 deletions BasicGates/ReferenceImplementation.qs
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

namespace Quantum.Kata.BasicGates {
open Microsoft.Quantum.Intrinsic;
open Microsoft.Quantum.Math;


//////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -87,8 +88,8 @@ namespace Quantum.Kata.BasicGates {
// 2) Angle alpha, in radians, represented as Double.
// 3) A qubit in state β|0⟩ + γ|1⟩.
// Goal: Change the state of the qubit to - β|0⟩ - γ|1⟩.
operation GlobalPhaseChange_Reference(pauli: Pauli, alpha: Double, q: Qubit) : Unit is Adj+Ctl{
R(PauliI,alpha,q);
operation GlobalPhaseChange_Reference(q: Qubit) : Unit is Adj+Ctl{
R(PauliI,2.0*PI(),q);
}

// Task 108. Bell state change - 1
Expand Down
2 changes: 1 addition & 1 deletion BasicGates/Tests.qs
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ namespace Quantum.Kata.BasicGates {

// ------------------------------------------------------
operation T107_GlobalPhaseChange_Test () : Unit {
AssertOperationsEqualReferenced(2, ArrayWrapperOperation(GlobalPhaseChange(PauliI, 2.0*PI() , _), _), ArrayWrapperOperation(GlobalPhaseChange_Reference(PauliI, 2.0*PI(), _), _));
AssertOperationsEqualReferenced(2, ArrayWrapperOperation(GlobalPhaseChange(_), _), ArrayWrapperOperation(GlobalPhaseChange_Reference(_), _));
}


Expand Down