def _evolve(self, state, qargs=None):
<EOL>if qargs is not None:<EOL><INDENT>return SuperOp(self)._evolve(state, qargs)<EOL><DEDENT>state = self._format_state(state)<EOL>if state.shape[<NUM_LIT:0>] != self._input_dim:<EOL><INDENT>raise QiskitError(<EOL>"<STR_LIT>"<EOL>)<EOL><DEDENT>if state.ndim == <NUM_LIT:1> and self._data[<NUM_LIT:1>] is None andself._data[<NUM_LIT:0>].shape[<NUM_LIT:0>] // self._output_dim == <NUM_LIT:1>:<EOL><INDENT>return np.dot(self._data[<NUM_LIT:0>], state)<EOL><DEDENT>state = self._format_state(state, density_matrix=True)<EOL>stine_l, stine_r = self._data<EOL>if stine_r is None:<EOL><INDENT>stine_r = stine_l<EOL><DEDENT>din, dout = self.dim<EOL>dtr = stine_l.shape[<NUM_LIT:0>] // dout<EOL>shape = (dout, dtr, din)<EOL>return np.einsum('<STR_LIT>', np.reshape(stine_l, shape), state,<EOL>np.reshape(np.conjugate(stine_r), shape))<EOL>
Evolve a quantum state by the QuantumChannel.

        Args:
            state (QuantumState): The input statevector or density matrix.
            qargs (list): a list of QuantumState subsystem positions to apply
                           the operator on.

        Returns:
            QuantumState: the output quantum state.

        Raises:
            QiskitError: if the operator dimension does not match the
            specified QuantumState subsystem dimensions.