Verifies the state_rep is valid and converts it to ndarray form.

This method is used to support passing in an integer representing a computational basis state or a full state vector as a representation of a pure state.

state_rep If an int, the state vector returned is the state vector corresponding to a computational basis state. If an numpy array this is the full state vector. Both of these are validated for the given number of qubits, and the state must be properly normalized and of the appropriate dtype.
num_qubits The number of qubits for the state vector. The state_rep must be valid for this number of qubits.
qid_shape The expected qid shape of the state vector. Specify this argument when using qudits.
dtype The numpy dtype of the state vector, will be used when creating the state for a computational basis state, or validated against if state_rep is a numpy array.
atol Numerical tolerance for verifying that the norm of the state vector is close to 1.

A numpy ndarray corresponding to the state vector on the given number of qubits.

ValueError if state_vector is not valid or num_qubits != len(qid_shape).