NimbleSM
NimbleSM is a solid mechanics simulation code for dynamic systems
Loading...
Searching...
No Matches
nimble::quanta::arrayview_t< T > Class Template Reference

#include <nimble.quanta.arrayview.h>

Public Member Functions

 arrayview_t ()
 
 arrayview_t (T *addr, size_t start, size_t count)
 
 arrayview_t (T *addr, size_t count)
 
 arrayview_t (T *begin, T *end)
 
 arrayview_t (const arrayview_t &s)
 
 arrayview_t (arrayview_t &&s)
 
 arrayview_t (std::vector< T > &vect)
 
 arrayview_t (std::vector< T > &vect, size_t start, size_t count)
 
T * begin () const
 
T * end () const
 
size_t size () const
 
T * data ()
 
template<class int_t>
T & operator[] (int_t index) const
 
arrayview_t sub (size_t start, size_t count) const
 
arrayview_t< const T > const_sub (size_t start, size_t count) const
 
arrayview_t< const T > & as_span_of_const ()
 
const arrayview_t< const T > & as_span_of_const () const
 
arrayview_t< const T > * as_span_of_const_ptr ()
 
const arrayview_t< const T > * as_span_of_const_ptr () const
 
template<class iter_t>
void copy_from (iter_t source) const
 
template<class iter_t>
void copy_to (iter_t dest) const
 
template<class iter_t>
void swap_with (iter_t other) const
 

Friends

template<class U>
void swap (arrayview_t< U > &A, arrayview_t< U > &B)
 

Constructor & Destructor Documentation

◆ arrayview_t() [1/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( )
inline
62: addr(nullptr), count(0) {}

◆ arrayview_t() [2/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( T * addr,
size_t start,
size_t count )
inline
63: addr(addr + start), count(count) {}
Definition nimble.quanta.arrayview.h:56

◆ arrayview_t() [3/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( T * addr,
size_t count )
inline
64: addr(addr), count(count) {}

◆ arrayview_t() [4/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( T * begin,
T * end )
inline
65: addr(begin), count((size_t)end - (size_t)begin) {}
T * begin() const
Definition nimble.quanta.arrayview.h:72
T * end() const
Definition nimble.quanta.arrayview.h:77

◆ arrayview_t() [5/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( const arrayview_t< T > & s)
inline
66: addr(s.addr), count(s.count) {}

◆ arrayview_t() [6/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( arrayview_t< T > && s)
inline
67: addr(s.addr), count(s.count) {}

◆ arrayview_t() [7/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( std::vector< T > & vect)
inline
68: addr(vect.data()), count(vect.size()) {}
T * data()
Definition nimble.quanta.arrayview.h:88
size_t size() const
Definition nimble.quanta.arrayview.h:83

◆ arrayview_t() [8/8]

template<class T>
nimble::quanta::arrayview_t< T >::arrayview_t ( std::vector< T > & vect,
size_t start,
size_t count )
inline
69: addr(vect.data() + start), count(count) {}

Member Function Documentation

◆ as_span_of_const() [1/2]

template<class T>
arrayview_t< const T > & nimble::quanta::arrayview_t< T >::as_span_of_const ( )
inline
111 {
112 // arrayview_t<T> and arrayview_t<const T> have the same internal memory
113 // layout So this code is chill
114 return (arrayview_t<const T>&)*this;
115 }
arrayview_t()
Definition nimble.quanta.arrayview.h:62

◆ as_span_of_const() [2/2]

template<class T>
const arrayview_t< const T > & nimble::quanta::arrayview_t< T >::as_span_of_const ( ) const
inline
118 {
119 // Same here
120 return (const arrayview_t<const T>&)*this;
121 }

◆ as_span_of_const_ptr() [1/2]

template<class T>
arrayview_t< const T > * nimble::quanta::arrayview_t< T >::as_span_of_const_ptr ( )
inline
124 {
125 return (arrayview_t<const T>*)this;
126 }

◆ as_span_of_const_ptr() [2/2]

template<class T>
const arrayview_t< const T > * nimble::quanta::arrayview_t< T >::as_span_of_const_ptr ( ) const
inline
129 {
130 return (const arrayview_t<const T>*)this;
131 }

◆ begin()

template<class T>
T * nimble::quanta::arrayview_t< T >::begin ( ) const
inline
73 {
74 return addr;
75 }

◆ const_sub()

template<class T>
arrayview_t< const T > nimble::quanta::arrayview_t< T >::const_sub ( size_t start,
size_t count ) const
inline
106 {
107 return {addr + start, count};
108 }

◆ copy_from()

template<class T>
template<class iter_t>
void nimble::quanta::arrayview_t< T >::copy_from ( iter_t source) const
inline
136 {
137 for (T& value : *this) {
138 value = *source;
139 ++source;
140 }
141 }

◆ copy_to()

template<class T>
template<class iter_t>
void nimble::quanta::arrayview_t< T >::copy_to ( iter_t dest) const
inline
146 {
147 for (T& value : *this) {
148 *dest = value;
149 ++dest;
150 }
151 }

◆ data()

template<class T>
T * nimble::quanta::arrayview_t< T >::data ( )
inline
89 {
90 return addr;
91 }

◆ end()

template<class T>
T * nimble::quanta::arrayview_t< T >::end ( ) const
inline
78 {
79 return addr + count;
80 }

◆ operator[]()

template<class T>
template<class int_t>
T & nimble::quanta::arrayview_t< T >::operator[] ( int_t index) const
inline
95 {
96 return addr[index];
97 }

◆ size()

template<class T>
size_t nimble::quanta::arrayview_t< T >::size ( ) const
inline
84 {
85 return count;
86 }

◆ sub()

template<class T>
arrayview_t nimble::quanta::arrayview_t< T >::sub ( size_t start,
size_t count ) const
inline
101 {
102 return {addr + start, count};
103 }

◆ swap_with()

template<class T>
template<class iter_t>
void nimble::quanta::arrayview_t< T >::swap_with ( iter_t other) const
inline
156 {
157 for (T& value : *this) {
159 ++other;
160 }
161 }

Friends And Related Symbol Documentation

◆ swap

template<class T>
template<class U>
void swap ( arrayview_t< U > & A,
arrayview_t< U > & B )
friend

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