Deterministic Gaussian Sampling
Loading...
Searching...
No Matches
gsl_utils_allocation.h
1#ifndef GSL_UTILS_ALLOCATION_H
2#define GSL_UTILS_ALLOCATION_H
3
4#include <gsl/gsl_vector.h>
5
6#include <vector>
7
8/******************************************************************************/
9/*********************************** double ***********************************/
10/******************************************************************************/
18static gsl_vector* create_gsl_vector(const std::vector<double>& v) {
19 gsl_vector* g = gsl_vector_alloc(v.size());
20 if (g == nullptr) return nullptr;
21 for (size_t i = 0; i < v.size(); ++i) gsl_vector_set(g, i, v[i]);
22 return g;
23}
24
25/******************************************************************************/
26/************************************ float ***********************************/
27/******************************************************************************/
35static gsl_vector_float* create_gsl_vector(const std::vector<float>& v) {
37 if (g == nullptr) return nullptr;
38 for (size_t i = 0; i < v.size(); ++i) gsl_vector_float_set(g, i, v[i]);
39 return g;
40}
41
42/******************************************************************************/
43/********************************* long double ********************************/
44/******************************************************************************/
52static gsl_vector_long_double* create_gsl_vector(
53 const std::vector<long double>& v) {
55 if (g == nullptr) return nullptr;
56 for (size_t i = 0; i < v.size(); ++i) gsl_vector_long_double_set(g, i, v[i]);
57 return g;
58}
59
60/******************************************************************************/
61/************************************ char ************************************/
62/******************************************************************************/
70static gsl_vector_char* create_gsl_vector(const std::vector<char>& v) {
72 if (g == nullptr) return nullptr;
73 for (size_t i = 0; i < v.size(); ++i) gsl_vector_char_set(g, i, v[i]);
74 return g;
75}
76
77/******************************************************************************/
78/************************************ int *************************************/
79/******************************************************************************/
87static gsl_vector_int* create_gsl_vector(const std::vector<int>& v) {
89 if (g == nullptr) return nullptr;
90 for (size_t i = 0; i < v.size(); ++i) gsl_vector_int_set(g, i, v[i]);
91 return g;
92}
93
94/******************************************************************************/
95/************************************ long ************************************/
96/******************************************************************************/
103[[maybe_unused]]
104static gsl_vector_long* create_gsl_vector(const std::vector<long>& v) {
106 if (g == nullptr) return nullptr;
107 for (size_t i = 0; i < v.size(); ++i) gsl_vector_long_set(g, i, v[i]);
108 return g;
109}
110
111/******************************************************************************/
112/************************************ short ***********************************/
113/******************************************************************************/
120[[maybe_unused]]
121static gsl_vector_short* create_gsl_vector(const std::vector<short>& v) {
123 if (g == nullptr) return nullptr;
124 for (size_t i = 0; i < v.size(); ++i) gsl_vector_short_set(g, i, v[i]);
125 return g;
126}
127
128/******************************************************************************/
129/************************************ uchar ***********************************/
130/******************************************************************************/
137[[maybe_unused]]
138static gsl_vector_uchar* create_gsl_vector(
139 const std::vector<unsigned char>& v) {
141 if (g == nullptr) return nullptr;
142 for (size_t i = 0; i < v.size(); ++i) gsl_vector_uchar_set(g, i, v[i]);
143 return g;
144}
145
146/******************************************************************************/
147/************************************ uint ************************************/
148/******************************************************************************/
155[[maybe_unused]]
156static gsl_vector_uint* create_gsl_vector(const std::vector<unsigned int>& v) {
158 if (g == nullptr) return nullptr;
159 for (size_t i = 0; i < v.size(); ++i) gsl_vector_uint_set(g, i, v[i]);
160 return g;
161}
162
163/******************************************************************************/
164/************************************ ulong ***********************************/
165/******************************************************************************/
172[[maybe_unused]]
173static gsl_vector_ulong* create_gsl_vector(
174 const std::vector<unsigned long>& v) {
176 if (g == nullptr) return nullptr;
177 for (size_t i = 0; i < v.size(); ++i) gsl_vector_ulong_set(g, i, v[i]);
178 return g;
179}
180
181/******************************************************************************/
182/*********************************** ushort ***********************************/
183/******************************************************************************/
191[[maybe_unused]]
192static gsl_vector_ushort* create_gsl_vector(
193 const std::vector<unsigned short>& v) {
195 if (g == nullptr) return nullptr;
196 for (size_t i = 0; i < v.size(); ++i) gsl_vector_ushort_set(g, i, v[i]);
197 return g;
198}
199
200#endif // GSL_UTILS_ALLOCATION_H
Definition dirac_to_dirac_approx_short.h:9