def METHOD_NAME(n, dln, mu, offset=0.0, bias=0.0):
    '''Compute the coefficient array for a fast Hankel transform.
    '''
    lnkr, q = offset, bias
    # Hankel transform coefficients
    # u_m = (kr)^{-i 2m pi/(n dlnr)} U_mu(q + i 2m pi/(n dlnr))
    # with U_mu(x) = 2^x Gamma((mu+1+x)/2)/Gamma((mu+1-x)/2)
    xp = (mu + 1 + q)/2
    xm = (mu + 1 - q)/2
    y = cupy.linspace(0, math.pi * (n // 2) / (n * dln), n // 2 + 1)
    u = cupy.empty(n // 2 + 1, dtype=complex)
    v = cupy.empty(n // 2 + 1, dtype=complex)
    u.imag[:] = y
    u.real[:] = xm
    loggamma(u, out=v)
    u.real[:] = xp
    loggamma(u, out=u)
    y *= 2 * (LN_2 - lnkr)
    u.real -= v.real
    u.real += LN_2 * q
    u.imag += v.imag
    u.imag += y
    cupy.exp(u, out=u)
    # fix last coefficient to be real
    u.imag[-1] = 0
    # deal with special cases
    if not cupy.isfinite(u[0]):
        # write u_0 = 2^q Gamma(xp)/Gamma(xm) = 2^q poch(xm, xp-xm)
        # poch() handles special cases for negative integers correctly
        u[0] = 2**q * poch(xm, xp - xm)
        # the coefficient may be inf or 0, meaning the transform or the
        # inverse transform, respectively, is singular
    return u