From 7b0697e2b089a3f386d40b6eb2009b4f20555447 Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Fri, 7 Sep 2012 12:45:26 -0700 Subject: [PATCH] fix error: call of overloaded pow() is ambiguous --- src/lte/model/lte-mi-error-model.cc | 4 ++-- src/network/utils/error-model.cc | 4 ++-- src/wifi/model/dsss-error-rate-model.cc | 8 ++++---- src/wifi/model/nist-error-rate-model.cc | 4 ++-- src/wifi/model/yans-error-rate-model.cc | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/lte/model/lte-mi-error-model.cc b/src/lte/model/lte-mi-error-model.cc index 8d81fb98d..6f51aa60f 100644 --- a/src/lte/model/lte-mi-error-model.cc +++ b/src/lte/model/lte-mi-error-model.cc @@ -477,9 +477,9 @@ LteMiErrorModel::GetTbError (const SpectrumValue& sinr, const std::vector& if (C!=1) { double cbler = MappingMiBler (MI, mcs, Kplus); - errorRate *= std::pow (1.0 - cbler, Cplus); + errorRate *= std::pow (1.0 - cbler, static_cast (Cplus)); cbler = MappingMiBler (MI, mcs, Kminus); - errorRate *= std::pow (1.0 - cbler, Cminus); + errorRate *= std::pow (1.0 - cbler, static_cast (Cminus)); errorRate = 1.0 - errorRate; } else diff --git a/src/network/utils/error-model.cc b/src/network/utils/error-model.cc index 42d749e49..3fdbc3464 100644 --- a/src/network/utils/error-model.cc +++ b/src/network/utils/error-model.cc @@ -250,7 +250,7 @@ RateErrorModel::DoCorruptByte (Ptr p) { NS_LOG_FUNCTION_NOARGS (); // compute pkt error rate, assume uniformly distributed byte error - double per = 1 - std::pow (1.0 - m_rate, p->GetSize ()); + double per = 1 - std::pow (1.0 - m_rate, static_cast (p->GetSize ())); return (m_ranvar->GetValue () < per); } @@ -259,7 +259,7 @@ RateErrorModel::DoCorruptBit (Ptr p) { NS_LOG_FUNCTION_NOARGS (); // compute pkt error rate, assume uniformly distributed bit error - double per = 1 - std::pow (1.0 - m_rate, (8 * p->GetSize ()) ); + double per = 1 - std::pow (1.0 - m_rate, static_cast (8 * p->GetSize ()) ); return (m_ranvar->GetValue () < per); } diff --git a/src/wifi/model/dsss-error-rate-model.cc b/src/wifi/model/dsss-error-rate-model.cc index 29f9f1385..7f795b52c 100644 --- a/src/wifi/model/dsss-error-rate-model.cc +++ b/src/wifi/model/dsss-error-rate-model.cc @@ -43,7 +43,7 @@ DsssErrorRateModel::GetDsssDbpskSuccessRate (double sinr, uint32_t nbits) { double EbN0 = sinr * 22000000.0 / 1000000.0; // 1 bit per symbol with 1 MSPS double ber = 0.5 * std::exp (-EbN0); - return std::pow ((1.0 - ber), nbits); + return std::pow ((1.0 - ber), static_cast (nbits)); } double @@ -51,7 +51,7 @@ DsssErrorRateModel::GetDsssDqpskSuccessRate (double sinr,uint32_t nbits) { double EbN0 = sinr * 22000000.0 / 1000000.0 / 2.0; // 2 bits per symbol, 1 MSPS double ber = DqpskFunction (EbN0); - return std::pow ((1.0 - ber), nbits); + return std::pow ((1.0 - ber), static_cast (nbits)); } double @@ -83,7 +83,7 @@ DsssErrorRateModel::GetDsssDqpskCck5_5SuccessRate (double sinr,uint32_t nbits) double a4 = 1.0288981434358866e+000; ber = a1 * std::exp (-std::pow ((sinr - a2) / a3, a4)); } - return std::pow ((1.0 - ber), nbits); + return std::pow ((1.0 - ber), static_cast (nbits)); #endif } @@ -118,7 +118,7 @@ DsssErrorRateModel::GetDsssDqpskCck11SuccessRate (double sinr,uint32_t nbits) double a6 = 2.2032715128698435e+000; ber = (a1 * sinr * sinr + a2 * sinr + a3) / (sinr * sinr * sinr + a4 * sinr * sinr + a5 * sinr + a6); } - return std::pow ((1.0 - ber), nbits); + return std::pow ((1.0 - ber), static_cast (nbits)); #endif } diff --git a/src/wifi/model/nist-error-rate-model.cc b/src/wifi/model/nist-error-rate-model.cc index 1bc355dca..f305c0fbe 100644 --- a/src/wifi/model/nist-error-rate-model.cc +++ b/src/wifi/model/nist-error-rate-model.cc @@ -172,7 +172,7 @@ NistErrorRateModel::GetFec16QamBer (double snr, uint32_t nbits, } double pe = CalculatePe (ber, bValue); pe = std::min (pe, 1.0); - double pms = std::pow (1 - pe, nbits); + double pms = std::pow (1 - pe, static_cast (nbits)); return pms; } double @@ -186,7 +186,7 @@ NistErrorRateModel::GetFec64QamBer (double snr, uint32_t nbits, } double pe = CalculatePe (ber, bValue); pe = std::min (pe, 1.0); - double pms = std::pow (1 - pe, nbits); + double pms = std::pow (1 - pe, static_cast (nbits)); return pms; } double diff --git a/src/wifi/model/yans-error-rate-model.cc b/src/wifi/model/yans-error-rate-model.cc index 0b5967577..bb168fbd7 100644 --- a/src/wifi/model/yans-error-rate-model.cc +++ b/src/wifi/model/yans-error-rate-model.cc @@ -83,7 +83,7 @@ YansErrorRateModel::Factorial (uint32_t k) const double YansErrorRateModel::Binomial (uint32_t k, double p, uint32_t n) const { - double retval = Factorial (n) / (Factorial (k) * Factorial (n - k)) * std::pow (p, k) * std::pow (1 - p, n - k); + double retval = Factorial (n) / (Factorial (k) * Factorial (n - k)) * std::pow (p, static_cast (k)) * std::pow (1 - p, static_cast (n - k)); return retval; } double @@ -168,7 +168,7 @@ YansErrorRateModel::GetFecQamBer (double snr, uint32_t nbits, pd = CalculatePd (ber, dFree + 1); pmu += adFreePlusOne * pd; pmu = std::min (pmu, 1.0); - double pms = std::pow (1 - pmu, nbits); + double pms = std::pow (1 - pmu, static_cast (nbits)); return pms; }