IntVect Class Reference

#include <IntVect.H>

Collaboration diagram for IntVect:

Collaboration graph
[legend]

List of all members.


Detailed Description

An integer Vector in SpaceDim-dimensional space.

The class IntVect is an implementation of an integer vector in a SpaceDim-dimensional space. It represents a point in a discrete space. IntVect values are accessed using the operator[] function, as for a normal C++ array. In addition, the basic arithmetic operators have been overloaded to implement scaling and translation operations.

Constants

static const IntVect Zero
static const IntVect Unit
IntVect BASISV (int dir)
static int InitStatics ()

Addition operators

IntVect operator+ (int s, const IntVect &p)
IntVectoperator+= (int s)
IntVectoperator+= (const IntVect &p)
IntVect operator+ (const IntVect &p) const
IntVect operator+ (int s) const

Subtraction operators

IntVect operator- (int s, const IntVect &p)
IntVectoperator-= (int s)
IntVectoperator-= (const IntVect &p)
IntVect operator- (const IntVect &p) const
IntVect operator- (int s) const

Multiplication operators

IntVect operator* (int s, const IntVect &p)
IntVectoperator*= (int s)
IntVectoperator*= (const IntVect &p)
IntVect operator* (const IntVect &p) const
IntVect operator* (int s) const

Other arithmetic operators

IntVect min (const IntVect &p1, const IntVect &p2)
IntVect max (const IntVect &p1, const IntVect &p2)
IntVect scale (const IntVect &p, int s)
IntVect reflect (const IntVect &a, int ref_ix, int idir)
IntVect diagShift (const IntVect &p, int s)
IntVect coarsen (const IntVect &p, int s)
IntVect coarsen (const IntVect &p1, const IntVect &p2)
IntVectmin (const IntVect &p)
IntVectmax (const IntVect &p)
IntVectscale (int s)
IntVectreflect (int ref_ix, int idir)
IntVectshift (int coord, int s)
IntVectshift (const IntVect &iv)
IntVectdiagShift (int s)
IntVectcoarsen (const IntVect &p)
IntVectcoarsen (int p)

I/O Functions

std::ostream & operator<< (std::ostream &os, const IntVect &iv)
std::istream & operator>> (std::istream &os, IntVect &iv)
void printOn (std::ostream &os) const
void p () const
void dumpOn (std::ostream &os) const

Public Member Functions

Constructors and Accessors
 IntVect ()
 IntVect (const Vector< int > &vi)
 ~IntVect ()
 IntVect (D_DECL6(int i, int j, int k, int l, int m, int n))
 IntVect (const int *a)
 IntVect (const IntVect &rhs)
 IntVect (const IndexTM< int, CH_SPACEDIM > &a_tm)
IntVect copy () const
IntVectoperator= (const IntVect &rhs)
int & operator[] (int i)
int operator[] (int i) const
void setVal (int i, int val)
Data pointer functions
const int * getVect () const
const int * dataPtr () const
int * dataPtr ()
Comparison Operators
bool operator== (const IntVect &p) const
bool operator!= (const IntVect &p) const
bool operator< (const IntVect &p) const
bool operator<= (const IntVect &p) const
bool operator> (const IntVect &p) const
bool operator>= (const IntVect &p) const
bool lexLT (const IntVect &s) const
bool lexGT (const IntVect &s) const
Unary operators
IntVect operator+ () const
IntVect operator- () const
int sum () const
int product () const
Division operators
IntVectoperator/= (int s)
IntVectoperator/= (const IntVect &p)
IntVect operator/ (const IntVect &p) const
IntVect operator/ (int s) const

Protected Attributes

int vect [SpaceDim]

Static Protected Attributes

static const size_t IntVectSize

Friends

class Box
class HDF5Handle
class VolIndex
class FaceIndex
class BLfacade::IntVect


Constructor & Destructor Documentation

IntVect::IntVect (  )  [inline]

Construct an IntVect whose components are uninitialized.

Referenced by diagShift(), operator*(), operator*(), operator+(), operator+(), operator-(), operator-(), operator/(), and scale().

IntVect::IntVect ( const Vector< int > &  vi  )  [inline, explicit]

References vect.

IntVect::~IntVect (  )  [inline]

Destructor.

IntVect::IntVect ( D_DECL6(int i, int j, int k,int l, int m, int n)   )  [inline]

Construct an IntVect given the specific values for its coordinates. D_DECL6 is a macro that sets the constructor to take CH_SPACEDIM arguments.

References vect.

IntVect::IntVect ( const int *  a  )  [inline, explicit]

Construct an IntVect setting the coordinates to the corresponding values in the integer array a.

References vect.

IntVect::IntVect ( const IntVect rhs  )  [inline]

The copy constructor.

References IntVectSize, and vect.

IntVect::IntVect ( const IndexTM< int, CH_SPACEDIM > &  a_tm  ) 


Member Function Documentation

IntVect IntVect::copy (  )  const [inline]

IntVect & IntVect::operator= ( const IntVect rhs  )  [inline]

The assignment operator.

References vect.

int & IntVect::operator[] ( int  i  )  [inline]

Returns a modifiable lvalue reference to the i'th coordinate of the IntVect.

References SpaceDim, and vect.

int IntVect::operator[] ( int  i  )  const [inline]

Returns the i'th coordinate of the IntVect.

References SpaceDim, and vect.

void IntVect::setVal ( int  i,
int  val 
) [inline]

Set i'th coordinate of IntVect to val.

References SpaceDim, and vect.

Referenced by Box::setBig(), Box::setRange(), and Box::setSmall().

const int * IntVect::getVect (  )  const [inline]

Returns a const pointer to an array of coordinates of the IntVect. Useful for arguments to FORTRAN calls.

References vect.

Referenced by Box::getVect(), IVSFAB< T >::hiVect(), Box::hiVect(), IVSFAB< T >::loVect(), and Box::loVect().

const int * IntVect::dataPtr (  )  const [inline]

Only for sending to Fortran

References vect.

int * IntVect::dataPtr (  )  [inline]

Only for sending to Fortran

References vect.

bool IntVect::operator== ( const IntVect p  )  const [inline]

Returns true if this IntVect is equivalent to argument IntVect. All comparisons between analogous components must be satisfied.

References vect.

bool IntVect::operator!= ( const IntVect p  )  const [inline]

Returns true if this IntVect is different from argument IntVect. All comparisons between analogous components must be satisfied.

References vect.

bool IntVect::operator< ( const IntVect p  )  const [inline]

Returns true if this IntVect is less than argument IntVect. All comparisons between analogous components must be satisfied. Note that, since the comparison is component-wise, it is possible for an IntVect to be neither greater than, less than, nor equal to another.

References vect.

bool IntVect::operator<= ( const IntVect p  )  const [inline]

Returns true if this IntVect is less than or equal to argument IntVect. All comparisons between analogous components must be satisfied. Note that, since the comparison is component-wise, it is possible for an IntVect to be neither greater than or equal to, less than or equal to, nor equal to another.

References vect.

bool IntVect::operator> ( const IntVect p  )  const [inline]

Returns true if this IntVect is greater than argument IntVect. All comparisons between analogous components must be satisfied. Note that, since the comparison is component-wise, it is possible for an IntVect to be neither greater than, less than, nor equal to another.

References vect.

bool IntVect::operator>= ( const IntVect p  )  const [inline]

Returns true if this IntVect is greater than or equal to argument IntVect. All comparisons between analogous components must be satisfied. Note that, since the comparison is component-wise, it is possible for an IntVect to be neither greater than or equal to, less than or equal to, nor equal to another.

References vect.

bool IntVect::lexLT ( const IntVect s  )  const [inline]

Returns true if this IntVect is lexically less than the argument. An IntVect MUST BE either lexically less than, lexically greater than, or equal to another IntVect.

iv1 is lexically less than iv2 if:

in 2-D:
(iv1[0] < iv2[0]) || ((iv1[0] == iv2[0]) && (iv1[1] < iv2[1]));

in 3-D:
(iv1[0] < iv2[0]) || (iv1[0]==iv2[0] && ((iv1[1] < iv2[1] || ((iv1[1] == iv2[1]) && (iv1[2] < iv2[2])))));

References vect.

Referenced by VolIndex::operator<(), operator<(), and Box::operator<().

bool IntVect::lexGT ( const IntVect s  )  const [inline]

Returns true if this IntVect is lexically greater than the argument. An IntVect MUST BE either lexically less than, lexically greater than, or equal to another IntVect.

iv1 is lexically less than iv2 if:

in 2-D:
(iv1[0] > iv2[0]) || ((iv1[0] == iv2[0]) && (iv1[1] > iv2[1]));

in 3-D:
(iv1[0] > iv2[0]) || (iv1[0]==iv2[0] && ((iv1[1] > iv2[1] || ((iv1[1] == iv2[1]) && (iv1[2] > iv2[2])))));

References vect.

IntVect IntVect::operator+ (  )  const [inline]

Unary plus -- for completeness.

References IntVect().

IntVect IntVect::operator- (  )  const [inline]

Unary minus -- negates all components of this IntVect.

References IntVect(), and vect.

int IntVect::sum (  )  const [inline]

Sum of all components of this IntVect.

References vect.

int IntVect::product (  )  const [inline]

Product of all components of this IntVect.

References vect.

IntVect & IntVect::operator+= ( int  s  )  [inline]

Modifies this IntVect by addition of a scalar to each component.

References vect.

IntVect & IntVect::operator+= ( const IntVect p  )  [inline]

Modifies this IntVect by component-wise addition with argument.

References vect.

IntVect IntVect::operator+ ( const IntVect p  )  const [inline]

Returns component-wise sum of this IntVect and argument.

References IntVect(), and vect.

IntVect IntVect::operator+ ( int  s  )  const [inline]

Return an IntVect that is this IntVect with a scalar added to each component.

References IntVect(), and vect.

IntVect & IntVect::operator-= ( int  s  )  [inline]

Modifies this IntVect by subtraction of a scalar from each component.

References vect.

IntVect & IntVect::operator-= ( const IntVect p  )  [inline]

Modifies this IntVect by component-wise subtraction by argument.

References vect.

IntVect IntVect::operator- ( const IntVect p  )  const [inline]

Returns an IntVect that is this IntVect with p subtracted from it component-wise.

References IntVect(), and vect.

IntVect IntVect::operator- ( int  s  )  const [inline]

Returns an IntVect that is this IntVect with a scalar s subtracted from each component.

References IntVect(), and vect.

IntVect & IntVect::operator*= ( int  s  )  [inline]

Modifies this IntVect by multiplication of each component by a scalar.

References vect.

IntVect & IntVect::operator*= ( const IntVect p  )  [inline]

Modifies this IntVect by component-wise multiplication by argument.

References vect.

IntVect IntVect::operator* ( const IntVect p  )  const [inline]

Returns component-wise product of this IntVect with argument.

References IntVect(), and vect.

IntVect IntVect::operator* ( int  s  )  const [inline]

Returns an IntVect that is this IntVect with each component multiplied by a scalar.

References IntVect(), and vect.

IntVect & IntVect::operator/= ( int  s  )  [inline]

Modifies this IntVect by division of each component by a scalar.

References vect.

IntVect & IntVect::operator/= ( const IntVect p  )  [inline]

Modifies this IntVect by component-wise division by IntVect argument.

References vect.

IntVect IntVect::operator/ ( const IntVect p  )  const [inline]

Returns component-wise quotient of this IntVect by argument.

References IntVect(), and vect.

IntVect IntVect::operator/ ( int  s  )  const [inline]

Returns an IntVect that is this IntVect with each component divided by a scalar.

References IntVect(), and vect.

IntVect & IntVect::min ( const IntVect p  )  [inline]

Modifies this IntVect by taking component-wise min with IntVect argument.

References Min(), and vect.

Referenced by min().

IntVect & IntVect::max ( const IntVect p  )  [inline]

Modifies this IntVect by taking component-wise max with IntVect argument.

References Max(), and vect.

Referenced by max().

IntVect & IntVect::scale ( int  s  )  [inline]

Modifies this IntVect by multiplying each component by a scalar.

References vect.

IntVect & IntVect::reflect ( int  ref_ix,
int  idir 
) [inline]

Modifies IntVect by reflecting it in the plane defined by the index ref_ix and with normal in the direction of idir. Directions are based at zero.

References SpaceDim, and vect.

IntVect & IntVect::shift ( int  coord,
int  s 
) [inline]

Modifies this IntVect by adding s to component in given coordinate direction.

References SpaceDim, and vect.

Referenced by Box::enclosedCells(), Box::grow(), Box::growHi(), Box::growLo(), Box::shift(), and Box::surroundingNodes().

IntVect & IntVect::shift ( const IntVect iv  )  [inline]

Modifies this IntVect by component-wise addition with IntVect argument.

IntVect & IntVect::diagShift ( int  s  )  [inline]

Modifies this IntVect by adding a scalar s to each component.

References vect.

Referenced by Box::grow().

IntVect& IntVect::coarsen ( const IntVect p  ) 

Modify IntVect by component-wise integer projection.

IntVect& IntVect::coarsen ( int  p  ) 

Modify IntVect by component-wise integer projection.

void IntVect::printOn ( std::ostream &  os  )  const

Print an IntVect to the ostream.

void IntVect::p (  )  const

Print an IntVect to the pout().

Referenced by max(), and min().

void IntVect::dumpOn ( std::ostream &  os  )  const

Print an IntVect to the ostream a bit more verbosely.

static int IntVect::InitStatics (  )  [static]

Initializes Zero and Unit.


Friends And Related Function Documentation

friend class Box [friend]

friend class HDF5Handle [friend]

friend class VolIndex [friend]

friend class FaceIndex [friend]

friend class BLfacade::IntVect [friend]

IntVect operator+ ( int  s,
const IntVect p 
) [friend]

Returns an IntVect that is an IntVect p with a scalar s added to each component.

IntVect operator- ( int  s,
const IntVect p 
) [friend]

Returns s - p.

IntVect operator* ( int  s,
const IntVect p 
) [friend]

Returns an IntVect that is an IntVect p with each component multiplied by a scalar s.

IntVect min ( const IntVect p1,
const IntVect p2 
) [friend]

Returns the IntVect that is the component-wise minimum of two argument IntVects.

IntVect max ( const IntVect p1,
const IntVect p2 
) [friend]

Returns the IntVect that is the component-wise maximum of two argument IntVects.

IntVect scale ( const IntVect p,
int  s 
) [friend]

Returns an IntVect obtained by multiplying each of the components of the given IntVect by a scalar.

IntVect reflect ( const IntVect a,
int  ref_ix,
int  idir 
) [friend]

Returns an IntVect that is the reflection of the given IntVect in the plane which passes through ref_ix and normal to the coordinate direction idir.

IntVect diagShift ( const IntVect p,
int  s 
) [friend]

Returns IntVect obtained by adding a scalar to each of the components of the given IntVect.

IntVect coarsen ( const IntVect p,
int  s 
) [friend]

Returns an IntVect that is the component-wise integer projection of p by s.

IntVect coarsen ( const IntVect p1,
const IntVect p2 
) [friend]

Returns an IntVect which is the component-wise integer projection of IntVect p1 by IntVect p2.

std::ostream& operator<< ( std::ostream &  os,
const IntVect iv 
) [friend]

Print the IntVect to given output stream in ASCII.

std::istream& operator>> ( std::istream &  os,
IntVect iv 
) [friend]

Read next IntVect from given input stream.

IntVect BASISV ( int  dir  )  [friend]

Returns a basis vector in the given coordinate direction.
In 3-D: BASISV(0) == (1,0,0); BASISV(1) == (0,1,0); BASISV(2) == (0,0,1).
In 2-D: BASISV(0) == (1,0); BASISV(1) == (0,1).
Note that the coordinate directions are based at zero.


Member Data Documentation

const IntVect IntVect::Zero [static]

const IntVect IntVect::Unit [static]

int IntVect::vect[SpaceDim] [protected]

const size_t IntVect::IntVectSize [static, protected]

Number of bytes of storage used by this IntVect.

Referenced by IntVect().


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

Generated on Tue Apr 14 14:23:38 2009 for Chombo + EB by  doxygen 1.5.5