Lines Matching +full:double +full:- +full:phase
2 * This program simulates a first-order, type-II phase-lock loop using
21 * Phase-lock loop definitions
24 #define MAXPHASE 512000 /* max phase error (us) */
26 #define TAU 2 /* time constant (shift 0 - 6) */
45 * Phase-lock loop variables
54 long time_phase = 0; /* phase offset (scaled us) */
62 double timey = 0; /* simulation time (us) */
88 timey += (double)(1000000) / HZ; in main()
90 timey -= 1000000; in main()
93 timex.tv_usec -= 1000000; in main()
98 timez = (long)timey - timex.tv_usec; in main()
100 timez -= 1000000; in main()
101 if (timez < -500000) in main()
106 (double)time_freq / (1 << SHIFT_KF), in main()
116 * For default SHIFT_UPDATE = 12, offset is limited to +-512 ms, the
118 * offset is +-31.25 ms/s.
128 mtemp = timex.tv_sec - time_reftime; in hardupdate()
135 time_freq -= (-offset * mtemp) >> in hardupdate()
143 else if (time_freq < -ltemp) in hardupdate()
144 time_freq = -ltemp; in hardupdate()
159 if (time_phase < -FINEUSEC) { in hardclock()
160 ltemp = -time_phase >> SHIFT_SCALE; in hardclock()
162 time_update -= ltemp; in hardclock()
166 time_phase -= ltemp << SHIFT_SCALE; in hardclock()
175 * With SHIFT_SCALE = 23, the maximum frequency adjustment is +-256 us
188 ltemp = -time_offset >> in second_overflow()
191 time_adj = -(ltemp << in second_overflow()
192 (SHIFT_SCALE - SHIFT_HZ - SHIFT_UPDATE)); in second_overflow()
196 time_offset -= ltemp; in second_overflow()
198 (SHIFT_SCALE - SHIFT_HZ - SHIFT_UPDATE); in second_overflow()
201 time_adj -= -time_freq >> (SHIFT_KF + SHIFT_HZ - SHIFT_SCALE); in second_overflow()
203 time_adj += time_freq >> (SHIFT_KF + SHIFT_HZ - SHIFT_SCALE); in second_overflow()
204 time_adj += fixtick << (SHIFT_SCALE - SHIFT_HZ); in second_overflow()
211 timex.tv_sec--; /* !! */ in second_overflow()