scalarRange Class Reference

Scalar bounds to be used as a unary predicate. More...

Collaboration diagram for scalarRange:

Public Types

typedef scalar value_type
 Type of values the range contains. More...
 

Public Member Functions

constexpr scalarRange () noexcept
 Construct an empty (inverse, NONE) range - never matches. More...
 
constexpr scalarRange (const scalar val) noexcept
 Construct an exact value matcher. More...
 
 scalarRange (const scalar minVal, const scalar maxVal) noexcept
 Construct a range from min-value to max-value. More...
 
 scalarRange (const MinMax< label > &range) noexcept
 Copy construct from a min/max range. More...
 
 scalarRange (const MinMax< scalar > &range) noexcept
 Copy construct from a min/max range. More...
 
bool empty () const noexcept
 True if range is empty (eg, inverted, NONE) More...
 
bool good () const noexcept
 True if range is non-empty. More...
 
bool single () const noexcept
 True if the range bounds represent a single value. More...
 
scalar min () const noexcept
 The min value of the range. More...
 
scalar max () const noexcept
 The max value of the range. More...
 
void reset () noexcept
 Reset to an empty (inverse, NONE) range. More...
 
void clear () noexcept
 Same as reset() - reset to an empty (inverse, NONE) range. More...
 
scalar value () const
 A representative (average) value for the range. More...
 
bool contains (const scalar val) const
 True if the value is matched by the condition. More...
 
bool match (const scalar value) const
 True if the value is matched by the condition. More...
 
bool operator() (const scalar value) const
 For use as a predicate, same as contains(), match() More...
 
constexpr bool operator== (const scalarRange &rhs) const noexcept
 
constexpr bool operator!= (const scalarRange &rhs) const noexcept
 
void print (Ostream &os) const
 Print information about the range. More...
 
bool valid () const noexcept
 Same as good() or !empty() More...
 

Static Public Member Functions

static bool parse (const std::string &str, scalarRange &range)
 Construct by parsing string content. More...
 
static scalarRange parse (const std::string &str)
 Construct by parsing string content. More...
 
static constexpr scalarRange ge (const scalar minVal) noexcept
 A greater-equals bound. More...
 
static constexpr scalarRange gt (const scalar minVal) noexcept
 A greater-than bound. More...
 
static constexpr scalarRange ge0 () noexcept
 A greater-equals zero bound. More...
 
static constexpr scalarRange gt0 () noexcept
 A greater-than zero bound. More...
 
static constexpr scalarRange le (const scalar maxVal) noexcept
 A less-equals bound. More...
 
static constexpr scalarRange lt (const scalar maxVal) noexcept
 A less-than bound. More...
 
static constexpr scalarRange zero_one () noexcept
 A greater-equals 0, less-equals 1 bound. More...
 

Static Public Attributes

static const scalarRange always
 A range that always matches. More...
 

Friends

Ostreamoperator<< (Ostream &os, const scalarRange &range)
 Print information about the range. More...
 

Detailed Description

Scalar bounds to be used as a unary predicate.

The bound can be specified as an "MIN:MAX" range, as a "MIN:" or ":MAX" bound or simply as a single "VALUE".

When defined via the parse() method, the special string "none" can be used to define an empty (inverse) range.

See also
Foam::MinMax Foam::predicates::scalars
Source files

Definition at line 63 of file scalarRange.H.

Member Typedef Documentation

◆ value_type

typedef scalar value_type

Type of values the range contains.

Definition at line 116 of file scalarRange.H.

Constructor & Destructor Documentation

◆ scalarRange() [1/5]

constexpr scalarRange ( )
inlinenoexcept

Construct an empty (inverse, NONE) range - never matches.

Definition at line 36 of file scalarRangeI.H.

Referenced by scalarRange::parse().

Here is the caller graph for this function:

◆ scalarRange() [2/5]

constexpr scalarRange ( const scalar  val)
inlineexplicitnoexcept

Construct an exact value matcher.

Definition at line 42 of file scalarRangeI.H.

◆ scalarRange() [3/5]

scalarRange ( const scalar  minVal,
const scalar  maxVal 
)
inlinenoexcept

Construct a range from min-value to max-value.

Check validity of the range and sets to NONE or EQ if required.

Definition at line 49 of file scalarRangeI.H.

References Foam::equal().

Here is the call graph for this function:

◆ scalarRange() [4/5]

scalarRange ( const MinMax< label > &  range)
explicitnoexcept

Copy construct from a min/max range.

Automatically decides if this is a GE_LE or NONE range

Definition at line 131 of file scalarRange.C.

◆ scalarRange() [5/5]

scalarRange ( const MinMax< scalar > &  range)
explicitnoexcept

Copy construct from a min/max range.

Automatically decides if this is a GE_LE or NONE range

Definition at line 139 of file scalarRange.C.

Member Function Documentation

◆ parse() [1/2]

bool parse ( const std::string &  str,
scalarRange range 
)
static

Construct by parsing string content.

A colon (:) is used as a range marker or when specifying greater-than or less-than bounds.

Note
The special string "none" can be used define an empty (inverse) range
Returns
True if no parse problems were encountered.

Definition at line 39 of file scalarRange.C.

References scalarRange::always, Switch::find(), scalarRange::ge(), Switch::good(), scalarRange::le(), range, and scalarRange::scalarRange().

Here is the call graph for this function:

◆ parse() [2/2]

Foam::scalarRange parse ( const std::string &  str)
static

Construct by parsing string content.

Any parse problems are emitted as information and the returned range is of type empty().

Returns
The parsed range, which is empty() on any problems

Definition at line 116 of file scalarRange.C.

References Foam::endl(), Foam::Info, and range.

Here is the call graph for this function:

◆ ge()

constexpr Foam::scalarRange ge ( const scalar  minVal)
inlinestaticnoexcept

A greater-equals bound.

Definition at line 68 of file scalarRangeI.H.

Referenced by scalarRange::parse().

Here is the caller graph for this function:

◆ gt()

constexpr Foam::scalarRange gt ( const scalar  minVal)
inlinestaticnoexcept

A greater-than bound.

Definition at line 75 of file scalarRangeI.H.

◆ ge0()

constexpr Foam::scalarRange ge0 ( )
inlinestaticnoexcept

A greater-equals zero bound.

Definition at line 82 of file scalarRangeI.H.

◆ gt0()

constexpr Foam::scalarRange gt0 ( )
inlinestaticnoexcept

A greater-than zero bound.

Definition at line 89 of file scalarRangeI.H.

◆ le()

constexpr Foam::scalarRange le ( const scalar  maxVal)
inlinestaticnoexcept

A less-equals bound.

Definition at line 96 of file scalarRangeI.H.

Referenced by scalarRange::parse().

Here is the caller graph for this function:

◆ lt()

constexpr Foam::scalarRange lt ( const scalar  maxVal)
inlinestaticnoexcept

A less-than bound.

Definition at line 102 of file scalarRangeI.H.

◆ zero_one()

constexpr Foam::scalarRange zero_one ( )
inlinestaticnoexcept

A greater-equals 0, less-equals 1 bound.

Definition at line 109 of file scalarRangeI.H.

◆ empty()

bool empty ( ) const
inlinenoexcept

True if range is empty (eg, inverted, NONE)

Definition at line 125 of file scalarRangeI.H.

◆ good()

bool good ( ) const
inlinenoexcept

True if range is non-empty.

Definition at line 131 of file scalarRangeI.H.

Referenced by scalarRange::valid().

Here is the caller graph for this function:

◆ single()

bool single ( ) const
inlinenoexcept

True if the range bounds represent a single value.

Definition at line 137 of file scalarRangeI.H.

◆ min()

scalar min ( ) const
inlinenoexcept

The min value of the range.

Definition at line 242 of file scalarRange.H.

◆ max()

scalar max ( ) const
inlinenoexcept

The max value of the range.

Definition at line 247 of file scalarRange.H.

◆ reset()

void reset ( )
inlinenoexcept

Reset to an empty (inverse, NONE) range.

Definition at line 117 of file scalarRangeI.H.

Referenced by scalarRange::clear().

Here is the caller graph for this function:

◆ clear()

void clear ( )
inlinenoexcept

Same as reset() - reset to an empty (inverse, NONE) range.

Definition at line 257 of file scalarRange.H.

References scalarRange::reset().

Here is the call graph for this function:

◆ value()

Foam::scalar value ( ) const
inline

A representative (average) value for the range.

For GE, LE bounds it is the min/max value, respectively.

Definition at line 143 of file scalarRangeI.H.

Referenced by scalarRange::match(), and scalarRange::operator()().

Here is the caller graph for this function:

◆ contains()

bool contains ( const scalar  val) const
inline

True if the value is matched by the condition.

Definition at line 166 of file scalarRangeI.H.

References Foam::equal().

Referenced by scalarRange::match(), and scalarRange::operator()().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ match()

bool match ( const scalar  value) const
inline

True if the value is matched by the condition.

Definition at line 275 of file scalarRange.H.

References scalarRange::contains(), and scalarRange::value().

Here is the call graph for this function:

◆ operator()()

bool operator() ( const scalar  value) const
inline

For use as a predicate, same as contains(), match()

Definition at line 283 of file scalarRange.H.

References scalarRange::contains(), and scalarRange::value().

Here is the call graph for this function:

◆ operator==()

constexpr bool operator== ( const scalarRange rhs) const
inlinenoexcept

Definition at line 185 of file scalarRangeI.H.

◆ operator!=()

constexpr bool operator!= ( const scalarRange rhs) const
inlinenoexcept

Definition at line 192 of file scalarRangeI.H.

◆ print()

void print ( Ostream os) const

Print information about the range.

Definition at line 149 of file scalarRange.C.

References os().

Here is the call graph for this function:

◆ valid()

bool valid ( ) const
inlinenoexcept

Same as good() or !empty()

Definition at line 307 of file scalarRange.H.

References scalarRange::good().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator<<

Ostream& operator<< ( Ostream os,
const scalarRange range 
)
friend

Print information about the range.

Member Data Documentation

◆ always

const Foam::scalarRange always
static

A range that always matches.

Definition at line 124 of file scalarRange.H.

Referenced by scalarRange::parse().


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