Set of values corresponding to a given SpectrumModel. More...
#include "spectrum-value.h"
 Inheritance diagram for ns3::SpectrumValue:
 Collaboration diagram for ns3::SpectrumValue:Public Types | |
| typedef void(* | TracedCallback) (Ptr< SpectrumValue > value) | 
| TracedCallback signature for SpectrumValue.  More... | |
Public Member Functions | |
| SpectrumValue (Ptr< const SpectrumModel > sm) | |
| SpectrumValue constructor.  More... | |
| SpectrumValue () | |
| Bands::const_iterator | ConstBandsBegin () const | 
| Bands::const_iterator | ConstBandsEnd () const | 
| Values::const_iterator | ConstValuesBegin () const | 
| Values::const_iterator | ConstValuesEnd () const | 
| Ptr< SpectrumValue > | Copy () const | 
| Ptr< const SpectrumModel > | GetSpectrumModel () const | 
| SpectrumModelUid_t | GetSpectrumModelUid () const | 
| SpectrumValue & | operator*= (const SpectrumValue &rhs) | 
| Multiply *this by the Right Hand Side of the operator, component by component.  More... | |
| SpectrumValue & | operator*= (double rhs) | 
| Multiply every component of *this by the value of the Right Hand Side of the operator.  More... | |
| SpectrumValue & | operator+= (const SpectrumValue &rhs) | 
| Add the Right Hand Side of the operator to *this, component by component.  More... | |
| SpectrumValue & | operator+= (double rhs) | 
| Add the value of the Right Hand Side of the operator to all components of *this.  More... | |
| SpectrumValue & | operator-= (const SpectrumValue &rhs) | 
| Subtract the Right Hand Side of the operator from *this, component by component.  More... | |
| SpectrumValue & | operator-= (double rhs) | 
| Subtract the value of the Right Hand Side of the operator from all components of *this.  More... | |
| SpectrumValue & | operator/= (const SpectrumValue &rhs) | 
| Divide *this by the Right Hand Side of the operator, component by component.  More... | |
| SpectrumValue & | operator/= (double rhs) | 
| Divide every component of *this by the value of the Right Hand Side of the operator.  More... | |
| SpectrumValue | operator<< (int n) const | 
| left shift operator  More... | |
| SpectrumValue & | operator= (double rhs) | 
| Assign each component of *this to the value of the Right Hand Side of the operator.  More... | |
| SpectrumValue | operator>> (int n) const | 
| right shift operator  More... | |
| double & | operator[] (size_t index) | 
| Access value at given frequency index.  More... | |
| const double & | operator[] (size_t index) const | 
| Access value at given frequency index.  More... | |
| Values::iterator | ValuesBegin () | 
| Values::iterator | ValuesEnd () | 
  Public Member Functions inherited from ns3::SimpleRefCount< SpectrumValue > | |
| SimpleRefCount () | |
| Constructor.  More... | |
| SimpleRefCount (const SimpleRefCount &o) | |
| Copy constructor.  More... | |
| uint32_t | GetReferenceCount (void) const | 
| Get the reference count of the object.  More... | |
| SimpleRefCount & | operator= (const SimpleRefCount &o) | 
| Assignment.  More... | |
| void | Ref (void) const | 
| Increment the reference count.  More... | |
| void | Unref (void) const | 
| Decrement the reference count.  More... | |
Private Member Functions | |
| void | Add (const SpectrumValue &x) | 
| void | Add (double s) | 
| void | ChangeSign () | 
| void | Divide (const SpectrumValue &x) | 
| void | Divide (double s) | 
| void | Exp (double base) | 
| void | Log () | 
| void | Log10 () | 
| void | Log2 () | 
| void | Multiply (const SpectrumValue &x) | 
| void | Multiply (double s) | 
| void | Pow (double exp) | 
| void | ShiftLeft (int n) | 
| void | ShiftRight (int n) | 
| void | Subtract (const SpectrumValue &x) | 
| void | Subtract (double s) | 
Private Attributes | |
| Ptr< const SpectrumModel > | m_spectrumModel | 
| Values | m_values | 
| Set of values which implement the codomain of the functions in the Function Space defined by SpectrumValue.  More... | |
Friends | |
| double | Integral (const SpectrumValue &arg) | 
| SpectrumValue | Log (const SpectrumValue &arg) | 
| SpectrumValue | Log10 (const SpectrumValue &arg) | 
| SpectrumValue | Log2 (const SpectrumValue &arg) | 
| double | Norm (const SpectrumValue &x) | 
| SpectrumValue | operator* (const SpectrumValue &lhs, const SpectrumValue &rhs) | 
| multiplication component-by-component (Schur product)  More... | |
| SpectrumValue | operator* (const SpectrumValue &lhs, double rhs) | 
| multiplication by a scalar  More... | |
| SpectrumValue | operator* (double lhs, const SpectrumValue &rhs) | 
| multiplication of a scalar  More... | |
| SpectrumValue | operator+ (const SpectrumValue &lhs, const SpectrumValue &rhs) | 
| addition operator  More... | |
| SpectrumValue | operator+ (const SpectrumValue &lhs, double rhs) | 
| addition operator  More... | |
| SpectrumValue | operator+ (double lhs, const SpectrumValue &rhs) | 
| addition operator  More... | |
| SpectrumValue | operator+ (const SpectrumValue &rhs) | 
| unary plus operator  More... | |
| SpectrumValue | operator- (const SpectrumValue &lhs, const SpectrumValue &rhs) | 
| subtraction operator  More... | |
| SpectrumValue | operator- (const SpectrumValue &lhs, double rhs) | 
| subtraction operator  More... | |
| SpectrumValue | operator- (double lhs, const SpectrumValue &rhs) | 
| subtraction operator  More... | |
| SpectrumValue | operator- (const SpectrumValue &rhs) | 
| unary minus operator  More... | |
| SpectrumValue | operator/ (const SpectrumValue &lhs, const SpectrumValue &rhs) | 
| division component-by-component  More... | |
| SpectrumValue | operator/ (const SpectrumValue &lhs, double rhs) | 
| division by a scalar  More... | |
| SpectrumValue | operator/ (double lhs, const SpectrumValue &rhs) | 
| division of a scalar  More... | |
| SpectrumValue | Pow (const SpectrumValue &lhs, double rhs) | 
| SpectrumValue | Pow (double lhs, const SpectrumValue &rhs) | 
| double | Prod (const SpectrumValue &x) | 
| double | Sum (const SpectrumValue &x) | 
Additional Inherited Members | |
  Static Public Member Functions inherited from ns3::SimpleRefCount< SpectrumValue > | |
| static void | Cleanup (void) | 
| Noop.  More... | |
Set of values corresponding to a given SpectrumModel.
This class implements a Function Space which can represent any function 
Every instance of this class represent a particular function 
. The domain of the function space, i.e., 
, is implemented by SetOfFreq. The codomain of the function space is implemented by SetOfValues
To every possible value of 
 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.
Definition at line 57 of file spectrum-value.h.
| typedef void(* ns3::SpectrumValue::TracedCallback) (Ptr< SpectrumValue > value) | 
TracedCallback signature for SpectrumValue.
| [in] | value | Value of the traced variable. | 
Ptr<SpectrumPhy> argument is deprecated and will be changed to Ptr<const SpectrumPhy> in a future release. Definition at line 514 of file spectrum-value.h.
| ns3::SpectrumValue::SpectrumValue | ( | Ptr< const SpectrumModel > | sm | ) | 
SpectrumValue constructor.
| sm | pointer to the SpectrumModel which implements the set of frequencies to which the values will be referring. | 
Definition at line 34 of file spectrum-value.cc.
| ns3::SpectrumValue::SpectrumValue | ( | ) | 
Definition at line 30 of file spectrum-value.cc.
      
  | 
  private | 
Definition at line 107 of file spectrum-value.cc.
References m_spectrumModel, m_values, and NS_ASSERT.
Referenced by ns3::operator+(), operator+=(), ns3::operator-(), and Subtract().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 125 of file spectrum-value.cc.
References m_values.
      
  | 
  private | 
Definition at line 232 of file spectrum-value.cc.
References m_values.
Referenced by ns3::operator-().
 Here is the caller graph for this function:| Bands::const_iterator ns3::SpectrumValue::ConstBandsBegin | ( | ) | const | 
Definition at line 94 of file spectrum-value.cc.
References ns3::SpectrumModel::Begin(), and m_spectrumModel.
Referenced by ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), TvSpectrumTransmitterTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::Integral(), and ns3::WriteAveragePowerSpectralDensityReport().
 Here is the call graph for this function:
 Here is the caller graph for this function:| Bands::const_iterator ns3::SpectrumValue::ConstBandsEnd | ( | ) | const | 
Definition at line 100 of file spectrum-value.cc.
References ns3::SpectrumModel::End(), and m_spectrumModel.
Referenced by ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), TvSpectrumTransmitterTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::Integral(), and ns3::WriteAveragePowerSpectralDensityReport().
 Here is the call graph for this function:
 Here is the caller graph for this function:| Values::const_iterator ns3::SpectrumValue::ConstValuesBegin | ( | ) | const | 
Definition at line 69 of file spectrum-value.cc.
References m_values.
Referenced by ns3::LteAmc::CreateCqiFeedbacks(), ns3::LteEnbPhy::CreatePuschCqiReport(), ns3::LteEnbPhy::CreateSrsCqiReport(), LteFrTestCase::DlDataRxStart(), LteFrAreaTestCase::DlDataRxStart(), TvSpectrumTransmitterTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteUePhy::GenerateCqiRsrpRsrq(), ns3::Integral(), ns3::Norm(), ns3::operator<<(), ns3::Prod(), ns3::LteUePhy::ReceivePss(), ns3::LteUePhy::ReportRsReceivedPower(), ns3::Sum(), LteFrTestCase::UlDataRxStart(), LteFrAreaTestCase::UlDataRxStart(), and ns3::WriteAveragePowerSpectralDensityReport().
 Here is the caller graph for this function:| Values::const_iterator ns3::SpectrumValue::ConstValuesEnd | ( | ) | const | 
Definition at line 75 of file spectrum-value.cc.
References m_values.
Referenced by ns3::LteAmc::CreateCqiFeedbacks(), ns3::LteEnbPhy::CreatePuschCqiReport(), ns3::LteEnbPhy::CreateSrsCqiReport(), LteFrTestCase::DlDataRxStart(), LteFrAreaTestCase::DlDataRxStart(), TvSpectrumTransmitterTestCase::DoRun(), ns3::ShannonSpectrumErrorModel::EvaluateChunk(), ns3::LteUePhy::GenerateCqiRsrpRsrq(), ns3::Integral(), ns3::Norm(), ns3::operator<<(), ns3::Prod(), ns3::LteUePhy::ReceivePss(), ns3::LteUePhy::ReportRsReceivedPower(), ns3::Sum(), LteFrTestCase::UlDataRxStart(), LteFrAreaTestCase::UlDataRxStart(), and ns3::WriteAveragePowerSpectralDensityReport().
 Here is the caller graph for this function:| Ptr< SpectrumValue > ns3::SpectrumValue::Copy | ( | void | ) | const | 
Definition at line 409 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by ns3::LrWpanInterferenceHelper::GetSignalPsd(), LteUplinkSrsSinrTestCase::ReportSinr(), ns3::LteSpectrumValueCatcher::ReportValue(), and ns3::SpectrumSignalParameters::SpectrumSignalParameters().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 198 of file spectrum-value.cc.
References m_spectrumModel, m_values, and NS_ASSERT.
Referenced by ns3::operator/(), and operator/=().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 216 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
      
  | 
  private | 
Definition at line 294 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
Referenced by ns3::Pow().
 Here is the caller graph for this function:| Ptr< const SpectrumModel > ns3::SpectrumValue::GetSpectrumModel | ( | void | ) | const | 
Definition at line 62 of file spectrum-value.cc.
References m_spectrumModel.
Referenced by SpectrumValueTestCase::DoRun(), ns3::LteChunkProcessor::EvaluateChunk(), ns3::SpectrumAnalyzer::GenerateReport(), ns3::HalfDuplexIdealPhy::GetRxSpectrumModel(), and ns3::LrWpanPhy::GetRxSpectrumModel().
 Here is the caller graph for this function:| SpectrumModelUid_t ns3::SpectrumValue::GetSpectrumModelUid | ( | ) | const | 
Definition at line 55 of file spectrum-value.cc.
References ns3::SpectrumModel::GetUid(), and m_spectrumModel.
Referenced by LteDownlinkPowerControlSpectrumValueTestCase::DoRun(), LteNoisePsdTestCase::DoRun(), and LteTxPsdTestCase::DoRun().
 Here is the call graph for this function:
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 335 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
      
  | 
  private | 
Definition at line 308 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
      
  | 
  private | 
Definition at line 321 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
      
  | 
  private | 
Definition at line 165 of file spectrum-value.cc.
References m_spectrumModel, m_values, and NS_ASSERT.
Referenced by ns3::operator*(), and operator*=().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 183 of file spectrum-value.cc.
References m_values.
| SpectrumValue & ns3::SpectrumValue::operator*= | ( | const SpectrumValue & | rhs | ) | 
Multiply *this by the Right Hand Side of the operator, component by component.
| rhs | the Right Hand Side | 
Definition at line 615 of file spectrum-value.cc.
References Multiply().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator*= | ( | double | rhs | ) | 
Multiply every component of *this by the value of the Right Hand Side of the operator.
| rhs | the Right Hand Side | 
Definition at line 644 of file spectrum-value.cc.
References Multiply().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator+= | ( | const SpectrumValue & | rhs | ) | 
Add the Right Hand Side of the operator to *this, component by component.
| rhs | the Right Hand Side | 
Definition at line 601 of file spectrum-value.cc.
References Add().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator+= | ( | double | rhs | ) | 
Add the value of the Right Hand Side of the operator to all components of *this.
| rhs | the Right Hand Side | 
Definition at line 630 of file spectrum-value.cc.
References Add().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator-= | ( | const SpectrumValue & | rhs | ) | 
Subtract the Right Hand Side of the operator from *this, component by component.
| rhs | the Right Hand Side | 
Definition at line 608 of file spectrum-value.cc.
References Subtract().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator-= | ( | double | rhs | ) | 
Subtract the value of the Right Hand Side of the operator from all components of *this.
| rhs | the Right Hand Side | 
Definition at line 637 of file spectrum-value.cc.
References Subtract().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator/= | ( | const SpectrumValue & | rhs | ) | 
Divide *this by the Right Hand Side of the operator, component by component.
| rhs | the Right Hand Side | 
Definition at line 622 of file spectrum-value.cc.
References Divide().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator/= | ( | double | rhs | ) | 
Divide every component of *this by the value of the Right Hand Side of the operator.
| rhs | the Right Hand Side | 
Definition at line 651 of file spectrum-value.cc.
References Divide().
 Here is the call graph for this function:| SpectrumValue ns3::SpectrumValue::operator<< | ( | int | n | ) | const | 
left shift operator
| n | position to shift | 
Definition at line 674 of file spectrum-value.cc.
References ShiftLeft().
 Here is the call graph for this function:| SpectrumValue & ns3::SpectrumValue::operator= | ( | double | rhs | ) | 
Assign each component of *this to the value of the Right Hand Side of the operator.
| rhs | 
Definition at line 659 of file spectrum-value.cc.
References m_values.
| SpectrumValue ns3::SpectrumValue::operator>> | ( | int | n | ) | const | 
right shift operator
| n | position to shift | 
Definition at line 682 of file spectrum-value.cc.
References ShiftRight().
 Here is the call graph for this function:| double & ns3::SpectrumValue::operator[] | ( | size_t | index | ) | 
Access value at given frequency index.
| index | the given frequency index | 
Definition at line 42 of file spectrum-value.cc.
References m_values.
| const double & ns3::SpectrumValue::operator[] | ( | size_t | index | ) | const | 
Access value at given frequency index.
| index | the given frequency index | 
Definition at line 48 of file spectrum-value.cc.
References m_values.
      
  | 
  private | 
Definition at line 280 of file spectrum-value.cc.
References m_values, and NS_LOG_FUNCTION.
      
  | 
  private | 
Definition at line 245 of file spectrum-value.cc.
References m_values.
Referenced by operator<<().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 262 of file spectrum-value.cc.
References m_values.
Referenced by operator>>().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 139 of file spectrum-value.cc.
References m_spectrumModel, m_values, and NS_ASSERT.
Referenced by ns3::operator-(), and operator-=().
 Here is the caller graph for this function:
      
  | 
  private | 
Definition at line 157 of file spectrum-value.cc.
References Add().
 Here is the call graph for this function:| Values::iterator ns3::SpectrumValue::ValuesBegin | ( | ) | 
Definition at line 82 of file spectrum-value.cc.
References m_values.
Referenced by ns3::SpectrumConverter::Convert(), ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), and ns3::LteMiErrorModel::GetPcfichPdcchError().
 Here is the caller graph for this function:| Values::iterator ns3::SpectrumValue::ValuesEnd | ( | ) | 
Definition at line 88 of file spectrum-value.cc.
References m_values.
Referenced by ns3::SpectrumConverter::Convert(), ns3::ConstantSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::FriisSpectrumPropagationLossModel::DoCalcRxPowerSpectralDensity(), ns3::TraceFadingLossModel::DoCalcRxPowerSpectralDensity(), and ns3::LteMiErrorModel::GetPcfichPdcchError().
 Here is the caller graph for this function:
      
  | 
  friend | 
| arg | the argument | 
 Definition at line 390 of file spectrum-value.cc.
      
  | 
  friend | 
| arg | the argument | 
Definition at line 593 of file spectrum-value.cc.
Referenced by ns3::Log().
      
  | 
  friend | 
| arg | the argument | 
Definition at line 577 of file spectrum-value.cc.
Referenced by ns3::Log10().
      
  | 
  friend | 
| arg | the argument | 
Definition at line 585 of file spectrum-value.cc.
Referenced by ns3::Log2().
      
  | 
  friend | 
| x | the operand | 
Definition at line 348 of file spectrum-value.cc.
      
  | 
  friend | 
multiplication component-by-component (Schur product)
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 490 of file spectrum-value.cc.
      
  | 
  friend | 
multiplication by a scalar
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 499 of file spectrum-value.cc.
      
  | 
  friend | 
multiplication of a scalar
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 508 of file spectrum-value.cc.
      
  | 
  friend | 
addition operator
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 435 of file spectrum-value.cc.
      
  | 
  friend | 
addition operator
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 444 of file spectrum-value.cc.
      
  | 
  friend | 
addition operator
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 453 of file spectrum-value.cc.
      
  | 
  friend | 
      
  | 
  friend | 
subtraction operator
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 462 of file spectrum-value.cc.
      
  | 
  friend | 
subtraction operator
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 473 of file spectrum-value.cc.
      
  | 
  friend | 
subtraction operator
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 482 of file spectrum-value.cc.
      
  | 
  friend | 
      
  | 
  friend | 
division component-by-component
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 517 of file spectrum-value.cc.
      
  | 
  friend | 
division by a scalar
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 526 of file spectrum-value.cc.
      
  | 
  friend | 
division of a scalar
| lhs | Left Hand Side of the operator | 
| rhs | Right Hand Side of the operator | 
Definition at line 535 of file spectrum-value.cc.
      
  | 
  friend | 
| lhs | the base | 
| rhs | the exponent | 
Definition at line 568 of file spectrum-value.cc.
Referenced by ns3::Pow().
      
  | 
  friend | 
| lhs | the base | 
| rhs | the exponent | 
Definition at line 559 of file spectrum-value.cc.
      
  | 
  friend | 
| x | the operand | 
Definition at line 377 of file spectrum-value.cc.
      
  | 
  friend | 
| x | the operand | 
Definition at line 362 of file spectrum-value.cc.
      
  | 
  private | 
Definition at line 535 of file spectrum-value.h.
Referenced by Add(), ConstBandsBegin(), ConstBandsEnd(), Copy(), Divide(), GetSpectrumModel(), GetSpectrumModelUid(), Multiply(), and Subtract().
      
  | 
  private | 
Set of values which implement the codomain of the functions in the Function Space defined by SpectrumValue.
There is no restriction on what these values represent (a transmission power density, a propagation loss, etc.).
Definition at line 545 of file spectrum-value.h.
Referenced by Add(), ChangeSign(), ConstValuesBegin(), ConstValuesEnd(), Divide(), Exp(), Log(), Log10(), Log2(), Multiply(), operator=(), operator[](), Pow(), ShiftLeft(), ShiftRight(), Subtract(), ValuesBegin(), and ValuesEnd().