CMS 3D CMS Logo

Classes | Namespaces | Defines | Functions

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/JetMETCorrections/InterpolationTables/interface/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

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

Detailed Description

Arbitrary-dimensional array template.

Author: I. Volobouev

October 2009

Definition in file ArrayND.h.


Define 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 1252 of file ArrayND.h.