MCPcopy Create free account
hub / github.com/cryptii/cryptii / _adaptBias

Method _adaptBias

src/Encoder/Bootstring.js:360–380  ·  view source on GitHub ↗

* Bias adaptation function following section 6.1 of RFC 3492. * After each delta is encoded or decoded, bias is set for the next delta. * @param {number} delta * @param {number} numPoints * @param {boolean} firstTime * @return {number}

(delta, numPoints, firstTime)

Source from the content-addressed store, hash-verified

358 * @return {number}
359 */
360 _adaptBias (delta, numPoints, firstTime) {
361 const { digitMapping, tmin, tmax, skew } = this.getSettingValues()
362 const base = digitMapping.getLength()
363
364 if (firstTime) {
365 const damp = this.getSettingValue('damp')
366 delta = MathUtil.div(delta, damp)
367 } else {
368 delta = MathUtil.div(delta, 2)
369 }
370
371 delta += MathUtil.div(delta, numPoints)
372
373 let k = 0
374 while (delta > MathUtil.div((base - tmin) * tmax, 2)) {
375 delta = MathUtil.div(delta, base - tmin)
376 k += base
377 }
378
379 return k + MathUtil.div((base - tmin + 1) * delta, delta + skew)
380 }
381
382 /**
383 * Chooses the next T value based on given parameters.

Callers 2

performEncodeMethod · 0.95
performDecodeMethod · 0.95

Calls 4

getSettingValuesMethod · 0.80
getSettingValueMethod · 0.80
divMethod · 0.80
getLengthMethod · 0.45

Tested by

no test coverage detected