LowestDispersionAlgorithm

@interface LowestDispersionAlgorithm : NSObject <IWCAlgo>

Algorithm that selects the candidate (request-response measurement result) with the lowest dispersion.

Dispersion is a formal measure of the error bounds of the Wall Clock estimate. This value is the sum of possible error due to:

  - measurement precision limitations (at both client and server)
  - round-trip time
  - maximum potential for oscillator frequency error at the client and at the server server

This grows as the candidate (that was used to most recently adjust the clock) ages.

Note: The Clock object must be the same one that is provided to the WallClockClient, otherwise this algorithm will not synchronise correctly.

The tick rate of the Clock can be any tick rate (it does not have to be one tick per nanosecond), but too low a tick rate will limit clock synchronisation precision.

  • Candidate with lowest dispersion

    Declaration

    Objective-C

    @property (readonly, nonatomic) Candidate *bestCandidate;

    Swift

    var bestCandidate: Candidate! { get }
  • Undocumented

    Declaration

    Objective-C

    @interface LowestDispersionAlgorithm : NSObject <IWCAlgo>
  • Initialise algorithm

    Declaration

    Objective-C

    - (id)initWithWallClock:(id)wall_clock;

    Swift

    init!(wallClock wall_clock: Any!)

    Parameters

    wall_clock
    • a clock whose tick offset can be adjusted.

    Return Value

    Algorithm instance