Versions in this module Expand all Collapse all v0 v0.5.0 Feb 5, 2016 Changes in this version + func GenerateCircle(nodes int, radius time.Duration) [][]time.Duration + func GenerateGrid(nodes int, spacing time.Duration) [][]time.Duration + func GenerateLine(nodes int, spacing time.Duration) [][]time.Duration + func GenerateRandom(nodes int, mean time.Duration, deviation time.Duration) [][]time.Duration + func GenerateSplit(nodes int, lan time.Duration, wan time.Duration) [][]time.Duration + func Simulate(clients []*Client, truth [][]time.Duration, cycles int) + type Client struct + func GenerateClients(nodes int, config *Config) ([]*Client, error) + func NewClient(config *Config) (*Client, error) + func (c *Client) DistanceTo(other *Coordinate) time.Duration + func (c *Client) ForgetNode(node string) + func (c *Client) GetCoordinate() *Coordinate + func (c *Client) SetCoordinate(coord *Coordinate) + func (c *Client) Update(node string, other *Coordinate, rtt time.Duration) *Coordinate + type Config struct + AdjustmentWindowSize uint + Dimensionality uint + GravityRho float64 + HeightMin float64 + LatencyFilterSize uint + VivaldiCC float64 + VivaldiCE float64 + VivaldiErrorMax float64 + func DefaultConfig() *Config + type Coordinate struct + Adjustment float64 + Error float64 + Height float64 + Vec []float64 + func NewCoordinate(config *Config) *Coordinate + func (c *Coordinate) ApplyForce(config *Config, force float64, other *Coordinate) *Coordinate + func (c *Coordinate) Clone() *Coordinate + func (c *Coordinate) DistanceTo(other *Coordinate) time.Duration + func (c *Coordinate) IsCompatibleWith(other *Coordinate) bool + type DimensionalityConflictError struct + func (e DimensionalityConflictError) Error() string + type Stats struct + ErrorAvg float64 + ErrorMax float64 + func Evaluate(clients []*Client, truth [][]time.Duration) (stats Stats)