CMS 3D CMS Logo

Classes | Namespaces | Macros
ArrayND.h File Reference

Arbitrary-dimensional array template. More...

#include <cassert>
#include "Alignment/Geners/interface/ClassId.hh"
#include "JetMETCorrections/InterpolationTables/interface/SimpleFunctors.h"
#include "JetMETCorrections/InterpolationTables/interface/ArrayRange.h"
#include "JetMETCorrections/InterpolationTables/interface/AbsArrayProjector.h"
#include "JetMETCorrections/InterpolationTables/interface/AbsVisitor.h"
#include "JetMETCorrections/InterpolationTables/interface/PreciseType.h"
#include "JetMETCorrections/InterpolationTables/interface/ProperDblFromCmpl.h"
#include <cmath>
#include <climits>
#include <algorithm>
#include <sstream>
#include "JetMETCorrections/InterpolationTables/interface/NpstatException.h"
#include "Alignment/Geners/interface/GenericIO.hh"
#include "Alignment/Geners/interface/IOIsUnsigned.hh"
#include "JetMETCorrections/InterpolationTables/interface/allocators.h"
#include "JetMETCorrections/InterpolationTables/interface/interpolate.h"
#include "JetMETCorrections/InterpolationTables/interface/absDifference.h"
#include "JetMETCorrections/InterpolationTables/interface/ComplexComparesFalse.h"
#include "JetMETCorrections/InterpolationTables/interface/ComplexComparesAbs.h"

Go to the source code of this file.

Classes

class  npstat::ArrayND< Numeric, StackLen, StackDim >
 

Namespaces

 npstat
 

Macros

#define me_macro_check_loop_prerequisites(METHOD, INNERLOOP)
 

Detailed Description

Arbitrary-dimensional array template.

Author: I. Volobouev

October 2009

Definition in file ArrayND.h.

Macro Definition Documentation

#define me_macro_check_loop_prerequisites (   METHOD,
  INNERLOOP 
)
Value:
template<typename Numeric, unsigned Len, unsigned Dim> \
template <typename Num2, unsigned Len2, unsigned Dim2, class Functor> \
void ArrayND<Numeric,Len,Dim>:: METHOD ( \
ArrayND<Num2, Len2, Dim2>& other, \
const unsigned* thisCorner, \
const unsigned* range, \
const unsigned* otherCorner, \
const unsigned arrLen, \
Functor binaryFunct) \
{ \
if (!shapeIsKnown_) throw npstat::NpstatInvalidArgument( \
"Initialize npstat::ArrayND before calling method \"" \
#METHOD "\""); \
if (!other.shapeIsKnown_) throw npstat::NpstatInvalidArgument( \
"In npstat::ArrayND::" #METHOD ": uninitialized argument array");\
if (dim_ != other.dim_) throw npstat::NpstatInvalidArgument( \
"In npstat::ArrayND::" #METHOD ": incompatible argument array rank");\
if (arrLen != dim_) throw npstat::NpstatInvalidArgument( \
"In npstat::ArrayND::" #METHOD ": incompatible index length"); \
if (dim_) \
{ \
assert(thisCorner); \
assert(range); \
assert(otherCorner); \
INNERLOOP (0U, 0UL, 0UL, thisCorner, range, \
otherCorner, other, binaryFunct); \
} \
else \
binaryFunct(localData_[0], other.localData_[0]); \
}

Definition at line 1308 of file ArrayND.h.