|
| BaseFab () noexcept=default |
| Construct an empty BaseFab, which must be resized (see BaseFab::resize) before use. More...
|
|
| BaseFab (Arena *ar) noexcept |
|
| BaseFab (const Box &bx, int n, Arena *ar) |
|
| BaseFab (const Box &bx, int n=1, bool alloc=true, bool shared=false, Arena *ar=nullptr) |
| Make BaseFab with desired domain (box) and number of components. More...
|
|
| BaseFab (const BaseFab< T > &rhs, MakeType make_type, int scomp, int ncomp) |
|
| BaseFab (const Box &bx, int ncomp, T *p) |
| Create an NON-OWNING BaseFab. Thus BaseFab is not responsible for memory management. And it's caller's responsibility that p points to a chunk of memory large enough. More...
|
|
| BaseFab (const Box &bx, int ncomp, T const *p) |
|
| BaseFab (Array4< T > const &a) noexcept |
|
| BaseFab (Array4< T > const &a, IndexType t) noexcept |
|
| BaseFab (Array4< T const > const &a) noexcept |
|
| BaseFab (Array4< T const > const &a, IndexType t) noexcept |
|
virtual | ~BaseFab () noexcept |
| The destructor deletes the array memory. More...
|
|
| BaseFab (const BaseFab< T > &rhs)=delete |
|
BaseFab< T > & | operator= (const BaseFab< T > &rhs)=delete |
|
| BaseFab (BaseFab< T > &&rhs) noexcept |
|
BaseFab< T > & | operator= (BaseFab< T > &&rhs) noexcept |
|
template<RunOn run_on> |
BaseFab & | operator= (T const &) noexcept |
|
void | resize (const Box &b, int N=1, Arena *ar=nullptr) |
| This function resizes a BaseFab so it covers the Box b with N components. More...
|
|
template<class U = T, std::enable_if_t< std::is_trivially_destructible_v< U >, int > = 0> |
Elixir | elixir () noexcept |
|
void | clear () noexcept |
| The function returns the BaseFab to the invalid state. The memory is freed. More...
|
|
std::unique_ptr< T, DataDeleter > | release () noexcept |
| Release ownership of memory. More...
|
|
std::size_t | nBytes () const noexcept |
| Returns how many bytes used. More...
|
|
std::size_t | nBytesOwned () const noexcept |
|
std::size_t | nBytes (const Box &bx, int ncomps) const noexcept |
| Returns bytes used in the Box for those components. More...
|
|
int | nComp () const noexcept |
| Returns the number of components. More...
|
|
const int * | nCompPtr () const noexcept |
| for calls to fortran. More...
|
|
Long | numPts () const noexcept |
| Returns the number of points. More...
|
|
Long | size () const noexcept |
| Returns the total number of points of all components. More...
|
|
const Box & | box () const noexcept |
| Returns the domain (box) where the array is defined. More...
|
|
IntVect | length () const noexcept |
| Returns a pointer to an array of SPACEDIM integers giving the length of the domain in each direction. More...
|
|
const IntVect & | smallEnd () const noexcept |
| Returns the lower corner of the domain See class Box for analogue. More...
|
|
const IntVect & | bigEnd () const noexcept |
| Returns the upper corner of the domain. See class Box for analogue. More...
|
|
const int * | loVect () const noexcept |
| Returns the lower corner of the domain. More...
|
|
const int * | hiVect () const noexcept |
| Returns the upper corner of the domain. More...
|
|
bool | contains (const BaseFab< T > &fab) const noexcept |
| Returns true if the domain of fab is totally contained within the domain of this BaseFab. More...
|
|
bool | contains (const Box &bx) const noexcept |
| Returns true if bx is totally contained within the domain of this BaseFab. More...
|
|
T * | dataPtr (int n=0) noexcept |
| Returns a pointer to an object of type T that is the value of the Nth component associated with the cell at the low end of the domain. This is commonly used to get a pointer to data in the array which is then handed off to a Fortran subroutine. Remember that data is stored in Fortran array order, with the component index coming last. In other words, dataPtr returns a pointer to all the Nth components. More...
|
|
const T * | dataPtr (int n=0) const noexcept |
| Same as above except works on const FABs. More...
|
|
T * | dataPtr (const IntVect &p, int n=0) noexcept |
|
const T * | dataPtr (const IntVect &p, int n=0) const noexcept |
|
void | setPtr (T *p, Long sz) noexcept |
|
void | prefetchToHost () const noexcept |
|
void | prefetchToDevice () const noexcept |
|
AMREX_FORCE_INLINE Array4< T const > | array () const noexcept |
|
AMREX_FORCE_INLINE Array4< T const > | array (int start_comp) const noexcept |
|
AMREX_FORCE_INLINE Array4< T const > | array (int start_comp, int num_comps) const noexcept |
|
AMREX_FORCE_INLINE Array4< T > | array () noexcept |
|
AMREX_FORCE_INLINE Array4< T > | array (int start_comp) noexcept |
|
AMREX_FORCE_INLINE Array4< T > | array (int start_comp, int num_comps) noexcept |
|
AMREX_FORCE_INLINE Array4< T const > | const_array () const noexcept |
|
AMREX_FORCE_INLINE Array4< T const > | const_array (int start_comp) const noexcept |
|
AMREX_FORCE_INLINE Array4< T const > | const_array (int start_comp, int num_comps) const noexcept |
|
bool | isAllocated () const noexcept |
| Returns true if the data for the FAB has been allocated. More...
|
|
T & | operator() (const IntVect &p, int N) noexcept |
| Returns a reference to the Nth component value defined at position p in the domain. This operator may be inefficient if the C++ compiler is unable to optimize the C++ code. More...
|
|
T & | operator() (const IntVect &p) noexcept |
| Same as above, except returns component 0. More...
|
|
const T & | operator() (const IntVect &p, int N) const noexcept |
| Same as above except works on const FABs. More...
|
|
const T & | operator() (const IntVect &p) const noexcept |
| Same as above, except returns component 0. More...
|
|
void | getVal (T *data, const IntVect &pos, int N, int numcomp) const noexcept |
| This function puts numcomp component values, starting at component N, from position pos in the domain into array data, that must be allocated by the user. More...
|
|
void | getVal (T *data, const IntVect &pos) const noexcept |
| Same as above, except that starts at component 0 and copies all comps. More...
|
|
template<RunOn run_on, class U = T, std::enable_if_t< std::is_same_v< U, float >||std::is_same_v< U, double >, int > FOO = 0> |
void | fill_snan () noexcept |
|
template<RunOn run_on> |
void | setVal (T const &x, const Box &bx, int dcomp, int ncomp) noexcept |
| The setVal functions set sub-regions in the BaseFab to a constant value. This most general form specifies the sub-box, the starting component number, and the number of components to be set. More...
|
|
template<RunOn run_on> |
void | setVal (T const &x, const Box &bx, int N=0) noexcept |
| Same as above, except the number of modified components is one. N is the component to be modified. More...
|
|
template<RunOn run_on> |
void | setVal (T const &x, int N) noexcept |
| Same as above, except the sub-box defaults to the entire domain. More...
|
|
template<RunOn run_on> |
void | setValIfNot (T const &val, const Box &bx, const BaseFab< int > &mask, int nstart, int num) noexcept |
|
template<RunOn run_on> |
void | setComplement (T const &x, const Box &b, int ns, int num) noexcept |
| This function is analogous to the fourth form of setVal above, except that instead of setting values on the Box b, values are set on the complement of b in the domain. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | copy (const BaseFab< T > &src, const Box &srcbox, int srccomp, const Box &destbox, int destcomp, int numcomp) noexcept |
| The copy functions copy the contents of one BaseFab into another. The destination BaseFab is always the object which invokes the function. This, the most general form of copy, specifies the contents of any sub-box srcbox in BaseFab src may be copied into a (possibly different) destbox in the destination BaseFab. Note that although the srcbox and the destbox may be disjoint, they must be the same size and shape. If the sizes differ, the copy is undefined and a runtime error results. This copy function is the only one of the copy functions to allow a copy between differing boxes. The user also specifies how many components are copied, starting at component srccomp in src and stored starting at component destcomp. The results are UNDEFINED if the src and dest are the same and the srcbox and destbox overlap. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | copy (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| As above, except the destination Box and the source Box are taken to be the entire domain of the destination. A copy of the intersecting region is performed. class. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | copy (const BaseFab< T > &src, const Box &destbox) noexcept |
| As above, except that the destination Box is specified, but the source Box is taken to the equal to the destination Box, and all components of the destination BaseFab are copied. More...
|
|
template<RunOn run_on> |
std::size_t | copyToMem (const Box &srcbox, int srccomp, int numcomp, void *dst) const noexcept |
| Copy from the srcbox of this Fab to raw memory and return the number of bytes copied. More...
|
|
template<RunOn run_on, typename BUF = T> |
std::size_t | copyFromMem (const Box &dstbox, int dstcomp, int numcomp, const void *src) noexcept |
| Copy from raw memory to the dstbox of this Fab and return the number of bytes copied. More...
|
|
template<RunOn run_on, typename BUF = T> |
std::size_t | addFromMem (const Box &dstbox, int dstcomp, int numcomp, const void *src) noexcept |
| Add from raw memory to the dstbox of this Fab and return the number of bytes copied. More...
|
|
BaseFab< T > & | shift (const IntVect &v) noexcept |
| Perform shifts upon the domain of the BaseFab. They are completely analogous to the corresponding Box functions. There is no effect upon the array memory. More...
|
|
BaseFab< T > & | shift (int idir, int n_cell) noexcept |
| Perform shifts upon the domain of the BaseFab. They are completely analogous to the corresponding Box functions. There is no effect upon the array memory. More...
|
|
BaseFab< T > & | shiftHalf (int dir, int n_cell) noexcept |
| Perform shifts upon the domain of the BaseFab. They are completely analogous to the corresponding Box functions. There is no effect upon the array memory. More...
|
|
BaseFab< T > & | shiftHalf (const IntVect &v) noexcept |
| Perform shifts upon the domain of the BaseFab. They are completely analogous to the corresponding Box functions. There is no effect upon the array memory. More...
|
|
template<RunOn run_on> |
Real | norminfmask (const Box &subbox, const BaseFab< int > &mask, int scomp=0, int ncomp=1) const noexcept |
|
template<RunOn run_on> |
Real | norm (int p, int scomp=0, int numcomp=1) const noexcept |
| Compute the Lp-norm of this FAB using components (scomp : scomp+ncomp-1). p < 0 -> ERROR p = 0 -> infinity norm (max norm) p = 1 -> sum of ABS(FAB) More...
|
|
template<RunOn run_on> |
Real | norm (const Box &subbox, int p, int scomp=0, int numcomp=1) const noexcept |
| Same as above except only on given subbox. More...
|
|
template<RunOn run_on> |
void | abs () noexcept |
| Compute absolute value for all components of this FAB. More...
|
|
template<RunOn run_on> |
void | abs (int comp, int numcomp=1) noexcept |
| Same as above except only for components (comp: comp+numcomp-1) More...
|
|
template<RunOn run_on> |
void | abs (const Box &subbox, int comp=0, int numcomp=1) noexcept |
| Calculate abs() on subbox for given component range. More...
|
|
template<RunOn run_on> |
T | min (int comp=0) const noexcept |
|
template<RunOn run_on> |
T | min (const Box &subbox, int comp=0) const noexcept |
|
template<RunOn run_on> |
T | max (int comp=0) const noexcept |
|
template<RunOn run_on> |
T | max (const Box &subbox, int comp=0) const noexcept |
|
template<RunOn run_on> |
std::pair< T, T > | minmax (int comp=0) const noexcept |
|
template<RunOn run_on> |
std::pair< T, T > | minmax (const Box &subbox, int comp=0) const noexcept |
|
template<RunOn run_on> |
T | maxabs (int comp=0) const noexcept |
|
template<RunOn run_on> |
T | maxabs (const Box &subbox, int comp=0) const noexcept |
|
template<RunOn run_on> |
IntVect | indexFromValue (const Box &subbox, int comp, T const &value) const noexcept |
|
template<RunOn run_on> |
IntVect | minIndex (int comp=0) const noexcept |
|
template<RunOn run_on> |
IntVect | minIndex (const Box &subbox, int comp=0) const noexcept |
|
template<RunOn run_on> |
void | minIndex (const Box &subbox, Real &min_val, IntVect &min_idx, int comp=0) const noexcept |
|
template<RunOn run_on> |
IntVect | maxIndex (int comp=0) const noexcept |
|
template<RunOn run_on> |
IntVect | maxIndex (const Box &subbox, int comp=0) const noexcept |
|
template<RunOn run_on> |
void | maxIndex (const Box &subbox, Real &max_value, IntVect &max_idx, int comp=0) const noexcept |
|
template<RunOn run_on> |
int | maskLT (BaseFab< int > &mask, T const &val, int comp=0) const noexcept |
| Compute mask array with value of 1 in cells where BaseFab has value less than val, 0 otherwise. mask is resized by this function. The number of cells marked with 1 returned. More...
|
|
template<RunOn run_on> |
int | maskLE (BaseFab< int > &mask, T const &val, int comp=0) const noexcept |
| Same as above except mark cells with value less than or equal to val. More...
|
|
template<RunOn run_on> |
int | maskEQ (BaseFab< int > &mask, T const &val, int comp=0) const noexcept |
| Same as above except mark cells with value equal to val. More...
|
|
template<RunOn run_on> |
int | maskGT (BaseFab< int > &mask, T const &val, int comp=0) const noexcept |
| Same as above except mark cells with value greater than val. More...
|
|
template<RunOn run_on> |
int | maskGE (BaseFab< int > &mask, T const &val, int comp=0) const noexcept |
| Same as above except mark cells with value greater than or equal to val. More...
|
|
template<RunOn run_on> |
T | sum (int comp, int numcomp=1) const noexcept |
| Returns sum of given component of FAB state vector. More...
|
|
template<RunOn run_on> |
T | sum (const Box &subbox, int comp, int numcomp=1) const noexcept |
| Compute sum of given component of FAB state vector in given subbox. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | invert (T const &r, const Box &b, int comp=0, int numcomp=1) noexcept |
| Most general version, specify subbox and which components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | invert (T const &r, int comp, int numcomp=1) noexcept |
| As above except on entire domain. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | negate (const Box &b, int comp=0, int numcomp=1) noexcept |
| Negate BaseFab, most general. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | negate (int comp, int numcomp=1) noexcept |
| As above, except on entire domain. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (T const &r, const Box &b, int comp=0, int numcomp=1) noexcept |
| Scalar addition (a[i] <- a[i] + r), most general. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (T const &r, int comp, int numcomp=1) noexcept |
| As above, except on entire domain. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| Add src components (srccomp:srccomp+numcomp-1) to this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (const BaseFab< T > &src, const Box &subbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Same as above except addition is restricted to intersection of subbox and src FAB. NOTE: subbox must be contained in this FAB. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Add srcbox region of src FAB to destbox region of this FAB. The srcbox and destbox must be same size. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | atomicAdd (const BaseFab< T > &x) noexcept |
| Atomic FAB addition (a[i] <- a[i] + b[i]). More...
|
|
template<RunOn run_on> |
BaseFab< T > & | atomicAdd (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| Atomically add src components (srccomp:srccomp+numcomp-1) to this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | atomicAdd (const BaseFab< T > &src, const Box &subbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Same as above except addition is restricted to intersection of subbox and src FAB. NOTE: subbox must be contained in this FAB. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | atomicAdd (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Atomically add srcbox region of src FAB to destbox region of this FAB. The srcbox and destbox must be same size. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | lockAdd (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp) noexcept |
| Atomically add srcbox region of src FAB to destbox region of this FAB. The srcbox and destbox must be same size. When OMP is on, this uses OMP locks in the implementation and it's usually faster than atomicAdd. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | saxpy (T a, const BaseFab< T > &x, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| FAB SAXPY (y[i] <- y[i] + a * x[i]), in place. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | saxpy (T a, const BaseFab< T > &x) noexcept |
| FAB SAXPY (y[i] <- y[i] + a * x[i]), in place. All components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | xpay (T a, const BaseFab< T > &x, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| FAB XPAY (y[i] <- x[i] + a * y[i]) More...
|
|
template<RunOn run_on> |
BaseFab< T > & | addproduct (const Box &destbox, int destcomp, int numcomp, const BaseFab< T > &src1, int comp1, const BaseFab< T > &src2, int comp2) noexcept |
| y[i] <- y[i] + x1[i] * x2[i]) More...
|
|
template<RunOn run_on> |
BaseFab< T > & | minus (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| Subtract src components (srccomp:srccomp+numcomp-1) to this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | minus (const BaseFab< T > &src, const Box &subbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Same as above except subtraction is restricted to intersection of subbox and src FAB. NOTE: subbox must be contained in this FAB. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | minus (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Subtract srcbox region of src FAB from destbox region of this FAB. srcbox and destbox must be same size. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (T const &r, int comp, int numcomp=1) noexcept |
| Scalar multiplication, except control which components are multiplied. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (T const &r, const Box &b, int comp=0, int numcomp=1) noexcept |
| As above, except specify sub-box. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| Multiply src components (srccomp:srccomp+numcomp-1) with this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (const BaseFab< T > &src, const Box &subbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Same as above except multiplication is restricted to intersection of subbox and src FAB. NOTE: subbox must be contained in this FAB. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Multiply srcbox region of src FAB with destbox region of this FAB. The srcbox and destbox must be same size. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (T const &r, int comp, int numcomp=1) noexcept |
| As above except specify which components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (T const &r, const Box &b, int comp=0, int numcomp=1) noexcept |
| As above except specify sub-box. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| This FAB is numerator, src FAB is denominator divide src components (srccomp:srccomp+numcomp-1) into this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (const BaseFab< T > &src, const Box &subbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Same as above except division is restricted to intersection of subbox and src FAB. NOTE: subbox must be contained in this FAB. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| destbox region of this FAB is numerator. srcbox regions of src FAB is denominator. srcbox and destbox must be same size. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | protected_divide (const BaseFab< T > &src) noexcept |
| Divide wherever "src" is "true" or "non-zero". More...
|
|
template<RunOn run_on> |
BaseFab< T > & | protected_divide (const BaseFab< T > &src, int srccomp, int destcomp, int numcomp=1) noexcept |
| Divide wherever "src" is "true" or "non-zero". This FAB is numerator, src FAB is denominator divide src components (srccomp:srccomp+numcomp-1) into this FABs components (destcomp:destcomp+numcomp-1) where the two FABs intersect. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | protected_divide (const BaseFab< T > &src, const Box &subbox, int srccomp, int destcomp, int numcomp=1) noexcept |
| Divide wherever "src" is "true" or "non-zero". Same as above except division is restricted to intersection of subbox and src FAB. NOTE: subbox must be contained in this FAB. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | protected_divide (const BaseFab< T > &src, const Box &srcbox, const Box &destbox, int srccomp, int destcomp, int numcomp=1) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | linInterp (const BaseFab< T > &f1, const Box &b1, int comp1, const BaseFab< T > &f2, const Box &b2, int comp2, Real t1, Real t2, Real t, const Box &b, int comp, int numcomp=1) noexcept |
| Linear interpolation / extrapolation. Result is (t2-t)/(t2-t1)*f1 + (t-t1)/(t2-t1)*f2 Data is taken from b1 region of f1, b2 region of f2 and stored in b region of this FAB. Boxes b, b1 and b2 must be the same size. Data is taken from component comp1 of f1, comp2 of f2, and stored in component comp of this FAB. This FAB is returned as a reference for chaining. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | linInterp (const BaseFab< T > &f1, int comp1, const BaseFab< T > &f2, int comp2, Real t1, Real t2, Real t, const Box &b, int comp, int numcomp=1) noexcept |
| Version of linInterp() in which b, b1, & b2 are the same. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | linComb (const BaseFab< T > &f1, const Box &b1, int comp1, const BaseFab< T > &f2, const Box &b2, int comp2, Real alpha, Real beta, const Box &b, int comp, int numcomp=1) noexcept |
| Linear combination. Result is alpha*f1 + beta*f2. Data is taken from b1 region of f1, b2 region of f2 and stored in b region of this FAB. Boxes b, b1 and b2 must be the same size. Data is taken from component comp1 of f1, comp2 of f2, and stored in component comp of this FAB. This FAB is returned as a reference for chaining. More...
|
|
template<RunOn run_on> |
T | dot (const Box &xbx, int xcomp, const BaseFab< T > &y, const Box &ybx, int ycomp, int numcomp=1) const noexcept |
| Dot product of x (i.e.,this) and y. More...
|
|
template<RunOn run_on> |
T | dotmask (const BaseFab< int > &mask, const Box &xbx, int xcomp, const BaseFab< T > &y, const Box &ybx, int ycomp, int numcomp) const noexcept |
|
void | SetBoxType (const IndexType &typ) noexcept |
| Change the Box type without change the length. More...
|
|
template<RunOn run_on> |
void | setVal (T const &val) noexcept |
| Set value on the whole domain and all components. More...
|
|
template<RunOn run_on> |
void | setVal (T const &x, Box const &bx, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
void | setValIf (T const &val, const BaseFab< int > &mask) noexcept |
|
template<RunOn run_on> |
void | setValIf (T const &val, Box const &bx, const BaseFab< int > &mask, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
void | setValIfNot (T const &val, const BaseFab< int > &mask) noexcept |
|
template<RunOn run_on> |
void | setValIfNot (T const &val, Box const &bx, const BaseFab< int > &mask, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
void | setComplement (T const &x, Box const &bx, DestComp dcomp, NumComps ncomp) noexcept |
| setVal on the complement of bx in the fab's domain More...
|
|
template<RunOn run_on> |
BaseFab< T > & | copy (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | copy (const BaseFab< T > &src, Box bx, SrcComp scomp, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx does not intersect with src fab. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (T const &val) noexcept |
| Scalar addition on the whole domain and all components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | operator+= (T const &val) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | plus (T const &val, Box const &bx, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | plus (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | operator+= (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | plus (const BaseFab< T > &src, Box bx, SrcComp scomp, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx does not intersect with src fab. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | minus (T const &val) noexcept |
| Scalar subtraction on the whole domain and all components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | operator-= (T const &val) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | minus (T const &val, Box const &bx, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | minus (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | operator-= (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | minus (const BaseFab< T > &src, Box bx, SrcComp scomp, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx does not intersect with src fab. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (T const &val) noexcept |
| Scalar multiplication on the whole domain and all components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | operator*= (T const &val) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | mult (T const &val, Box const &bx, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | mult (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | operator*= (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | mult (const BaseFab< T > &src, Box bx, SrcComp scomp, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx does not intersect with src fab. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (T const &val) noexcept |
| Scalar division on the whole domain and all components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | operator/= (T const &val) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | divide (T const &val, Box const &bx, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx is empty. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | divide (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | operator/= (const BaseFab< T > &src) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | divide (const BaseFab< T > &src, Box bx, SrcComp scomp, DestComp dcomp, NumComps ncomp) noexcept |
| Do nothing if bx does not intersect with src fab. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | negate () noexcept |
| on the whole domain and all components More...
|
|
template<RunOn run_on> |
BaseFab< T > & | negate (const Box &bx, DestComp dcomp, NumComps ncomp) noexcept |
|
template<RunOn run_on> |
BaseFab< T > & | invert (T const &r) noexcept |
| Fab <- Fab/r on the whole domain and all components. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | invert (T const &r, const Box &bx, DestComp dcomp, NumComps ncomp) noexcept |
|
template<RunOn run_on> |
T | sum (const Box &bx, DestComp dcomp, NumComps ncomp) const noexcept |
| Sum. More...
|
|
template<RunOn run_on> |
T | dot (const BaseFab< T > &src, const Box &bx, SrcComp scomp, DestComp dcomp, NumComps ncomp) const noexcept |
| Dot product of two Fabs. More...
|
|
template<RunOn run_on> |
T | dot (const Box &bx, int destcomp, int numcomp) const noexcept |
| Int wrapper for dot. More...
|
|
template<RunOn run_on> |
T | dot (const Box &bx, DestComp dcomp, NumComps ncomp) const noexcept |
| Dot product. More...
|
|
template<RunOn run_on> |
T | dotmask (const BaseFab< T > &src, const Box &bx, const BaseFab< int > &mask, SrcComp scomp, DestComp dcomp, NumComps ncomp) const noexcept |
| Dot product of two Fabs with mask. More...
|
|
template<RunOn run_on> |
BaseFab< T > & | operator= (T const &t) noexcept |
|
| DataAllocator () noexcept=default |
|
| DataAllocator (Arena *ar) noexcept |
|
void * | alloc (std::size_t sz) const noexcept |
|
void | free (void *pt) const noexcept |
|
Arena * | arena () const noexcept |
|