scalars Class Reference

A list of unary predicates (tests) on scalars. Includes a number of standard comparison predicates (eg, "less", "greater", ...) More...

Inheritance diagram for scalars:
[legend]
Collaboration diagram for scalars:
[legend]

Public Types

enum  opType {
  EQUAL, NOT_EQUAL, LESS, LESS_EQ,
  GREATER, GREATER_EQ, ALWAYS, NEVER
}
 Enumerations for some standard comparison predicates. More...
 
typedef std::function< bool(Foam::scalar)> unary
 The unary function type for testing a scalar. More...
 
- Public Types inherited from List< std::function< bool(Foam::scalar)> >
typedef SubList< std::function< bool(Foam::scalar)> > subList
 Declare type of subList. More...
 

Public Member Functions

 scalars (std::initializer_list< std::pair< word, scalar >> entries)
 Construct from an initializer list of (opName opValue) tuples. More...
 
 scalars (const UList< Tuple2< word, scalar >> &entries)
 Copy construct from a list of (opName opValue) tuples. More...
 
 scalars (Istream &is)
 Construct from Istream, from list of (opName opValue) tuples. More...
 
 ~scalars ()=default
 Destructor. More...
 
label find (const scalar value, label pos=0) const
 Index of the first match for the value. More...
 
label rfind (const scalar value, label pos=-1) const
 Index of the last match for the value. More...
 
bool found (const scalar value, label pos=0) const
 True if the value matches any in the list. More...
 
bool match (const scalar &value) const
 Match any condition in the list. More...
 
bool matchAny (const scalar &value) const
 Match any condition in the list. More...
 
bool matchAll (const scalar &value) const
 Match all conditions in the list. More...
 
labelList matching (const scalar &value) const
 Extract list indices for all matches. More...
 
labelList matching (const UList< scalar > &input, const bool invert=false) const
 Extract list indices for all matches. More...
 
bool operator() (const scalar &value) const
 Identical to found(), match(), for use as a predicate. More...
 
- Public Member Functions inherited from List< std::function< bool(Foam::scalar)> >
constexpr List () noexcept
 Default construct. More...
 
 List (const label len)
 Construct with given size. More...
 
 List (const label len, const std::function< bool(Foam::scalar)> &val)
 Construct with given size and value for all elements. More...
 
 List (const label len, const Foam::zero)
 Construct with given size initializing all elements to zero. More...
 
 List (const Foam::one, const std::function< bool(Foam::scalar)> &val)
 Construct with length=1, copying the value as the only content. More...
 
 List (const Foam::one, std::function< bool(Foam::scalar)> &&val)
 Construct with length=1, moving the value as the only content. More...
 
 List (const Foam::one, const Foam::zero)
 Construct with length=1, initializing content to zero. More...
 
 List (const List< std::function< bool(Foam::scalar)> > &a)
 Copy construct from list. More...
 
 List (const UList< std::function< bool(Foam::scalar)> > &a)
 Copy construct contents from list. More...
 
 List (List< std::function< bool(Foam::scalar)> > &a, bool reuse)
 Construct as copy or re-use as specified. More...
 
 List (const UList< std::function< bool(Foam::scalar)> > &list, const labelUList &indices)
 Copy construct subset of list. More...
 
 List (const UList< std::function< bool(Foam::scalar)> > &list, const FixedList< label, N > &indices)
 Copy construct subset of list. More...
 
 List (const FixedList< std::function< bool(Foam::scalar)>, N > &list)
 Construct as copy of FixedList<T, N> More...
 
 List (const PtrList< std::function< bool(Foam::scalar)> > &list)
 Construct as copy of PtrList<T> More...
 
 List (const SLList< std::function< bool(Foam::scalar)> > &list)
 Construct as copy of SLList<T> More...
 
 List (const IndirectListBase< std::function< bool(Foam::scalar)>, Addr > &list)
 Construct as copy of IndirectList contents. More...
 
 List (std::initializer_list< std::function< bool(Foam::scalar)> > list)
 Construct from an initializer list. More...
 
 List (List< std::function< bool(Foam::scalar)> > &&list)
 Move construct from List. More...
 
 List (DynamicList< std::function< bool(Foam::scalar)>, SizeMin > &&list)
 Move construct from DynamicList. More...
 
 List (SortableList< std::function< bool(Foam::scalar)> > &&list)
 Move construct from SortableList. More...
 
 List (SLList< std::function< bool(Foam::scalar)> > &&list)
 Move construct from SLList. More...
 
 List (Istream &is)
 Construct from Istream. More...
 
autoPtr< List< std::function< bool(Foam::scalar)> > > clone () const
 Clone. More...
 
 ~List ()
 Destructor. More...
 
void clear ()
 Clear the list, i.e. set size to zero. More...
 
void resize (const label len)
 Adjust allocated size of list. More...
 
void resize (const label len, const std::function< bool(Foam::scalar)> &val)
 Adjust allocated size of list and set val for new elements. More...
 
void resize (const label newLen)
 
void resize_nocopy (const label len)
 Adjust allocated size of list without necessarily. More...
 
void setSize (const label n)
 Alias for resize() More...
 
void setSize (const label n, const std::function< bool(Foam::scalar)> &val)
 Alias for resize() More...
 
void append (const std::function< bool(Foam::scalar)> &val)
 Append an element at the end of the list. More...
 
void append (std::function< bool(Foam::scalar)> &&val)
 Move append an element at the end of the list. More...
 
void append (const UList< std::function< bool(Foam::scalar)> > &list)
 Append a List to the end of this list. More...
 
void append (const IndirectListBase< std::function< bool(Foam::scalar)>, Addr > &list)
 Append IndirectList contents at the end of this list. More...
 
label appendUniq (const std::function< bool(Foam::scalar)> &val)
 Append an element if not already in the list. More...
 
void transfer (List< std::function< bool(Foam::scalar)> > &list)
 
void transfer (DynamicList< std::function< bool(Foam::scalar)>, SizeMin > &list)
 
void transfer (SortableList< std::function< bool(Foam::scalar)> > &list)
 
std::function< bool(Foam::scalar)> & newElmt (const label i)
 
void operator= (const UList< std::function< bool(Foam::scalar)> > &a)
 Assignment to UList operator. Takes linear time. More...
 
void operator= (const List< std::function< bool(Foam::scalar)> > &list)
 Assignment operator. Takes linear time. More...
 
void operator= (const SLList< std::function< bool(Foam::scalar)> > &list)
 Assignment to SLList operator. Takes linear time. More...
 
void operator= (const IndirectListBase< std::function< bool(Foam::scalar)>, Addr > &list)
 Assignment from IndirectList. Takes linear time. More...
 
void operator= (const FixedList< std::function< bool(Foam::scalar)>, N > &list)
 Copy assignment from FixedList. More...
 
void operator= (std::initializer_list< std::function< bool(Foam::scalar)> > list)
 Assignment to an initializer list. More...
 
void operator= (const std::function< bool(Foam::scalar)> &val)
 Assignment of all entries to the given value. More...
 
void operator= (const Foam::zero)
 Assignment of all entries to zero. More...
 
void operator= (List< std::function< bool(Foam::scalar)> > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (DynamicList< std::function< bool(Foam::scalar)>, SizeMin > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (SortableList< std::function< bool(Foam::scalar)> > &&list)
 Move assignment. Takes constant time. More...
 
void operator= (SLList< std::function< bool(Foam::scalar)> > &&list)
 Move assignment. Takes constant time. More...
 
IstreamreadList (Istream &is)
 Read List from Istream, discarding contents of existing List. More...
 
IstreamreadList (Istream &is)
 
IstreamreadList (Istream &is)
 
void shallowCopy (const UList< std::function< bool(Foam::scalar)> > &)=delete
 No shallowCopy permitted. More...
 
std::enable_if< std::is_same< bool, TypeT >::value, bool >::type set (const label i, bool val=true)
 A bitSet::set() method for a list of bool. More...
 

Static Public Member Functions

static unary equalOp (const scalar opVal, const scalar tol=VSMALL)
 Compare for equality, with specified tolerance (non-negative) More...
 
static unary notEqualOp (const scalar opVal, const scalar tol=VSMALL)
 Compare for inequality, with specified tolerance (non-negative) More...
 
static unary lessOp (const scalar opVal)
 Test if value is 'less' than prescribed. More...
 
static unary lessEqOp (const scalar opVal)
 Test if value is 'less_equal' to prescribed. More...
 
static unary greaterOp (const scalar opVal)
 
static unary greaterEqOp (const scalar opVal)
 Test if value is 'greater_equal' to prescribed. More...
 
static unary trueOp ()
 Predicate that always returns true. More...
 
static unary falseOp ()
 Predicate that always returns false. More...
 
static unary andOp (const unary &test1, const unary &test2)
 Combine unary tests as an AND operation. More...
 
static unary orOp (const unary &test1, const unary &test2)
 Combine unary tests as an OR operation. More...
 
static unary operation (const opType op, const scalar opVal, const scalar tol=VSMALL)
 Standard comparison method by type. More...
 
static unary operation (const word &opName, const scalar opVal, const scalar tol=VSMALL)
 Standard comparison method by name. More...
 
static unary operation (const Tuple2< word, scalar > &op, const scalar tol=VSMALL)
 Standard comparison method by (name, value) More...
 
static unary operation (const std::pair< word, scalar > &op, const scalar tol=VSMALL)
 Standard comparison method by (name, value) More...
 
- Static Public Member Functions inherited from List< std::function< bool(Foam::scalar)> >
static const List< std::function< bool(Foam::scalar)> > & null ()
 Return a null List. More...
 

Static Public Attributes

static const Enum< opTypeopNames
 Names for the opType enumeration. More...
 

Detailed Description

A list of unary predicates (tests) on scalars. Includes a number of standard comparison predicates (eg, "less", "greater", ...)

Note
This class is still subject to larger changes (2018-11) as it matures.
See also
Foam::scalarRange, Foam::scalarRanges
Source files

Definition at line 66 of file scalarPredicates.H.

Member Typedef Documentation

◆ unary

typedef std::function<bool(Foam::scalar)> unary

The unary function type for testing a scalar.

Definition at line 75 of file scalarPredicates.H.

Member Enumeration Documentation

◆ opType

enum opType

Enumerations for some standard comparison predicates.

Enumerator
EQUAL 

"eq", "equal"

NOT_EQUAL 

"neq", "notEqual"

LESS 

"lt", "less"

LESS_EQ 

"le", "lessEq"

GREATER 

"gt", "greater"

GREATER_EQ 

"ge", "greaterEq"

ALWAYS 

Always matches.

NEVER 

Never matches.

Definition at line 78 of file scalarPredicates.H.

Constructor & Destructor Documentation

◆ scalars() [1/3]

scalars ( std::initializer_list< std::pair< word, scalar >>  entries)
explicit

Construct from an initializer list of (opName opValue) tuples.

Definition at line 182 of file scalarPredicates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::hasBadEntries(), scalars::operation(), and Foam::printBadEntries().

Here is the call graph for this function:

◆ scalars() [2/3]

scalars ( const UList< Tuple2< word, scalar >> &  entries)
explicit

Copy construct from a list of (opName opValue) tuples.

Definition at line 213 of file scalarPredicates.C.

References Foam::exit(), Foam::FatalError, FatalErrorInFunction, Foam::hasBadEntries(), scalars::operation(), and Foam::printBadEntries().

Here is the call graph for this function:

◆ scalars() [3/3]

scalars ( Istream is)
explicit

Construct from Istream, from list of (opName opValue) tuples.

Definition at line 243 of file scalarPredicates.C.

◆ ~scalars()

~scalars ( )
default

Destructor.

Member Function Documentation

◆ equalOp()

static unary equalOp ( const scalar  opVal,
const scalar  tol = VSMALL 
)
inlinestatic

Compare for equality, with specified tolerance (non-negative)

Definition at line 98 of file scalarPredicates.H.

References Foam::mag().

Here is the call graph for this function:

◆ notEqualOp()

static unary notEqualOp ( const scalar  opVal,
const scalar  tol = VSMALL 
)
inlinestatic

Compare for inequality, with specified tolerance (non-negative)

Definition at line 112 of file scalarPredicates.H.

References Foam::mag().

Here is the call graph for this function:

◆ lessOp()

static unary lessOp ( const scalar  opVal)
inlinestatic

Test if value is 'less' than prescribed.

Definition at line 125 of file scalarPredicates.H.

◆ lessEqOp()

static unary lessEqOp ( const scalar  opVal)
inlinestatic

Test if value is 'less_equal' to prescribed.

Definition at line 135 of file scalarPredicates.H.

◆ greaterOp()

static unary greaterOp ( const scalar  opVal)
inlinestatic

Test if value is 'greater' than prescribed Compare scalar values for inequality

Definition at line 146 of file scalarPredicates.H.

◆ greaterEqOp()

static unary greaterEqOp ( const scalar  opVal)
inlinestatic

Test if value is 'greater_equal' to prescribed.

Definition at line 156 of file scalarPredicates.H.

◆ trueOp()

static unary trueOp ( )
inlinestatic

Predicate that always returns true.

Definition at line 168 of file scalarPredicates.H.

◆ falseOp()

static unary falseOp ( )
inlinestatic

Predicate that always returns false.

Definition at line 174 of file scalarPredicates.H.

◆ andOp()

static unary andOp ( const unary test1,
const unary test2 
)
inlinestatic

Combine unary tests as an AND operation.

Definition at line 183 of file scalarPredicates.H.

Referenced by parcelSelection::calculateFilter().

Here is the caller graph for this function:

◆ orOp()

static unary orOp ( const unary test1,
const unary test2 
)
inlinestatic

Combine unary tests as an OR operation.

Definition at line 192 of file scalarPredicates.H.

Referenced by parcelSelection::calculateFilter().

Here is the caller graph for this function:

◆ operation() [1/4]

static unary operation ( const opType  op,
const scalar  opVal,
const scalar  tol = VSMALL 
)
static

Standard comparison method by type.

Referenced by parcelSelection::calculateFilter(), Foam::operator>>(), and scalars::scalars().

Here is the caller graph for this function:

◆ operation() [2/4]

Foam::predicates::scalars::unary operation ( const word opName,
const scalar  opVal,
const scalar  tol = VSMALL 
)
inlinestatic

Standard comparison method by name.

Definition at line 31 of file scalarPredicatesI.H.

◆ operation() [3/4]

Foam::predicates::scalars::unary operation ( const Tuple2< word, scalar > &  op,
const scalar  tol = VSMALL 
)
inlinestatic

Standard comparison method by (name, value)

Definition at line 42 of file scalarPredicatesI.H.

References Tuple2< T1, T2 >::first(), and Tuple2< T1, T2 >::second().

Here is the call graph for this function:

◆ operation() [4/4]

Foam::predicates::scalars::unary operation ( const std::pair< word, scalar > &  op,
const scalar  tol = VSMALL 
)
inlinestatic

Standard comparison method by (name, value)

Definition at line 52 of file scalarPredicatesI.H.

◆ find()

Foam::label find ( const scalar  value,
label  pos = 0 
) const

Index of the first match for the value.

Any occurrences before the start pos are ignored. Linear search.

Returns
position in list or -1 if not found.

Definition at line 254 of file scalarPredicates.C.

References Foam::pos().

Here is the call graph for this function:

◆ rfind()

Foam::label rfind ( const scalar  value,
label  pos = -1 
) const

Index of the last match for the value.

Any occurrences after the end pos are ignored. Linear search.

Returns
position in list or -1 if not found.

Definition at line 281 of file scalarPredicates.C.

References Foam::pos().

Here is the call graph for this function:

◆ found()

bool found ( const scalar  value,
label  pos = 0 
) const
inline

True if the value matches any in the list.

Any occurrences before the start pos are ignored. Linear search.

Returns
true if found.

Definition at line 64 of file scalarPredicatesI.H.

References Foam::ListOps::find(), and Foam::pos().

Here is the call graph for this function:

◆ match()

bool match ( const scalar &  value) const
inline

Match any condition in the list.

Returns
True if the value matches any condition in the list.

Definition at line 73 of file scalarPredicatesI.H.

References scalars::matchAny().

Here is the call graph for this function:

◆ matchAny()

bool matchAny ( const scalar &  value) const
inline

Match any condition in the list.

Returns
True if the value matches any condition in the list.

Definition at line 79 of file scalarPredicatesI.H.

Referenced by scalars::match().

Here is the caller graph for this function:

◆ matchAll()

bool matchAll ( const scalar &  value) const
inline

Match all conditions in the list.

Returns
True if the value matches all conditions in the list.

Definition at line 93 of file scalarPredicatesI.H.

◆ matching() [1/2]

Foam::labelList matching ( const scalar &  value) const
inline

Extract list indices for all matches.

Returns
The locations (indices) in the input list where match() is true

Definition at line 108 of file scalarPredicatesI.H.

References Foam::BitOps::count(), and List< T >::resize().

Here is the call graph for this function:

◆ matching() [2/2]

Foam::labelList matching ( const UList< scalar > &  input,
const bool  invert = false 
) const
inline

Extract list indices for all matches.

Parameters
inputA list of scalar inputs to test
invertinvert the matching logic
Returns
The locations (indices) in the input list where match() is true

Definition at line 131 of file scalarPredicatesI.H.

References Foam::BitOps::count(), Foam::input(), Foam::invert(), Foam::stringOps::match(), and List< T >::resize().

Here is the call graph for this function:

◆ operator()()

bool operator() ( const scalar &  value) const
inline

Identical to found(), match(), for use as a predicate.

Definition at line 157 of file scalarPredicatesI.H.

References found.

Member Data Documentation

◆ opNames

Names for the opType enumeration.

Definition at line 91 of file scalarPredicates.H.

Referenced by Foam::hasBadEntries(), and Foam::printBadEntries().


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