Computation Basis State Preparation
The prepare_int
and inplace_prepare_int
functions create a single state computational basis state, indexed by the given integer argument.
The prepare_int
will allocate a QArray
with the minimal required size for representing the given integer argument.
inplace_prepare_int
on the other hand will prepare the state on a given QArray
. It is more suitable were on wants to prepare a state with a given size.
Function: prepare_int
Arguments:
-
value: CInt
- The index of the state to prepare in the computational basis. -
target: Output[QArray[QBit]]
Function: inplace_prepare_int
Arguments:
-
value: CInt
- The index of the state to prepare in the computational basis. -
target: QArray[QBit]
- The quantum array to prepare the state at. Should be of size at least \(\lceil \log_2{value}\rceil\).
Example 1
Prepare the \(|3\rangle\) state (will result in a 2 qubits state space):
from classiq import *
@qfunc
def main(x: Output[QArray[QBit]]):
prepare_int(3, x)
qmod = create_model(main, out_file="prepare_int")
qprog = synthesize(qmod)
Example 2
Prepare the \(|3\rangle\) state, in a state space of 5 qubits:
@qfunc
def main(x: Output[QArray[QBit]]):
allocate(5, x)
inplace_prepare_int(3, x)
qmod = create_model(main, out_file="inplace_prepare_int")
qprog = synthesize(qmod)