Quantum Input/Output

A common problem in quantum circuits deals with how to get classical data in and out of a quantum computer. Forge provides a method to create a circuit from an array of numerical data which loads that data into a quantum circuit.

qcware.qio.loader(data: numpy.ndarray, mode: str = 'optimized', at_beginning_of_circuit: bool = True)

Creates a circuit which loads an array of classical data into the state space of a quantum computer or simulator. This is useful in order to act on known data or to simulator quantum RAM.

Arguments:

Parameters
  • data (numpy.ndarray) – A 1-d array representing the classical data to be represented in the circuit

  • mode (str) – Whether to used the “optimized” loader (using approximately \(~sqrt(d)\) depth and \(~sqrt(d)\) qubits) or the “parallel” loader (using approximately \(log(d)\) depth and d qubits., defaults to optimized

  • at_beginning_of_circuit (bool) – Whether the loader is at the beginning of the circuit (in which it performs an initial X gate on the first qubit), defaults to True

Returns

A Quasar circuit suitable for execution on any quasar backend supporting the required gates which loads the classical vector into a quantum state.

Return type

quasar.Circuit