Skip to content

Computation Basis State Preparation

View on GitHub Experiment in the IDE

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)