21 #include <ns3/spectrum-converter.h> 
   22 #include <ns3/assert.h> 
   32 SpectrumConverter::SpectrumConverter ()
 
   39   m_fromSpectrumModel = fromSpectrumModel;
 
   40   m_toSpectrumModel = toSpectrumModel;
 
   42   for (Bands::const_iterator toit = toSpectrumModel->Begin (); toit != toSpectrumModel->End (); ++toit)
 
   44       std::vector<double> coeffs;
 
   46       for (Bands::const_iterator fromit = fromSpectrumModel->Begin (); fromit != fromSpectrumModel->End (); ++fromit)
 
   49           NS_LOG_LOGIC (
"(" << fromit->fl << 
","  << fromit->fh << 
")" 
   51                         "(" << toit->fl << 
"," << toit->fh << 
")" 
   56       m_conversionMatrix.push_back (coeffs);
 
   65   double coeff = std::min (from.
fh, to.
fh) - std::max (from.
fl, to.
fl);
 
   66   coeff = std::max (0.0, coeff);
 
   67   coeff = std::min (1.0, coeff / (to.
fh - to.
fl));
 
   76   NS_ASSERT ( *(fvvf->GetSpectrumModel ()) == *m_fromSpectrumModel);
 
   80   Values::iterator tvit = tvvf->ValuesBegin ();
 
   83   for (std::vector<std::vector<double> >::const_iterator toit = m_conversionMatrix.begin ();
 
   84        toit != m_conversionMatrix.end ();
 
   88       Values::const_iterator fvit = fvvf->ConstValuesBegin ();
 
   91       for (std::vector<double>::const_iterator fromit = toit->begin ();
 
   92            fromit != toit->end ();
 
   95           NS_ASSERT (fvit != fvvf->ConstValuesEnd ());
 
   96           sum += (*fvit) * (*fromit);
 
double GetCoefficient(const BandInfo &from, const BandInfo &to) const 
smart pointer class similar to boost::intrusive_ptr 
#define NS_LOG_FUNCTION(parameters)
#define NS_ASSERT(condition)
#define NS_LOG_COMPONENT_DEFINE(name)
#define NS_LOG_LOGIC(msg)
double fl
lower limit of subband 
Ptr< SpectrumValue > Convert(Ptr< const SpectrumValue > vvf) const 
double fh
upper limit of subband