--- a/src/devices/wifi/error-rate-model.cc Thu Jun 12 12:31:02 2008 -0700
+++ b/src/devices/wifi/error-rate-model.cc Sat Jun 14 10:52:10 2008 -0700
@@ -25,6 +25,8 @@
namespace ns3 {
+NS_OBJECT_ENSURE_REGISTERED (ErrorRateModel);
+
TypeId
ErrorRateModel::GetTypeId (void)
{
@@ -38,6 +40,30 @@
ErrorRateModel::ErrorRateModel ()
{}
+double
+ErrorRateModel::CalculateSnr (WifiMode txMode, double ber) const
+{
+ // This is a very simple binary search.
+ double low, high, precision;
+ low = 1e-25;
+ high = 1e25;
+ precision = 1e-12;
+ while (high - low > precision)
+ {
+ NS_ASSERT (high >= low);
+ double middle = low + (high - low) / 2;
+ if ((1 - GetChunkSuccessRate (txMode, middle, 1)) > ber)
+ {
+ low = middle;
+ }
+ else
+ {
+ high = middle;
+ }
+ }
+ return low;
+}
+
double
ErrorRateModel::Log2 (double val) const