INET Framework for OMNeT++/OMNEST
inet::physicallayer::AntennaGainFunction Class Reference

This mathematical function provides the antenna gain over orientation. More...

#include <PowerFunctions.h>

Inheritance diagram for inet::physicallayer::AntennaGainFunction:
inet::math::IFunction< double, Domain< Quaternion > >

Public Member Functions

 AntennaGainFunction (const IAntennaGain *antennaGain)
 
virtual Interval< double > getRange () const override
 
virtual Interval< double > getRange (const Interval< Quaternion > &i) const override
 
virtual Interval< QuaterniongetDomain () const override
 
virtual double getValue (const Point< Quaternion > &p) const override
 
virtual void partition (const Interval< Quaternion > &i, const std::function< void(const Interval< Quaternion > &, const IFunction< double, Domain< Quaternion >> *)> f) const override
 
virtual bool isFinite () const override
 
virtual bool isFinite (const Interval< Quaternion > &i) const override
 
virtual bool isNonZero () const override
 
virtual bool isNonZero (const Interval< Quaternion > &i) const override
 
virtual double getMin () const override
 
virtual double getMin (const Interval< Quaternion > &i) const override
 
virtual double getMax () const override
 
virtual double getMax (const Interval< Quaternion > &i) const override
 
virtual double getMean () const override
 
virtual double getMean (const Interval< Quaternion > &i) const override
 
virtual double getIntegral () const override
 
virtual double getIntegral (const Interval< Quaternion > &i) const override
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > add (const Ptr< const IFunction< double, Domain< Quaternion >>> &o) const override
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > subtract (const Ptr< const IFunction< double, Domain< Quaternion >>> &o) const override
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > multiply (const Ptr< const IFunction< double, Domain< Quaternion >>> &o) const override
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > divide (const Ptr< const IFunction< double, Domain< Quaternion >>> &o) const override
 
virtual void print (std::ostream &os, int level=0) const override
 Prints this function in human readable form to the provided stream for the whole domain. More...
 
virtual void print (std::ostream &os, const Interval< Quaternion > &i, int level=0) const override
 
virtual void printPartitioning (std::ostream &os, const Interval< Quaternion > &i, int level=0) const override
 
virtual void printPartition (std::ostream &os, const Interval< Quaternion > &i, int level=0) const override
 
virtual void printStructure (std::ostream &os, int level=0) const override
 Prints the internal data structure of this function in a human readable form to the provided stream. More...
 
- Public Member Functions inherited from inet::math::IFunction< double, Domain< Quaternion > >
virtual ~IFunction ()
 
virtual Interval< double > getRange () const=0
 Returns the valid range of the function as an interval. More...
 
virtual Interval< double > getRange (const typename Domain< Quaternion > ::I &i) const=0
 Returns the valid range of the function as an interval for the given domain. More...
 
virtual Domain< Quaternion > ::I getDomain () const=0
 Returns the valid domain of the function as an interval. More...
 
virtual double getValue (const typename Domain< Quaternion > ::P &p) const=0
 Returns the value of the function at the given point. More...
 
virtual void partition (const typename Domain< Quaternion > ::I &i, const std::function< void(const typename Domain< Quaternion > ::I &, const IFunction< double, Domain< Quaternion > > *)> f) const=0
 Subdivides the provided domain and calls back f with the subdomains and the corresponding potentially simpler domain limited functions. More...
 
virtual bool isFinite () const=0
 Returns true if the function value is finite in the whole domain. More...
 
virtual bool isFinite (const typename Domain< Quaternion > ::I &i) const=0
 Returns true if the function value is finite in the given domain. More...
 
virtual bool isNonZero () const=0
 Returns true if the function value is non-zero in the whole domain. More...
 
virtual bool isNonZero (const typename Domain< Quaternion > ::I &i) const=0
 Returns true if the function value is non-zero in the given domain. More...
 
virtual double getMin () const=0
 Returns the minimum value for the whole domain. More...
 
virtual double getMin (const typename Domain< Quaternion > ::I &i) const=0
 Returns the minimum value for the given domain. More...
 
virtual double getMax () const=0
 Returns the maximum value for the whole domain. More...
 
virtual double getMax (const typename Domain< Quaternion > ::I &i) const=0
 Returns the maximum value for the given domain. More...
 
virtual double getMean () const=0
 Returns the mean value for the whole domain. More...
 
virtual double getMean (const typename Domain< Quaternion > ::I &i) const=0
 Returns the mean value for the given domain. More...
 
virtual double getIntegral () const=0
 Returns the integral value for the whole domain. More...
 
virtual double getIntegral (const typename Domain< Quaternion > ::I &i) const=0
 Returns the integral value for the given domain. More...
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > add (const Ptr< const IFunction< double, Domain< Quaternion > >> &o) const=0
 Adds the provided function to this function. More...
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > subtract (const Ptr< const IFunction< double, Domain< Quaternion > >> &o) const=0
 Substracts the provided function from this function. More...
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > multiply (const Ptr< const IFunction< double, Domain< Quaternion > >> &o) const=0
 Multiplies the provided function with this function. More...
 
virtual const Ptr< const IFunction< double, Domain< Quaternion > > > divide (const Ptr< const IFunction< double, Domain< Quaternion > >> &o) const=0
 Divides this function with the provided function. More...
 
virtual void print (std::ostream &os, const typename Domain< Quaternion > ::I &i, int level=0) const=0
 Prints this function in a human readable form to the provided stream for the given domain. More...
 
virtual void printPartitioning (std::ostream &os, const typename Domain< Quaternion > ::I &i, int level=0) const=0
 Prints the partitioning of this function in a human readable form to the provided stream for the given domain. More...
 
virtual void printPartition (std::ostream &os, const typename Domain< Quaternion > ::I &i, int level=0) const=0
 Prints a single partition of this function in a human readable form to the provided stream for the given domain. More...
 

Protected Attributes

const IAntennaGainantennaGain
 

Detailed Description

This mathematical function provides the antenna gain over orientation.

Constructor & Destructor Documentation

◆ AntennaGainFunction()

inet::physicallayer::AntennaGainFunction::AntennaGainFunction ( const IAntennaGain antennaGain)
inline

Member Function Documentation

◆ add()

virtual const Ptr<const IFunction<double, Domain<Quaternion> > > inet::physicallayer::AntennaGainFunction::add ( const Ptr< const IFunction< double, Domain< Quaternion >>> &  o) const
inlineoverridevirtual
452 { throw cRuntimeError("TODO"); }

◆ divide()

virtual const Ptr<const IFunction<double, Domain<Quaternion> > > inet::physicallayer::AntennaGainFunction::divide ( const Ptr< const IFunction< double, Domain< Quaternion >>> &  o) const
inlineoverridevirtual
455 { throw cRuntimeError("TODO"); }

◆ getDomain()

virtual Interval<Quaternion> inet::physicallayer::AntennaGainFunction::getDomain ( ) const
inlineoverridevirtual
426 { throw cRuntimeError("TODO"); }

◆ getIntegral() [1/2]

virtual double inet::physicallayer::AntennaGainFunction::getIntegral ( ) const
inlineoverridevirtual
449 { throw cRuntimeError("TODO"); }

◆ getIntegral() [2/2]

virtual double inet::physicallayer::AntennaGainFunction::getIntegral ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
450 { throw cRuntimeError("TODO"); }

◆ getMax() [1/2]

virtual double inet::physicallayer::AntennaGainFunction::getMax ( ) const
inlineoverridevirtual
443 { throw cRuntimeError("TODO"); }

◆ getMax() [2/2]

virtual double inet::physicallayer::AntennaGainFunction::getMax ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
444 { throw cRuntimeError("TODO"); }

◆ getMean() [1/2]

virtual double inet::physicallayer::AntennaGainFunction::getMean ( ) const
inlineoverridevirtual
446 { throw cRuntimeError("TODO"); }

◆ getMean() [2/2]

virtual double inet::physicallayer::AntennaGainFunction::getMean ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
447 { throw cRuntimeError("TODO"); }

◆ getMin() [1/2]

virtual double inet::physicallayer::AntennaGainFunction::getMin ( ) const
inlineoverridevirtual
440 { throw cRuntimeError("TODO"); }

◆ getMin() [2/2]

virtual double inet::physicallayer::AntennaGainFunction::getMin ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
441 { throw cRuntimeError("TODO"); }

◆ getRange() [1/2]

virtual Interval<double> inet::physicallayer::AntennaGainFunction::getRange ( ) const
inlineoverridevirtual
424 { return getRange(getDomain()); }

Referenced by getRange().

◆ getRange() [2/2]

virtual Interval<double> inet::physicallayer::AntennaGainFunction::getRange ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
425 { throw cRuntimeError("TODO"); }

◆ getValue()

virtual double inet::physicallayer::AntennaGainFunction::getValue ( const Point< Quaternion > &  p) const
inlineoverridevirtual
428  {
429  return antennaGain->computeGain(std::get<0>(p));
430  }

◆ isFinite() [1/2]

virtual bool inet::physicallayer::AntennaGainFunction::isFinite ( ) const
inlineoverridevirtual
434 { throw cRuntimeError("TODO"); }

◆ isFinite() [2/2]

virtual bool inet::physicallayer::AntennaGainFunction::isFinite ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
435 { throw cRuntimeError("TODO"); }

◆ isNonZero() [1/2]

virtual bool inet::physicallayer::AntennaGainFunction::isNonZero ( ) const
inlineoverridevirtual
437 { throw cRuntimeError("TODO"); }

◆ isNonZero() [2/2]

virtual bool inet::physicallayer::AntennaGainFunction::isNonZero ( const Interval< Quaternion > &  i) const
inlineoverridevirtual
438 { throw cRuntimeError("TODO"); }

◆ multiply()

virtual const Ptr<const IFunction<double, Domain<Quaternion> > > inet::physicallayer::AntennaGainFunction::multiply ( const Ptr< const IFunction< double, Domain< Quaternion >>> &  o) const
inlineoverridevirtual
454 { throw cRuntimeError("TODO"); }

◆ partition()

virtual void inet::physicallayer::AntennaGainFunction::partition ( const Interval< Quaternion > &  i,
const std::function< void(const Interval< Quaternion > &, const IFunction< double, Domain< Quaternion >> *)>  f 
) const
inlineoverridevirtual
432 { throw cRuntimeError("TODO"); }

◆ print() [1/2]

virtual void inet::physicallayer::AntennaGainFunction::print ( std::ostream &  os,
const Interval< Quaternion > &  i,
int  level = 0 
) const
inlineoverridevirtual
458 { os << "TODO"; }

◆ print() [2/2]

virtual void inet::physicallayer::AntennaGainFunction::print ( std::ostream &  os,
int  level = 0 
) const
inlineoverridevirtual

Prints this function in human readable form to the provided stream for the whole domain.

Implements inet::math::IFunction< double, Domain< Quaternion > >.

457 { os << "TODO"; }

◆ printPartition()

virtual void inet::physicallayer::AntennaGainFunction::printPartition ( std::ostream &  os,
const Interval< Quaternion > &  i,
int  level = 0 
) const
inlineoverridevirtual
460 { os << "TODO"; }

◆ printPartitioning()

virtual void inet::physicallayer::AntennaGainFunction::printPartitioning ( std::ostream &  os,
const Interval< Quaternion > &  i,
int  level = 0 
) const
inlineoverridevirtual
459 { os << "TODO"; }

◆ printStructure()

virtual void inet::physicallayer::AntennaGainFunction::printStructure ( std::ostream &  os,
int  level = 0 
) const
inlineoverridevirtual

Prints the internal data structure of this function in a human readable form to the provided stream.

Implements inet::math::IFunction< double, Domain< Quaternion > >.

461 { os << "(AntennaGain" << EV_FIELD(minGain, antennaGain->getMinGain()) << EV_FIELD(maxGain, antennaGain->getMaxGain()) << ")"; }

◆ subtract()

virtual const Ptr<const IFunction<double, Domain<Quaternion> > > inet::physicallayer::AntennaGainFunction::subtract ( const Ptr< const IFunction< double, Domain< Quaternion >>> &  o) const
inlineoverridevirtual
453 { throw cRuntimeError("TODO"); }

Member Data Documentation

◆ antennaGain

const IAntennaGain* inet::physicallayer::AntennaGainFunction::antennaGain
protected

The documentation for this class was generated from the following file:
inet::physicallayer::AntennaGainFunction::antennaGain
const IAntennaGain * antennaGain
Definition: PowerFunctions.h:419
inet::physicallayer::AntennaGainFunction::getRange
virtual Interval< double > getRange() const override
Definition: PowerFunctions.h:424
EV_FIELD
#define EV_FIELD(...)
Definition: INETDefs.h:112
inet::physicallayer::IAntennaGain::computeGain
virtual double computeGain(const Quaternion &direction) const =0
Returns the antenna gain in the provided direction.
inet::physicallayer::IAntennaGain::getMaxGain
virtual double getMaxGain() const =0
Returns the maximum possible antenna gain independent of any direction.
inet::physicallayer::AntennaGainFunction::getDomain
virtual Interval< Quaternion > getDomain() const override
Definition: PowerFunctions.h:426
inet::physicallayer::IAntennaGain::getMinGain
virtual double getMinGain() const =0
Returns the minimum possible antenna gain independent of any direction.