Public Member Functions | Protected Member Functions | Private Attributes

SVivaldi Class Reference

#include <SVivaldi.h>

Inheritance diagram for SVivaldi:
Vivaldi AbstractNcs

List of all members.

Public Member Functions

virtual void init (NeighborCache *neighborCache)

Protected Member Functions

virtual double calcError (const simtime_t &rtt, double dist, double weight)
virtual double calcDelta (const simtime_t &rtt, double dist, double weight)

Private Attributes

double lossC
double effectiveSample
double loss
double lossResetLimit

Detailed Description

Definition at line 34 of file SVivaldi.h.


Member Function Documentation

double SVivaldi::calcDelta ( const simtime_t &  rtt,
double  dist,
double  weight 
) [protected, virtual]

Reimplemented from Vivaldi.

Definition at line 53 of file SVivaldi.cc.

{
    // calculate loss factor
    loss = lossC + (1 - lossC) * loss;
    if(fabs(dist - SIMTIME_DBL(rtt)) > lossResetLimit) loss = 0.0;

    return coordC * weight * (1 - loss);
}

double SVivaldi::calcError ( const simtime_t &  rtt,
double  dist,
double  weight 
) [protected, virtual]

Reimplemented from Vivaldi.

Definition at line 43 of file SVivaldi.cc.

{
    // get avg absolute prediction error
    double sum = neighborCache->getAvgAbsPredictionError();

    // update weighted moving average of local error
    return (sum * errorC) + ownCoords->getError() * (1 - errorC);
}

void SVivaldi::init ( NeighborCache neighborCache  )  [virtual]

Reimplemented from Vivaldi.

Definition at line 31 of file SVivaldi.cc.

{
    Vivaldi::init(neighborCache);

    lossC = neighborCache->par("svivaldiLossConst");
    lossResetLimit =  neighborCache->par("svivaldiLossResetLimit");

    loss = 0;
    WATCH(loss);
}


Member Data Documentation

double SVivaldi::effectiveSample [private]

Definition at line 38 of file SVivaldi.h.

double SVivaldi::loss [private]

Definition at line 39 of file SVivaldi.h.

Referenced by calcDelta(), and init().

double SVivaldi::lossC [private]

Definition at line 37 of file SVivaldi.h.

Referenced by calcDelta(), and init().

double SVivaldi::lossResetLimit [private]

Definition at line 40 of file SVivaldi.h.

Referenced by calcDelta(), and init().


The documentation for this class was generated from the following files: