def _level3partition(A, j, k):
    """Return views into A used by the blocked algorithms"""
    # Top left corner of diagonal block is [j,j]
    # Block size is NB = (k-j)
    R = A[j:k, :j]     # Row block                     /      \
    D = A[j:k, j:k]    # triangular block on Diagonal  |      |
    B = A[k:, :j]      # Big corner block              | R D  |
    C = A[k:, j:k]     # Column block                  \ B C  /
    return R, D, B, C