Proto  3.2
Classes | Namespaces | Macros | Enumerations | Functions
Proto_BoxData.H File Reference
#include <memory>
#include <iostream>
#include <fstream>
#include <iomanip>
#include <limits>
#include <cstdlib>
#include <cmath>
#include <map>
#include <random>
#include <unordered_map>
#include <type_traits>
#include "Proto_Timer.H"
#include "Proto_Accel.H"
#include "Proto_MemType.H"
#include "Proto_Memory.H"
#include "Proto_Stack.H"
#include "Proto_Array.H"
#include "Proto_Box.H"
#include "Proto_CoordPermutation.H"
#include "Proto_Stencil.H"
#include "Proto_CInterval.H"
#include "Proto_Reduction.H"
#include "Proto_DisjointBoxLayout.H"
Include dependency graph for Proto_BoxData.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  Proto::Stencil< T >
 A Linear Stencil Operation. More...
 
struct  Proto::LazyInterpStencil< T, C, MEM, D, E >
 
class  Proto::Var< T, C, MEM, D, E >
 Pointwise Variable. More...
 
class  Proto::BoxData< T, C, MEM, D, E >
 Multidimensional Rectangular Array. More...
 
class  Proto::FluxBoxData< T, C, MEM, D, E >
 

Namespaces

 Proto
 

Macros

#define _PROTO_RECTMDARRAY_H_
 

Enumerations

enum  Proto::BoxDataOp {
  Proto::Invalid = -1, Proto::Copy = 0, Proto::Add = 1, Proto::Assign,
  Proto::Subtract, Proto::Multiply, Proto::Divide, Proto::NUM_OP_TYPES
}
 

Functions

template<MemType MEM>
void Proto::null_deleter_boxdata (void *ptr)
 
template<typename T , unsigned int CL, unsigned int CR, MemType MEM, unsigned int DL, unsigned int DR, unsigned int E = 1>
BoxData< T, CL, MEM, DR, E > Proto::matrixProduct (const BoxData< T, CL, MEM, DL, E > &A, const BoxData< T, CR, MEM, DR, E > &B, T scale=1.0)
 
template<typename T , unsigned int CL, unsigned int CR, MemType MEM, unsigned int DL, unsigned int DR, unsigned int E = 1>
BoxData< T, DL, MEM, DR, E > Proto::matrixProductLeftTranspose (const BoxData< T, CL, MEM, DL, E > &A, const BoxData< T, CR, MEM, DR, E > &B, T scale=1.0)
 
template<typename T , unsigned int CL, unsigned int CR, MemType MEM, unsigned int DL, unsigned int DR, unsigned int E = 1>
BoxData< T, CL, MEM, CR, E > Proto::matrixProductRightTranspose (const BoxData< T, CL, MEM, DL, E > &A, const BoxData< T, CR, MEM, DR, E > &B, T scale=1.0)
 
Alias and Slice Operators

The alias and slice operations facilitate BoxData operations while avoiding unnecessary copies. See the sample code below for an explanation of the syntax.

Example alias usage:

Example slice usage:

template<class T , unsigned int C = 1, unsigned int D = 1, unsigned int E = 1, MemType MEM = MEMTYPE_DEFAULT>
BoxData< T, C, MEM, D, E > Proto::alias (BoxData< T, C, MEM, D, E > &a_original, const Point &a_shift=Point::Zeros())
 Alias (Non-Const) More...
 
template<class T , unsigned int C = 1, unsigned int D = 1, unsigned int E = 1, MemType MEM = MEMTYPE_DEFAULT>
const BoxData< T, C, MEM, D, E > Proto::alias (const BoxData< T, C, MEM, D, E > &a_original, const Point &a_shift=Point::Zeros())
 Alias (Const) More...
 
template<typename T , unsigned int C, MemType MEM = MEMTYPE_DEFAULT, unsigned int D = 1, unsigned int E = 1>
BoxData< T, 1, MEM, 1, 1 > Proto::slice (const BoxData< T, C, MEM, D, E > &a_src, unsigned int a_c, unsigned int a_d=0, unsigned int a_e=0)
 Slice Arbitrary Component (Non-Const) More...
 
template<typename T , unsigned int C, unsigned int CC, MemType MEM = MEMTYPE_DEFAULT>
BoxData< T, CC, MEM, 1, 1 > Proto::slice (const BoxData< T, C, MEM, 1, 1 > &a_src, unsigned int a_startcomp)
 Vector Slice (Non-Const) More...
 
template<typename T , unsigned int C, unsigned int D, MemType MEM = MEMTYPE_DEFAULT>
BoxData< T, C, MEM, 1, 1 > Proto::plane (const BoxData< T, C, MEM, D, 1 > &a_src, unsigned int a_d)
 

Macro Definition Documentation

◆ _PROTO_RECTMDARRAY_H_

#define _PROTO_RECTMDARRAY_H_