SND@LHC Software
Loading...
Searching...
No Matches
gbl::VVector Class Reference

Simple Vector based on std::vector<double> More...

#include <VMatrix.h>

Public Member Functions

 VVector (const unsigned int nRows=0)
 
 VVector (const VVector &aVector)
 
virtual ~VVector ()
 
void resize (const unsigned int nRows)
 Resize vector.
 
VVector getVec (unsigned int len, unsigned int start=0) const
 Get part of vector.
 
void putVec (const VVector &aVector, unsigned int start=0)
 Put part of vector.
 
double & operator() (unsigned int i)
 access element (i)
 
double operator() (unsigned int i) const
 access element (i)
 
unsigned int getNumRows () const
 Get number of rows.
 
void print () const
 Print vector.
 
VVector operator- (const VVector &aVector) const
 Subtraction Vector-Vector.
 
VVectoroperator= (const VVector &aVector)
 Assignment Vector=Vector.
 

Private Attributes

unsigned int numRows
 Number of rows.
 
std::vector< double > theVec
 Data.
 

Detailed Description

Simple Vector based on std::vector<double>

Definition at line 22 of file VMatrix.h.

Constructor & Destructor Documentation

◆ VVector() [1/2]

gbl::VVector::VVector ( const unsigned int  nRows = 0)

Definition at line 224 of file VMatrix.cc.

224 :
225 numRows(nRows), theVec(nRows) {
226}
std::vector< double > theVec
Data.
Definition VMatrix.h:38
unsigned int numRows
Number of rows.
Definition VMatrix.h:37

◆ VVector() [2/2]

gbl::VVector::VVector ( const VVector aVector)

Definition at line 228 of file VMatrix.cc.

228 :
229 numRows(aVector.numRows), theVec(aVector.theVec) {
230
231}

◆ ~VVector()

gbl::VVector::~VVector ( )
virtual

Definition at line 233 of file VMatrix.cc.

233 {
234}

Member Function Documentation

◆ getNumRows()

unsigned int gbl::VVector::getNumRows ( ) const

Get number of rows.

Returns
Number of rows.

Definition at line 271 of file VMatrix.cc.

271 {
272 return numRows;
273}

◆ getVec()

VVector gbl::VVector::getVec ( unsigned int  len,
unsigned int  start = 0 
) const

Get part of vector.

Parameters
[in]lenLength of part.
[in]startOffset of part.
Returns
Part of vector.

Definition at line 251 of file VMatrix.cc.

251 {
252 VVector aResult(len);
253 std::memcpy(&aResult.theVec[0], &theVec[start], sizeof(double) * len);
254 return aResult;
255}
VVector(const unsigned int nRows=0)
Definition VMatrix.cc:224

◆ operator()() [1/2]

double & gbl::VVector::operator() ( unsigned int  i)
inline

access element (i)

Definition at line 94 of file VMatrix.h.

94 {
95 return theVec[iRow];
96}

◆ operator()() [2/2]

double gbl::VVector::operator() ( unsigned int  i) const
inline

access element (i)

Definition at line 99 of file VMatrix.h.

99 {
100 return theVec[iRow];
101}

◆ operator-()

VVector gbl::VVector::operator- ( const VVector aVector) const

Subtraction Vector-Vector.

Definition at line 290 of file VMatrix.cc.

290 {
291 VVector aResult(numRows);
292 for (unsigned int i = 0; i < numRows; ++i) {
293 aResult(i) = theVec[i] - aVector(i);
294 }
295 return aResult;
296}
int i
Definition ShipAna.py:86

◆ operator=()

VVector & gbl::VVector::operator= ( const VVector aVector)

Assignment Vector=Vector.

Definition at line 299 of file VMatrix.cc.

299 {
300 if (this != &aVector) { // Gracefully handle self assignment
301 numRows = aVector.getNumRows();
302 theVec.resize(numRows);
303 for (unsigned int i = 0; i < numRows; ++i) {
304 theVec[i] = aVector(i);
305 }
306 }
307 return *this;
308}

◆ print()

void gbl::VVector::print ( ) const

Print vector.

Definition at line 276 of file VMatrix.cc.

276 {
277 std::cout << " VVector: " << numRows << std::endl;
278 for (unsigned int i = 0; i < numRows; ++i) {
279
280 if (i % 5 == 0) {
281 std::cout << std::endl << std::setw(4) << i << "-" << std::setw(4)
282 << std::min(i + 4, numRows) << ":";
283 }
284 std::cout << std::setw(13) << theVec[i];
285 }
286 std::cout << std::endl << std::endl;
287}

◆ putVec()

void gbl::VVector::putVec ( const VVector aVector,
unsigned int  start = 0 
)

Put part of vector.

Parameters
[in]aVectorVector with part.
[in]startOffset of part.

Definition at line 262 of file VMatrix.cc.

262 {
263 std::memcpy(&theVec[start], &aVector.theVec[0],
264 sizeof(double) * aVector.numRows);
265}

◆ resize()

void gbl::VVector::resize ( const unsigned int  nRows)

Resize vector.

Parameters
[in]nRowsNumber of rows.

Definition at line 240 of file VMatrix.cc.

240 {
241 numRows = nRows;
242 theVec.resize(nRows);
243}

Member Data Documentation

◆ numRows

unsigned int gbl::VVector::numRows
private

Number of rows.

Definition at line 37 of file VMatrix.h.

◆ theVec

std::vector<double> gbl::VVector::theVec
private

Data.

Definition at line 38 of file VMatrix.h.


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