C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy > Class Template Reference

Public Types

typedef IntervalPointType interval_point_t
typedef std::pair< interval_point_t, interval_point_t > interval_t
typedef std::map< interval_point_t, interval_t > interval_map_t
typedef interval_map_t::const_iterator interval_map_citr_t

Public Member Functions

std::size_t size () const
void reset ()
bool in_interval (const interval_point_t point, interval_t &interval) const
bool in_interval (const interval_point_t point) const
bool add_interval (const interval_point_t begin, const interval_point_t end)
bool add_interval (const interval_t interval)

Private Attributes

interval_map_t interval_map_

Detailed Description

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
class exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >

Definition at line 23078 of file exprtk.hpp.

Member Typedef Documentation

◆ interval_map_citr_t

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
typedef interval_map_t::const_iterator exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::interval_map_citr_t

Definition at line 23085 of file exprtk.hpp.

◆ interval_map_t

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
typedef std::map<interval_point_t, interval_t> exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::interval_map_t

Definition at line 23084 of file exprtk.hpp.

◆ interval_point_t

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
typedef IntervalPointType exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::interval_point_t

Definition at line 23082 of file exprtk.hpp.

◆ interval_t

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
typedef std::pair<interval_point_t, interval_point_t> exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::interval_t

Definition at line 23083 of file exprtk.hpp.

Member Function Documentation

◆ add_interval() [1/2]

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
bool exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::add_interval ( const interval_point_t begin,
const interval_point_t end )
inline

Definition at line 23128 of file exprtk.hpp.

23129 {
23130 if ((end <= begin) || in_interval(begin) || in_interval(end))
23131 {
23132 return false;
23133 }
23134
23136
23137 return true;
23138 }
bool in_interval(const interval_point_t point, interval_t &interval) const
Definition exprtk.hpp:23097

Referenced by exprtk::parser< T >::interval_t<>::add_interval().

Here is the caller graph for this function:

◆ add_interval() [2/2]

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
bool exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::add_interval ( const interval_t interval)
inline

Definition at line 23140 of file exprtk.hpp.

23141 {
23142 return add_interval(interval.first, interval.second);
23143 }
bool add_interval(const interval_point_t begin, const interval_point_t end)
Definition exprtk.hpp:23128

◆ in_interval() [1/2]

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
bool exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::in_interval ( const interval_point_t point) const
inline

Definition at line 23122 of file exprtk.hpp.

23123 {
23125 return in_interval(point,interval);
23126 }
std::pair< interval_point_t, interval_point_t > interval_t
Definition exprtk.hpp:23083

◆ in_interval() [2/2]

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
bool exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::in_interval ( const interval_point_t point,
interval_t & interval ) const
inline

Definition at line 23097 of file exprtk.hpp.

23098 {
23100 interval_map_.lower_bound(point):
23101 interval_map_.upper_bound(point);
23102
23103 for (; itr != interval_map_.end(); ++itr)
23104 {
23105 const interval_point_t& begin = itr->second.first;
23106 const interval_point_t& end = itr->second.second;
23107
23109 {
23111 return true;
23112 }
23114 {
23115 break;
23116 }
23117 }
23118
23119 return false;
23120 }
interval_map_t::const_iterator interval_map_citr_t
Definition exprtk.hpp:23085

Referenced by exprtk::parser< T >::interval_t<>::add_interval(), and exprtk::parser< T >::interval_t<>::in_interval().

Here is the caller graph for this function:

◆ reset()

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
void exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::reset ( )
inline

Definition at line 23092 of file exprtk.hpp.

23093 {
23094 interval_map_.clear();
23095 }

◆ size()

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
std::size_t exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::size ( ) const
inline

Definition at line 23087 of file exprtk.hpp.

23088 {
23089 return interval_map_.size();
23090 }

Member Data Documentation

◆ interval_map_

template<typename T>
template<typename IntervalPointType, typename RangePolicy = halfopen_range_policy<IntervalPointType>>
interval_map_t exprtk::parser< T >::interval_container_t< IntervalPointType, RangePolicy >::interval_map_
private

Definition at line 23147 of file exprtk.hpp.


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