gslcpp
Modern-C++ Wrapper for GSL
vector-view-array.hpp
Go to the documentation of this file.
1 /// \file include/gslcpp/wrap/vector-view-array.hpp
2 /// \copyright 2022 Thomas E. Vaughan, all rights reserved.
3 /// \brief Definition of gsl::w_vector_view_array().
4 
5 #pragma once
6 #include "container.hpp" // w_vector
7 
8 namespace gsl {
9 
10 
11 /// Initialize view of C-style array as vector.
12 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
13 /// @param b Pointer to first element of view.
14 /// @param s Stride of successive elements in view relative to array.
15 /// @param n Number of elements in view.
16 /// @return View of C-style array as vector.
17 inline auto w_vector_view_array(double *b, size_t s, size_t n) {
18  return gsl_vector_view_array_with_stride(b, s, n);
19 }
20 
21 
22 /// Initialize view of C-style array as vector.
23 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
24 /// @param b Pointer to first element of view.
25 /// @param s Stride of successive elements in view relative to array.
26 /// @param n Number of elements in view.
27 /// @return View of C-style array as vector.
28 inline auto w_vector_view_array(double const *b, size_t s, size_t n) {
29  return gsl_vector_const_view_array_with_stride(b, s, n);
30 }
31 
32 
33 /// Initialize view of C-style array as vector.
34 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
35 /// @param b Pointer to first element of view.
36 /// @param s Stride of successive elements in view relative to array.
37 /// @param n Number of elements in view.
38 /// @return View of C-style array as vector.
39 inline auto w_vector_view_array(float *b, size_t s, size_t n) {
40  return gsl_vector_float_view_array_with_stride(b, s, n);
41 }
42 
43 
44 /// Initialize view of C-style array as vector.
45 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
46 /// @param b Pointer to first element of view.
47 /// @param s Stride of successive elements in view relative to array.
48 /// @param n Number of elements in view.
49 /// @return View of C-style array as vector.
50 inline auto w_vector_view_array(float const *b, size_t s, size_t n) {
51  return gsl_vector_float_const_view_array_with_stride(b, s, n);
52 }
53 
54 
55 /// Initialize view of C-style array as vector.
56 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
57 /// @param b Pointer to first element of view.
58 /// @param s Stride of successive elements in view relative to array.
59 /// @param n Number of elements in view.
60 /// @return View of C-style array as vector.
61 inline auto w_vector_view_array(long double *b, size_t s, size_t n) {
62  return gsl_vector_long_double_view_array_with_stride(b, s, n);
63 }
64 
65 
66 /// Initialize view of C-style array as vector.
67 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
68 /// @param b Pointer to first element of view.
69 /// @param s Stride of successive elements in view relative to array.
70 /// @param n Number of elements in view.
71 /// @return View of C-style array as vector.
72 inline auto w_vector_view_array(long double const *b, size_t s, size_t n) {
73  return gsl_vector_long_double_const_view_array_with_stride(b, s, n);
74 }
75 
76 
77 /// Initialize view of C-style array as vector.
78 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
79 /// @param b Pointer to first element of view.
80 /// @param s Stride of successive elements in view relative to array.
81 /// @param n Number of elements in view.
82 /// @return View of C-style array as vector.
83 inline auto w_vector_view_array(int *b, size_t s, size_t n) {
84  return gsl_vector_int_view_array_with_stride(b, s, n);
85 }
86 
87 
88 /// Initialize view of C-style array as vector.
89 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
90 /// @param b Pointer to first element of view.
91 /// @param s Stride of successive elements in view relative to array.
92 /// @param n Number of elements in view.
93 /// @return View of C-style array as vector.
94 inline auto w_vector_view_array(int const *b, size_t s, size_t n) {
95  return gsl_vector_int_const_view_array_with_stride(b, s, n);
96 }
97 
98 
99 /// Initialize view of C-style array as vector.
100 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
101 /// @param b Pointer to first element of view.
102 /// @param s Stride of successive elements in view relative to array.
103 /// @param n Number of elements in view.
104 /// @return View of C-style array as vector.
105 inline auto w_vector_view_array(unsigned *b, size_t s, size_t n) {
106  return gsl_vector_uint_view_array_with_stride(b, s, n);
107 }
108 
109 
110 /// Initialize view of C-style array as vector.
111 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
112 /// @param b Pointer to first element of view.
113 /// @param s Stride of successive elements in view relative to array.
114 /// @param n Number of elements in view.
115 /// @return View of C-style array as vector.
116 inline auto w_vector_view_array(unsigned const *b, size_t s, size_t n) {
117  return gsl_vector_uint_const_view_array_with_stride(b, s, n);
118 }
119 
120 
121 /// Initialize view of C-style array as vector.
122 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
123 /// @param b Pointer to first element of view.
124 /// @param s Stride of successive elements in view relative to array.
125 /// @param n Number of elements in view.
126 /// @return View of C-style array as vector.
127 inline auto w_vector_view_array(long *b, size_t s, size_t n) {
128  return gsl_vector_long_view_array_with_stride(b, s, n);
129 }
130 
131 
132 /// Initialize view of C-style array as vector.
133 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
134 /// @param b Pointer to first element of view.
135 /// @param s Stride of successive elements in view relative to array.
136 /// @param n Number of elements in view.
137 /// @return View of C-style array as vector.
138 inline auto w_vector_view_array(long const *b, size_t s, size_t n) {
139  return gsl_vector_long_const_view_array_with_stride(b, s, n);
140 }
141 
142 
143 /// Initialize view of C-style array as vector.
144 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
145 /// @param b Pointer to first element of view.
146 /// @param s Stride of successive elements in view relative to array.
147 /// @param n Number of elements in view.
148 /// @return View of C-style array as vector.
149 inline auto w_vector_view_array(unsigned long *b, size_t s, size_t n) {
150  return gsl_vector_ulong_view_array_with_stride(b, s, n);
151 }
152 
153 
154 /// Initialize view of C-style array as vector.
155 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
156 /// @param b Pointer to first element of view.
157 /// @param s Stride of successive elements in view relative to array.
158 /// @param n Number of elements in view.
159 /// @return View of C-style array as vector.
160 inline auto w_vector_view_array(unsigned long const *b, size_t s, size_t n) {
161  return gsl_vector_ulong_const_view_array_with_stride(b, s, n);
162 }
163 
164 
165 /// Initialize view of C-style array as vector.
166 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
167 /// @param b Pointer to first element of view.
168 /// @param s Stride of successive elements in view relative to array.
169 /// @param n Number of elements in view.
170 /// @return View of C-style array as vector.
171 inline auto w_vector_view_array(short *b, size_t s, size_t n) {
172  return gsl_vector_short_view_array_with_stride(b, s, n);
173 }
174 
175 
176 /// Initialize view of C-style array as vector.
177 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
178 /// @param b Pointer to first element of view.
179 /// @param s Stride of successive elements in view relative to array.
180 /// @param n Number of elements in view.
181 /// @return View of C-style array as vector.
182 inline auto w_vector_view_array(short const *b, size_t s, size_t n) {
183  return gsl_vector_short_const_view_array_with_stride(b, s, n);
184 }
185 
186 
187 /// Initialize view of C-style array as vector.
188 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
189 /// @param b Pointer to first element of view.
190 /// @param s Stride of successive elements in view relative to array.
191 /// @param n Number of elements in view.
192 /// @return View of C-style array as vector.
193 inline auto w_vector_view_array(unsigned short *b, size_t s, size_t n) {
194  return gsl_vector_ushort_view_array_with_stride(b, s, n);
195 }
196 
197 
198 /// Initialize view of C-style array as vector.
199 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
200 /// @param b Pointer to first element of view.
201 /// @param s Stride of successive elements in view relative to array.
202 /// @param n Number of elements in view.
203 /// @return View of C-style array as vector.
204 inline auto w_vector_view_array(unsigned short const *b, size_t s, size_t n) {
205  return gsl_vector_ushort_const_view_array_with_stride(b, s, n);
206 }
207 
208 
209 /// Initialize view of C-style array as vector.
210 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
211 /// @param b Pointer to first element of view.
212 /// @param s Stride of successive elements in view relative to array.
213 /// @param n Number of elements in view.
214 /// @return View of C-style array as vector.
215 inline auto w_vector_view_array(char *b, size_t s, size_t n) {
216  return gsl_vector_char_view_array_with_stride(b, s, n);
217 }
218 
219 
220 /// Initialize view of C-style array as vector.
221 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
222 /// @param b Pointer to first element of view.
223 /// @param s Stride of successive elements in view relative to array.
224 /// @param n Number of elements in view.
225 /// @return View of C-style array as vector.
226 inline auto w_vector_view_array(char const *b, size_t s, size_t n) {
227  return gsl_vector_char_const_view_array_with_stride(b, s, n);
228 }
229 
230 
231 /// Initialize view of C-style array as vector.
232 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
233 /// @param b Pointer to first element of view.
234 /// @param s Stride of successive elements in view relative to array.
235 /// @param n Number of elements in view.
236 /// @return View of C-style array as vector.
237 inline auto w_vector_view_array(unsigned char *b, size_t s, size_t n) {
238  return gsl_vector_uchar_view_array_with_stride(b, s, n);
239 }
240 
241 
242 /// Initialize view of C-style array as vector.
243 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
244 /// @param b Pointer to first element of view.
245 /// @param s Stride of successive elements in view relative to array.
246 /// @param n Number of elements in view.
247 /// @return View of C-style array as vector.
248 inline auto w_vector_view_array(unsigned char const *b, size_t s, size_t n) {
249  return gsl_vector_uchar_const_view_array_with_stride(b, s, n);
250 }
251 
252 
253 /// Initialize view of C-style array as vector.
254 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
255 /// @param b Pointer to first element of view.
256 /// @param s Stride of successive elements in view relative to array.
257 /// @param n Number of elements in view.
258 /// @return View of C-style array as vector.
259 inline auto w_vector_view_array(complex<double> *b, size_t s, size_t n) {
260  return gsl_vector_complex_view_array_with_stride((double *)b, s, n);
261 }
262 
263 
264 /// Initialize view of C-style array as vector.
265 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
266 /// @param b Pointer to first element of view.
267 /// @param s Stride of successive elements in view relative to array.
268 /// @param n Number of elements in view.
269 /// @return View of C-style array as vector.
270 inline auto w_vector_view_array(complex<double> const *b, size_t s, size_t n) {
271  return gsl_vector_complex_const_view_array_with_stride(
272  (double const *)b, s, n);
273 }
274 
275 
276 /// Initialize view of C-style array as vector.
277 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
278 /// @param b Pointer to first element of view.
279 /// @param s Stride of successive elements in view relative to array.
280 /// @param n Number of elements in view.
281 /// @return View of C-style array as vector.
282 inline auto w_vector_view_array(complex<float> *b, size_t s, size_t n) {
283  return gsl_vector_complex_float_view_array_with_stride((float *)b, s, n);
284 }
285 
286 
287 /// Initialize view of C-style array as vector.
288 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
289 /// @param b Pointer to first element of view.
290 /// @param s Stride of successive elements in view relative to array.
291 /// @param n Number of elements in view.
292 /// @return View of C-style array as vector.
293 inline auto w_vector_view_array(complex<float> const *b, size_t s, size_t n) {
294  return gsl_vector_complex_float_const_view_array_with_stride(
295  (float const *)b, s, n);
296 }
297 
298 
299 /// Initialize view of C-style array as vector.
300 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
301 /// @param b Pointer to first element of view.
302 /// @param s Stride of successive elements in view relative to array.
303 /// @param n Number of elements in view.
304 /// @return View of C-style array as vector.
305 inline auto w_vector_view_array(complex<long double> *b, size_t s, size_t n) {
306  return gsl_vector_complex_long_double_view_array_with_stride(
307  (long double *)b, s, n);
308 }
309 
310 
311 /// Initialize view of C-style array as vector.
312 /// https://www.gnu.org/software/gsl/doc/html/vectors.html#c.gsl_vector_view_array_with_stride
313 /// @param b Pointer to first element of view.
314 /// @param s Stride of successive elements in view relative to array.
315 /// @param n Number of elements in view.
316 /// @return View of C-style array as vector.
317 inline auto
318 w_vector_view_array(complex<long double> const *b, size_t s, size_t n) {
319  return gsl_vector_complex_long_double_const_view_array_with_stride(
320  (long double const *)b, s, n);
321 }
322 
323 
324 } // namespace gsl
325 
326 // EOF
gsl::w_vector_view_array
auto w_vector_view_array(unsigned const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:116
gsl::w_vector_view_array
auto w_vector_view_array(unsigned short *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:193
gsl::w_vector_view_array
auto w_vector_view_array(unsigned *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:105
gsl::w_vector_view_array
auto w_vector_view_array(unsigned char *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:237
gsl::w_vector_view_array
auto w_vector_view_array(long const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:138
gsl::w_vector_view_array
auto w_vector_view_array(int *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:83
gsl::w_vector_view_array
auto w_vector_view_array(float const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:50
gsl::w_vector_view_array
auto w_vector_view_array(unsigned long *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:149
gsl::w_vector_view_array
auto w_vector_view_array(long double *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:61
gsl::w_vector_view_array
auto w_vector_view_array(char const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:226
gsl::w_vector_view_array
auto w_vector_view_array(complex< long double > const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:318
gsl::w_vector_view_array
auto w_vector_view_array(long double const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:72
gsl::w_vector_view_array
auto w_vector_view_array(float *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:39
gsl::w_vector_view_array
auto w_vector_view_array(complex< float > *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:282
gsl::w_vector_view_array
auto w_vector_view_array(unsigned long const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:160
gsl::w_vector_view_array
auto w_vector_view_array(char *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:215
gsl::w_vector_view_array
auto w_vector_view_array(complex< long double > *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:305
gsl::w_vector_view_array
auto w_vector_view_array(double *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:17
gsl::w_vector_view_array
auto w_vector_view_array(short const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:182
gsl::w_vector_view_array
auto w_vector_view_array(unsigned short const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:204
gsl::w_vector_view_array
auto w_vector_view_array(double const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:28
gsl::w_vector_view_array
auto w_vector_view_array(short *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:171
gsl::w_vector_view_array
auto w_vector_view_array(complex< double > *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:259
gsl::w_vector_view_array
auto w_vector_view_array(complex< float > const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:293
gsl::w_vector_view_array
auto w_vector_view_array(int const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:94
gsl::w_vector_view_array
auto w_vector_view_array(complex< double > const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:270
gsl
Namespace for C++-interface to GSL.
Definition: v-iface.hpp:51
gsl::w_vector_view_array
auto w_vector_view_array(long *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:127
gsl::w_vector_view_array
auto w_vector_view_array(unsigned char const *b, size_t s, size_t n)
Initialize view of C-style array as vector.
Definition: vector-view-array.hpp:248