[Qmod Classiq-library function]Initializes a quantum variable in a uniform superposition of the first m computational basis states:∣q⟩=m1i=0∑m−1∣i⟩The number of allocated qubits would be ⌈log2{m}⌉.
The function is especially useful when m is not a power of 2.Parameters:
Name
Type
Description
Default
m
CInt
The number of states to load in the superposition.
required
q
QArray[QBit]
The quantum variable that will receive the initialized state. Must be uninitialized.
[Qmod Classiq-library function]Initializes a quantum variable in a uniform superposition of the specified interval in the computational basis states:∣q⟩=end−start1i=start∑end−1∣i⟩The number of allocated qubits would be ⌈log2{({end})}⌉.Parameters:
Name
Type
Description
Default
start
CInt
The lower bound of the interval to load (inclusive).
required
end
CInt
The upper bound of the interval to load (exclusive).
required
q
QNum
The quantum variable that will receive the initialized state. Must be uninitialized.
[Qmod Classiq-library function]Initializes a quantum variable in a Greenberger-Horne-Zeilinger (GHZ) state. i.e., a balanced superposition of all ones and all zeros, on an arbitrary number of qubits..Parameters:
Name
Type
Description
Default
size
CInt
The number of qubits in the GHZ state. Must be a positive integer.
required
q
Output[QArray[QBit]]
The quantum variable that will receive the initialized state. Must be uninitialized.
[Qmod Classiq-library function]Prepares a quantum state with exponentially decreasing amplitudes. The state is prepared in the computational basis, with the amplitudes of the states decreasing exponentially with the index of the state:P(n)=Z1e−rate⋅nParameters:
[Qmod Classiq-library function]This function is deprecated. Use in-place-xor assignment statement in the form target-var^=quantum-expression or inplace_xor(quantum-expression,target-var**)** instead.Transitions a quantum variable in the zero state ∣0⟩ into the computational basis state ∣{value}⟩.
In the general case, the function performs a bitwise-XOR, i.e. transitions the state ∣ψ⟩ into ∣ψ⊕{value}⟩.Parameters:
[Qmod Classiq-library function]This function is deprecated. Use assignment statement in the form target-var|=quantum-expression or assign(quantum-expression,target-var**)** instead.Initializes a quantum variable to the computational basis state ∣{value}⟩.
The number of allocated qubits is automatically computed from the value, and is the minimal number required for representation in the computational basis.Parameters:
Name
Type
Description
Default
value
CInt
The value to assign to the quantum variable.
required
out
Output[QNum[Literal['floor(log(value, 2)) + 1']]]
The allocated quantum variable. Must be uninitialized.
[Qmod Classiq-library function]Initializes and prepares a quantum state with amplitudes and phases for each state according to the given parameters, in polar representation.Parameters:
Name
Type
Description
Default
magnitudes
CArray[CReal]
Absolute values of the state amplitudes.
required
phases
list[float]
phases of the state amplitudes. should be of the same size as amplitudes.
[Qmod Classiq-library function]Prepares a quantum state with amplitudes and phases for each state according to the given parameters, in polar representation.
Expects to act on an initialized zero state ∣0⟩.Parameters:
Name
Type
Description
Default
magnitudes
CArray[CReal]
Absolute values of the state amplitudes.
required
phases
list[float]
phases of the state amplitudes. should be of the same size as amplitudes.
[Qmod Classiq-library function]Prepares a Dicke state with k excitations over the provided quantum register.A Dicke state of n qubits with k excitations is an equal superposition of all basis states
with exactly k qubits in the ∣1⟩ state and (n−k) qubits in the ∣0⟩ state.
For example, {Dicke}(2,1)=(∣01⟩+∣10⟩)/(2).In the general case it is defined to be:{Dicke}(n,k)=1{}{{(n{)}{k}}}∑{x∈0,1n,∣x∣=k}∣x⟩Parameters:
Name
Type
Description
Default
k
int
The number of excitations (i.e., number of qubits in state ∥1⟩).
required
qvar
QArray[QBit]
The quantum register (array of qubits) to initialize. Must be uninitialized and have length >= k.
[Qmod Classiq-library function]Prepares a Dicke state with a variable number of excitations based on a unary-encoded input.The Dicke state is defined to be:{Dicke}(n,k)=1{}{{(n{)}{k}}}∑{x∈0,1n,∣x∣=k}∣x⟩The input register qvar is expected to already be initialized in a unary encoding:
the value k is represented by a string of k ones followed by zeros, e.g., k = 3 -> |11100…0>.
The function generates a Dicke state with k excitations over a new quantum register,
where 0 <= k < max_k.Parameters:
Name
Type
Description
Default
max_k
int
The maximum number of allowed excitations (upper bound for k).
required
qvar
QArray[QBit]
Unary-encoded quantum input register of length >= max_k. Must be pre-initialized.
[Qmod Classiq-library function]Initializes a quantum variable in a state with linear amplitudes:angle = rac\{1\}\{Z\}\sum_\{x=0\}^\{2^n-1\}\{x|x
angle\}$$
Where $Z$ is a normalization constant.
Based on the paper https://quantum-journal.org/papers/q-2024-03-21-1297/pdf/
**Parameters:**
| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `x` | `QArray` | The quantum register to prepare. | *required* |
### prepare_sparse_amplitudes
<pre><code>prepare_sparse_amplitudes(
states: list[int],
amplitudes: list[complex],
out: Output[QArray]
) -> None</code></pre>
[Qmod Classiq-library function]
Initializes and prepares a quantum state with the given (complex) amplitudes. The input is given sparse format, as a list of non-zero states and their corresponding amplitudes.
Notice that the function is only suitable sparse states. Inspired by https://arxiv.org/abs/2310.19309.
For example, `prepare_sparse_amplitudes([1, 8], [np.sqrt(0.5), np.sqrt(0.5)], out)` will and allocate it to be of size 4 qubits, and
prepare it in the state sqrt(0.5)`|1>` + sqrt(0.5)`|8>`.
Complexity: Asymptotic gate complexity is $O(dn)$ where d is the number of states and n is the required number of qubits.
**Parameters:**
| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `states` | `list[int]` | A list of distinct computational basis indices to populate. Each integer corresponds to the basis state in the computational basis. | *required* |
| `amplitudes` | `list[complex]` | A list of complex amplitudes for the corresponding entries in `states`. Must have the same length as `states`. | *required* |
| `out` | `Output[QArray]` | The allocated quantum variable. | *required* |
### inplace_prepare_sparse_amplitudes
<pre><code>inplace_prepare_sparse_amplitudes(
states: list[int],
amplitudes: list[complex],
target: QArray
) -> None</code></pre>
[Qmod Classiq-library function]
Prepares a quantum state with the given (complex) amplitudes. The input is given sparse format, as a list of non-zero states and their corresponding amplitudes.
Notice that the function is only suitable sparse states. Inspired by https://arxiv.org/abs/2310.19309.
For example, `inplace_prepare_sparse_amplitudes([1, 8], [np.sqrt(0.5), np.sqrt(0.5)], target)` will prepare the state sqrt(0.5)`|1>` + sqrt(0.5)`|8>`
on the target variable, assuming it starts in the `|0>` state.
Complexity: Asymptotic gate complexity is $O(dn)$ where d is the number of states and n is the target number of qubits.
**Parameters:**
| Name | Type | Description | Default |
| ---- | ---- | ----------- | ------- |
| `states` | `list[int]` | A list of distinct computational basis indices to populate. Each integer corresponds to the basis state in the computational basis. | *required* |
| `amplitudes` | `list[complex]` | A list of complex amplitudes for the corresponding entries in `states`. Must have the same length as `states`. | *required* |
| `target` | `QArray` | The quantum variable on which the state is to be prepared. Its size must be sufficient to represent all states in `states`. | *required* |