11#ifndef __stir_make_array_H__
12#define __stir_make_array_H__
27inline VectorWithOffset<T> make_vector(
const T& a0);
30inline VectorWithOffset<T> make_vector(
const T& a0,
const T& a1);
33inline VectorWithOffset<T> make_vector(
const T& a0,
const T& a1,
const T& a2);
36inline VectorWithOffset<T> make_vector(
const T& a0,
const T& a1,
const T& a2,
const T& a3);
39inline VectorWithOffset<T> make_vector(
const T& a0,
const T& a1,
const T& a2,
const T& a3,
const T& a4);
42inline VectorWithOffset<T> make_vector(
const T& a0,
const T& a1,
const T& a2,
const T& a3,
const T& a4,
const T& a5);
45inline VectorWithOffset<T> make_vector(
const T& a0,
const T& a1,
const T& a2,
const T& a3,
const T& a4,
const T& a5,
const T& a6);
48inline VectorWithOffset<T>
49make_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);
52inline VectorWithOffset<T>
53make_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);
56inline VectorWithOffset<T> make_vector(
const T& a0,
68inline Array<1, T> make_1d_array(
const T& a0);
71inline Array<1, T> make_1d_array(
const T& a0,
const T& a1);
74inline Array<1, T> make_1d_array(
const T& a0,
const T& a1,
const T& a2);
77inline Array<1, T> make_1d_array(
const T& a0,
const T& a1,
const T& a2,
const T& a3);
80inline Array<1, T> make_1d_array(
const T& a0,
const T& a1,
const T& a2,
const T& a3,
const T& a4);
83inline Array<1, T> make_1d_array(
const T& a0,
const T& a1,
const T& a2,
const T& a3,
const T& a4,
const T& a5);
86inline Array<1, T> make_1d_array(
const T& a0,
const T& a1,
const T& a2,
const T& a3,
const T& a4,
const T& a5,
const T& a6);
90make_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);
93inline Array<1, T> make_1d_array(
94 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);
97inline Array<1, T> make_1d_array(
const T& a0,
108template <
int num_dimensions,
class T>
109inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0);
111template <
int num_dimensions,
class T>
112inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
const Array<num_dimensions, T>& a1);
114template <
int num_dimensions,
class T>
115inline Array<num_dimensions + 1, T>
116make_array(
const Array<num_dimensions, T>& a0,
const Array<num_dimensions, T>& a1,
const Array<num_dimensions, T>& a2);
118template <
int num_dimensions,
class T>
119inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
120 const Array<num_dimensions, T>& a1,
121 const Array<num_dimensions, T>& a2,
122 const Array<num_dimensions, T>& a3);
124template <
int num_dimensions,
class T>
125inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
126 const Array<num_dimensions, T>& a1,
127 const Array<num_dimensions, T>& a2,
128 const Array<num_dimensions, T>& a3,
129 const Array<num_dimensions, T>& a4);
131template <
int num_dimensions,
class T>
132inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
133 const Array<num_dimensions, T>& a1,
134 const Array<num_dimensions, T>& a2,
135 const Array<num_dimensions, T>& a3,
136 const Array<num_dimensions, T>& a4,
137 Array<num_dimensions, T>& a5);
139template <
int num_dimensions,
class T>
140inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
141 const Array<num_dimensions, T>& a1,
142 const Array<num_dimensions, T>& a2,
143 const Array<num_dimensions, T>& a3,
144 const Array<num_dimensions, T>& a4,
145 Array<num_dimensions, T>& a5,
146 const Array<num_dimensions, T>& a6);
148template <
int num_dimensions,
class T>
149inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
150 const Array<num_dimensions, T>& a1,
151 const Array<num_dimensions, T>& a2,
152 const Array<num_dimensions, T>& a3,
153 const Array<num_dimensions, T>& a4,
154 Array<num_dimensions, T>& a5,
155 const Array<num_dimensions, T>& a6,
156 const Array<num_dimensions, T>& a7);
158template <
int num_dimensions,
class T>
159inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions, T>& a0,
160 const Array<num_dimensions, T>& a1,
161 const Array<num_dimensions, T>& a2,
162 const Array<num_dimensions, T>& a3,
163 const Array<num_dimensions, T>& a4,
164 Array<num_dimensions, T>& a5,
165 const Array<num_dimensions, T>& a6,
166 const Array<num_dimensions, T>& a7,
167 const Array<num_dimensions, T>& a8);
169template <
int num_dimensions,
class T>
170inline Array<num_dimensions + 1, T> make_array(
const Array<num_dimensions - 1, T>& a0,
171 const Array<num_dimensions - 1, T>& a1,
172 const Array<num_dimensions - 1, T>& a2,
173 const Array<num_dimensions - 1, T>& a3,
174 const Array<num_dimensions - 1, T>& a4,
175 Array<num_dimensions - 1, T>& a5,
176 const Array<num_dimensions - 1, T>& a6,
177 const Array<num_dimensions - 1, T>& a7,
178 const Array<num_dimensions - 1, T>& a8,
179 const Array<num_dimensions - 1, T>& a9);
defines the stir::Array class for multi-dimensional (numeric) arrays
Implementation of functions for constructing arrays stir::make_1d_array etc.