- trace("for tr", result.target_tr)
- trace("lc", result.loss_count)
- trace("d", result.duration)
- log_avg_loss_per_second = lfit_func(
- trace, result.target_tr, mrr, spread)
- log_avg_loss_per_trial = (
- log_avg_loss_per_second + math.log(result.duration))
- # Poisson probability computation works nice for logarithms.
- log_trial_likelihood = (
- result.loss_count * log_avg_loss_per_trial
- - math.exp(log_avg_loss_per_trial))
- log_trial_likelihood -= math.lgamma(1 + result.loss_count)
+ trace(u"for tr", result.target_tr)
+ trace(u"lc", result.loss_count)
+ trace(u"d", result.duration)
+ # _rel_ values use units of target_tr (transactions per second).
+ log_avg_rel_loss_per_second = lfit_func(
+ trace, result.target_tr, mrr, spread
+ )
+ # _abs_ values use units of loss count (maybe packets).
+ # There can be multiple packets per transaction.
+ log_avg_abs_loss_per_trial = log_avg_rel_loss_per_second + math.log(
+ result.transmit_count / result.target_tr
+ )
+ # Geometric probability computation for logarithms.
+ log_trial_likelihood = log_plus(0.0, -log_avg_abs_loss_per_trial)
+ log_trial_likelihood *= -result.loss_count
+ log_trial_likelihood -= log_plus(0.0, +log_avg_abs_loss_per_trial)