Series product with another :class:`SLH` object

        Args:
            other (SLH): An upstream SLH circuit.

        Returns:
            SLH: The combined system.

def series_with_slh(self, other):
        """Series product with another :class:`SLH` object

        Args:
            other (SLH): An upstream SLH circuit.

        Returns:
            SLH: The combined system.
        """
        new_S = self.S * other.S
        new_L = self.S * other.L + self.L

        def ImAdjoint(m):
            return (m.H - m) * (I / 2)

        delta = ImAdjoint(self.L.adjoint() * self.S * other.L)

        if isinstance(delta, Matrix):
            new_H = self.H + other.H + delta[0, 0]
        else:
            assert delta == 0
            new_H = self.H + other.H

        return SLH(new_S, new_L, new_H)