from typing import Tuple


def _get_effective_bandwidth(
    lo: int, hi: int, transpose: bool, symmetrise: bool
) -> Tuple[int, int]:
    """
    Given that a matrix has bandwidth (lo, hi) but may be treated
    transposed or symmetrised, return the dimension of the matrix effectively used.
    """
    if transpose:
        return hi, lo
    elif symmetrise:
        return max(lo, hi), max(lo, hi)
    else:
        return lo, hi