def METHOD_NAME(low, range_len, narrow_range, init_w_as_middle_points):
    if init_w_as_middle_points:
        quant_len = range_len / (128 - (2 if narrow_range else 1))
        if low > EPS:
            # Range greater than zero
            mid_points = [(i + 1 / 2) * quant_len for i in range(127)]
        elif low + range_len < EPS:
            # Range lower than zero
            mid_points = [-(i + 1 / 2) * quant_len for i in range(127)]
        else:
            # Range with zero
            min_adj = Quantizer._min_adj(7, low, range_len, narrow_range).numpy()  # pylint: disable=protected-access
            mid_points = [min_adj + (i + 1 / 2) * quant_len for i in range(127)]
        new_w = mid_points * int(np.round(0.5 + DIM_SPLIT / 128))
        new_w = tf.reshape(tf.constant(new_w[:DIM_SPLIT], dtype=tf.float32), (1, -1))
    else:
        new_w = tf.reshape(
            tf.constant(np.linspace(low - 0.5, low + range_len + 0.5, DIM_SPLIT), dtype=tf.float32), (1, -1)
        )
    return new_w