STIR 6.4.0
make_array.inl
Go to the documentation of this file.
1//
2//
3/*
4 Copyright (C) 2005- 2005, Hammersmith Imanet Ltd
5 This file is part of STIR.
6
7 SPDX-License-Identifier: Apache-2.0
8
9 See STIR/LICENSE.txt for details
10*/
20
21START_NAMESPACE_STIR
22
23template <class T>
24VectorWithOffset<T>
25make_vector(const T& a0)
26{
27 VectorWithOffset<T> a(1);
28 a[0] = a0;
29 return a;
30}
31
32template <class T>
33VectorWithOffset<T>
34make_vector(const T& a0, const T& a1)
35{
36 VectorWithOffset<T> a(2);
37 a[0] = a0;
38 a[1] = a1;
39 return a;
40}
41
42template <class T>
43VectorWithOffset<T>
44make_vector(const T& a0, const T& a1, const T& a2)
45{
46 VectorWithOffset<T> a(3);
47 a[0] = a0;
48 a[1] = a1;
49 a[2] = a2;
50 return a;
51}
52
53template <class T>
54VectorWithOffset<T>
55make_vector(const T& a0, const T& a1, const T& a2, const T& a3)
56{
57 VectorWithOffset<T> a(4);
58 a[0] = a0;
59 a[1] = a1;
60 a[2] = a2;
61 a[3] = a3;
62 return a;
63}
64
65template <class T>
66VectorWithOffset<T>
67make_vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4)
68{
69 VectorWithOffset<T> a(5);
70 a[0] = a0;
71 a[1] = a1;
72 a[2] = a2;
73 a[3] = a3;
74 a[4] = a4;
75 return a;
76}
77
78template <class T>
79VectorWithOffset<T>
80make_vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5)
81{
82 VectorWithOffset<T> a(6);
83 a[0] = a0;
84 a[1] = a1;
85 a[2] = a2;
86 a[3] = a3;
87 a[4] = a4;
88 a[5] = a5;
89 return a;
90}
91
92template <class T>
93VectorWithOffset<T>
94make_vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6)
95{
96 VectorWithOffset<T> a(7);
97 a[0] = a0;
98 a[1] = a1;
99 a[2] = a2;
100 a[3] = a3;
101 a[4] = a4;
102 a[5] = a5;
103 a[6] = a6;
104 return a;
105}
106
107template <class T>
108VectorWithOffset<T>
109make_vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7)
110{
111 VectorWithOffset<T> a(8);
112 a[0] = a0;
113 a[1] = a1;
114 a[2] = a2;
115 a[3] = a3;
116 a[4] = a4;
117 a[5] = a5;
118 a[6] = a6;
119 a[7] = a7;
120 return a;
121}
122
123template <class T>
124VectorWithOffset<T>
125make_vector(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8)
126{
127 VectorWithOffset<T> a(9);
128 a[0] = a0;
129 a[1] = a1;
130 a[2] = a2;
131 a[3] = a3;
132 a[4] = a4;
133 a[5] = a5;
134 a[6] = a6;
135 a[7] = a7;
136 a[8] = a8;
137 return a;
138}
139
140template <class T>
141VectorWithOffset<T>
142make_vector(const T& a0,
143 const T& a1,
144 const T& a2,
145 const T& a3,
146 const T& a4,
147 const T& a5,
148 const T& a6,
149 const T& a7,
150 const T& a8,
151 const T& a9)
152{
153 VectorWithOffset<T> a(10);
154 a[0] = a0;
155 a[1] = a1;
156 a[2] = a2;
157 a[3] = a3;
158 a[4] = a4;
159 a[5] = a5;
160 a[6] = a6;
161 a[7] = a7;
162 a[8] = a8;
163 a[9] = a9;
164 return a;
165}
166
167template <class T>
168Array<1, T>
169make_1d_array(const T& a0)
170{
171 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0));
172 return a;
173}
174
175template <class T>
176Array<1, T>
177make_1d_array(const T& a0, const T& a1)
178{
179 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1));
180 return a;
181}
182
183template <class T>
184Array<1, T>
185make_1d_array(const T& a0, const T& a1, const T& a2)
186{
187 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2));
188 return a;
189}
190
191template <class T>
192Array<1, T>
193make_1d_array(const T& a0, const T& a1, const T& a2, const T& a3)
194{
195 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3));
196 return a;
197}
198
199template <class T>
200Array<1, T>
201make_1d_array(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4)
202{
203 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3, a4));
204 return a;
205}
206
207template <class T>
208Array<1, T>
209make_1d_array(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5)
210{
211 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3, a4, a5));
212 return a;
213}
214
215template <class T>
216Array<1, T>
217make_1d_array(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6)
218{
219 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3, a4, a5, a6));
220 return a;
221}
222
223template <class T>
224Array<1, T>
225make_1d_array(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7)
226{
227 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3, a4, a5, a6, a7));
228 return a;
229}
230
231template <class T>
232Array<1, T>
233make_1d_array(const T& a0, const T& a1, const T& a2, const T& a3, const T& a4, const T& a5, const T& a6, const T& a7, const T& a8)
234{
235 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3, a4, a5, a6, a7, a8));
236 return a;
237}
238
239template <class T>
240Array<1, T>
241make_1d_array(const T& a0,
242 const T& a1,
243 const T& a2,
244 const T& a3,
245 const T& a4,
246 const T& a5,
247 const T& a6,
248 const T& a7,
249 const T& a8,
250 const T& a9)
251{
252 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9));
253 return a;
254}
255
256template <int num_dimensions, class T>
257Array<num_dimensions + 1, T>
258make_array(const Array<num_dimensions, T>& a0)
259{
260 const Array<1, T> a = NumericVectorWithOffset<T, T>(make_vector(a0));
261 return a;
262}
263
264template <int num_dimensions, class T>
265Array<num_dimensions + 1, T>
266make_array(const Array<num_dimensions, T>& a0, const Array<num_dimensions, T>& a1)
267{
268 const Array<num_dimensions + 1, T> a = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1));
269 return a;
270}
271
272template <int num_dimensions, class T>
273Array<num_dimensions + 1, T>
274make_array(const Array<num_dimensions, T>& a0, const Array<num_dimensions, T>& a1, const Array<num_dimensions, T>& a2)
275{
276 const Array<num_dimensions + 1, T> a = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2));
277 return a;
278}
279
280template <int num_dimensions, class T>
281Array<num_dimensions + 1, T>
282make_array(const Array<num_dimensions, T>& a0,
283 const Array<num_dimensions, T>& a1,
284 const Array<num_dimensions, T>& a2,
285 const Array<num_dimensions, T>& a3)
286{
287 const Array<num_dimensions + 1, T> a = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3));
288 return a;
289}
290
291template <int num_dimensions, class T>
292Array<num_dimensions + 1, T>
293make_array(const Array<num_dimensions, T>& a0,
294 const Array<num_dimensions, T>& a1,
295 const Array<num_dimensions, T>& a2,
296 const Array<num_dimensions, T>& a3,
297 const Array<num_dimensions, T>& a4)
298{
299 const Array<num_dimensions + 1, T> a = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3, a4));
300 return a;
301}
302
303template <int num_dimensions, class T>
304Array<num_dimensions + 1, T>
305make_array(const Array<num_dimensions, T>& a0,
306 const Array<num_dimensions, T>& a1,
307 const Array<num_dimensions, T>& a2,
308 const Array<num_dimensions, T>& a3,
309 const Array<num_dimensions, T>& a4,
310 Array<num_dimensions, T>& a5)
311{
312 const Array<num_dimensions + 1, T> a
313 = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3, a4, a5));
314 return a;
315}
316
317template <int num_dimensions, class T>
318Array<num_dimensions + 1, T>
319make_array(const Array<num_dimensions, T>& a0,
320 const Array<num_dimensions, T>& a1,
321 const Array<num_dimensions, T>& a2,
322 const Array<num_dimensions, T>& a3,
323 const Array<num_dimensions, T>& a4,
324 Array<num_dimensions, T>& a5,
325 const Array<num_dimensions, T>& a6)
326{
327 const Array<num_dimensions + 1, T> a
328 = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3, a4, a5, a6));
329 return a;
330}
331
332template <int num_dimensions, class T>
333Array<num_dimensions + 1, T>
334make_array(const Array<num_dimensions, T>& a0,
335 const Array<num_dimensions, T>& a1,
336 const Array<num_dimensions, T>& a2,
337 const Array<num_dimensions, T>& a3,
338 const Array<num_dimensions, T>& a4,
339 Array<num_dimensions, T>& a5,
340 const Array<num_dimensions, T>& a6,
341 const Array<num_dimensions, T>& a7)
342{
343 const Array<num_dimensions + 1, T> a
344 = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3, a4, a5, a6, a7));
345 return a;
346}
347
348template <int num_dimensions, class T>
349Array<num_dimensions + 1, T>
350make_array(const Array<num_dimensions, T>& a0,
351 const Array<num_dimensions, T>& a1,
352 const Array<num_dimensions, T>& a2,
353 const Array<num_dimensions, T>& a3,
354 const Array<num_dimensions, T>& a4,
355 Array<num_dimensions, T>& a5,
356 const Array<num_dimensions, T>& a6,
357 const Array<num_dimensions, T>& a7,
358 const Array<num_dimensions, T>& a8)
359{
360 const Array<num_dimensions + 1, T> a
361 = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3, a4, a5, a6, a7, a8));
362 return a;
363}
364
365template <int num_dimensions, class T>
366Array<num_dimensions + 1, T>
367make_array(const Array<num_dimensions, T>& a0,
368 const Array<num_dimensions, T>& a1,
369 const Array<num_dimensions, T>& a2,
370 const Array<num_dimensions, T>& a3,
371 const Array<num_dimensions, T>& a4,
372 Array<num_dimensions, T>& a5,
373 const Array<num_dimensions, T>& a6,
374 const Array<num_dimensions, T>& a7,
375 const Array<num_dimensions, T>& a8,
376 const Array<num_dimensions, T>& a9)
377{
378 const Array<num_dimensions + 1, T> a
379 = NumericVectorWithOffset<Array<num_dimensions, T>, T>(make_vector(a0, a1, a2, a3, a4, a5, a6, a7, a8, a9));
380 return a;
381}
382
383END_NAMESPACE_STIR