This will be needed to follow server time corrections in order to
better estimate frequency.
/* ================================================== */
+void
+SST_CorrectOffset(SST_Stats inst, double doffset)
+{
+ int i;
+
+ if (!inst->n_samples)
+ return;
+
+ for (i = -inst->runs_samples; i < inst->n_samples; i++)
+ inst->offsets[get_runsbuf_index(inst, i)] += doffset;
+
+ inst->estimated_offset += doffset;
+}
+
+/* ================================================== */
+
void
SST_AddDispersion(SST_Stats inst, double dispersion)
{
extern void SST_SlewSamples(SST_Stats inst, struct timespec *when, double dfreq, double doffset);
+/* This routine corrects already accumulated samples to improve the
+ frequency estimate when a new sample is accumulated */
+extern void SST_CorrectOffset(SST_Stats inst, double doffset);
+
/* This routine is called when an indeterminate offset is introduced
into the local time. */
extern void SST_AddDispersion(SST_Stats inst, double dispersion);