[
https://issues.apache.org/jira/browse/MAHOUT-607?focusedWorklogId=991847&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-991847
]
ASF GitHub Bot logged work on MAHOUT-607:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 15/Nov/25 16:34
Start Date: 15/Nov/25 16:34
Worklog Time Spent: 10m
Work Description: Copilot commented on code in PR #630:
URL: https://github.com/apache/mahout/pull/630#discussion_r2529995124
##########
docs/basic_gates.md:
##########
@@ -46,10 +46,55 @@ The T-Gate applies a **π/4 phase shift** to the qubit. It
is essential for quan
\[ T|0⟩ = |0⟩ \]
\[ T|1⟩ = e^{i\pi/4} |1⟩ \]
+## CSWAP Gate (Controlled-SWAP / Fredkin Gate)
+The CSWAP gate, also known as the **Fredkin gate**, is a three-qubit gate that
conditionally swaps the states of two target qubits based on the state of a
control qubit. If the control qubit is in the |1⟩ state, it swaps the states of
the two target qubits; otherwise, it leaves them unchanged.
+
+### Mathematical Definition
+
+The CSWAP gate acts on three qubits: a control qubit |c⟩ and two target qubits
|t₁⟩ and |t₂⟩. The operation is:
+
+\[ \text{CSWAP}|c\rangle|t_1\rangle|t_2\rangle = \begin{cases}
|c\rangle|t_1\rangle|t_2\rangle & \text{if } c = 0 \\
|c\rangle|t_2\rangle|t_1\rangle & \text{if } c = 1 \end{cases} \]
+
+In matrix form (for the 8-dimensional space of three qubits), the CSWAP gate
is:
+
+\[ \text{CSWAP} = \begin{pmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 &
0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0
& 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0
& 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{pmatrix} \]
+
+The CSWAP gate is fundamental in quantum algorithms such as the swap test,
quantum error correction, and quantum state comparison. The CSWAP gate is
reversible and preserves the number of |1⟩ states in the system (conserves the
Hamming weight).
+
+## U Gate (Universal Single-Qubit Gate)
+The U gate is a **universal single-qubit gate** parameterized by three angles
(θ, φ, λ) that can represent any single-qubit unitary operation. It provides a
complete parameterization of single-qubit rotations and is essential for
implementing arbitrary quantum operations.
+
+### Mathematical Definition
+
+The U gate matrix representation is:
+
+\[ U(\theta, \phi, \lambda) = \begin{pmatrix} \cos(\theta/2) &
-e^{i\lambda}\sin(\theta/2) \\ e^{i\phi}\sin(\theta/2) &
e^{i(\phi+\lambda)}\cos(\theta/2) \end{pmatrix} \]
+
+The U gate can be decomposed into rotations around the Z, Y, and Z axes:
+
+\[ U(\theta, \phi, \lambda) = R_z(\phi) \cdot R_y(\theta) \cdot R_z(\lambda) \]
+
+This decomposition shows that the U gate applies:
+1. A rotation by λ around the Z-axis
+2. A rotation by θ around the Y-axis
+3. A rotation by φ around the Z-axis
+
+### Special Cases
+
+- **Identity**: U(0, 0, 0) = I
+- **Pauli X**: U(π, 0, π) = X
+- **Pauli Y**: U(π, π/2, π/2) = Y
+- **Pauli Z**: U(0, π, 0) = Z
Review Comment:
The special case for Pauli Z gate appears to be incorrect. According to the
U gate matrix definition provided on line 71, `U(0, π, 0)` would yield:
- Element (2,2): e^(i(φ+λ))cos(θ/2) = e^(i(π+0))cos(0) = e^(iπ) = -1
However, based on the formula, the correct parameterization for Pauli Z
should be `U(0, 0, π)` where λ=π, not φ=π. This would give:
- Element (2,2): e^(i(0+π))cos(0) = e^(iπ) = -1
Please verify and correct this to: `U(0, 0, π) = Z`
```suggestion
- **Pauli Z**: U(0, 0, π) = Z
```
##########
docs/basic_gates.md:
##########
@@ -46,10 +46,55 @@ The T-Gate applies a **π/4 phase shift** to the qubit. It
is essential for quan
\[ T|0⟩ = |0⟩ \]
\[ T|1⟩ = e^{i\pi/4} |1⟩ \]
+## CSWAP Gate (Controlled-SWAP / Fredkin Gate)
+The CSWAP gate, also known as the **Fredkin gate**, is a three-qubit gate that
conditionally swaps the states of two target qubits based on the state of a
control qubit. If the control qubit is in the |1⟩ state, it swaps the states of
the two target qubits; otherwise, it leaves them unchanged.
+
+### Mathematical Definition
+
+The CSWAP gate acts on three qubits: a control qubit |c⟩ and two target qubits
|t₁⟩ and |t₂⟩. The operation is:
+
+\[ \text{CSWAP}|c\rangle|t_1\rangle|t_2\rangle = \begin{cases}
|c\rangle|t_1\rangle|t_2\rangle & \text{if } c = 0 \\
|c\rangle|t_2\rangle|t_1\rangle & \text{if } c = 1 \end{cases} \]
+
+In matrix form (for the 8-dimensional space of three qubits), the CSWAP gate
is:
+
+\[ \text{CSWAP} = \begin{pmatrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 &
0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 & 0 & 0
& 0 \\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 0
& 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{pmatrix} \]
+
+The CSWAP gate is fundamental in quantum algorithms such as the swap test,
quantum error correction, and quantum state comparison. The CSWAP gate is
reversible and preserves the number of |1⟩ states in the system (conserves the
Hamming weight).
+
+## U Gate (Universal Single-Qubit Gate)
Review Comment:
[nitpick] For consistency with the T-Gate heading format on line 43 which
includes "(New Addition)", consider adding the same marker to the U Gate
heading. This would make it: `## U Gate (Universal Single-Qubit Gate) (New
Addition)`
This helps readers quickly identify newly added documentation.
```suggestion
## U Gate (Universal Single-Qubit Gate) (New Addition)
```
##########
docs/basic_gates.md:
##########
@@ -46,10 +46,55 @@ The T-Gate applies a **π/4 phase shift** to the qubit. It
is essential for quan
\[ T|0⟩ = |0⟩ \]
\[ T|1⟩ = e^{i\pi/4} |1⟩ \]
+## CSWAP Gate (Controlled-SWAP / Fredkin Gate)
Review Comment:
[nitpick] For consistency with the T-Gate heading format on line 43 which
includes "(New Addition)", consider adding the same marker to the CSWAP gate
heading. This would make it: `## CSWAP Gate (Controlled-SWAP / Fredkin Gate)
(New Addition)`
This helps readers quickly identify newly added documentation.
```suggestion
## CSWAP Gate (Controlled-SWAP / Fredkin Gate) (New Addition)
```
Issue Time Tracking
-------------------
Worklog Id: (was: 991847)
Time Spent: 50m (was: 40m)
> Count used and neglected elements in MaybePruneRowsMapper
> ---------------------------------------------------------
>
> Key: MAHOUT-607
> URL: https://issues.apache.org/jira/browse/MAHOUT-607
> Project: Mahout
> Issue Type: Improvement
> Affects Versions: 0.4
> Reporter: Sebastian Schelter
> Assignee: Sean R. Owen
> Priority: Minor
> Fix For: 0.5
>
> Attachments: MAHOUT-607.patch
>
> Time Spent: 50m
> Remaining Estimate: 0h
>
> MaybePruneRowsMapper is used to prune the overall number of
> preferences/ratings our distributed recommender looks at. The patch adds
> counters to the code so we can see the number of used and neglected
> preferences in the jobtracker.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)