22 #include <ns3/spectrum-value.h>
32 SpectrumValue::SpectrumValue ()
37 : m_spectrumModel (sof),
38 m_values (sof->GetNumBands ())
53 return m_spectrumModel->GetUid ();
60 return m_spectrumModel;
64 Values::const_iterator
70 Values::const_iterator
92 return m_spectrumModel->Begin ();
98 return m_spectrumModel->End ();
105 Values::iterator it1 =
m_values.begin ();
106 Values::const_iterator it2 = x.
m_values.begin ();
108 NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
121 SpectrumValue::Add (
double s)
123 Values::iterator it1 =
m_values.begin ();
135 SpectrumValue::Subtract (
const SpectrumValue& x)
137 Values::iterator it1 =
m_values.begin ();
138 Values::const_iterator it2 = x.m_values.begin ();
140 NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
153 SpectrumValue::Subtract (
double s)
161 SpectrumValue::Multiply (
const SpectrumValue& x)
163 Values::iterator it1 =
m_values.begin ();
164 Values::const_iterator it2 = x.m_values.begin ();
166 NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
179 SpectrumValue::Multiply (
double s)
181 Values::iterator it1 =
m_values.begin ();
194 SpectrumValue::Divide (
const SpectrumValue& x)
196 Values::iterator it1 =
m_values.begin ();
197 Values::const_iterator it2 = x.m_values.begin ();
199 NS_ASSERT (m_spectrumModel == x.m_spectrumModel);
212 SpectrumValue::Divide (
double s)
215 Values::iterator it1 =
m_values.begin ();
228 SpectrumValue::ChangeSign ()
230 Values::iterator it1 =
m_values.begin ();
241 SpectrumValue::ShiftLeft (
int n)
244 while (i < (
int)
m_values.size () - n)
258 SpectrumValue::ShiftRight (
int n)
279 Values::iterator it1 =
m_values.begin ();
283 *it1 = std::pow (*it1, exp);
290 SpectrumValue::Exp (
double base)
293 Values::iterator it1 =
m_values.begin ();
297 *it1 = std::pow (base, *it1);
304 SpectrumValue::Log10 ()
307 Values::iterator it1 =
m_values.begin ();
311 *it1 = std::log10 (*it1);
317 SpectrumValue::Log2 ()
320 Values::iterator it1 =
m_values.begin ();
331 SpectrumValue::Log ()
334 Values::iterator it1 =
m_values.begin ();
338 *it1 = std::log (*it1);
350 s += (*it1) * (*it1);
353 return std::sqrt (s);
394 i += (*vit) * (bit->fh - bit->fl);
657 Values::iterator it1 =
m_values.begin ();
Values::const_iterator ConstValuesEnd() const
SpectrumValue & operator*=(const SpectrumValue &rhs)
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
SpectrumValue & operator/=(const SpectrumValue &rhs)
double Integral(const SpectrumValue &arg)
SpectrumValue operator>>(int n) const
SpectrumValue & operator+=(const SpectrumValue &rhs)
SpectrumModelUid_t GetSpectrumModelUid() const
#define NS_ASSERT(condition)
#define NS_LOG_COMPONENT_DEFINE(name)
Values::iterator ValuesEnd()
friend SpectrumValue Log(const SpectrumValue &arg)
friend SpectrumValue Log10(const SpectrumValue &arg)
SpectrumValue & operator-=(const SpectrumValue &rhs)
Bands::const_iterator ConstBandsEnd() const
SpectrumValue operator<<(int n) const
Ptr< const SpectrumModel > GetSpectrumModel() const
friend SpectrumValue Pow(const SpectrumValue &lhs, double rhs)
SpectrumValue Pow(double lhs, const SpectrumValue &rhs)
Bands::const_iterator ConstBandsBegin() const
std::ostream & operator<<(std::ostream &os, const Angles &a)
SpectrumValue Log10(const SpectrumValue &arg)
friend SpectrumValue Log2(const SpectrumValue &arg)
double & operator[](size_t index)
Values::iterator ValuesBegin()
SpectrumValue Log(const SpectrumValue &arg)
double Norm(const SpectrumValue &x)
SpectrumValue & operator=(double rhs)
double Sum(const SpectrumValue &x)
Ptr< SpectrumValue > Copy() const
Values::const_iterator ConstValuesBegin() const
SpectrumValue Log2(const SpectrumValue &arg)
Set of values corresponding to a given SpectrumModel.
double Prod(const SpectrumValue &x)