A++ » INCLUDE » TNDArrayRef<double>

class TNDArrayRef<double>


TNDArray

N-Dim array class.

Storage layout:
Assume 3 dimensions, array sizes 2, 4 and 3 i.e. 24 bins:
Data is stored as [0,0,0], [0,0,1], [0,0,2], [0,1,0],...

fSizes stores the combined size of each bin in a dimension, i.e. in
above example it would contain 24, 12, 3, 1.

Storage is allocated lazily, only when data is written to the array.

TNDArrayRef gives access to a sub-dimension, e.g. arr[0][1] in above
three-dimensional example, up to an element with conversion operator
to double: double value = arr[0][1][2];


Function Members (Methods)

public:
~TNDArrayRef<double>()
static TClass*Class()
TClass*IsA() const
doubleoperator double() const
TNDArrayRef<double>&operator=(const TNDArrayRef<double>&)
TNDArrayRef<double>&operator=(TNDArrayRef<double>&&)
TNDArrayRef<double>operator[](Int_t idx) const
voidShowMembers(TMemberInspector& insp) const
voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
TNDArrayRef<double>(const TNDArrayRef<double>&)
TNDArrayRef<double>(TNDArrayRef<double>&&)
TNDArrayRef<double>(const double* data, const Long64_t* sizes)

Data Members

private:
const double*fDatapointer into TNDArray's fData
const Long64_t*fSizespointer into TNDArray's fSizes

Class Charts

Inheritance Chart:
TNDArrayRef<double>

Function documentation

TNDArray& operator=(const TNDArray&)
TNDArrayRef<T> operator[](Int_t idx) const
template<> void TNDArrayT<double> Streamer(TBuffer& )
 When building with -fmodules, it instantiates all pending instantiations,
 instead of delaying them until the end of the translation unit.
 We 'got away with' probably because the use and the definition of the
 explicit specialization do not occur in the same TU.

 In case we are building with -fmodules, we need to forward declare the
 specialization in order to compile the dictionary G__Hist.cxx.