MoochoPack: Miscellaneous Utilities for MOOCHO Version of the Day

. Onebased subregion index range class. More...
#include <RangePack_Range1D.hpp>
Public Types  
enum  EInvalidRange 
More...  
typedef RTOpPack::Ordinal  Index 
 
Public Member Functions  
Range1D ()  
Constructs a range representing the entire range.  
Range1D (EInvalidRange)  
Constructs an invalid (zero) range.  
Range1D (Index lbound, Index ubound)  
Constructs a range that represents the range [lbound, ubound] .  
bool  full_range () const 
Returns true if the range represents the entire region (constructed from Range1D() )  
Index  lbound () const 
Return lower bound of the range.  
Index  ubound () const 
Return upper bound of the range.  
Index  size () const 
Return the size of the range (ubound()  lbound() + 1 )  
bool  in_range (Index i) const 
Return true if the index is in range.  
Range1D &  operator+= (Index incr) 
Increment the range by a constant.  
Range1D &  operator= (Index incr) 
Deincrement the range by a constant.  
Static Public Attributes  
static const Range1D  Invalid 
Range1D(INVALID)  
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::Index i) 
rng_lhs = rng_rhs + i.  
Range1D  operator+ (Range1D::Index i, const Range1D &rng_rhs) 
rng_lhs = i + rng_rhs.  
Range1D  operator (const Range1D &rng_rhs, Range1D::Index i) 
rng_lhs = rng_rhs  i.  
Range1D  full_range (const Range1D &rng, Range1D::Index lbound, Range1D::Index ubound) 
Return a bounded index range from a potentially unbounded index range.  
Range1D  convert (const Teuchos::Range1D &rng) 
Convert from a 0based Teuchos::Range1D object to a 1based RangePack::Range1D object.  
Teuchos::Range1D  convert (const Range1D &rng) 
Convert from a 1based RangePack::Range1D object to a 0based Teuchos::Range1D object. 
. Onebased subregion index range class.
The class Range1D
abstracts a 1D, 1based, 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 [1, max_ubound]
(an entire vector, all the rows in a matrix, or all the columns in a matrix etc.).
Constructing using Range1D(INVALID)
yields an invalid range [1,0]
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 range. The validity of constructed range will only be checked if TEUCHOS_DEBUG
is defined.
There are many nonmember 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 76 of file RangePack_Range1D.hpp.
typedef RTOpPack::Ordinal RangePack::Range1D::Index 
Definition at line 79 of file RangePack_Range1D.hpp.
Definition at line 81 of file RangePack_Range1D.hpp.
RangePack::Range1D::Range1D  (  )  [inline] 
Constructs a range representing the entire range.
Postconditions:
this>full_range() == true
this>size() ==
a very large number this>lbound() == 1
this>ubound() ==
a very large number .
Definition at line 243 of file RangePack_Range1D.hpp.
RangePack::Range1D::Range1D  (  EInvalidRange  )  [inline] 
Constructs an invalid (zero) range.
Postconditions:
this>full_range() == false
this>size() == 0
this>lbound() == 1
this>ubound() == 0
Definition at line 248 of file RangePack_Range1D.hpp.
Constructs a range that represents the range [lbound, ubound]
.
Preconditions:
lbound >= 1
(throw range_error
) lbound <= ubound
(throw range_error
) Postconditions:
this>full_range() == false
this>size() == ubound  lbound + 1
this>lbound() == lbound
this>ubound() == ubound
Definition at line 254 of file RangePack_Range1D.hpp.
bool RangePack::Range1D::full_range  (  )  const [inline] 
Returns true
if the range represents the entire region (constructed from Range1D()
)
Definition at line 261 of file RangePack_Range1D.hpp.
Range1D::Index RangePack::Range1D::lbound  (  )  const [inline] 
Return lower bound of the range.
Definition at line 266 of file RangePack_Range1D.hpp.
Range1D::Index RangePack::Range1D::ubound  (  )  const [inline] 
Return upper bound of the range.
Definition at line 271 of file RangePack_Range1D.hpp.
Range1D::Index RangePack::Range1D::size  (  )  const [inline] 
Return the size of the range (ubound()  lbound() + 1
)
Definition at line 276 of file RangePack_Range1D.hpp.
bool RangePack::Range1D::in_range  (  Index  i  )  const [inline] 
Return true if the index is in range.
Definition at line 281 of file RangePack_Range1D.hpp.
Increment the range by a constant.
Definition at line 286 of file RangePack_Range1D.hpp.
Deincrement the range by a constant.
Definition at line 294 of file RangePack_Range1D.hpp.
rng1 == rng2.
rng1.lbound() == rng2.ubound() && rng1.ubound() == rng2.ubound()
. Definition at line 151 of file RangePack_Range1D.hpp.
Range1D operator+  (  const Range1D &  rng_rhs, 
Range1D::Index  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 167 of file RangePack_Range1D.hpp.
Range1D operator+  (  Range1D::Index  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 183 of file RangePack_Range1D.hpp.
Range1D operator  (  const Range1D &  rng_rhs, 
Range1D::Index  i  
)  [related] 
rng_lhs = rng_rhs  i.
Deincrements the upper and lower bounds by a constant.
Postcondition:
rng_lhs.lbound() == rng_rhs.lbound()  1
rng_lhs.ubound() == rng_rhs.ubound()  1
Definition at line 199 of file RangePack_Range1D.hpp.
Range1D full_range  (  const Range1D &  rng, 
Range1D::Index  lbound,  
Range1D::Index  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 218 of file RangePack_Range1D.hpp.
Range1D convert  (  const Teuchos::Range1D &  rng  )  [related] 
Convert from a 0based Teuchos::Range1D object to a 1based RangePack::Range1D object.
Definition at line 225 of file RangePack_Range1D.hpp.
Teuchos::Range1D convert  (  const Range1D &  rng  )  [related] 
Convert from a 1based RangePack::Range1D object to a 0based Teuchos::Range1D object.
Definition at line 232 of file RangePack_Range1D.hpp.
const Range1D RangePack::Range1D::Invalid [static] 
Range1D(INVALID)
Definition at line 83 of file RangePack_Range1D.hpp.