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.

00054 {
00055     // calculate loss factor
00056     loss = lossC + (1 - lossC) * loss;
00057     if(fabs(dist - SIMTIME_DBL(rtt)) > lossResetLimit) loss = 0.0;
00058 
00059     return coordC * weight * (1 - loss);
00060 }

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

Reimplemented from Vivaldi.

Definition at line 43 of file SVivaldi.cc.

00044 {
00045     // get avg absolute prediction error
00046     double sum = neighborCache->getAvgAbsPredictionError();
00047 
00048     // update weighted moving average of local error
00049     return (sum * errorC) + ownCoords->getError() * (1 - errorC);
00050 }

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

Reimplemented from Vivaldi.

Definition at line 31 of file SVivaldi.cc.

00032 {
00033     Vivaldi::init(neighborCache);
00034 
00035     lossC = neighborCache->par("vivaldiLossConst");
00036     lossResetLimit =  neighborCache->par("lossResetLimit");
00037 
00038     loss = 0;
00039     WATCH(loss);
00040 }


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:
Generated on Wed May 26 16:21:19 2010 for OverSim by  doxygen 1.6.3