Inheritance diagram for QVector:
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 QVector & | operator= (const QVector &orig) |
copy the content of another vector | |
QVector | operator- () const |
revert sign to all components | |
const QVector & | Mult (const QVector &other) |
multiplication element by element | |
const QVector & | Div (const QVector &other) |
multiplication element by element | |
const QVector & | operator *= (double t) |
multiplication by scalar | |
const QVector & | operator/= (double v) |
divide by scalar | |
const QVector & | operator+= (const QVector &v) |
add a QVector | |
const QVector & | operator-= (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 QVector & | Shift (int nstep) |
Cyclic shift of vector. | |
const 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. | |
const QVector & | Differentiate () |
make vector derivative | |
QVector | Derivative3P (const double delta=1.) const |
compute derivative with 3 point interpolation, error is (delta^2) / 6 * f'''(xi); | |
QVector | Derivative5P (const double delta=1.) const |
compute derivative with 5 point interpolation, error is (delta^4)/ 30 * f'''''(xi); | |
const QVector & | Sort (bool asc=true) |
sort this vector | |
const QVector & | Integrate (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 contentcopy the content of an array into the vector | |
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 |
QVector::QVector | ( | size_t | size | ) |
QVector::QVector | ( | const QVector & | orig, | |
size_t | size, | |||
size_t | ioff = 0 | |||
) |
copy only some of the elements
orig | original QVector | |
size | number of elements to copy | |
ioff | first element to copy |
QVector::QVector | ( | const QMatrix & | mat | ) |
QVector::QVector | ( | const gsl_vector * | vec | ) | [protected] |
constructor from gsl_vector
vec | gsl_vector of origin |
void QVector::Initialize | ( | double | val = 0 |
) |
initialize elements (default to 0)
val |
double & QVector::operator[] | ( | size_t | i | ) |
double QVector::operator[] | ( | size_t | i | ) | const |
multiplication element by element
v[i]=v1[i]*v2[i]
other |
multiplication element by element
v[i]=v1[i]/v2[i]
other |
const QVector & QVector::operator *= | ( | double | t | ) |
multiplication by scalar
t |
const QVector & QVector::operator/= | ( | double | v | ) |
divide by scalar
t |
double QVector::operator * | ( | const QVector & | other | ) | const |
scalar product
other | right element |
sum vector
other | right element |
subtract vector
other | right element |
QVector QVector::operator * | ( | double | t | ) | const |
multiply by scalar
t | right element |
QVector QVector::operator/ | ( | double | t | ) | const |
divide by scalar
t | right element |
QMatrix QVector::T | ( | ) |
transpose
a transposed vector is a matrix with a single row
const QVector & QVector::Shift | ( | int | nstep | ) |
Cyclic shift of vector.
nstep | if > 0 shift right, if < 0 shift left |
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.
fstep | if > 0 shift right, if < 0 shift left |
const QVector & QVector::Sort | ( | bool | asc = true |
) |
sort this vector
asc | if true ascending if false descending |
const QVector & QVector::Integrate | ( | double | constTerm = 0 |
) |
Integrate vector.
constTerm | integral constant to be added |
void QVector::Resize | ( | size_t | newsize | ) |
void QVector::Append | ( | double | val | ) |
append
add one more element at the end of the vector
val |
double QVector::Norma | ( | ) | const |
norma
double QVector::GetRMS | ( | size_t | nelem, | |
size_t | first = 0 | |||
) | const |
Get RMS.
nelem | number of elements | |
first | first element |
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.
void QVector::SetArray | ( | const double * | orig, | |
size_t | size | |||
) |
get a constant pointer to the contentcopy the content of an array into the vector
orig | original array | |
size | number of elements in the array |
std::string QVector::sqlString | ( | ) | const |
@ brief return string needed to dump vector into sql DB
void QVector::SetMathRange | ( | size_t | start, | |
size_t | size | |||
) | [protected] |
Set effective mathematical range.
start | first element | |
size | number of elements |