![]() |
Rosetta
2020.11
|
IndexRange: Index Range Abstract Base Class. More...
#include <IndexRange.hh>
Public Types | |
typedef std::size_t | size_type |
typedef std::size_t | Size |
Public Member Functions | |
virtual | ~IndexRange () |
Destructor. More... | |
virtual IndexRange & | operator= (int const u_a) |
Upper Index Assignment. More... | |
virtual IndexRange & | operator= (Star const &) |
Unbounded Upper Index Assignment. More... | |
virtual IndexRange & | assign (int const u_a) |
Upper Index Assignment. More... | |
virtual IndexRange & | assign (Star const &) |
Unbounded Upper Index Assignment. More... | |
virtual IndexRange & | assign (int const l_a, int const u_a) |
Index Range Assignment. More... | |
virtual IndexRange & | assign (int const l_a, Star const &) |
Index and Unbounded Upper Index Assignment. More... | |
virtual bool | initialized () const |
Initialized? More... | |
virtual bool | l_initialized () const |
Lower Initialized? More... | |
virtual bool | u_initialized () const |
Upper Initialized? More... | |
virtual bool | legal () const |
Legal? More... | |
virtual bool | bounded () const |
Bounded? More... | |
bool | bounded_value () const |
Bounded? More... | |
virtual bool | unbounded () const |
Unbounded? More... | |
bool | unbounded_value () const |
Unbounded? More... | |
virtual bool | not_unbounded () const |
Not Unbounded? More... | |
virtual bool | positive () const |
Bounded with Positive Size? More... | |
bool | positive_value () const |
Bounded with Positive Size? More... | |
virtual bool | contains (int const i) const |
Contains an Index? More... | |
virtual bool | contains (IndexRange const &I) const |
Contains Another IndexRange? More... | |
virtual bool | intersects (IndexRange const &I) const |
Intersects Another IndexRange? More... | |
int | l () const |
Lower Index. More... | |
int | lz () const |
Lower Index (Zero if Uninitialized) More... | |
int | u () const |
Upper Index. More... | |
int | uz () const |
Upper Index (Zero if Uninitialized) More... | |
size_type | size () const |
Size. More... | |
int | offset (int const i) const |
Offset of an Index. More... | |
virtual IndexRange & | l (int const l_a) |
Lower Index Set. More... | |
virtual IndexRange & | u (int const u_a) |
Upper Index Set. More... | |
virtual IndexRange & | u (Star const &) |
Unbounded Upper Index Set. More... | |
virtual IndexRange & | contain (int const i) |
Expand to Contain an Index. More... | |
virtual IndexRange & | contain (IndexRange const &I) |
Expand to Contain Another IndexRange. More... | |
virtual IndexRange & | intersect (IndexRange const &I) |
Intersect With Another IndexRange. More... | |
virtual IndexRange & | clear () |
Clear. More... | |
Static Public Attributes | |
static size_type const | npos = static_cast< size_type >( -1 ) |
static int const | l_min = -( static_cast< int >( ( static_cast< unsigned int >( -1 ) / 2u ) ) - 1 ) |
static int const | u_max = static_cast< int >( ( static_cast< unsigned int >( -1 ) / 2u ) ) |
Protected Member Functions | |
IndexRange () | |
Default Constructor. More... | |
IndexRange (IndexRange const &I) | |
Copy Constructor. More... | |
IndexRange (int const u_a) | |
Upper Index Constructor. More... | |
IndexRange (Star const &) | |
Unbounded Upper Index Constructor. More... | |
IndexRange (int const l_a, int const u_a) | |
Index Range Constructor. More... | |
IndexRange (int const l_a, Star const &) | |
Index and Unbounded Upper Index Constructor. More... | |
IndexRange & | operator= (IndexRange const &I) |
Copy Assignment. More... | |
bool | legal_static () const |
Legal Static Range? More... | |
virtual Dimension * | l_dim_clone () const |
Lower Dimension Clone. More... | |
virtual Dimension * | u_dim_clone () const |
Upper Dimension Clone. More... | |
void | swap (IndexRange &I) |
Swap. More... | |
Private Attributes | |
int | l_ |
Lower index. More... | |
int | u_ |
Upper index. More... | |
size_type | size_ |
Size (npos iff unbounded) More... | |
Friends | |
class | StaticIndexRange |
class | DynamicIndexRange |
bool | operator== (IndexRange const &I, IndexRange const &J) |
IndexRange == IndexRange. More... | |
bool | operator!= (IndexRange const &I, IndexRange const &J) |
IndexRange != IndexRange. More... | |
bool | operator< (IndexRange const &I, IndexRange const &J) |
IndexRange < IndexRange. More... | |
bool | operator<= (IndexRange const &I, IndexRange const &J) |
IndexRange <= IndexRange. More... | |
bool | operator> (IndexRange const &I, IndexRange const &J) |
IndexRange > IndexRange. More... | |
bool | operator>= (IndexRange const &I, IndexRange const &J) |
IndexRange >= IndexRange. More... | |
std::istream & | operator>> (std::istream &stream, IndexRange &I) |
Stream Input. More... | |
std::ostream & | operator<< (std::ostream &stream, IndexRange const &I) |
Stream Output. More... | |
IndexRange: Index Range Abstract Base Class.
typedef std::size_t ObjexxFCL::IndexRange::Size |
typedef std::size_t ObjexxFCL::IndexRange::size_type |
|
inlineprotected |
Default Constructor.
|
inlineprotected |
Copy Constructor.
|
inlineprotected |
Upper Index Constructor.
|
inlineprotected |
Unbounded Upper Index Constructor.
Index Range Constructor.
Index and Unbounded Upper Index Constructor.
|
inlinevirtual |
Destructor.
|
inlinevirtual |
Upper Index Assignment.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
Referenced by ObjexxFCL::StaticIndexRange::assign(), ObjexxFCL::DynamicIndexRange::assign(), ObjexxFCL::DynamicIndexRange::assign_no_notify(), and ObjexxFCL::operator>>().
|
inlinevirtual |
Unbounded Upper Index Assignment.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlinevirtual |
Index Range Assignment.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlinevirtual |
Index and Unbounded Upper Index Assignment.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlinevirtual |
Bounded?
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by ObjexxFCL::DynamicIndexRange::bounded(), contain(), ObjexxFCL::DynamicIndexRange::contain(), and ObjexxFCL::DynamicIndexRange::contain_nic().
|
inline |
Bounded?
Referenced by ObjexxFCL::FArray1A< typename >::dimension_argument(), ObjexxFCL::FArray2A< typename >::dimension_argument(), ObjexxFCL::FArray3A< typename >::dimension_argument(), ObjexxFCL::FArray4A< typename >::dimension_argument(), ObjexxFCL::FArray5A< typename >::dimension_argument(), ObjexxFCL::FArray6A< typename >::dimension_argument(), ObjexxFCL::FArray1P< typename >::dimension_proxy(), ObjexxFCL::FArray2P< typename >::dimension_proxy(), ObjexxFCL::FArray3P< typename >::dimension_proxy(), ObjexxFCL::FArray4P< typename >::dimension_proxy(), ObjexxFCL::FArray5P< typename >::dimension_proxy(), and ObjexxFCL::FArray6P< typename >::dimension_proxy().
|
inlinevirtual |
|
inlinevirtual |
Expand to Contain an Index.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
Referenced by ObjexxFCL::StaticIndexRange::contain().
|
virtual |
Expand to Contain Another IndexRange.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
References bounded(), initialized(), l_, npos, positive(), size_, and u_.
Contains an Index?
Reimplemented in ObjexxFCL::DynamicIndexRange.
References l_, npos, size_, and u_.
Referenced by ObjexxFCL::FArray1A< typename >::a(), ObjexxFCL::FArray2A< typename >::a(), ObjexxFCL::FArray3A< typename >::a(), ObjexxFCL::FArray4A< typename >::a(), ObjexxFCL::FArray5A< typename >::a(), ObjexxFCL::FArray6A< typename >::a(), ObjexxFCL::FArray1A< typename >::contains(), ObjexxFCL::FArray2A< typename >::contains(), ObjexxFCL::FArray3A< typename >::contains(), ObjexxFCL::FArray4A< typename >::contains(), ObjexxFCL::FArray5A< typename >::contains(), ObjexxFCL::FArray6A< typename >::contains(), ObjexxFCL::DynamicIndexRange::contains(), ObjexxFCL::FArray1A< typename >::operator()(), ObjexxFCL::FArray2A< typename >::operator()(), ObjexxFCL::FArray3A< typename >::operator()(), ObjexxFCL::FArray4A< typename >::operator()(), ObjexxFCL::FArray5A< typename >::operator()(), and ObjexxFCL::FArray6A< typename >::operator()().
|
virtual |
Contains Another IndexRange?
Reimplemented in ObjexxFCL::DynamicIndexRange.
References initialized(), l_, and u_.
|
inlinevirtual |
Initialized?
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by ObjexxFCL::StaticIndexRange::assign(), contain(), ObjexxFCL::DynamicIndexRange::contain(), ObjexxFCL::DynamicIndexRange::contain_nic(), contains(), intersect(), ObjexxFCL::DynamicIndexRange::intersect(), ObjexxFCL::DynamicIndexRange::intersect_nic(), intersects(), ObjexxFCL::StaticIndexRange::operator=(), ObjexxFCL::operator==(), and ObjexxFCL::StaticIndexRange::StaticIndexRange().
|
virtual |
Intersect With Another IndexRange.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
References initialized(), intersects(), l_, size_, and u_.
Referenced by ObjexxFCL::StaticIndexRange::intersect().
|
virtual |
Intersects Another IndexRange?
Reimplemented in ObjexxFCL::DynamicIndexRange.
References initialized(), l_, and u_.
Referenced by intersect(), ObjexxFCL::DynamicIndexRange::intersect(), ObjexxFCL::DynamicIndexRange::intersect_nic(), and ObjexxFCL::DynamicIndexRange::intersects().
|
inline |
Lower Index.
References l_, and l_initialized().
Referenced by ObjexxFCL::StaticIndexRange::l(), ObjexxFCL::DynamicIndexRange::l(), ObjexxFCL::DynamicIndexRange::l_no_notify(), and ObjexxFCL::DynamicIndexRange::update().
|
inlinevirtual |
Lower Index Set.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlineprotectedvirtual |
Lower Dimension Clone.
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by ObjexxFCL::DynamicIndexRange::assign(), ObjexxFCL::DynamicIndexRange::assign_no_notify(), and ObjexxFCL::DynamicIndexRange::operator=().
|
inlinevirtual |
|
inlinevirtual |
|
inlineprotected |
Legal Static Range?
Referenced by ObjexxFCL::StaticIndexRange::assign(), ObjexxFCL::DynamicIndexRange::assign(), ObjexxFCL::DynamicIndexRange::assign_no_notify(), ObjexxFCL::StaticIndexRange::assign_value_of(), ObjexxFCL::StaticIndexRange::contain(), ObjexxFCL::DynamicIndexRange::DynamicIndexRange(), ObjexxFCL::StaticIndexRange::intersect(), ObjexxFCL::StaticIndexRange::l(), ObjexxFCL::StaticIndexRange::operator=(), ObjexxFCL::DynamicIndexRange::operator=(), ObjexxFCL::StaticIndexRange::StaticIndexRange(), ObjexxFCL::StaticIndexRange::swap(), and ObjexxFCL::StaticIndexRange::u().
|
inline |
Lower Index (Zero if Uninitialized)
References l_.
Referenced by ObjexxFCL::FArray1A< typename >::dimension_argument(), ObjexxFCL::FArray2A< typename >::dimension_argument(), ObjexxFCL::FArray3A< typename >::dimension_argument(), ObjexxFCL::FArray4A< typename >::dimension_argument(), ObjexxFCL::FArray5A< typename >::dimension_argument(), ObjexxFCL::FArray6A< typename >::dimension_argument(), ObjexxFCL::FArray1P< typename >::dimension_proxy(), ObjexxFCL::FArray2P< typename >::dimension_proxy(), ObjexxFCL::FArray3P< typename >::dimension_proxy(), ObjexxFCL::FArray4P< typename >::dimension_proxy(), ObjexxFCL::FArray5P< typename >::dimension_proxy(), ObjexxFCL::FArray6P< typename >::dimension_proxy(), ObjexxFCL::FArray1D< double >::dimension_real(), ObjexxFCL::KeyFArray1D< typename >::dimension_real(), ObjexxFCL::FArray2D< double >::dimension_real(), ObjexxFCL::FArray3D< typename >::dimension_real(), ObjexxFCL::KeyFArray2D< typename >::dimension_real(), ObjexxFCL::KeyFArray3D< typename >::dimension_real(), ObjexxFCL::FArray4D< typename >::dimension_real(), ObjexxFCL::KeyFArray4D< typename >::dimension_real(), ObjexxFCL::FArray5D< typename >::dimension_real(), ObjexxFCL::KeyFArray5D< typename >::dimension_real(), ObjexxFCL::FArray6D< typename >::dimension_real(), ObjexxFCL::KeyFArray6D< typename >::dimension_real(), ObjexxFCL::FArray1D< double >::setup_real(), ObjexxFCL::KeyFArray1D< typename >::setup_real(), ObjexxFCL::FArray2D< double >::setup_real(), ObjexxFCL::FArray3D< typename >::setup_real(), ObjexxFCL::KeyFArray3D< typename >::setup_real(), ObjexxFCL::KeyFArray2D< typename >::setup_real(), ObjexxFCL::FArray4D< typename >::setup_real(), ObjexxFCL::KeyFArray4D< typename >::setup_real(), ObjexxFCL::FArray5D< typename >::setup_real(), ObjexxFCL::KeyFArray5D< typename >::setup_real(), ObjexxFCL::FArray6D< typename >::setup_real(), and ObjexxFCL::KeyFArray6D< typename >::setup_real().
|
inlinevirtual |
Not Unbounded?
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by ObjexxFCL::DynamicIndexRange::not_unbounded().
Offset of an Index.
References l_, and l_initialized().
|
inlineprotected |
|
inlinevirtual |
Upper Index Assignment.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlinevirtual |
Unbounded Upper Index Assignment.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlinevirtual |
Bounded with Positive Size?
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by contain(), ObjexxFCL::operator<(), ObjexxFCL::operator<=(), ObjexxFCL::operator>(), ObjexxFCL::operator>=(), and ObjexxFCL::DynamicIndexRange::positive().
|
inline |
|
inline |
Size.
References size_.
Referenced by ObjexxFCL::FArray1A< typename >::dimension_argument(), ObjexxFCL::FArray2A< typename >::dimension_argument(), ObjexxFCL::FArray3A< typename >::dimension_argument(), ObjexxFCL::FArray4A< typename >::dimension_argument(), ObjexxFCL::FArray5A< typename >::dimension_argument(), ObjexxFCL::FArray6A< typename >::dimension_argument(), ObjexxFCL::FArray1P< typename >::dimension_proxy(), ObjexxFCL::FArray2P< typename >::dimension_proxy(), ObjexxFCL::FArray3P< typename >::dimension_proxy(), ObjexxFCL::FArray4P< typename >::dimension_proxy(), ObjexxFCL::FArray5P< typename >::dimension_proxy(), ObjexxFCL::FArray6P< typename >::dimension_proxy(), ObjexxFCL::FArray2D< double >::dimension_real(), ObjexxFCL::FArray3D< typename >::dimension_real(), ObjexxFCL::KeyFArray2D< typename >::dimension_real(), ObjexxFCL::KeyFArray3D< typename >::dimension_real(), ObjexxFCL::FArray4D< typename >::dimension_real(), ObjexxFCL::KeyFArray4D< typename >::dimension_real(), ObjexxFCL::FArray5D< typename >::dimension_real(), ObjexxFCL::KeyFArray5D< typename >::dimension_real(), ObjexxFCL::FArray6D< typename >::dimension_real(), ObjexxFCL::KeyFArray6D< typename >::dimension_real(), numeric::fourier::fft(), numeric::fourier::fft2(), numeric::fourier::ifft(), numeric::fourier::ifft2(), ObjexxFCL::FArray2D< double >::setup_real(), ObjexxFCL::FArray3D< typename >::setup_real(), ObjexxFCL::KeyFArray3D< typename >::setup_real(), ObjexxFCL::KeyFArray2D< typename >::setup_real(), ObjexxFCL::FArray4D< typename >::setup_real(), ObjexxFCL::KeyFArray4D< typename >::setup_real(), ObjexxFCL::FArray5D< typename >::setup_real(), ObjexxFCL::KeyFArray5D< typename >::setup_real(), ObjexxFCL::FArray6D< typename >::setup_real(), ObjexxFCL::KeyFArray6D< typename >::setup_real(), ObjexxFCL::FArray1D< double >::size1(), ObjexxFCL::KeyFArray1D< typename >::size1(), ObjexxFCL::FArray1A< typename >::size1(), ObjexxFCL::FArray1P< typename >::size1(), ObjexxFCL::FArray2D< double >::size2(), ObjexxFCL::KeyFArray2D< typename >::size2(), ObjexxFCL::FArray2A< typename >::size2(), ObjexxFCL::FArray2P< typename >::size2(), ObjexxFCL::FArray3D< typename >::size3(), ObjexxFCL::KeyFArray3D< typename >::size3(), ObjexxFCL::FArray3A< typename >::size3(), ObjexxFCL::FArray3P< typename >::size3(), ObjexxFCL::FArray4D< typename >::size4(), ObjexxFCL::KeyFArray4D< typename >::size4(), ObjexxFCL::FArray4A< typename >::size4(), ObjexxFCL::FArray4P< typename >::size4(), ObjexxFCL::FArray5D< typename >::size5(), ObjexxFCL::KeyFArray5D< typename >::size5(), ObjexxFCL::FArray5P< typename >::size5(), ObjexxFCL::FArray5A< typename >::size5(), ObjexxFCL::FArray6D< typename >::size6(), ObjexxFCL::KeyFArray6D< typename >::size6(), ObjexxFCL::FArray6P< typename >::size6(), ObjexxFCL::FArray6A< typename >::size6(), and ObjexxFCL::FArray< T >::size_of().
|
inlineprotected |
Swap.
References l_, size_, swap(), and u_.
Referenced by ObjexxFCL::StaticIndexRange::swap(), ObjexxFCL::DynamicIndexRange::swap(), and ObjexxFCL::DynamicIndexRange::swap_no_notify().
|
inline |
Upper Index.
References u_, and u_initialized().
Referenced by ObjexxFCL::DynamicIndexRange::intersect_nic(), ObjexxFCL::StaticIndexRange::u(), ObjexxFCL::DynamicIndexRange::u(), ObjexxFCL::DynamicIndexRange::u_no_notify(), and ObjexxFCL::DynamicIndexRange::update().
|
inlinevirtual |
Upper Index Set.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlinevirtual |
Unbounded Upper Index Set.
Reimplemented in ObjexxFCL::DynamicIndexRange, and ObjexxFCL::StaticIndexRange.
|
inlineprotectedvirtual |
Upper Dimension Clone.
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by ObjexxFCL::DynamicIndexRange::assign(), ObjexxFCL::DynamicIndexRange::assign_no_notify(), and ObjexxFCL::DynamicIndexRange::operator=().
|
inlinevirtual |
|
inlinevirtual |
Unbounded?
Reimplemented in ObjexxFCL::DynamicIndexRange.
Referenced by ObjexxFCL::DynamicIndexRange::unbounded().
|
friend |
|
friend |
IndexRange != IndexRange.
|
friend |
|
friend |
Stream Output.
|
friend |
IndexRange <= IndexRange.
|
friend |
IndexRange == IndexRange.
|
friend |
|
friend |
IndexRange >= IndexRange.
|
friend |
Stream Input.
|
friend |
|
private |
Lower index.
Referenced by assign(), ObjexxFCL::StaticIndexRange::assign_value_of(), bounded(), bounded_value(), clear(), contain(), ObjexxFCL::DynamicIndexRange::contain(), ObjexxFCL::DynamicIndexRange::contain_nic(), contains(), ObjexxFCL::DynamicIndexRange::contains(), intersect(), ObjexxFCL::DynamicIndexRange::intersect(), ObjexxFCL::DynamicIndexRange::intersect_nic(), intersects(), l(), ObjexxFCL::StaticIndexRange::l(), legal(), ObjexxFCL::DynamicIndexRange::legal(), ObjexxFCL::DynamicIndexRange::legal_dynamic(), legal_static(), lz(), not_unbounded(), offset(), ObjexxFCL::StaticIndexRange::offset(), ObjexxFCL::operator<(), ObjexxFCL::operator<<(), ObjexxFCL::operator<=(), operator=(), ObjexxFCL::operator==(), ObjexxFCL::operator>(), ObjexxFCL::operator>=(), positive(), positive_value(), swap(), u(), unbounded(), and unbounded_value().
|
static |
Referenced by assign(), contain(), contains(), ObjexxFCL::DynamicIndexRange::contains(), operator=(), and u().
|
private |
Size (npos iff unbounded)
Referenced by assign(), ObjexxFCL::StaticIndexRange::assign_value_of(), clear(), contain(), contains(), ObjexxFCL::DynamicIndexRange::contains(), intersect(), l(), operator=(), size(), ObjexxFCL::DynamicIndexRange::size_dynamic(), swap(), and u().
|
private |
Upper index.
Referenced by assign(), ObjexxFCL::StaticIndexRange::assign_value_of(), bounded(), bounded_value(), clear(), contain(), ObjexxFCL::DynamicIndexRange::contain(), ObjexxFCL::DynamicIndexRange::contain_nic(), contains(), ObjexxFCL::DynamicIndexRange::contains(), intersect(), ObjexxFCL::DynamicIndexRange::intersect(), ObjexxFCL::DynamicIndexRange::intersect_nic(), intersects(), l(), legal(), ObjexxFCL::DynamicIndexRange::legal(), ObjexxFCL::DynamicIndexRange::legal_dynamic(), legal_static(), not_unbounded(), ObjexxFCL::operator<(), ObjexxFCL::operator<<(), ObjexxFCL::operator<=(), operator=(), ObjexxFCL::operator==(), ObjexxFCL::operator>(), ObjexxFCL::operator>=(), positive(), positive_value(), swap(), u(), ObjexxFCL::StaticIndexRange::u(), unbounded(), unbounded_value(), and uz().
|
static |