Method: Punycode.adapt

Defined in:
lib/punycode.rb

.adapt(delta, numpoints, firsttime) ⇒ Object

*** Bias adaptation function ***



109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/punycode.rb', line 109

def adapt(delta, numpoints, firsttime)
  delta = firsttime ? delta / DAMP : delta >> 1
  # delta >> 1 is a faster way of doing delta / 2
  delta += delta / numpoints

  k = 0
  while delta > ((BASE - TMIN) * TMAX) / 2
    delta /= BASE - TMIN
    k += BASE
  end

  k + (BASE - TMIN + 1) * delta / (delta + SKEW)
end