|
| BoxData (const BoxData< T, C, MEM, D, E > &a_src)=delete |
| Forbidden Functions. More...
|
|
BoxData & | operator= (const BoxData< T, C, MEM, D, E > &a_src)=delete |
|
size_t | size (const Box &a_box, const size_t a_comps) const |
|
size_t | charsize (const ::Proto::Box &a_bx, unsigned int a_startcomp, unsigned int a_numcomps) const |
|
|
BoxData & | operator= (BoxData< T, C, MEM, D, E > &&a_src) |
| Move Assignment Operator. More...
|
|
template<MemType MEM_DEST> |
void | copyTo (BoxData< T, C, MEM_DEST, D, E > &a_dest) const |
| Copy on Intersection. More...
|
|
template<MemType MEM_DEST> |
void | copyTo (BoxData< T, C, MEM_DEST, D, E > &a_dest, const Box &a_srcBox, const Point &a_destShift=Point::Zeros()) const |
| Copy Region. More...
|
|
template<MemType MEM_DEST> |
void | copyTo (BoxData< T, C, MEM_DEST, D, E > &a_dest, const Box &a_srcBox, const Box &a_destBox) const |
| Copy with src and dest boxes. More...
|
|
template<unsigned int Cdest, MemType MEM_DEST, unsigned int Ddest, unsigned int Edest> |
void | copyTo (BoxData< T, Cdest, MEM_DEST, Ddest, Edest > &a_dest, const Box &a_srcBox, CInterval a_srcComps, const Point &a_destShift, CInterval a_destComps) const |
| General Copy. More...
|
|
template<unsigned int Csrc> |
void | copy (const BoxData< T, Csrc, MEM, D, E > &a_dsrc, const Box &a_srcBox, unsigned int a_srcComp, const Box &a_destBox, unsigned int a_destComp, unsigned int a_numcomp) |
| General Copy From. More...
|
|
void | copyTo (BoxData< T, C, MEM, D, E > &a_dst, const CoordPermutation &a_rotation) const |
| Copy With Rotation. More...
|
|
BoxData< T, C, MEM, D, E > | transpose (int c0, int c1) const |
| Create a new BoxData that is transposed relative to this. More...
|
|
void | rotate (Box a_box, const CoordPermutation &a_rotation) |
| Rotate Coordinates. More...
|
|
|
void | setVal (const T &a_val) |
| Initialize All Values. More...
|
|
void | setToZero () |
| Clamp Values. More...
|
|
void | setVal (const T &a_val, const Box &a_box) |
| Set All Values in Box. More...
|
|
void | setVal (const T &a_val, const Box &a_box, int a_c, int a_d=0, int a_e=0) |
| Set All Values of Component in Box. More...
|
|
void | setRandom (T a_low, T a_high) |
| Set Random Noise. More...
|
|
template<Proto::Operation OP> |
void | reduce (Reduction< T, OP, MEM > &a_Rxn) const |
| Generic Reduction (Global) More...
|
|
template<Proto::Operation OP> |
void | reduce (Reduction< T, OP, MEM > &a_Rxn, int a_c, int a_d=0, int a_e=0) const |
| Generic Reduction (Componentwise) More...
|
|
T | absMax () const |
| Absolute Maximum Value (Global) More...
|
|
T | absMax (int a_c, int a_d=0, int a_e=0) const |
| Absolute Maximum Value (Componentwise) More...
|
|
void | absMax (Reduction< T, Abs, MEM > &a_Rxn) const |
| Absolute Maximum Value (Global, Reduction) More...
|
|
void | absMax (Reduction< T, Abs, MEM > &a_Rxn, int a_c, int a_d=0, int a_e=0) const |
| Absolute Maximum Value (Componentwise, Reduction) More...
|
|
T | min () const |
| Minimum Value (Global) More...
|
|
T | min (int a_c, int a_d=0, int a_e=0) const |
| Minimum Value (Componentwise) More...
|
|
void | min (Reduction< T, Min, MEM > &a_rxn) const |
| Minimum Value (Global, Reduction) More...
|
|
void | min (Reduction< T, Min, MEM > &a_rxn, int a_c, int a_d=0, int a_e=0) const |
| Minimum Value (Componentwise, Reduction) More...
|
|
T | max () const |
| Maximum Value (Global) More...
|
|
T | max (int a_c, int a_d=0, int a_e=0) const |
| Maximum Value (Componentwise) More...
|
|
void | max (Reduction< T, Max, MEM > &a_rxn) const |
| Max (Global, Reduction) More...
|
|
void | max (Reduction< T, Max, MEM > &a_rxn, int a_c, int a_d=0, int a_e=0) const |
| Max (Componentwise, Reduction) More...
|
|
T | sum () const |
| Sum (Global) More...
|
|
T | sum (int a_c, int a_d=0, int a_e=0) const |
| Sum (Componentwise) More...
|
|
void | sum (Reduction< T, Sum, MEM > &a_rxn) const |
| Sum (Global, Reduction) More...
|
|
void | sum (Reduction< T, Sum, MEM > &a_rxn, int a_c, int a_d=0, int a_e=0) const |
| Sum (Componentwise) More...
|
|
T | sumAbs () const |
| Sum Abs(Global) More...
|
|
T | sumAbs (int a_c, int a_d=0, int a_e=0) const |
| Sum Abs(Componentwise) More...
|
|
void | sumAbs (Reduction< T, SumAbs, MEM > &a_rxn) const |
| Sum Abs (Global, Reduction) More...
|
|
void | sumAbs (Reduction< T, SumAbs, MEM > &a_rxn, int a_c, int a_d=0, int a_e=0) const |
| Sum (Componentwise) More...
|
|
T | sumSquare () const |
|
T | sumSquare (int a_c, int a_d=0, int a_e=0) const |
|
void | sumSquare (Reduction< T, SumSquare, MEM > &a_rxn) const |
|
void | sumSquare (Reduction< T, SumSquare, MEM > &a_rxn, int a_c, int a_d=0, int a_e=0) const |
|
T | integrate (T a_dx, int a_c=0, int a_d=0, int a_e=0) const |
| Integrate (Isotropic Grid) More...
|
|
T | integrate (Array< T, DIM > a_dx, int a_c=0, int a_d=0, int a_e=0) const |
| Integrate (Anisotropic Grid) More...
|
|
void | shift (const Point &a_shift) const |
| Shift Domain. More...
|
|
size_t | linearSize () const |
| Buffer Size. More...
|
|
void | linearOut (void *a_buffer, const Box &a_box, CInterval a_comps) const |
| Buffer Write. More...
|
|
void | linearOut (void *a_buffer, const Box &a_box, unsigned int a_startcomp, unsigned int a_numcomps) const |
| Buffer Write (Primitive) More...
|
|
void | linearIn (void *a_buffer, const Box &a_box, CInterval a_comps) |
| Buffer Read. More...
|
|
void | linearIn (void *a_buffer, const ::Proto::Box &a_bx, unsigned int a_startcomp, unsigned int a_numcomps) |
| Buffer Read. More...
|
|
bool | contains (CInterval a_interval) const |
| Contains CInterval. More...
|
|
template<unsigned int CC, unsigned int DD, unsigned int EE> |
bool | isAlias (const BoxData< T, CC, MEM, DD, EE > &a_src) const |
| Check Aliasing. More...
|
|
void | print () const |
| Print. More...
|
|
void | printData (int a_prec=2) const |
| Print Data. More...
|
|
void | printData (const Box &a_box, int a_prec=2) const |
| Print Data in Box. More...
|
|
void | printData (const Box &a_box, int a_c, int a_d, int a_e, int a_prec=2) const |
| Print Component Data in Box. More...
|
|
bool | containsInfOrNAN () const |
|
bool | containsInfOrNAN (Box domain) const |
|
bool | containsUninitialized () const |
|
bool | containsUninitialized (Box domain) const |
|
bool | containsAddress (T *address) const |
|
|
template<class TT > |
class | Stencil |
|
template<class TT , unsigned int CC, unsigned int DD, unsigned int EE, MemType MM> |
BoxData< TT, CC, MM, DD, EE > | alias (BoxData< TT, CC, MM, DD, EE > &a_original, const Point &a_shift) |
|
template<class TT , unsigned int CC, unsigned int DD, unsigned int EE, MemType MM> |
const BoxData< TT, CC, MM, DD, EE > | alias (const BoxData< TT, CC, MM, DD, EE > &a_original, const Point &a_shift) |
|
template<typename _T , unsigned int _C, MemType _MEM, unsigned int _D, unsigned int _E> |
BoxData< _T, 1, _MEM, 1, 1 > | slice (const BoxData< _T, _C, _MEM, _D, _E > &a_src, unsigned int a_c, unsigned int a_d, unsigned int a_e) |
|
template<typename _T , unsigned int _C, unsigned int _CC, MemType _MEM> |
BoxData< _T, _CC, _MEM, 1, 1 > | slice (const BoxData< _T, _C, _MEM, 1, 1 > &a_src, unsigned int a_nstart) |
|
template<typename _T , unsigned int _C, unsigned int _D, MemType _MEM> |
BoxData< _T, _C, _MEM, 1, 1 > | plane (const BoxData< _T, _C, _MEM, _D, 1 > &a_src, unsigned int a_d) |
|
|
BoxData< T, C, MEM, D, E > | operator+ (const BoxData< T, C, MEM, D, E > &a_rhs) const |
| Pointwise Addition on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > | operator- (const BoxData< T, C, MEM, D, E > &a_rhs) const |
| Pointwise Subtraction on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > | operator* (const BoxData< T, C, MEM, D, E > &a_rhs) const |
| Pointwise Multiplication on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > | operator/ (const BoxData< T, C, MEM, D, E > &a_rhs) const |
| Pointwise Division on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > & | operator+= (const BoxData< T, C, MEM, D, E > &a_rhs) |
| Pointwise Addition on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > & | operator-= (const BoxData< T, C, MEM, D, E > &a_rhs) |
| Pointwise Subtraction on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > & | operator*= (const BoxData< T, C, MEM, D, E > &a_rhs) |
| Pointwise Multiplication on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > & | operator/= (const BoxData< T, C, MEM, D, E > &a_rhs) |
| Pointwise Division on Intersection. More...
|
|
BoxData< T, C, MEM, D, E > & | operator+= (T a_scale) |
| Pointwise Addition by Scalar. More...
|
|
BoxData< T, C, MEM, D, E > & | operator-= (T scale) |
| Pointwise Subtraction by Scalar. More...
|
|
BoxData< T, C, MEM, D, E > & | operator*= (T scale) |
| Pointwise Multiplication by Scalar. More...
|
|
BoxData< T, C, MEM, D, E > & | operator/= (T scale) |
| Pointwise Division by Scalar. More...
|
|
BoxData< T, C, MEM, D, E > & | operator+= (const Array< T, C *D *E > &a_array) |
| Pointwise Addition an Array. More...
|
|
BoxData< T, C, MEM, D, E > & | operator-= (const Array< T, C *D *E > &a_array) |
| Pointwise Subtraction an Array. More...
|
|
BoxData< T, C, MEM, D, E > & | operator*= (const Array< T, C *D *E > &a_array) |
| Pointwise Multiplication an Array. More...
|
|
BoxData< T, C, MEM, D, E > & | operator/= (const Array< T, C *D *E > &a_array) |
| Pointwise Division by an Array. More...
|
|
void | increment (const BoxData< T, C, MEM, D, E > &rhs, T scale=1) |
|
void | incrementProduct (const BoxData< T, C, MEM, D, E > &A, const BoxData< T, C, MEM, D, E > &B, T scale=1) |
|
template<BoxDataOp > |
void | operatorT (const BoxData< T, C, MEM, D, E > &a_src) |
| Algebraic Op Helper. More...
|
|
template<BoxDataOp > |
void | operatorT (const T a_scale) |
| Algebraic Op Helper. More...
|
|
template<class T = double, unsigned int C = 1, MemType MEM = MEMTYPE_DEFAULT, unsigned int D = 1, unsigned int E = 1>
class Proto::BoxData< T, C, MEM, D, E >
Multidimensional Rectangular Array.
BoxData is the main dataholder class of Proto. It contains an array of data of type T on a domain defined by a Box. Each data point is associated with a Point in the Box. C, D, and E define the tensor structure of the data: C,D,E = 1: Data is scalar (default) C = N, D,E = 1: Data is vector valued with N components C = M, D = N, E = 1: Data is MxN matrix valued
- Template Parameters
-
T | Type of data in array (bool, int, double, etc.) |
C | (Optional) Size of first component axis. Defaults to 1. |
D | (Optional) Size of second component axis. Defaults to 1. |
E | (Optional) Size of third component axis. Defaults to 1. |
MEM | (Optional) Where memory is allocated (device or host). Defaults to host. |