int Adapt (int delta, int numPoints, bool firstTime)
{
if (firstTime)
delta = delta / damp;
else
delta = delta / 2;
delta = delta + (delta / numPoints);
int k = 0;
while (delta > ((base_num - tmin) * tmax) / 2) {
delta = delta / (base_num - tmin);
k += base_num;
}
return k + (((base_num - tmin + 1) * delta) / (delta + skew));
}