|
| | 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. |