def METHOD_NAME(cls, rdPointsList, arrayDistInLogScale):
    N = len(rdPointsList)
    log_rate = []
    log_dist = []
    H = []
    delta = []
    d = []
    c = []
    b = []
    cls.computeParamsForSegments(rdPointsList, log_rate, log_dist, H, delta, d, c, b, False)
    arrayRate = []
    for distInLogScale in arrayDistInLogScale:
        distBegin = log_dist[0]
        yk = log_rate[0]
        segmentOfInterest = 0
        for i in range(N-1):
            if log_dist[i] <= distInLogScale and log_dist[i+1] >= distInLogScale:
                distBegin = log_dist[i]
                yk = log_rate[i]
                segmentOfInterest = i
                break
        rate = cls.computeRate(distInLogScale, distBegin, yk, d[segmentOfInterest], c[segmentOfInterest], b[segmentOfInterest])
        rate = min(rate, log_rate[segmentOfInterest + 1])
        rate = max(rate, log_rate[segmentOfInterest]) # make sure interpolated rate is within bounds
        arrayRate.append(rate)
    return arrayRate