27 friend class Proto::HDF5Handler;
76 template<
typename... vals>
264 inline Point
operator+(
int a_value)
const;
272 inline Point
operator-(
int a_value)
const;
280 inline Point
operator*(
int a_value)
const;
289 inline Point
operator/(
int a_value)
const;
298 inline Point
operator%(
int a_value)
const;
385 inline int dot(
const Point& a_rhs)
const;
394 inline Point
coarsen(
unsigned int a_refRatio)
const;
401 inline int sum()
const;
407 inline int sumAbs()
const;
409 inline int min()
const;
411 inline int max()
const;
413 inline Point
abs()
const;
424 inline int codim()
const;
442 inline std::array<Point, DIM>
perpUnit()
const;
449 inline std::vector<int>
coords()
const;
455 inline std::vector<Point>
split()
const;
459 inline std::vector<Point>
subset()
const;
464 inline Point
dir()
const;
477 inline void linearOut(
char* a_buf)
const;
485 inline void linearIn(
const char* a_buf);
496 inline void print()
const;
497 inline std::string
str()
const;
504 template<
typename... vars>
543 for (
int ii = 0; ii < DIM; ii++)
545 p[ii] = std::min(a_p1[ii], a_p2[ii]);
553 for (
int ii = 0; ii < DIM; ii++)
555 p[ii] = std::max(a_p1[ii], a_p2[ii]);
563 for (
int ii = 0; ii < DIM; ii++)
565 p[ii] = std::max(
abs(a_p1[ii]),
abs(a_p2[ii]));
572 #endif //end include guard ACCEL_DECORATION bool operator!=(const Point &a_pt) const
Inequality Operator.
ACCEL_DECORATION bool operator==(const Point &a_pt) const
Equality Operator.
ACCEL_DECORATION Point operator%(const Point &a_pt) const
Componentwise Point Modulus Operator.
std::vector< Point > subset() const
Point coarsen(unsigned int a_refRatio) const
Coarsen Operator.
LoHiSide
Side Enum.
Definition: Proto_Face.H:23
Point dir() const
Convert Point to Direction.
int dot(const Point &a_rhs) const
Compute Dot Product.
std::vector< int > coords() const
Coordinates of non-zero entries.
std::istream & operator>>(std::istream &a_is, Box &a_box)
OStream Operator.
Definition: Proto_Box.H:962
static std::set< Point > DirectionsOfCodim(int a_codim)
ACCEL_DECORATION void operator/=(const Point &a_pt)
In Place Componentwise Division Operator.
void linearOut(char *a_buf) const
Linear Out.
void linearIn(const char *a_buf)
Linear In.
static ACCEL_DECORATION Point Basis(int a_dir, int a_scale=1)
Get Basis.
ACCEL_DECORATION bool operator<(const Point &a_rhs) const
Less-Than Operator.
Point maxPoint(Point a_p1, Point a_p2)
Definition: Proto_Point.H:550
ACCEL_DECORATION Point operator/(const Point &a_pt) const
Componentwise Point Division Operator.
ACCEL_DECORATION void operator%=(const Point &a_pt)
In Place Componentwise Modulus Operator.
int lastNonZeroIndex() const
std::vector< int > perpCoords() const
Coordinates of zero entries.
Point minPoint(Point a_p1, Point a_p2)
Definition: Proto_Point.H:540
static ACCEL_DECORATION Point Zero()
Get Zeros (Alternate Spelling)
Definition: Proto_Point.H:122
ACCEL_DECORATION Point operator-(const Point &a_rhs) const
Componentwise Point Subtraction Operator.
size_t linearSize() const
Linear Size.
std::vector< Point > split() const
Scaled Unit Vectors.
ACCEL_DECORATION Point operator+(const Point &a_rhs) const
Componentwise Point Addition Operator.
#define ACCEL_DECORATION
Definition: Proto_Accel.H:12
ACCEL_DECORATION int sum() const
Sum Operator.
ACCEL_DECORATION void unpack(int D, int i, vars... args)
Definition: Proto_Point.H:505
ACCEL_DECORATION void operator-=(const Point &a_pt)
In Place Componentwise Subtraction Operator.
bool isotropic() const
Isotropic Query.
static ACCEL_DECORATION Point X()
Definition: Proto_Point.H:144
static ACCEL_DECORATION Point Ones(int a_scale=1)
Get Ones.
Point absMaxPoint(Point a_p1, Point a_p2)
Definition: Proto_Point.H:560
static std::set< Point > Directions()
static ACCEL_DECORATION Point Y()
Definition: Proto_Point.H:145
static ACCEL_DECORATION Point Z()
Definition: Proto_Point.H:146
static ACCEL_DECORATION Point Zeros()
Get Zeros.
Definition: Proto_Array.H:17
std::array< Point, DIM > perpUnit() const
Perpendicular Unit Vectors.
std::array< Point, DIM > parallelUnit() const
Parallel Unit Vectors.
std::ostream & operator<<(std::ostream &stream, const Array< T, N > &arr)
Ostream operator.
Integer Valued Vector.
Definition: Proto_Point.H:24
int sumAbs() const
Absolute Value Sum Operator.
ACCEL_DECORATION void operator*=(const Point &a_pt)
In Place Componentwise Multiplication Operator.
ACCEL_DECORATION void operator+=(const Point &a_pt)
In Place Componentwise Addition Operator.
int codim() const
Query Codimension.
ACCEL_DECORATION Point(vals... args)
Variadic Constructor.
Definition: Proto_Point.H:77
static ACCEL_DECORATION Point Zeroes()
Get Zeros (Pedantic Spelling)
Definition: Proto_Point.H:116
ACCEL_DECORATION Point & operator=(const Point &a_rhs)
Asignment Operator.
ACCEL_DECORATION const int & operator[](unsigned int a_index) const
Get Component (Const)
static ACCEL_DECORATION Point Unit()
Get Unit Point.
Definition: Proto_Point.H:104
void print() const
Print Function.
int m_tuple[DIM]
Integer coordinates of the Point.
Definition: Proto_Point.H:502
ACCEL_DECORATION Point operator*(const Point &a_pt) const
Componentwise Point Multiplication Operator.
int firstNonZeroIndex() const