INET Framework for OMNeT++/OMNEST
inet::math::IFunction< R, D > Class Template Referenceabstract

This interface represents a mathematical function from domain D to range R. More...

#include <IFunction.h>

Inheritance diagram for inet::math::IFunction< R, D >:
inet::math::FunctionBase< R, D > inet::math::AddedFunction< R, D > inet::math::ApproximatedFunction< R, D, DIMENSION, X > inet::math::BilinearFunction< R, D > inet::math::ConstantFunction< R, D > inet::math::DomainLimitedFunction< R, D > inet::math::DomainShiftedFunction< R, D > inet::math::LeftCurryingFunction< R, C, DIMSC, D, DIMSD, E > inet::math::MemoizedFunction< R, D > inet::math::MultipliedFunction< R, D > inet::math::SubtractedFunction< R, D > inet::math::SummedFunction< R, D > inet::math::UnilinearFunction< R, D > inet::math::UnireciprocalFunction< R, D >

Public Member Functions

virtual ~IFunction ()
 
virtual Interval< R > getRange () const =0
 Returns the valid range of the function as an interval. More...
 
virtual Interval< R > getRange (const typename D::I &i) const =0
 Returns the valid range of the function as an interval for the given domain. More...
 
virtual D::I getDomain () const =0
 Returns the valid domain of the function as an interval. More...
 
virtual R getValue (const typename D::P &p) const =0
 Returns the value of the function at the given point. More...
 
virtual void partition (const typename D::I &i, const std::function< void(const typename D::I &, const IFunction< R, D > *)> 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 D::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 D::I &i) const =0
 Returns true if the function value is non-zero in the given domain. More...
 
virtual R getMin () const =0
 Returns the minimum value for the whole domain. More...
 
virtual R getMin (const typename D::I &i) const =0
 Returns the minimum value for the given domain. More...
 
virtual R getMax () const =0
 Returns the maximum value for the whole domain. More...
 
virtual R getMax (const typename D::I &i) const =0
 Returns the maximum value for the given domain. More...
 
virtual R getMean () const =0
 Returns the mean value for the whole domain. More...
 
virtual R getMean (const typename D::I &i) const =0
 Returns the mean value for the given domain. More...
 
virtual R getIntegral () const =0
 Returns the integral value for the whole domain. More...
 
virtual R getIntegral (const typename D::I &i) const =0
 Returns the integral value for the given domain. More...
 
virtual const Ptr< const IFunction< R, D > > add (const Ptr< const IFunction< R, D >> &o) const =0
 Adds the provided function to this function. More...
 
virtual const Ptr< const IFunction< R, D > > subtract (const Ptr< const IFunction< R, D >> &o) const =0
 Substracts the provided function from this function. More...
 
virtual const Ptr< const IFunction< R, D > > multiply (const Ptr< const IFunction< double, D >> &o) const =0
 Multiplies the provided function with this function. More...
 
virtual const Ptr< const IFunction< double, D > > divide (const Ptr< const IFunction< R, D >> &o) const =0
 Divides this function with the provided function. More...
 
virtual void print (std::ostream &os, int level=0) const =0
 Prints this function in human readable form to the provided stream for the whole domain. More...
 
virtual void print (std::ostream &os, const typename D::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 D::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 D::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...
 
virtual void printStructure (std::ostream &os, int level=0) const =0
 Prints the internal data structure of this function in a human readable form to the provided stream. More...
 

Detailed Description

template<typename R, typename D>
class inet::math::IFunction< R, D >

This interface represents a mathematical function from domain D to range R.

R is a scalar type (double, simtime_t, quantity, etc.) D is a Domain<>.

Constructor & Destructor Documentation

◆ ~IFunction()

template<typename R , typename D >
virtual inet::math::IFunction< R, D >::~IFunction ( )
inlinevirtual
29 {}

Member Function Documentation

◆ add()

◆ divide()

◆ getDomain()

◆ getIntegral() [1/2]

◆ getIntegral() [2/2]

◆ getMax() [1/2]

◆ getMax() [2/2]

◆ getMean() [1/2]

◆ getMean() [2/2]

◆ getMin() [1/2]

◆ getMin() [2/2]

◆ getRange() [1/2]

◆ getRange() [2/2]

◆ getValue()

◆ isFinite() [1/2]

◆ isFinite() [2/2]

◆ isNonZero() [1/2]

◆ isNonZero() [2/2]

◆ multiply()

◆ partition()

◆ print() [1/2]

◆ print() [2/2]

◆ printPartition()

◆ printPartitioning()

◆ printStructure()

template<typename R , typename D >
virtual void inet::math::IFunction< R, D >::printStructure ( std::ostream &  os,
int  level = 0 
) const
pure virtual

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

Implemented in inet::math::IntegratedFunction< R, D, DIMS, RI, DI >, inet::math::Interpolated1DFunction< R, X >, inet::math::Extruded2DFunction< R, X, Y >, inet::math::ApproximatedFunction< R, D, DIMENSION, X >, inet::physicallayer::AntennaGainFunction, inet::math::Boxcar2DFunction< R, X, Y >, inet::math::SummedFunction< R, D >, inet::physicallayer::ObstacleLossFunction, inet::math::Boxcar1DFunction< R, X >, inet::physicallayer::PathLossFunction, inet::physicallayer::PropagatedTransmissionPowerFunction, inet::math::DividedFunction< R, D >, inet::physicallayer::BackgroundNoisePowerFunction, inet::math::Combined2DFunction< R, X, Y >, inet::math::MultipliedFunction< R, D >, inet::physicallayer::SpaceDependentAttenuationFunction, inet::math::SubtractedFunction< R, D >, inet::math::FunctionBase< R, D >, inet::math::FunctionBase< RI, Domain< X > >, inet::math::FunctionBase< R, C >, inet::math::FunctionBase< WpHz, Domain< m, m, m, simsec, Hz > >, inet::math::FunctionBase< R, Domain< X, Y > >, inet::math::FunctionBase< RI, DI >, inet::math::FunctionBase< double, Domain< mps, m, Hz > >, inet::math::FunctionBase< double, Domain< m, m, m, m, m, m, Hz > >, inet::math::FunctionBase< double, Domain< m, m, m, simsec, Hz > >, inet::math::FunctionBase< double, Domain< simsec, Hz > >, inet::math::FunctionBase< double, D >, inet::math::FunctionBase< R, Domain< X > >, inet::physicallayer::SpaceAndFrequencyDependentAttenuationFunction, inet::math::UnilinearFunction< R, D >, inet::math::DomainShiftedFunction< R, D >, inet::math::AddedFunction< R, D >, inet::math::DomainLimitedFunction< R, D >, inet::physicallayer::FrequencyDependentAttenuationFunction, and inet::math::ConstantFunction< R, D >.

◆ subtract()


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