ns-3
ns3::SpectrumValue Class Reference

Set of values corresponding to a given SpectrumModel. More...

#include <spectrum-value.h>

Inheritance diagram for ns3::SpectrumValue:
Collaboration diagram for ns3::SpectrumValue:

List of all members.

Public Member Functions

 SpectrumValue (Ptr< const SpectrumModel > sm)
 SpectrumValue constructor.
double & operator[] (size_t index)
SpectrumModelUid_t GetSpectrumModelUid () const
Ptr< const SpectrumModelGetSpectrumModel () const
Bands::const_iterator ConstBandsBegin () const
Bands::const_iterator ConstBandsEnd () const
Values::const_iterator ConstValuesBegin () const
Values::const_iterator ConstValuesEnd () const
Values::iterator ValuesBegin ()
Values::iterator ValuesEnd ()
SpectrumValue operator<< (int n) const
SpectrumValue operator>> (int n) const
SpectrumValueoperator+= (const SpectrumValue &rhs)
SpectrumValueoperator-= (const SpectrumValue &rhs)
SpectrumValueoperator*= (const SpectrumValue &rhs)
SpectrumValueoperator/= (const SpectrumValue &rhs)
SpectrumValueoperator+= (double rhs)
SpectrumValueoperator-= (double rhs)
SpectrumValueoperator*= (double rhs)
SpectrumValueoperator/= (double rhs)
SpectrumValueoperator= (double rhs)
Ptr< SpectrumValueCopy () const
- Public Member Functions inherited from ns3::SimpleRefCount< SpectrumValue >
 SimpleRefCount (const SimpleRefCount &o)
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
uint32_t GetReferenceCount (void) const

Friends

SpectrumValue operator+ (const SpectrumValue &lhs, const SpectrumValue &rhs)
SpectrumValue operator+ (const SpectrumValue &lhs, double rhs)
SpectrumValue operator+ (double lhs, const SpectrumValue &rhs)
SpectrumValue operator- (const SpectrumValue &lhs, const SpectrumValue &rhs)
SpectrumValue operator- (const SpectrumValue &lhs, double rhs)
SpectrumValue operator- (double lhs, const SpectrumValue &rhs)
SpectrumValue operator* (const SpectrumValue &lhs, const SpectrumValue &rhs)
SpectrumValue operator* (const SpectrumValue &lhs, double rhs)
SpectrumValue operator* (double lhs, const SpectrumValue &rhs)
SpectrumValue operator/ (const SpectrumValue &lhs, const SpectrumValue &rhs)
SpectrumValue operator/ (const SpectrumValue &lhs, double rhs)
SpectrumValue operator/ (double lhs, const SpectrumValue &rhs)
SpectrumValue operator+ (const SpectrumValue &rhs)
SpectrumValue operator- (const SpectrumValue &rhs)
double Norm (const SpectrumValue &x)
double Sum (const SpectrumValue &x)
double Prod (const SpectrumValue &x)
SpectrumValue Pow (const SpectrumValue &lhs, double rhs)
SpectrumValue Pow (double lhs, const SpectrumValue &rhs)
SpectrumValue Log10 (const SpectrumValue &arg)
SpectrumValue Log2 (const SpectrumValue &arg)
SpectrumValue Log (const SpectrumValue &arg)
double Integral (const SpectrumValue &arg)

Additional Inherited Members

- Static Public Member Functions inherited from ns3::SimpleRefCount< SpectrumValue >
static void Cleanup (void)

Detailed Description

Set of values corresponding to a given SpectrumModel.

This class implements a Function Space which can represent any function $ g: F \in {\sf R\hspace*{-0.9ex}\rule{0.15ex}{1.5ex}\hspace*{0.9ex}}^N \rightarrow {\sf R\hspace*{-0.9ex}\rule{0.15ex}{1.5ex}\hspace*{0.9ex}} $

Every instance of this class represent a particular function $ g(F) $. The domain of the function space, i.e., $ F $, is implemented by SetOfFreq. The codomain of the function space is implemented by SetOfValues

To every possible value of $ F$ corresponds a different Function Space. Mathematical operations are defined in this Function Space; these operations are implemented by means of operator overloading.

The intended use of this class is to represent frequency-dependent things, such as power spectral densities, frequency-dependent propagation losses, spectral masks, etc.


Constructor & Destructor Documentation

ns3::SpectrumValue::SpectrumValue ( Ptr< const SpectrumModel sm)

SpectrumValue constructor.

Parameters:
smpointer to the SpectrumModel which implements the set of frequencies to which the values will be referring.
Warning:
the intended use if that sm points to a static object which will be there for the whole simulation. This is reasonable since the set of frequencies which are to be used in the simulation is normally known before the simulation starts. Make sure that the SpectrumModel instance which sm points to has already been initialized by the time this method is invoked. The main reason is that if you initialize the SpectrumModel instance afterwards, and the memory for the underlying std::vector gets reallocated, then sm will not be a valid reference anymore. Another reason is that m_values could end up having the wrong size.

Member Function Documentation

Bands::const_iterator ns3::SpectrumValue::ConstBandsBegin ( ) const
Bands::const_iterator ns3::SpectrumValue::ConstBandsEnd ( ) const
Values::const_iterator ns3::SpectrumValue::ConstValuesBegin ( ) const
Values::const_iterator ns3::SpectrumValue::ConstValuesEnd ( ) const
Ptr< SpectrumValue > ns3::SpectrumValue::Copy ( void  ) const
Returns:
a Ptr to a copy of this instance

Referenced by ns3::SpectrumSignalParameters::SpectrumSignalParameters(), and ns3::LteInterference::StartRx().

SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid ( ) const
Returns:
the uid of the embedded SpectrumModel

References ns3::SpectrumModel::GetUid().

SpectrumValue & ns3::SpectrumValue::operator*= ( const SpectrumValue rhs)

Multiply *this by the Right Hand Side of the operator, component by component

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator*= ( double  rhs)

Multiply every component of *this by the value of the Right Hand Side of the operator

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator+= ( const SpectrumValue rhs)

Add the Right Hand Side of the operator to *this, component by component

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator+= ( double  rhs)

Add the value of the Right Hand Side of the operator to all components of *this

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator-= ( const SpectrumValue rhs)

Subtract the Right Hand Side of the operator from *this, component by component

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator-= ( double  rhs)

Subtract the value of the Right Hand Side of the operator from all components of *this

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator/= ( const SpectrumValue rhs)

Divide *this by the Right Hand Side of the operator, component by component

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue & ns3::SpectrumValue::operator/= ( double  rhs)

Divide every component of *this by the value of the Right Hand Side of the operator

Parameters:
rhsthe Right Hand Side
Returns:
a reference to *this
SpectrumValue ns3::SpectrumValue::operator<< ( int  n) const

left shift operator

Parameters:
nposition to shift
Returns:
the value of *this left shifted by n positions. In other words, the function of the set of frequencies represented by *this is left-shifted in frequency by n positions.
SpectrumValue & ns3::SpectrumValue::operator= ( double  rhs)

Assign each component of *this to the value of the Right Hand Side of the operator

Parameters:
rhs
Returns:
SpectrumValue ns3::SpectrumValue::operator>> ( int  n) const

right shift operator

Parameters:
nposition to shift
Returns:
the value of *this right shifted by n positions. In other words, the function of the set of frequencies represented by *this is left-shifted in frequency by n positions.
double & ns3::SpectrumValue::operator[] ( size_t  index)

Access value at given frequency index

Parameters:
indexthe given frequency index
Returns:
reference to the value
Values::iterator ns3::SpectrumValue::ValuesBegin ( )
Values::iterator ns3::SpectrumValue::ValuesEnd ( )

Friends And Related Function Documentation

double Integral ( const SpectrumValue arg)
friend
Parameters:
argthe argument
Returns:
the value of the integral $\int_F g(f) df $
SpectrumValue Log ( const SpectrumValue arg)
friend
Parameters:
argthe argument
Returns:
the logarithm in base e of all values in the argument

Referenced by ns3::Log().

SpectrumValue Log10 ( const SpectrumValue arg)
friend
Parameters:
argthe argument
Returns:
the logarithm in base 10 of all values in the argument

Referenced by ns3::Log10().

SpectrumValue Log2 ( const SpectrumValue arg)
friend
Parameters:
argthe argument
Returns:
the logarithm in base 2 of all values in the argument

Referenced by ns3::Log2().

double Norm ( const SpectrumValue x)
friend
Parameters:
xthe operand
Returns:
the euclidean norm, i.e., the sum of the squares of all the values in x
SpectrumValue operator* ( const SpectrumValue lhs,
const SpectrumValue rhs 
)
friend

multiplication component-by-component (Schur product)

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs * rhs
SpectrumValue operator* ( const SpectrumValue lhs,
double  rhs 
)
friend

multiplication by a scalar

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs * rhs
SpectrumValue operator* ( double  lhs,
const SpectrumValue rhs 
)
friend

multiplication of a scalar

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs * rhs
SpectrumValue operator+ ( const SpectrumValue lhs,
const SpectrumValue rhs 
)
friend

addition operator

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs + rhs
SpectrumValue operator+ ( const SpectrumValue lhs,
double  rhs 
)
friend

addition operator

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs + rhs
SpectrumValue operator+ ( double  lhs,
const SpectrumValue rhs 
)
friend

addition operator

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs + rhs
SpectrumValue operator+ ( const SpectrumValue rhs)
friend

unary plus operator

Returns:
the value of *this
SpectrumValue operator- ( const SpectrumValue lhs,
const SpectrumValue rhs 
)
friend

subtraction operator

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs - rhs
SpectrumValue operator- ( const SpectrumValue lhs,
double  rhs 
)
friend

subtraction operator

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs - rhs
SpectrumValue operator- ( double  lhs,
const SpectrumValue rhs 
)
friend

subtraction operator

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs - rhs
SpectrumValue operator- ( const SpectrumValue rhs)
friend

unary minus operator

Returns:
the value of - *this
SpectrumValue operator/ ( const SpectrumValue lhs,
const SpectrumValue rhs 
)
friend

division component-by-component

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of lhs / rhs
SpectrumValue operator/ ( const SpectrumValue lhs,
double  rhs 
)
friend

division by a scalar

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of *this / rhs
SpectrumValue operator/ ( double  lhs,
const SpectrumValue rhs 
)
friend

division of a scalar

Parameters:
lhsLeft Hand Side of the operator
rhsRight Hand Side of the operator
Returns:
the value of *this / rhs
SpectrumValue Pow ( const SpectrumValue lhs,
double  rhs 
)
friend
Parameters:
lhsthe base
rhsthe exponent
Returns:
each value in base raised to the exponent

Referenced by ns3::Pow().

SpectrumValue Pow ( double  lhs,
const SpectrumValue rhs 
)
friend
Parameters:
lhsthe base
rhsthe exponent
Returns:
the value in base raised to each value in the exponent
double Prod ( const SpectrumValue x)
friend
Parameters:
xthe operand
Returns:
the product of all the values in x
double Sum ( const SpectrumValue x)
friend
Parameters:
xthe operand
Returns:
the sum of all the values in x

The documentation for this class was generated from the following files: