Commit fbf9ee41 authored by baujc's avatar baujc

Fix issue in calculateDelayAsymmetry function

- When the number of bit used for the calculation was smaller than 16,
the result of the calculation was 0.
parent add5fffe
...@@ -93,12 +93,18 @@ static TimeInterval calculateDelayAsymmetry(RelativeDifference scaledDelayAsymCo ...@@ -93,12 +93,18 @@ static TimeInterval calculateDelayAsymmetry(RelativeDifference scaledDelayAsymCo
if ( lostBits<0 ) if ( lostBits<0 )
lostBits=0; lostBits=0;
fracBitsUsed=DELAY_ASYM_BASE_FRACTION-(lostBits>>1)-1; fracBitsUsed=DELAY_ASYM_BASE_FRACTION-(lostBits>>1)-1;
rescaledMeanDelay = scaledMeanDelay<<(fracBitsUsed-TIME_INTERVAL_FRACBITS); rescaledMeanDelay = (fracBitsUsed>=TIME_INTERVAL_FRACBITS) ?
rescaledAsymDelayCoeff=scaledDelayAsymCoeff>>(REL_DIFF_FRACBITS-fracBitsUsed); scaledMeanDelay<<(fracBitsUsed-TIME_INTERVAL_FRACBITS) :
scaledMeanDelay>>(TIME_INTERVAL_FRACBITS-fracBitsUsed);
rescaledAsymDelayCoeff= (fracBitsUsed>=REL_DIFF_FRACBITS) ?
scaledDelayAsymCoeff<<(fracBitsUsed-REL_DIFF_FRACBITS) :
scaledDelayAsymCoeff>>(REL_DIFF_FRACBITS-fracBitsUsed);
delayAsym= rescaledAsymDelayCoeff*rescaledMeanDelay; delayAsym= rescaledAsymDelayCoeff*rescaledMeanDelay;
delayAsym+=((TimeInterval)1<<(fracBitsUsed-1)); delayAsym+=((TimeInterval)1<<(fracBitsUsed-1));
delayAsym>>=fracBitsUsed; delayAsym>>=fracBitsUsed;
delayAsym>>=(fracBitsUsed-TIME_INTERVAL_FRACBITS); delayAsym= (fracBitsUsed>=TIME_INTERVAL_FRACBITS) ?
delayAsym>>(fracBitsUsed-TIME_INTERVAL_FRACBITS):
delayAsym<<(TIME_INTERVAL_FRACBITS-fracBitsUsed);
delayAsym+=constantAsymmetry; delayAsym+=constantAsymmetry;
return delayAsym; return delayAsym;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment