def compute_patch_sizes(g_w=8, k=3, s=2):
    """computes size of patches that make up a glimpse, given size of first patch, scaling parameter, and
    number of patches

    Parameters
    ----------
    g_w : int
        width of a single patch, in pixels. Default is 8. Patches are square, so height == width
    k : int
        number of "patches" (concentric squares) in a glimpse. Default is 3.
    s : int
        scaling term. Default is 2. The size of each consecutive concentric patch is
        g_w * (s ** k_n), where k_n is some integer (0, 1, ..., k-1).

    Returns
    -------
    patch_sizes : list
        of length k. For the default values of g_w, k, and s, patch_sizes is [8, 16, 32].
    """
    patch_sizes = []
    for patch_num in range(k):
        size = g_w * (s ** patch_num)
        size = (size, size)
        patch_sizes.append(size)
    return patch_sizes