def METHOD_NAME(real_part: Optional[Expression],
                   imag_part: Optional[Expression]):
    """
    We expand the matrix A to B = [[Re(A), -Im(A)], [Im(A), Re(A)]].
    The resulting matrix has special structure if A is Hermitian.
    Specifically, if x is an eigenvector of A, then [Re(x), Im(x)]
    and [Im(x), -Re(x)] are eigenvectors of B with same eigenvalue.
    Therefore, the eigenvalues of B are the same as those of A,
    repeated twice.
    """
    if real_part is None:
        real_part = Constant(np.zeros(imag_part.shape))
    elif imag_part is None:
        # This is a strange code path to hit.
        imag_part = Constant(np.zeros(real_part.shape))
    matrix = bmat([[real_part, -imag_part],
                   [imag_part, real_part]])
    if real_part.is_symmetric() and imag_part.is_skew_symmetric():
        matrix = symmetric_wrap(matrix)
    return matrix