11#ifndef CUBBYFLOW_CUDA_STD_ARRAY_IMPL_HPP
12#define CUBBYFLOW_CUDA_STD_ARRAY_IMPL_HPP
14#ifdef CUBBYFLOW_USE_CUDA
18template <
typename T,
size_t N>
19CUDAStdArray<T, N>::CUDAStdArray()
24template <
typename T,
size_t N>
25template <
typename...
Args>
26CUDAStdArray<T, N>::CUDAStdArray(ConstReference
first,
Args...
rest)
29 sizeof...(Args) ==
N - 1,
30 "Number of arguments should be equal to the size of the vector.");
34template <
typename T,
size_t N>
35CUDAStdArray<T, N>::CUDAStdArray(
const std::array<T, N>&
other)
37 for (
size_t i = 0; i <
N; ++i)
39 m_elements[i] =
other[i];
43template <
typename T,
size_t N>
46 for (
size_t i = 0; i <
N; ++i)
48 m_elements[i] =
other[i];
52template <
typename T,
size_t N>
55 for (
size_t i = 0; i <
N; ++i)
57 m_elements[i] =
other[i];
61template <
typename T,
size_t N>
64 for (
size_t i = 0; i <
N; ++i)
66 m_elements[i] = std::move(
other[i]);
70template <
typename T,
size_t N>
73 for (
size_t i = 0; i <
N; ++i)
75 m_elements[i] =
other[i];
81template <
typename T,
size_t N>
84 for (
size_t i = 0; i <
N; ++i)
86 m_elements[i] = std::move(
other[i]);
92template <
typename T,
size_t N>
95 for (
size_t i = 0; i <
N; ++i)
101template <
typename T,
size_t N>
106 for (
size_t i = 0; i <
N; ++i)
108 vec[i] = m_elements[i];
114template <
typename T,
size_t N>
117 return m_elements[i];
120template <
typename T,
size_t N>
124 return m_elements[i];
127template <
typename T,
size_t N>
130 for (
size_t i = 0; i <
N; ++i)
132 if (m_elements[i] !=
other.m_elements[i])
141template <
typename T,
size_t N>
144 return !(*
this ==
other);
147template <
typename T,
size_t N>
148template <
typename...
Args>
149void CUDAStdArray<T, N>::SetAt(
size_t i, ConstReference
first,
Args...
rest)
151 m_elements[i] =
first;
155template <
typename T,
size_t N>
156template <
typename...
Args>
157void CUDAStdArray<T, N>::SetAt(
size_t i, ConstReference
first)
159 m_elements[i] =
first;
T & Reference
Definition Matrix.hpp:40
void Fill(const T &val)
Definition Matrix-Impl.hpp:226
Matrix & operator=(const Matrix &other)
Definition Matrix.hpp:81
Reference operator[](size_t i)
Definition Matrix-Impl.hpp:311
const T & ConstReference
Definition Matrix.hpp:41
Definition pybind11Utils.hpp:21
Matrix< T, Rows, 1 > Vector
Definition Matrix.hpp:738