384e4660 |
def from_classical(bitstring):
"""Return a quantum state corresponding to a classical bitstring.
Parameters
----------
bitstring : sequence of bits
Can be a string like "01011", or a sequence of
integers.
Returns
-------
state : ndarray[complex]
The state vector in the computational basis.
Has :math:`2^n` components.
"""
bitstring = "".join(map(str, bitstring))
n = len(bitstring)
try:
index = int(bitstring, base=2)
except ValueError:
raise ValueError("Input is not a classical bitstring") from None
state = np.zeros(2 ** n, dtype=complex)
state[index] = 1
return state
|