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

◆ me_macro_check_loop_prerequisites

#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 1330 of file ArrayND.h.