FEDRA emulsion software from the OPERA Collaboration
SVector< T, D > Class Template Reference

#include <SVector.hh>

Public Types

— Typedefs —
typedef T value_type
 

Public Member Functions

— Constructors —
 SVector ()
 
template<class A >
 SVector (const Expr< A, T, D > &rhs)
 
 SVector (const SVector< T, D > &rhs)
 
template<unsigned int D1>
 SVector (const SVector< T, D1 > &rhs)
 $D1\le D$ required! More...
 
template<unsigned int D1>
 SVector (const T &a1, const SVector< T, D1 > &rhs)
 $D1\le D-1$ required! More...
 
 SVector (const T *a, unsigned int len)
 fill from array, len must be equal to D! More...
 
 SVector (const T &rhs)
 
 SVector (const T &a1, const T &a2)
 
 SVector (const T &a1, const T &a2, const T &a3)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4, const T &a5)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4, const T &a5, const T &a6)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4, const T &a5, const T &a6, const T &a7)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4, const T &a5, const T &a6, const T &a7, const T &a8)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4, const T &a5, const T &a6, const T &a7, const T &a8, const T &a9)
 
 SVector (const T &a1, const T &a2, const T &a3, const T &a4, const T &a5, const T &a6, const T &a7, const T &a8, const T &a9, const T &a10)
 
SVector< T, D > & operator= (const T &rhs)
 
template<class A >
SVector< T, D > & operator= (const Expr< A, T, D > &rhs)
 
— Operators —
bool operator== (const T &rhs) const
 element wise comparison More...
 
bool operator!= (const T &rhs) const
 element wise comparison More...
 
bool operator== (const SVector< T, D > &rhs) const
 element wise comparison More...
 
bool operator!= (const SVector< T, D > &rhs) const
 element wise comparison More...
 
template<class A >
bool operator== (const Expr< A, T, D > &rhs) const
 element wise comparison More...
 
template<class A >
bool operator!= (const Expr< A, T, D > &rhs) const
 element wise comparison More...
 
bool operator> (const T &rhs) const
 element wise comparison More...
 
bool operator< (const T &rhs) const
 element wise comparison More...
 
bool operator> (const SVector< T, D > &rhs) const
 element wise comparison More...
 
bool operator< (const SVector< T, D > &rhs) const
 element wise comparison More...
 
template<class A >
bool operator> (const Expr< A, T, D > &rhs) const
 element wise comparison More...
 
template<class A >
bool operator< (const Expr< A, T, D > &rhs) const
 element wise comparison More...
 
const T & operator[] (unsigned int i) const
 read-only access More...
 
const T & operator() (unsigned int i) const
 read-only access More...
 
T & operator[] (unsigned int i)
 read/write access More...
 
T & operator() (unsigned int i)
 read/write access More...
 
SVector< T, D > & operator+= (const SVector< T, D > &rhs)
 
template<class A >
SVector< T, D > & operator+= (const Expr< A, T, D > &rhs)
 
SVector< T, D > & operator-= (const SVector< T, D > &rhs)
 
template<class A >
SVector< T, D > & operator-= (const Expr< A, T, D > &rhs)
 
SVector< T, D > & operator*= (const SVector< T, D > &rhs)
 
template<class A >
SVector< T, D > & operator*= (const Expr< A, T, D > &rhs)
 
SVector< T, D > & operator/= (const SVector< T, D > &rhs)
 
template<class A >
SVector< T, D > & operator/= (const Expr< A, T, D > &rhs)
 

— Expert functions —

array [D]
 
SVector< T, D > & unit ()
 transform vector into a vector of lenght 1 More...
 
template<unsigned int D2>
SVector< T, D > & place_at (const SVector< T, D2 > &rhs, const unsigned int row)
 place a sub-vector starting at <row> More...
 
template<class A , unsigned int D2>
SVector< T, D > & place_at (const Expr< A, T, D2 > &rhs, const unsigned int row)
 place a sub-vector starting at <row> More...
 
std::ostream & print (std::ostream &os) const
 used by operator<<() More...
 

— Access functions —

apply (unsigned int i) const
 access the parse tree More...
 
const T * Array () const
 return read-only pointer to internal array More...
 
T * Array ()
 return pointer to internal array More...
 
static unsigned int dim ()
 return dimension $D$ More...
 

Detailed Description

template<class T, unsigned int D>
class SVector< T, D >

SVector. A generic fixed size Vector class.

@memo SVector

Author
T. Glebe

Member Typedef Documentation

◆ value_type

template<class T , unsigned int D>
typedef T SVector< T, D >::value_type

Constructor & Destructor Documentation

◆ SVector() [1/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( )

◆ SVector() [2/16]

template<class T , unsigned int D>
template<class A >
SVector< T, D >::SVector ( const Expr< A, T, D > &  rhs)

◆ SVector() [3/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const SVector< T, D > &  rhs)

◆ SVector() [4/16]

template<class T , unsigned int D>
template<unsigned int D1>
SVector< T, D >::SVector ( const SVector< T, D1 > &  rhs)

$D1\le D$ required!

◆ SVector() [5/16]

template<class T , unsigned int D>
template<unsigned int D1>
SVector< T, D >::SVector ( const T &  a1,
const SVector< T, D1 > &  rhs 
)

$D1\le D-1$ required!

◆ SVector() [6/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T *  a,
unsigned int  len 
)

fill from array, len must be equal to D!

◆ SVector() [7/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  rhs)

◆ SVector() [8/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2 
)

◆ SVector() [9/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3 
)

◆ SVector() [10/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4 
)

◆ SVector() [11/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4,
const T &  a5 
)

◆ SVector() [12/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4,
const T &  a5,
const T &  a6 
)

◆ SVector() [13/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4,
const T &  a5,
const T &  a6,
const T &  a7 
)

◆ SVector() [14/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4,
const T &  a5,
const T &  a6,
const T &  a7,
const T &  a8 
)

◆ SVector() [15/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4,
const T &  a5,
const T &  a6,
const T &  a7,
const T &  a8,
const T &  a9 
)

◆ SVector() [16/16]

template<class T , unsigned int D>
SVector< T, D >::SVector ( const T &  a1,
const T &  a2,
const T &  a3,
const T &  a4,
const T &  a5,
const T &  a6,
const T &  a7,
const T &  a8,
const T &  a9,
const T &  a10 
)

Member Function Documentation

◆ apply()

template<class T , unsigned int D>
T SVector< T, D >::apply ( unsigned int  i) const

access the parse tree

◆ Array() [1/2]

template<class T , unsigned int D>
T * SVector< T, D >::Array ( )

return pointer to internal array

◆ Array() [2/2]

template<class T , unsigned int D>
const T * SVector< T, D >::Array ( ) const

return read-only pointer to internal array

◆ dim()

template<class T , unsigned int D>
static unsigned int SVector< T, D >::dim ( )
inlinestatic

return dimension $D$

110{ return D; }

◆ operator!=() [1/3]

template<class T , unsigned int D>
template<class A >
bool SVector< T, D >::operator!= ( const Expr< A, T, D > &  rhs) const

element wise comparison

◆ operator!=() [2/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator!= ( const SVector< T, D > &  rhs) const

element wise comparison

◆ operator!=() [3/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator!= ( const T &  rhs) const

element wise comparison

◆ operator()() [1/2]

template<class T , unsigned int D>
T & SVector< T, D >::operator() ( unsigned int  i)

read/write access

◆ operator()() [2/2]

template<class T , unsigned int D>
const T & SVector< T, D >::operator() ( unsigned int  i) const

read-only access

◆ operator*=() [1/2]

template<class T , unsigned int D>
template<class A >
SVector< T, D > & SVector< T, D >::operator*= ( const Expr< A, T, D > &  rhs)

◆ operator*=() [2/2]

template<class T , unsigned int D>
SVector< T, D > & SVector< T, D >::operator*= ( const SVector< T, D > &  rhs)

◆ operator+=() [1/2]

template<class T , unsigned int D>
template<class A >
SVector< T, D > & SVector< T, D >::operator+= ( const Expr< A, T, D > &  rhs)

◆ operator+=() [2/2]

template<class T , unsigned int D>
SVector< T, D > & SVector< T, D >::operator+= ( const SVector< T, D > &  rhs)

◆ operator-=() [1/2]

template<class T , unsigned int D>
template<class A >
SVector< T, D > & SVector< T, D >::operator-= ( const Expr< A, T, D > &  rhs)

◆ operator-=() [2/2]

template<class T , unsigned int D>
SVector< T, D > & SVector< T, D >::operator-= ( const SVector< T, D > &  rhs)

◆ operator/=() [1/2]

template<class T , unsigned int D>
template<class A >
SVector< T, D > & SVector< T, D >::operator/= ( const Expr< A, T, D > &  rhs)

◆ operator/=() [2/2]

template<class T , unsigned int D>
SVector< T, D > & SVector< T, D >::operator/= ( const SVector< T, D > &  rhs)

◆ operator<() [1/3]

template<class T , unsigned int D>
template<class A >
bool SVector< T, D >::operator< ( const Expr< A, T, D > &  rhs) const

element wise comparison

◆ operator<() [2/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator< ( const SVector< T, D > &  rhs) const

element wise comparison

◆ operator<() [3/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator< ( const T &  rhs) const

element wise comparison

◆ operator=() [1/2]

template<class T , unsigned int D>
template<class A >
SVector< T, D > & SVector< T, D >::operator= ( const Expr< A, T, D > &  rhs)

◆ operator=() [2/2]

template<class T , unsigned int D>
SVector< T, D > & SVector< T, D >::operator= ( const T &  rhs)

◆ operator==() [1/3]

template<class T , unsigned int D>
template<class A >
bool SVector< T, D >::operator== ( const Expr< A, T, D > &  rhs) const

element wise comparison

◆ operator==() [2/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator== ( const SVector< T, D > &  rhs) const

element wise comparison

◆ operator==() [3/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator== ( const T &  rhs) const

element wise comparison

◆ operator>() [1/3]

template<class T , unsigned int D>
template<class A >
bool SVector< T, D >::operator> ( const Expr< A, T, D > &  rhs) const

element wise comparison

◆ operator>() [2/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator> ( const SVector< T, D > &  rhs) const

element wise comparison

◆ operator>() [3/3]

template<class T , unsigned int D>
bool SVector< T, D >::operator> ( const T &  rhs) const

element wise comparison

◆ operator[]() [1/2]

template<class T , unsigned int D>
T & SVector< T, D >::operator[] ( unsigned int  i)

read/write access

◆ operator[]() [2/2]

template<class T , unsigned int D>
const T & SVector< T, D >::operator[] ( unsigned int  i) const

read-only access

◆ place_at() [1/2]

template<class T , unsigned int D>
template<class A , unsigned int D2>
SVector< T, D > & SVector< T, D >::place_at ( const Expr< A, T, D2 > &  rhs,
const unsigned int  row 
)

place a sub-vector starting at <row>

◆ place_at() [2/2]

template<class T , unsigned int D>
template<unsigned int D2>
SVector< T, D > & SVector< T, D >::place_at ( const SVector< T, D2 > &  rhs,
const unsigned int  row 
)

place a sub-vector starting at <row>

◆ print()

template<class T , unsigned int D>
std::ostream & SVector< T, D >::print ( std::ostream &  os) const

used by operator<<()

◆ unit()

template<class T , unsigned int D>
SVector< T, D > & SVector< T, D >::unit ( )

transform vector into a vector of lenght 1

Member Data Documentation

◆ array

template<class T , unsigned int D>
T SVector< T, D >::array[D]
private

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