CMS 3D CMS Logo

Public Member Functions | Private Member Functions

npstat::EquidistantInLinearSpace Class Reference

#include <EquidistantSequence.h>

Inheritance diagram for npstat::EquidistantInLinearSpace:
vector

List of all members.

Public Member Functions

 EquidistantInLinearSpace (double minScale, double maxScale, unsigned nScales)
virtual ~EquidistantInLinearSpace ()

Private Member Functions

 EquidistantInLinearSpace ()

Detailed Description

A sequence of points equidistant in linear space. Note that std::vector destructor is not virtual, so do not destroy this class by base pointer or reference.

Definition at line 22 of file EquidistantSequence.h.


Constructor & Destructor Documentation

npstat::EquidistantInLinearSpace::EquidistantInLinearSpace ( double  minScale,
double  maxScale,
unsigned  nScales 
)

Definition at line 7 of file EquidistantSequence.cc.

References i, and relval_parameters_module::step.

        : std::vector<double>()
    {
        switch (nScales)
        {
        case 0:
        break;

        case 1:
        {
            this->reserve(nScales);
            const double sc = (minScale == maxScale ? minScale :
                               (minScale + maxScale)/2.0);
            push_back(sc);
        }
        break;

        default:
        {
            this->reserve(nScales);
            const double step = (maxScale - minScale)/(nScales - 1);
            push_back(minScale);
            for (unsigned i=1; i<nScales - 1; ++i)
                push_back(minScale + i*step);
            push_back(maxScale);
        }
        break;
        }
    }
virtual npstat::EquidistantInLinearSpace::~EquidistantInLinearSpace ( ) [inline, virtual]

Definition at line 27 of file EquidistantSequence.h.

{}
npstat::EquidistantInLinearSpace::EquidistantInLinearSpace ( ) [private]