10 #ifndef EIGEN_FIXEDSIZEVECTOR_H 11 #define EIGEN_FIXEDSIZEVECTOR_H 34 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
36 : reserve_(n), size_(0),
37 data_(static_cast<T*>(internal::aligned_malloc(n *
sizeof(T)))) {
38 for (
size_t i = 0; i < n; ++i) {
new (&data_[i]) T; }
43 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
44 MaxSizeVector(
size_t n,
const T& init)
45 : reserve_(n), size_(n),
46 data_(static_cast<T*>(internal::aligned_malloc(n *
sizeof(T)))) {
47 for (
size_t i = 0; i < n; ++i) {
new (&data_[i]) T(init); }
50 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
52 for (
size_t i = 0; i < size_; ++i) {
55 internal::aligned_free(data_);
59 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
60 void push_back(
const T& t) {
61 eigen_assert(size_ < reserve_);
65 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
66 const T& operator[] (
size_t i)
const {
67 eigen_assert(i < size_);
71 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
72 T& operator[] (
size_t i) {
73 eigen_assert(i < size_);
77 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
79 eigen_assert(size_ > 0);
80 return data_[size_ - 1];
83 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
84 const T& back()
const {
85 eigen_assert(size_ > 0);
86 return data_[size_ - 1];
89 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
94 eigen_assert(size_ > 0);
98 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
99 size_t size()
const {
return size_; }
101 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
102 bool empty()
const {
return size_ == 0; }
104 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
105 T* data() {
return data_; }
107 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
108 const T* data()
const {
return data_; }
110 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
111 T* begin() {
return data_; }
113 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
114 T* end() {
return data_ + size_; }
116 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
117 const T* begin()
const {
return data_; }
119 EIGEN_DEVICE_FUNC EIGEN_STRONG_INLINE
120 const T* end()
const {
return data_ + size_; }
130 #endif // EIGEN_FIXEDSIZEVECTOR_H Namespace containing all symbols from the Eigen library.
Definition: AdolcForward:45
The MaxSizeVector class.
Definition: MaxSizeVector.h:31