QVector Class Reference

Inheritance diagram for QVector:

QObject

List of all members.


Detailed Description

Interface for vectors in Cuore analysis.

Author:
R. Faccini, M. Vignati This class is intended for use as mathematical vectors, not as container vector (like std::vector). However ther is a memory management very similar to std::vector, e.g. when resizing the memory i never released except if the method Consolidate() is used. Every class written within the CUORE framework should use this class instead of C arrays or STL vectors

Public Member Functions

 QVector ()
 default constructor
 QVector (size_t size)
 constructor with its size
 QVector (const QVector &orig)
 copy constructor
 QVector (const QVector &orig, size_t size, size_t ioff=0)
 copy only some of the elements
 QVector (const QMatrix &mat)
 constructor from QMatrix
virtual ~QVector ()
 destructor
size_t Size () const
 size of QVector
void Initialize (double val=0)
 initialize elements (default to 0)
double & operator[] (size_t i)
 retrieve an element
double & operator() (size_t i)
double operator[] (size_t i) const
 retrieve an element
double operator() (size_t i) const
const QVectoroperator= (const QVector &orig)
 copy the content of another vector
QVector operator- () const
 revert sign to all components
const QVectorMult (const QVector &other)
 multiplication element by element
const QVectorDiv (const QVector &other)
 multiplication element by element
const QVectoroperator*= (double t)
 multiplication by scalar
const QVectoroperator/= (double v)
 divide by scalar
const QVectoroperator+= (const QVector &v)
 add a QVector
const QVectoroperator-= (const QVector &v)
 subtract a QVector
double operator* (const QVector &other) const
 scalar product
QVector operator+ (const QVector &other) const
 sum vector
QVector operator- (const QVector &other) const
 subtract vector
QVector operator* (double t) const
 multiply by scalar
QVector operator/ (double t) const
 divide by scalar
QMatrix T ()
 transpose
const QVectorShift (int nstep)
 Cyclic shift of vector.
const QVectorShiftReal (double fstep)
 Cyclic shift of vector by a real number, first shift by the integer part of fstep then linear interpolation between samples is performed.
const QVectorDifferentiate ()
 make vector derivative
QVector Derivative2P (const double delta=1.) const
 compute derivative with 2 point interpolation, uses Differentiate()
QVector Derivative2PF (const double delta=1.) const
 compute derivative with forward 2 point interpolation
QVector Derivative3P (const double delta=1.) const
 compute derivative with 3 point interpolation, symmetric
QVector Derivative3PB (const double delta=1.) const
 compute derivative with 3 point interpolation, backward mode
QVector Derivative3PF (const double delta=1.) const
 compute derivative with 3 point interpolation, forward mode
QVector Derivative5P (const double delta=1.) const
 compute derivative with 5 point interpolation, symmetric
QVector Derivative5PB (const double delta=1.) const
 compute derivative with 5 point interpolation, backward mode
QVector DerivativeEulero (const double delta=1.) const
 compute derivative with Eulero interpolation, backward mode
const QVectorSort (bool asc=true)
 sort this vector
const QVectorIntegrate (double constTerm=0)
 Integrate vector.
void Resize (size_t newsize)
 resize a QVector
void Append (double val)
 append
double Norma () const
 norma
double Sum (size_t nelem, size_t first=0) const
 sum elements
double GetRMS (size_t nelem, size_t first=0) const
 Get RMS.
double GetMedian () const
 Get median.
double GetMedianAbsoluteDeviation () const
 Get median absolute deviation.
double GetMax () const
 get maximum element
double GetMin () const
 get minimum element
int GetMaxIndex (size_t nelem, size_t first) const
 get maximum element position between first and first + nelem
int GetMinIndex (size_t nelem, size_t first) const
 get minimum element position between first and first + nelem
size_t GetMaxIndex () const
 get maximum element index
size_t GetMinIndex () const
 get minimum element index
double * GetArray () const
 get an array of doubles, owned by the caller!
const double * GetConstArray () const
 get a pointer to the content
void SetArray (const double *orig, size_t size)
 get a constant pointer to the content
void Clear ()
 clear the vector
void Consolidate ()
 Reduce the amount of allocated memory to the used one.
std::string sqlString () const

Protected Member Functions

 QVector (const gsl_vector *vec)
 constructor from gsl_vector
 QVector (const QVector &orig, bool dataOwner)
void SetMathRange (size_t start, size_t size)
 Set effective mathematical range.

Protected Attributes

gsl_vector * fVec
 underlying gsl_vector, possibly larger than actually used memory (for resource optimization
gsl_vector * fMathVec
 actual portion of utilized for mathematical purposes
bool fDataOwner
 if this vector onws its data

Private Member Functions

void InitCopy (const QVector &orig, bool copyData)

Friends

class QVectorView
class QVectorConstView
class QMatrix

Constructor & Destructor Documentation

QVector::QVector ( size_t  size  ) 

constructor with its size

Parameters:
size start size of QVector

References fDataOwner, fMathVec, fVec, and SetMathRange().

QVector::QVector ( const QVector orig  ) 

copy constructor

Parameters:
orig original QVector

QVector::QVector ( const QVector orig,
size_t  size,
size_t  ioff = 0 
)

copy only some of the elements

Parameters:
orig original QVector
size number of elements to copy
ioff first element to copy

References fDataOwner, fMathVec, fVec, and SetMathRange().

QVector::QVector ( const QMatrix mat  ) 

constructor from QMatrix

build a vector out of a QMatrix taking only the first column

Parameters:
mat QMatrix of origin

References fDataOwner, fMathVec, fVec, QMatrix::GetNRow(), QMatrix::m, and SetMathRange().

QVector::QVector ( const gsl_vector *  vec  )  [protected]

constructor from gsl_vector

Parameters:
vec gsl_vector of origin

References fDataOwner, fMathVec, fVec, and SetMathRange().


Member Function Documentation

size_t QVector::Size (  )  const [inline]

void QVector::Initialize ( double  val = 0  ) 

initialize elements (default to 0)

Parameters:
val 

References fMathVec.

Referenced by QOBAmplitude::GetAmplitude(), QOBAmplitude::QOBAmplitude(), Resize(), and QOBAmplitude::TransformToFreq().

double & QVector::operator[] ( size_t  i  ) 

retrieve an element

Parameters:
i ith element
Returns:
element i of the QVector

References fMathVec.

Referenced by Append().

double QVector::operator[] ( size_t  i  )  const

retrieve an element

version for objects that cannot modify the QVector

Parameters:
i ith element
Returns:
element i of the QVector

References fMathVec.

const QVector & QVector::operator= ( const QVector orig  ) 

copy the content of another vector

Parameters:
orig original QVector

References fDataOwner, fMathVec, fVec, and SetMathRange().

const QVector & QVector::Mult ( const QVector other  ) 

multiplication element by element

v[i]=v1[i]*v2[i]

Parameters:
other 
Returns:
the same object modified

References fMathVec.

const QVector & QVector::Div ( const QVector other  ) 

multiplication element by element

v[i]=v1[i]/v2[i]

Parameters:
other 
Returns:
the same object modified

References fMathVec.

const QVector & QVector::operator*= ( double  t  ) 

multiplication by scalar

Parameters:
t 
Returns:
the same object modified

References fMathVec.

Referenced by operator/=().

const QVector & QVector::operator/= ( double  v  ) 

divide by scalar

Parameters:
t 
Returns:
the same object modified

References operator*=().

const QVector & QVector::operator+= ( const QVector v  ) 

add a QVector

Parameters:
v 
Returns:
the same object modified

References fMathVec.

const QVector & QVector::operator-= ( const QVector v  ) 

subtract a QVector

Parameters:
v 
Returns:
the same object modified

References fMathVec.

double QVector::operator* ( const QVector other  )  const

scalar product

Parameters:
other right element
Returns:
scalar product

References fMathVec.

QVector QVector::operator+ ( const QVector other  )  const

sum vector

Parameters:
other right element
Returns:
sum vector

QVector QVector::operator- ( const QVector other  )  const

subtract vector

Parameters:
other right element
Returns:
difference vector

QVector QVector::operator* ( double  t  )  const

multiply by scalar

Parameters:
t right element
Returns:
scaled vector

QVector QVector::operator/ ( double  t  )  const

divide by scalar

Parameters:
t right element
Returns:
scaled vector

QMatrix QVector::T (  ) 

transpose

a transposed vector is a matrix with a single row

Returns:
matrix

References QMatrix::SetRow(), and Size().

const QVector & QVector::Shift ( int  nstep  ) 

Cyclic shift of vector.

Parameters:
nstep if > 0 shift right, if < 0 shift left
Returns:
the same object modified

References Size().

Referenced by ShiftReal().

const QVector & QVector::ShiftReal ( double  fstep  ) 

Cyclic shift of vector by a real number, first shift by the integer part of fstep then linear interpolation between samples is performed.

Parameters:
fstep if > 0 shift right, if < 0 shift left
Returns:
the same object modified

References Shift(), and Size().

const QVector & QVector::Sort ( bool  asc = true  ) 

sort this vector

Parameters:
asc if true ascending if false descending

References fMathVec.

const QVector & QVector::Integrate ( double  constTerm = 0  ) 

Integrate vector.

Parameters:
constTerm integral constant to be added

References Size().

void QVector::Resize ( size_t  newsize  ) 

void QVector::Append ( double  val  ) 

append

add one more element at the end of the vector

Parameters:
val 

References operator[](), Resize(), and Size().

double QVector::Norma (  )  const

norma

$norma = \sqrt{v\cdot v}$

double QVector::GetRMS ( size_t  nelem,
size_t  first = 0 
) const

Get RMS.

Parameters:
nelem number of elements
first first element

References fMathVec, and Sum().

const double* QVector::GetConstArray (  )  const [inline]

get a pointer to the content

Warning! if the current vector is resized you are not granted that this pointer will point to the QVector array.

References fMathVec.

void QVector::SetArray ( const double *  orig,
size_t  size 
)

get a constant pointer to the content

copy the content of an array into the vector

Parameters:
orig original array
size number of elements in the array

References Resize().

std::string QVector::sqlString (  )  const

@ brief return string needed to dump vector into sql DB

References Size().

void QVector::SetMathRange ( size_t  start,
size_t  size 
) [protected]

Set effective mathematical range.

Parameters:
start first element
size number of elements

References fMathVec, and fVec.

Referenced by Consolidate(), operator=(), QVector(), QVectorConstView::QVectorConstView(), QVectorView::QVectorView(), and Resize().


The documentation for this class was generated from the following files:

Generated on Tue Nov 16 10:50:08 2010 for CUORE Software by  doxygen 1.5.6