def __init__(
        self,
        *,
        prng: np.random.RandomState | None = None,
        qubits: Sequence[cirq.Qid] | None = None,
        initial_state: int | cirq.StabilizerStateChForm = 0,
        classical_data: cirq.ClassicalDataStore | None = None,
    ):
        """Initializes with the given state and the axes for the operation.

        Args:
            qubits: Determines the canonical ordering of the qubits. This
                is often used in specifying the initial state, i.e. the
                ordering of the computational basis states.
            prng: The pseudo random number generator to use for probabilistic
                effects.
            initial_state: The initial state for the simulation. This can be a
                full CH form passed by reference which will be modified inplace,
                or a big-endian int in the computational basis. If the state is
                an integer, qubits must be provided in order to determine
                array sizes.
            classical_data: The shared classical data container for this
                simulation.

        Raises:
            ValueError: If initial state is an integer but qubits are not
                provided.
        """
        if isinstance(initial_state, int):
            if qubits is None:
                raise ValueError('Must specify qubits if initial state is integer')
            initial_state = stabilizer_state_ch_form.StabilizerStateChForm(
                len(qubits), initial_state
            )
        super().__init__(
            state=initial_state, prng=prng, qubits=qubits, classical_data=classical_data
        )
Initializes with the given state and the axes for the operation.

        Args:
            qubits: Determines the canonical ordering of the qubits. This
                is often used in specifying the initial state, i.e. the
                ordering of the computational basis states.
            prng: The pseudo random number generator to use for probabilistic
                effects.
            initial_state: The initial state for the simulation. This can be a
                full CH form passed by reference which will be modified inplace,
                or a big-endian int in the computational basis. If the state is
                an integer, qubits must be provided in order to determine
                array sizes.
            classical_data: The shared classical data container for this
                simulation.

        Raises:
            ValueError: If initial state is an integer but qubits are not
                provided.
        
cirq-core/cirq/sim/clifford/stabilizer_ch_form_simulation_state.py