Qubricks Library¶
This page serves as a reference for all Qubricks implemented in Workbench Algorithms. Every Qubrick is listed alongside a short description of what it does, a link to its API reference, and links to any example notebooks that use it.
Total number of Qubricks: 100.
| Qubrick name | Description | Tutorial notebooks the Qubrick appears in |
|---|---|---|
| AbsoluteDisplacement | Qubrick for computing the reciprocal of the absolute value of the difference of two vectors. | |
| AliasSampling | Qubrick for implementing alias sampling. | |
| AmplitudeAmplification | Performs amplitude amplification to boost the amplitude of a desired outcome. | |
| AmplitudeAmplifiedQubrick | Performs amplitude amplification on the input Qubrick to provide an "amplified" Qubrick. | Amplitude Amplification |
| Antisymmetrizer | Qubrick to antisymmetrize a register of qubits. | |
| ArbitraryStatePrep | State preparation based on the routine in "Transformation of quantum states using uniformly controlled rotations" (arXiv:quant-ph/0407010 ⧉). | |
| BasisRotatedNumberOperator | Qubrick for basis-rotated number operator (BRNO). | |
| BinaryToUnaryUncomputation | Circuit which undoes a binary to unary conversion. | |
| BinaryTreeMultiplexor | Optimized multiplexing based on Fig. 7 in "Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity" (arXiv:1805.03662 ⧉). | |
| BinaryTreeSelect | Optimized select from Fig. 7 in "Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity" (arXiv:1805.03662 ⧉). | Data Loaders QROM |
| BitonicPermutation | A routine that permutes qubit registers. | |
| BitonicSort | Qubrick for performing a bitonic sort on a list of qubits. | |
| CoherentIterativeQPE | Performs iterative QPE as shown in Fig. 16 of "A Grand Unification of Quantum Algorithms" (arXiv:2105.02859 ⧉). | Quantum Phase Estimation |
| CompressionGadget | Compression gadget for block-encoding powers. | |
| ComputeHammingWeightBinaryRecursion | Quantum circuit to compute the Hamming weight of a register that uses roughly O(N/2) auxiliary qubits and O(N) Toffoli. | |
| ComputeHammingWeightGroupOfThrees | Quantum circuit to compute the Hamming weight of a quantum register that uses roughly N auxiliary qubits and O(N) Toffoli gates. | |
| ComputeHammingWeightNaive | Naive/Qubit-efficient circuit to compute the Hamming weight of a quantum register. | |
| ConditionallyCleanMultiplexor | Multiplexor utilizing conditionally clean construction as presented in "Rise of conditionally clean ancillae for efficient quantum circuit constructions" (arXiv:2407.17966 ⧉). | |
| ConditionallyCleanSelect | Select utilizing conditionally clean construction as presented in "Rise of conditionally clean ancillae for efficient quantum circuit constructions" (arXiv:2407.17966 ⧉). | |
| Contiguizer | Given an input register, produce a new register with 1s from the most significant bit down to 0. | Multiplexed USP |
| CosineWindow | Cosine window from "Effects of Cosine Tapering Window on Quantum Phase Estimation" (arXiv:2110.09590 ⧉). | Window Functions for QPE |
| DataLookupClean | Data lookup (QROM) circuit using the SELECT-SwapUp architecture. | Data Loaders QROM |
| DataLookupDirtyNaive | Naive data lookup (QROM) oracle using dirty auxiliary qubits. | Data Loaders QROM |
| DataLookupDirtyOptimized | Optimized data lookup (QROM) oracle using dirty auxiliary qubits. | Data Loaders QROM |
| DoublePhaseKickbackQPE | Implements the double-phase kickback quantum phase estimation routine. | Quantum Phase Estimation |
| DysonSeriesLCU | A Dyson Series LCU Qubrick with a unary version of the truncation register. | |
| DysonSeriesPrepareBinary | A modified version of the Dyson series expansion as in "Hamiltonian Simulation in the Interaction Picture" (arXiv:1805.00675 ⧉). | |
| DysonSeriesPrepareUnary | A modified version of the Dyson series expansion as in "Hamiltonian Simulation in the Interaction Picture" (arXiv:1805.00675 ⧉). | |
| DysonSeriesSelectBinary | A modified version of the Dyson series expansion as in "Hamiltonian Simulation in the Interaction Picture" (arXiv:1805.00675 ⧉). | |
| DysonSeriesSelectUnary | A modified version of the Dyson series expansion as in "Hamiltonian Simulation in the Interaction Picture" (arXiv:1805.00675 ⧉). | |
| EfficientMultiplexedRotations | Decomposition of uniformly controlled rotations to single-qubit rotation + CNOTs. | |
| FlagCollisionsBinary | A FlagCollisionsBinary Qubrick to reflect (time) collisions. | |
| FlagCollisionsUnary | A FlagCollisions Qubrick to reflect (time) collisions. | |
| FlattenedRotArray (experimental) | Implements a state sub-preparation using a single set of multiplexed rotations. | |
| GeneralMultiplexedRotationNaive | Routine for implementing multiplexed rotations, allowing for various tradeoffs. | |
| GeneralMultiplexedRotationViaQROM | Optimized implementation of multiplexed rotations using QROM for angle loading. | |
| GivensPPRs | Applies the Givens rotation using Pauli Product Rotations. | |
| GivensRZs | Implements a Givens rotation using RZ gates. |
|
| GivensRotationFusedAdder | Implements a Givens rotation using a fused quantum adder. | |
| GivensRotationTwoAdders | Implements a Givens rotation using two quantum adders. | |
| GoodReflectionBlockEncoding | Reflection about a block encoded good state (i.e., all block encoding auxiliary qubits in \(\ket{0}\)). | Amplitude Amplification |
| GoodReflectionGrover | Qubrick for reflecting about a good state in Grover. | Amplitude Amplification |
| GrayCodeMultiplexedSingleQubitRotation (experimental) | Decomposition of uniformly controlled rotations to single qubit rotation + CNOTs. | |
| GroverDiffuser | Qubrick for Grover diffuser (reflection about the mean). | Amplitude Amplification |
| HammingWeightPhasing | Implement a stack of rotations of the same angle using Hamming weight phasing. | |
| HouseholderMPSLoading (experimental) | Qubrick for loading the MPS on a quantum computer, based on HouseholderUnitarySynthesis. |
|
| HouseholderUnitarySynthesis (experimental) | Qubrick synthesizing an isometry using the Householder-based decomposition. | |
| InitReflectionBlockEncoding | Reflection about the initial state given a unitary that prepares that state. | Amplitude Amplification |
| InitReflectionFromUnitary | Reflection about the initial state given a unitary that prepares that state. | Amplitude Amplification |
| InjectOp | Inject operation, defined as SwapUp \(^\dagger\) Op SwapUp. | SwapUp Inject |
| IterativeQPE | Implements incoherent (measurement-based) QPE. | Quantum Phase Estimation, Iterative QPE |
| LCU | Implements a general block encoding using Linear Combination of Unitaries (LCU). | Amplitude Amplification, LCU Qubitization, Quantum Phase Estimation |
| LKSMultiplexor | Multiplexor using data-lookup oracles. | |
| LKSStatePrep | State preparation detailed in "Trading T gates for dirty qubits in state preparation and unitary synthesis" (arXiv:1812.00954 ⧉). | |
| MajoranaFermionOperator | The Majorana Fermion Operator shown in Fig. 9 of "Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity" (arXiv:1805.03662 ⧉). | |
| MultiplexedAliasSampling | Implements the multiplexed alias sampling subroutine for multiplexed arbitrary state preparation. | |
| MultiplexedRealUSP | Qubrick to perform multiplexed USP. | Multiplexed USP |
| MultiplexedSingleQubitRotationViaQROM (experimental) | Multiplexor using data-lookup oracles. | |
| MultiplexedSparseDataLookup | Multiplexed data lookup oracle in Fig. 43 of "Quantum computing enhanced computational catalysis" (arXiv:2007.14460 ⧉). | |
| MultiplexedUSP | Qubrick to perform multiplexed USP. | Multiplexed USP |
| NaiveMultiplexedRotations | Controlled rotations from "Transformation of quantum states using uniformly controlled rotations" (arXiv:quant-ph/0407010 ⧉). | |
| NaiveMultiplexedSingleQubitRotation (experimental) | Controlled rotations from "Transformation of quantum states using uniformly controlled rotations" (arXiv:quant-ph/0407010 ⧉). | |
| NaivePhaseGradient | Implement a phase gradient with a specified base angle. | |
| OneAncMultiplexor | \(\text{SELECT}\) operator using a single, clean auxiliary qubit. | |
| OptimizedDoublePhaseKickbackQPE | Implements an optimized version of the double-phase kickback quantum phase estimation routine. | |
| OrthogonalDotProduct | Qubrick for squaring an n-component vector, then adding the squared results. | |
| PauliToPauliBasisTransform (experimental) | Transforms quantum operations between different Pauli bases (X, Y, Z). | |
| PhaseGradientAdder | Optimized adder for use in phase gradient addition. | |
| PhasingCircuit | Implement the phasing circuit. | |
| PowerOfTwoBatchedHammingWeightPhasing | Implements Hamming weight phasing by splitting the target register into batches. | |
| PrepareClockState | Prepares a clock state. | |
| PrepareNaive | State preparation based on the routine in "Transformation of quantum states using uniformly controlled rotations" (arXiv:quant-ph/0407010 ⧉). | Amplitude Amplification, LCU Qubitization, Quantum Phase Estimation |
| PrepareWState | Prepares a W state. | |
| PrepareWStatePowerTwo | Prepares a W state for power of two target size. | |
| ProgrammableRotArray (experimental) | Implements a state sub-preparation using a cascade of uniformly controlled rotations. | |
| QPE | Implements the standard quantum phase estimation routine using controlled unitaries and QFT. | Window Functions for QPE, Trotterization, Quantum Phase Estimation, Iterative QPE |
| Qubitization | Canonical qubitization iterate. | Amplitude Amplification, LCU Qubitization, Data Loaders QROM, Quantum Phase Estimation |
| QubitizedWalkOperator | Qubitization iterate. | Quantum Phase Estimation |
| RealUSP | Qubrick for performing Uniform State Preparation. | Uniform State Preparation, Multiplexed USP |
| RectWindow | Rectangular/Dirichlet window. This is the default window function for the textbook QPE. | Window Functions for QPE |
| RotationViaPhaseGradientAddition (experimental) | Coherently-applies WB qc.phase rotations via phase gradient addition. | |
| RotationViaSingleQubitUnitaries (experimental) | Compute circuit for rotations via controlled single-qubit rotations. | |
| Rz | Implementation of a direct Rz rotation using the built-in rz method. | Window Functions for QPE, Quantum Phase Estimation, Iterative QPE |
| RzAdder | Implementation of Rz rotation using an adder-based approach. | |
| SawtoothMultiplexor | Unoptimized multiplexor from Fig. 5 in "Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity" (arXiv:1805.03662 ⧉). | |
| SawtoothSelect | Unoptimized select from Fig. 5 in "Encoding Electronic Spectra in Quantum Circuits with Linear T Complexity" (arXiv:1805.03662 ⧉). | LCU Qubitization, Data Loaders QROM |
| SelectNaive | Most naïve version of \(\text{SELECT}\) possible. | Amplitude Amplification, LCU Qubitization, Data Loaders QROM, Quantum Phase Estimation, Multiplexed USP |
| SelectOneAnc | \(\text{SELECT}\) operator using a single, clean auxiliary qubit. | Data Loaders QROM |
| SineWindow | Qubrick for window state with the sine function over the amplitudes. | |
| SineWindowPhaseCatalysis | Qubrick for window state with the sine function over the amplitudes. | |
| SineWindowQubitEfficient | Qubrick for window state with the sine function over the amplitudes using only two active qubits at a time. | |
| SwapUp | Canonical SwapUp circuit that acts on arbitrary input states. | Data Loaders QROM, SwapUp Inject |
| TrotterQuery | Qubrick for implementing a Suzuki-Trotter approximation of an exponentiated Hamiltonian. | Trotterization |
| USP | Qubrick for performing Uniform State Preparation. | Uniform State Preparation, Data Loaders QROM, Multiplexed USP |
| UnaryQROM | A unary-encoded data-loader. | |
| VectorAddition | Qubrick for adding (or subtracting) the components of two vectors of Qubits. | |
| WindowEmulator | Constructor for window emulator. | Window Functions for QPE |
| WindowStatePrep | General class for simulating window state via state prep. | Window Functions for QPE |
| ZeroAncMultiplexor | Most naïve version of multiplexing possible. | Multiplexed USP |
| ZeroAncillaUSP | Qubrick for performing Uniform State Preparation without auxiliary qubits. | Uniform State Preparation, Data Loaders QROM |