src/wifi/model/nist-error-rate-model.cc
changeset 9063 32755d0516f4
parent 7385 10beb0e53130
child 9070 0d6be2f9c438
--- a/src/wifi/model/nist-error-rate-model.cc	Fri Aug 31 12:24:28 2012 +0200
+++ b/src/wifi/model/nist-error-rate-model.cc	Sat Sep 01 20:57:21 2012 +0200
@@ -17,6 +17,8 @@
  *
  * Author: Gary Pei <guangyu.pei@boeing.com>
  */
+
+#include <cmath>
 #include "nist-error-rate-model.h"
 #include "wifi-phy.h"
 #include "ns3/log.h"
@@ -44,7 +46,7 @@
 double
 NistErrorRateModel::GetBpskBer (double snr) const
 {
-  double z = sqrt (snr);
+  double z = std::sqrt (snr);
   double ber = 0.5 * erfc (z);
   NS_LOG_INFO ("bpsk snr=" << snr << " ber=" << ber);
   return ber;
@@ -52,7 +54,7 @@
 double
 NistErrorRateModel::GetQpskBer (double snr) const
 {
-  double z = sqrt (snr / 2.0);
+  double z = std::sqrt (snr / 2.0);
   double ber = 0.5 * erfc (z);
   NS_LOG_INFO ("qpsk snr=" << snr << " ber=" << ber);
   return ber;
@@ -60,7 +62,7 @@
 double
 NistErrorRateModel::Get16QamBer (double snr) const
 {
-  double z = sqrt (snr / (5.0 * 2.0));
+  double z = std::sqrt (snr / (5.0 * 2.0));
   double ber = 0.75 * 0.5 * erfc (z);
   NS_LOG_INFO ("16-Qam" << " snr=" << snr << " ber=" << ber);
   return ber;
@@ -68,7 +70,7 @@
 double
 NistErrorRateModel::Get64QamBer (double snr) const
 {
-  double z = sqrt (snr / (21.0 * 2.0));
+  double z = std::sqrt (snr / (21.0 * 2.0));
   double ber = 7.0 / 12.0 * 0.5 * erfc (z);
   NS_LOG_INFO ("64-Qam" << " snr=" << snr << " ber=" << ber);
   return ber;
@@ -84,7 +86,7 @@
     }
   double pe = CalculatePe (ber, bValue);
   pe = std::min (pe, 1.0);
-  double pms = pow (1 - pe, nbits);
+  double pms = std::pow (1 - pe, nbits);
   return pms;
 }
 double
@@ -98,58 +100,58 @@
     }
   double pe = CalculatePe (ber, bValue);
   pe = std::min (pe, 1.0);
-  double pms = pow (1 - pe, nbits);
+  double pms = std::pow (1 - pe, nbits);
   return pms;
 }
 double
 NistErrorRateModel::CalculatePe (double p, uint32_t bValue) const
 {
-  double D = sqrt (4.0 * p * (1.0 - p));
+  double D = std::sqrt (4.0 * p * (1.0 - p));
   double pe = 1.0;
   if (bValue == 1)
     {
       // code rate 1/2, use table 3.1.1
-      pe = 0.5 * ( 36.0 * pow (D, 10.0)
-                   + 211.0 * pow (D, 12.0)
-                   + 1404.0 * pow (D, 14.0)
-                   + 11633.0 * pow (D, 16.0)
-                   + 77433.0 * pow (D, 18.0)
-                   + 502690.0 * pow (D, 20.0)
-                   + 3322763.0 * pow (D, 22.0)
-                   + 21292910.0 * pow (D, 24.0)
-                   + 134365911.0 * pow (D, 26.0)
+      pe = 0.5 * ( 36.0 * std::pow (D, 10.0)
+                   + 211.0 * std::pow (D, 12.0)
+                   + 1404.0 * std::pow (D, 14.0)
+                   + 11633.0 * std::pow (D, 16.0)
+                   + 77433.0 * std::pow (D, 18.0)
+                   + 502690.0 * std::pow (D, 20.0)
+                   + 3322763.0 * std::pow (D, 22.0)
+                   + 21292910.0 * std::pow (D, 24.0)
+                   + 134365911.0 * std::pow (D, 26.0)
                    );
     }
   else if (bValue == 2)
     {
       // code rate 2/3, use table 3.1.2
       pe = 1.0 / (2.0 * bValue) *
-        ( 3.0 * pow (D, 6.0)
-          + 70.0 * pow (D, 7.0)
-          + 285.0 * pow (D, 8.0)
-          + 1276.0 * pow (D, 9.0)
-          + 6160.0 * pow (D, 10.0)
-          + 27128.0 * pow (D, 11.0)
-          + 117019.0 * pow (D, 12.0)
-          + 498860.0 * pow (D, 13.0)
-          + 2103891.0 * pow (D, 14.0)
-          + 8784123.0 * pow (D, 15.0)
+        ( 3.0 * std::pow (D, 6.0)
+          + 70.0 * std::pow (D, 7.0)
+          + 285.0 * std::pow (D, 8.0)
+          + 1276.0 * std::pow (D, 9.0)
+          + 6160.0 * std::pow (D, 10.0)
+          + 27128.0 * std::pow (D, 11.0)
+          + 117019.0 * std::pow (D, 12.0)
+          + 498860.0 * std::pow (D, 13.0)
+          + 2103891.0 * std::pow (D, 14.0)
+          + 8784123.0 * std::pow (D, 15.0)
         );
     }
   else if (bValue == 3)
     {
       // code rate 3/4, use table 3.1.2
       pe = 1.0 / (2.0 * bValue) *
-        ( 42.0 * pow (D, 5.0)
-          + 201.0 * pow (D, 6.0)
-          + 1492.0 * pow (D, 7.0)
-          + 10469.0 * pow (D, 8.0)
-          + 62935.0 * pow (D, 9.0)
-          + 379644.0 * pow (D, 10.0)
-          + 2253373.0 * pow (D, 11.0)
-          + 13073811.0 * pow (D, 12.0)
-          + 75152755.0 * pow (D, 13.0)
-          + 428005675.0 * pow (D, 14.0)
+        ( 42.0 * std::pow (D, 5.0)
+          + 201.0 * std::pow (D, 6.0)
+          + 1492.0 * std::pow (D, 7.0)
+          + 10469.0 * std::pow (D, 8.0)
+          + 62935.0 * std::pow (D, 9.0)
+          + 379644.0 * std::pow (D, 10.0)
+          + 2253373.0 * std::pow (D, 11.0)
+          + 13073811.0 * std::pow (D, 12.0)
+          + 75152755.0 * std::pow (D, 13.0)
+          + 428005675.0 * std::pow (D, 14.0)
         );
     }
   else
@@ -170,7 +172,7 @@
     }
   double pe = CalculatePe (ber, bValue);
   pe = std::min (pe, 1.0);
-  double pms = pow (1 - pe, nbits);
+  double pms = std::pow (1 - pe, nbits);
   return pms;
 }
 double
@@ -184,7 +186,7 @@
     }
   double pe = CalculatePe (ber, bValue);
   pe = std::min (pe, 1.0);
-  double pms = pow (1 - pe, nbits);
+  double pms = std::pow (1 - pe, nbits);
   return pms;
 }
 double