ATLAS Offline Software
Loading...
Searching...
No Matches
vector3D< T > Class Template Reference

#include <FPGATrackSimVectors.h>

Collaboration diagram for vector3D< T >:

Public Member Functions

 vector3D ()
 vector3D (size_t d1, size_t d2, size_t d3, T const &t=T())
T & operator() (size_t i, size_t j, size_t k)
T const & operator() (size_t i, size_t j, size_t k) const
void resize (size_t x1, size_t x2, size_t x3, T const &t=T())
T * data ()

Private Attributes

size_t m_d1
size_t m_d2
size_t m_d3
std::vector< T > m_data

Detailed Description

template<typename T>
class vector3D< T >

Definition at line 123 of file FPGATrackSimVectors.h.

Constructor & Destructor Documentation

◆ vector3D() [1/2]

template<typename T>
vector3D< T >::vector3D ( )
inline

Definition at line 132 of file FPGATrackSimVectors.h.

132 :
133 m_d1(0), m_d2(0), m_d3(0)
134 {}

◆ vector3D() [2/2]

template<typename T>
vector3D< T >::vector3D ( size_t d1,
size_t d2,
size_t d3,
T const & t = T() )
inline

Definition at line 136 of file FPGATrackSimVectors.h.

136 :
137 m_d1(d1), m_d2(d2), m_d3(d3), m_data(d1*d2*d3, t)
138 {}
std::vector< T > m_data

Member Function Documentation

◆ data()

template<typename T>
T * vector3D< T >::data ( )
inline

Definition at line 174 of file FPGATrackSimVectors.h.

175 {
176 return m_data.data();
177 }

◆ operator()() [1/2]

template<typename T>
T & vector3D< T >::operator() ( size_t i,
size_t j,
size_t k )
inline

Definition at line 140 of file FPGATrackSimVectors.h.

141 {
142#ifdef DEBUG_FPGATrackSimVECTORS
143 if (i >= m_d1 || j >= m_d2 || k >= m_d3)
144 {
146 s << "vector3D out of bounds: request (" << i << "," << j << "," << k << ") size (" << m_d1 << "," << m_d2 << "," << m_d3 << ")";
147 throw std::range_error(s.str());
148 }
149#endif
150 return m_data[i*m_d2*m_d3 + j*m_d3 + k];
151 }

◆ operator()() [2/2]

template<typename T>
T const & vector3D< T >::operator() ( size_t i,
size_t j,
size_t k ) const
inline

Definition at line 153 of file FPGATrackSimVectors.h.

154 {
155#ifdef DEBUG_FPGATrackSimVECTORS
156 if (i >= m_d1 || j >= m_d2 || k >= m_d3)
157 {
159 s << "vector3D out of bounds: request (" << i << "," << j << "," << k << ") size (" << m_d1 << "," << m_d2 << "," << m_d3 << ")";
160 throw std::range_error(s.str());
161 }
162#endif
163 return m_data[i*m_d2*m_d3 + j*m_d3 + k];
164 }

◆ resize()

template<typename T>
void vector3D< T >::resize ( size_t x1,
size_t x2,
size_t x3,
T const & t = T() )
inline

Definition at line 166 of file FPGATrackSimVectors.h.

167 {
168 m_d1 = x1;
169 m_d2 = x2;
170 m_d3 = x3;
171 m_data.resize(x1*x2*x3, t);
172 }

Member Data Documentation

◆ m_d1

template<typename T>
size_t vector3D< T >::m_d1
private

Definition at line 127 of file FPGATrackSimVectors.h.

◆ m_d2

template<typename T>
size_t vector3D< T >::m_d2
private

Definition at line 127 of file FPGATrackSimVectors.h.

◆ m_d3

template<typename T>
size_t vector3D< T >::m_d3
private

Definition at line 127 of file FPGATrackSimVectors.h.

◆ m_data

template<typename T>
std::vector<T> vector3D< T >::m_data
private

Definition at line 128 of file FPGATrackSimVectors.h.


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