code: func (c *Client) updateVivaldi(other *Coordinate, rttSeconds float64) {
  	const zeroThreshold = 1.0e-6
  
  	dist := c.coord.DistanceTo(other).Seconds()
  	if rttSeconds < zeroThreshold {
  		rttSeconds = zeroThreshold
  	}
  	wrongness := math.Abs(dist-rttSeconds) / rttSeconds
  
  	totalError := c.coord.Error + other.Error
  	if totalError < zeroThreshold {
  		totalError = zeroThreshold
  	}
  	weight := c.coord.Error / totalError
  
  	c.coord.Error = c.config.VivaldiCE*weight*wrongness + c.coord.Error*(1.0-c.config.VivaldiCE*weight)
  	if c.coord.Error > c.config.VivaldiErrorMax {
  		c.coord.Error = c.config.VivaldiErrorMax
  	}
  
  	delta := c.config.VivaldiCC * weight
  	force := delta * (rttSeconds - dist)
  	c.coord = c.coord.ApplyForce(c.config, force, other)
  }
docs: // updateVivialdi updates the Vivaldi portion of the client's coordinate. This
  // assumes that the mutex has been locked already.