def __init__(
        self,
        *,
        dtype: type[np.complexfloating] = np.complex64,
        noise: cirq.NOISE_MODEL_LIKE = None,
        seed: cirq.RANDOM_STATE_OR_SEED_LIKE = None,
        split_untangled_states: bool = True,
    ):
        """A sparse matrix simulator.

        Args:
            dtype: The `numpy.dtype` used by the simulation. One of
                `numpy.complex64` or `numpy.complex128`.
            noise: A noise model to apply while simulating.
            seed: The random seed to use for this simulator.
            split_untangled_states: If True, optimizes simulation by running
                unentangled qubit sets independently and merging those states
                at the end.

        Raises:
            ValueError: If the given dtype is not complex.
        """
        if np.dtype(dtype).kind != 'c':
            raise ValueError(f'dtype must be a complex type but was {dtype}')
        super().__init__(
            dtype=dtype, noise=noise, seed=seed, split_untangled_states=split_untangled_states
        )
A sparse matrix simulator.

        Args:
            dtype: The `numpy.dtype` used by the simulation. One of
                `numpy.complex64` or `numpy.complex128`.
            noise: A noise model to apply while simulating.
            seed: The random seed to use for this simulator.
            split_untangled_states: If True, optimizes simulation by running
                unentangled qubit sets independently and merging those states
                at the end.

        Raises:
            ValueError: If the given dtype is not complex.
        
cirq-core/cirq/sim/sparse_simulator.py