Skip to content

Reference: QFT Arithmetic Qubricks

Contents


QFTIncrement Class

psiqworkbench.qubricks.qbk_qft_arithmetic.QFTIncrement

QFTIncrement(**kwargs)

Bases: Qubrick

Qubrick for incrementing a qubit register using QFT.

Follows the construction in "Quantum arithmetic with the Quantum Fourier Transform" (arxiv:1411.5949 ⧉).

compute

compute(lhs: QUInt, rhs: QUInt | int = 1, ctrl: Qubits | None = None) -> None

Compute an adder using QFT.

Note

This Qubrick does arithmetic addition, NOT modular addition.

Parameters:

Name Type Description Default
lhs Qubits

Register to be incremented.

required
rhs (Qubits, int)

Amount to add to lhs. If a Qubits is passed, this defaults to calling QFTAdd.

1
ctrl (Qubits, Optional)

Qubits the addition is conditioned on. Defaults to None.

None

QFTAdd Class

psiqworkbench.qubricks.qbk_qft_arithmetic.QFTAdd

QFTAdd(**kwargs)

Bases: Qubrick

Quantum adder implemented using QFT.

Follows the construction in "Quantum arithmetic with the Quantum Fourier Transform" (arxiv:1411.5949 ⧉).

compute

compute(lhs: QUInt, rhs: QUInt | int, ctrl: Qubits | None = None) -> None

Compute an adder using QFT.

Note

This Qubrick does arithmetic addition, NOT modular addition.

Parameters:

Name Type Description Default
lhs QUInt

Register to be added to.

required
rhs (QUInt, int)

Amount to add to lhs. If an int is passed, this defaults to calling QFTIncrement.

required
ctrl (Qubits, Optional)

Qubits the addition is conditioned on. Defaults to None.

None

QFTSubtract Class

psiqworkbench.qubricks.qbk_qft_arithmetic.QFTSubtract

QFTSubtract(**kwargs)

Bases: Qubrick

Quantum subtractor implemented using QFT.

compute

compute(target_qubits: QUInt, subtraction_amount: QUInt | int, cond: int = 0)

Compute a subtractor using QFT using reversed phase adder.

Parameters:

Name Type Description Default
target_qubits QUInt

Register to be added to.

required
subtraction_amount (QUInt, int)

Amount to subtract from target_qubits. If an int is passed, this defaults to calling QFTIncrement.

required
cond (Qubits, int)

Qubits the subtraction is conditioned on.

0

QFTMultiply Class

psiqworkbench.qubricks.qbk_qft_arithmetic.QFTMultiply

QFTMultiply(**kwargs)

Bases: Qubrick

Quantum multiplier implemented using QFT.

Follows the construction in "Quantum arithmetic with the Quantum Fourier Transform" (arxiv:1411.5949 ⧉).

compute

compute(a: QUInt, b: QUInt, cond: Qubits | int = 0)

Compute multiplication using QFT.

Notes
  • Only works if a.num_qubits = b.num_qubits = n
  • Allocates a fresh output register consisting of \(2n\) qubits.

Parameters:

Name Type Description Default
a QUInt

First register to be multiplied.

required
b QUInt

Second register to be multiplied.

required
cond (Qubits, int)

Qubits the addition is conditioned on. Defaults to 0.

0