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 | |
namespace | npstat |
Defines | |
#define | me_macro_check_loop_prerequisites(METHOD, INNERLOOP) |
Functions | |
npstat::me_macro_check_loop_prerequisites (jointSubrangeScan, commonSubrangeLoop) me_macro_check_loop_prerequisites(dualCircularScan | |
dualCircularLoop | npstat::me_macro_check_loop_prerequisites (flatCircularScan, flatCircularLoop) me_macro_check_loop_prerequisites(circularFlatScan |
Arbitrary-dimensional array template.
Author: I. Volobouev
October 2009
Definition in file ArrayND.h.
#define me_macro_check_loop_prerequisites | ( | METHOD, | |
INNERLOOP | |||
) |
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]); \ }