Teuchos Package Browser (Single Doxygen Collection) Version of the Day
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | Related Functions
Teuchos::Range1D Class Reference

Subregion Index Range Class. More...

#include <Teuchos_Range1D.hpp>

List of all members.

Public Types

enum  EInvalidRange { INVALID }
  More...
typedef Teuchos_Ordinal Index
 Deprecated.
typedef Teuchos_Ordinal Ordinal
 Deprecated.

Public Member Functions

 Range1D ()
 Constructs a range representing the entire range.
 Range1D (EInvalidRange)
 Range1D (Ordinal lbound, Ordinal ubound)
 Constructs a range that represents the range [lbound, ubound].
bool full_range () const
Ordinal lbound () const
 Return lower bound of the range.
Ordinal ubound () const
 Return upper bound of the range.
Ordinal size () const
 Return the size of the range (ubound() - lbound() + 1)
bool in_range (Ordinal i) const
 Return true if the index is in range.
Range1Doperator+= (Ordinal incr)
 Increment the range by a constant.
Range1Doperator-= (Ordinal incr)
 Deincrement the range by a constant.

Static Public Attributes

static const Range1D Invalid
 Used for Range1D(INVALID)

Private Member Functions

void assert_valid_range (Ordinal lbound, Ordinal ubound) const

Private Attributes

Ordinal lbound_
Ordinal ubound_

Related Functions

(Note that these are not member functions.)

bool operator== (const Range1D &rng1, const Range1D &rng2)
 rng1 == rng2.
Range1D operator+ (const Range1D &rng_rhs, Range1D::Ordinal i)
 rng_lhs = rng_rhs + i.
Range1D operator+ (Range1D::Ordinal i, const Range1D &rng_rhs)
 rng_lhs = i + rng_rhs.
Range1D operator- (const Range1D &rng_rhs, Range1D::Ordinal i)
 rng_lhs = rng_rhs - i.
Range1D full_range (const Range1D &rng, Range1D::Ordinal lbound, Range1D::Ordinal ubound)
 Return a bounded index range from a potentially unbounded index range.

Detailed Description

Subregion Index Range Class.

The class Range1D abstracts a 1-D, zero-based, range of indexes. It is used to index into vectors and matrices and return subregions of them respectively.

Constructing using Range1D() yields a range that represents the entire dimension of an object [0, max_ubound-1] (an entire std::vector, all the rows in a matrix, or all the columns in a matrix etc.).

Constructing using Range1D(INVALID) yields an invalid range [0,-1] with size() == 0. In fact the condition size()==0 is the determining flag that a range is not valid. Once constructed with Range1D(INVALID), a Range1D object can pass through many other operations that may change lbound() and ubound() but will never change size()==0.

Constructing using Range1D(lbound,ubound) yields a finite-dimensional zero-based range. The validity of constructed range will only be checked if TEUCHOS_DEBUG is defined.

There are many non-member functions that can be used with Range1D objects.

The default copy constructor and assignment operator functions are allowed since they have the correct semantics.

Definition at line 74 of file Teuchos_Range1D.hpp.


Member Typedef Documentation

Deprecated.

Definition at line 78 of file Teuchos_Range1D.hpp.

Deprecated.

Definition at line 81 of file Teuchos_Range1D.hpp.


Member Enumeration Documentation

Enumerator:
INVALID 

Definition at line 84 of file Teuchos_Range1D.hpp.


Constructor & Destructor Documentation

Teuchos::Range1D::Range1D ( ) [inline]

Constructs a range representing the entire range.

Postconditions:

Definition at line 241 of file Teuchos_Range1D.hpp.

Teuchos::Range1D::Range1D ( EInvalidRange  ) [inline]

Constructs an invalid (zero) range.

Postconditions:

Definition at line 246 of file Teuchos_Range1D.hpp.

Teuchos::Range1D::Range1D ( Ordinal  lbound,
Ordinal  ubound 
) [inline]

Constructs a range that represents the range [lbound, ubound].

Preconditions:

  • lbound >= 0 (throw range_error)
  • lbound <= ubound (throw range_error)

Postconditions:

Definition at line 252 of file Teuchos_Range1D.hpp.


Member Function Documentation

bool Teuchos::Range1D::full_range ( ) const [inline]

Returns true if the range represents the entire region (constructed from Range1D())

Definition at line 259 of file Teuchos_Range1D.hpp.

Range1D::Ordinal Teuchos::Range1D::lbound ( ) const [inline]

Return lower bound of the range.

Definition at line 264 of file Teuchos_Range1D.hpp.

Range1D::Ordinal Teuchos::Range1D::ubound ( ) const [inline]

Return upper bound of the range.

Definition at line 269 of file Teuchos_Range1D.hpp.

Range1D::Ordinal Teuchos::Range1D::size ( ) const [inline]

Return the size of the range (ubound() - lbound() + 1)

Definition at line 274 of file Teuchos_Range1D.hpp.

bool Teuchos::Range1D::in_range ( Ordinal  i) const [inline]

Return true if the index is in range.

Definition at line 279 of file Teuchos_Range1D.hpp.

Range1D & Teuchos::Range1D::operator+= ( Ordinal  incr) [inline]

Increment the range by a constant.

Definition at line 284 of file Teuchos_Range1D.hpp.

Range1D & Teuchos::Range1D::operator-= ( Ordinal  incr) [inline]

Deincrement the range by a constant.

Definition at line 292 of file Teuchos_Range1D.hpp.

void Teuchos::Range1D::assert_valid_range ( Ordinal  lbound,
Ordinal  ubound 
) const [inline, private]

Definition at line 303 of file Teuchos_Range1D.hpp.


Friends And Related Function Documentation

bool operator== ( const Range1D rng1,
const Range1D rng2 
) [related]

rng1 == rng2.

Returns:
Returns rng1.lbound() == rng2.ubound() && rng1.ubound() == rng2.ubound().

Definition at line 166 of file Teuchos_Range1D.hpp.

Range1D operator+ ( const Range1D rng_rhs,
Range1D::Ordinal  i 
) [related]

rng_lhs = rng_rhs + i.

Increments the upper and lower bounds by a constant.

Postcondition:

  • rng_lhs.lbound() == rng_rhs.lbound() + i
  • rng_lhs.ubound() == rng_rhs.ubound() + i

Definition at line 182 of file Teuchos_Range1D.hpp.

Range1D operator+ ( Range1D::Ordinal  i,
const Range1D rng_rhs 
) [related]

rng_lhs = i + rng_rhs.

Increments the upper and lower bounds by a constant.

Postcondition:

  • rng_lhs.lbound() == i + rng_rhs.lbound()
  • rng_lhs.ubound() == i + rng_rhs.ubound()

Definition at line 198 of file Teuchos_Range1D.hpp.

Range1D operator- ( const Range1D rng_rhs,
Range1D::Ordinal  i 
) [related]

rng_lhs = rng_rhs - i.

Deincrements the upper and lower bounds by a constant.

Postcondition:

  • rng_lhs.lbound() == rng_rhs.lbound() - i
  • rng_lhs.ubound() == rng_rhs.ubound() - i

Definition at line 214 of file Teuchos_Range1D.hpp.

Range1D full_range ( const Range1D rng,
Range1D::Ordinal  lbound,
Range1D::Ordinal  ubound 
) [related]

Return a bounded index range from a potentially unbounded index range.

Return a index range of lbound to ubound if rng.full_range() == true , otherwise just return a copy of rng.

Postconditions:

  • [rng.full_range() == true] return.lbound() == lbound
  • [rng.full_range() == true] return.ubound() == ubound
  • [rng.full_range() == false] return.lbound() == rng.lbound()
  • [rng.full_range() == false] return.ubound() == rng.ubound()

Definition at line 234 of file Teuchos_Range1D.hpp.


Member Data Documentation

Used for Range1D(INVALID)

Definition at line 87 of file Teuchos_Range1D.hpp.

Definition at line 151 of file Teuchos_Range1D.hpp.

Definition at line 152 of file Teuchos_Range1D.hpp.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines