<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def golden_array(a, phi=1.61803398875, lb=LB, ub=UB):
 """ Given list of ints, we aggregate similar values so that it becomes an array of multiples of phi, where phi is the golden ratio. phi ^ 14 = 843 phi ^ 33 = 7881196 So the array of counts go between 843 to 788196. One triva is that the exponents of phi gets closer to integers as N grows. See interesting discussion here: <https://www.johndcook.com/blog/2017/03/22/golden-powers-are-nearly-integers/> """

    counts = np.zeros(BB, dtype=int)
    for x in a:
        c = int(round(math.log(x, phi)))
        if c < lb:
            c = lb
        if c > ub:
            c = ub
        counts[c - lb] += 1
    return counts