CLASS MANUAL
arrays.h
1 
5 #ifndef __ARRAYS__
6 #define __ARRAYS__
7 
8 #include "common.h"
9 
10 #define _SPLINE_NATURAL_ 0
11 #define _SPLINE_EST_DERIV_ 1
16 #ifdef __cplusplus
17 extern "C" {
18 #endif
19 
20  int array_derive(
21  double * array,
22  int n_columns,
23  int n_lines,
24  int index_x,
25  int index_y,
26  int index_dydx,
27  ErrorMsg errmsg);
28 
29  int array_derive_spline(
30  double * x_array,
31  int n_lines,
32  double * array,
33  double * array_splined,
34  int n_columns,
35  int index_y,
36  int index_dydx,
37  ErrorMsg errmsg);
38 
39  int array_derive_spline_table_line_to_line(
40  double * x_array,
41  int n_lines,
42  double * array,
43  int n_columns,
44  int index_y,
45  int index_ddy,
46  int index_dy,
47  ErrorMsg errmsg);
48 
49  int array_derive1_order2_table_line_to_line(
50  double * x_array,
51  int n_lines,
52  double * array,
53  int n_columns,
54  int index_y,
55  int index_dy,
56  ErrorMsg errmsg);
57 
58  int array_derive2_order2_table_line_to_line(
59  double * x_array,
60  int n_lines,
61  double * array,
62  int n_columns,
63  int index_y,
64  int index_dy,
65  int index_ddy,
66  ErrorMsg errmsg);
67 
68  int array_derive_two(
69  double * array,
70  int n_columns,
71  int n_lines,
72  int index_x,
73  int index_y,
74  int index_dydx,
75  int index_ddydxdx,
76  ErrorMsg errmsg);
77 
78 
79 
80  int array_spline(
81  double * array,
82  int n_columns,
83  int n_lines,
84  int index_x,
85  int index_y,
86  int index_ddydx2,
87  short spline_mode,
88  ErrorMsg errmsg);
89 
90  int array_spline_table_line_to_line(
91  double * x, /* vector of size x_size */
92  int x_size,
93  double * array,
94  int n_columns,
95  int index_y,
96  int index_ddydx2,
97  short spline_mode,
98  ErrorMsg errmsg);
99 
100  int array_spline_table_columns(
101  double * x,
102  int x_size,
103  double * y_array,
104  int y_size,
105  double * ddy_array,
106  short spline_mode,
107  ErrorMsg errmsg);
108 
109  int array_spline_table_columns2(
110  double * x,
111  int x_size,
112  double * y_array,
113  int y_size,
114  double * ddy_array,
115  short spline_mode,
116  ErrorMsg errmsg);
117 
118  int array_spline_table_lines(
119  double * x,
120  int x_size,
121  double * y_array,
122  int y_size,
123  double * ddy_array,
124  short spline_mode,
125  ErrorMsg errmsg
126  );
127 
128  int array_logspline_table_lines(
129  double * x,
130  int x_size,
131  double * y_array,
132  int y_size,
133  double * ddlny_array,
134  short spline_mode,
135  ErrorMsg errmsg
136  );
137 
138  int array_spline_table_one_column(
139  double * x, /* vector of size x_size */
140  int x_size,
141  double * y_array, /* array of size x_size*y_size with elements
142  y_array[index_y*x_size+index_x] */
143  int y_size,
144  int index_y,
145  double * ddy_array, /* array of size x_size*y_size */
146  short spline_mode,
147  ErrorMsg errmsg
148  );
149 
150  int array_logspline_table_one_column(
151  double * x, /* vector of size x_size */
152  int x_size,
153  int x_stop,
154  double * y_array, /* array of size x_size*y_size with elements
155  y_array[index_y*x_size+index_x] */
156  int y_size,
157  int index_y,
158  double * ddlogy_array, /* array of size x_size*y_size */
159  short spline_mode,
160  ErrorMsg errmsg
161  );
162 
163  int array_integrate_all_spline(
164  double * array,
165  int n_columns,
166  int n_lines,
167  int index_x,
168  int index_y,
169  int index_ddy,
170  double * result,
171  ErrorMsg errmsg
172  );
173 
174 int array_integrate_all_trapzd_or_spline(
175  double * array,
176  int n_columns,
177  int n_lines,
178  int index_start_spline,
179  int index_x,
180  int index_y,
181  int index_ddy,
182  double * result,
183  ErrorMsg errmsg);
184 
185  int array_integrate_spline_table_line_to_line(
186  double * x_array,
187  int n_lines,
188  double * array,
189  int n_columns,
190  int index_y,
191  int index_ddy,
192  int index_inty,
193  ErrorMsg errmsg);
194 
195  int array_integrate(
196  double * array,
197  int n_columns,
198  int n_lines,
199  int index_x,
200  int index_y,
201  int index_int_y_dx,
202  ErrorMsg errmsg);
203 
204  int array_integrate_all(
205  double * array,
206  int n_columns,
207  int n_lines,
208  int index_x,
209  int index_y,
210  double * result);
211 
212  int array_integrate_ratio(
213  double * array,
214  int n_columns,
215  int n_lines,
216  int index_x,
217  int index_y1,
218  int index_y2,
219  int index_int_y1_over_y2_dx,
220  ErrorMsg errmsg);
221 
222  int array_interpolate(
223  double * array,
224  int n_columns,
225  int n_lines,
226  int index_x,
227  double x,
228  int * last_index,
229  double * result,
230  int result_size,
231  ErrorMsg errmsg);
233  int array_interpolate_spline(
234  double * __restrict__ x_array,
235  int n_lines,
236  double * __restrict__ array,
237  double * __restrict__ array_splined,
238  int n_columns,
239  double x,
240  int * __restrict__ last_index,
241  double * __restrict__ result,
242  int result_size,
243  ErrorMsg errmsg);
244 
245  int array_interpolate_linear(
246  double * x_array,
247  int n_lines,
248  double * array,
249  int n_columns,
250  double x,
251  int * last_index,
252  double * result,
253  int result_size,
254  ErrorMsg errmsg);
255 
256  int array_interpolate_growing_closeby(
257  double * array,
258  int n_columns,
259  int n_lines,
260  int index_x,
261  double x,
262  int * last_index,
263  double * result,
264  int result_size,
265  ErrorMsg errmsg);
266 
267  int array_interpolate_one_growing_closeby(
268  double * array,
269  int n_columns,
270  int n_lines,
271  int index_x,
272  double x,
273  int * last_index,
274  int index_y,
275  double * result,
276  ErrorMsg errmsg);
277 
278  int array_interpolate_spline_growing_closeby(
279  double * x_array,
280  int n_lines,
281  double * array,
282  double * array_splined,
283  int n_columns,
284  double x,
285  int * last_index,
286  double * result,
287  int result_size,
288  ErrorMsg errmsg);
289 
290  int array_interpolate_spline_growing_hunt(
291  double * x_array,
292  int n_lines,
293  double * array,
294  double * array_splined,
295  int n_columns,
296  double x,
297  int * last_index,
298  double * result,
299  int result_size,
300  ErrorMsg errmsg);
301 
302  int array_interpolate_two(
303  double * array_x,
304  int n_columns_x,
305  int index_x,
306  double * array_y,
307  int n_columns_y,
308  int n_lines,
309  double x,
310  double * result,
311  int result_size,
312  ErrorMsg errmsg);
313 
314  int array_interpolate_two_bis(
315  double * array_x,
316  int n_columns_x,
317  int index_x,
318  double * array_y,
319  int n_columns_y,
320  int n_lines,
321  double x,
322  double * result,
323  int result_size,
324  ErrorMsg errmsg);
325 
326  int array_interpolate_spline_one_column(
327  double * x_array,
328  int x_size,
329  double * y_array, /* array of size x_size*y_size with elements
330  y_array[index_y*x_size+index_x] */
331  int y_size,
332  int index_y,
333  double * ddy_array, /* array of size x_size*y_size */
334  double x, /* input */
335  double * y, /* output */
336  ErrorMsg errmsg
337  );
338 
339  int array_interpolate_extrapolate_spline_one_column(
340  double * x_array,
341  int x_size,
342  double * y_array, /* array of size x_size*y_size with elements
343  y_array[index_y*x_size+index_x] */
344  int y_size,
345  int index_y,
346  double * ddy_array, /* array of size x_size*y_size */
347  double x, /* input */
348  double * y, /* output */
349  ErrorMsg errmsg
350  );
351 
352  int array_interpolate_extrapolate_logspline_loglinear_one_column(
353  double * x_array,
354  int x_size,
355  int x_stop,
356  double * y_array, /* array of size x_size*y_size with elements
357  y_array[index_y*x_size+index_x] */
358  int y_size,
359  int index_y,
360  double * ddlogy_array, /* array of size x_size*y_size */
361  double x, /* input */
362  double * y, /* output */
363  ErrorMsg errmsg
364  );
365 
366  int array_interpolate_two_arrays_one_column(
367  double * array_x, /* assumed to be a vector (i.e. one column array) */
368  double * array_y,
369  int n_columns_y,
370  int index_y, /* between 0 and (n_columns_y-1) */
371  int n_lines,
372  double x,
373  double * result,
374  ErrorMsg errmsg);
375 
376  int array_interpolate_equal(
377  double * array,
378  int n_colums,
379  int n_lines,
380  double x,
381  double x_min,
382  double x_max,
383  double * result,
384  ErrorMsg errmsg);
385 
386  int array_interpolate_cubic_equal(
387  double x0,
388  double dx,
389  double *yarray,
390  int Nx,
391  double x,
392  double * result,
393  ErrorMsg errmsg);
394 
395  int array_interpolate_parabola(double x1,
396  double x2,
397  double x3,
398  double x,
399  double y1,
400  double y2,
401  double y3,
402  double * y,
403  double * dy,
404  double * ddy,
405  ErrorMsg errmsg);
406 
407  int array_smooth(double * array,
408  int n_columns,
409  int n_lines,
410  int index,
411  int radius,
412  ErrorMsg errmsg);
413 
414  int array_trapezoidal_weights(double * __restrict__ x,
415  int n,
416  double * __restrict__ w_trapz,
417  ErrorMsg errmsg);
418 
419  int array_trapezoidal_mweights(double * __restrict__ x,
420  int n,
421  double * __restrict__ w_trapz,
422  ErrorMsg errmsg);
423 
424  int array_trapezoidal_integral(double * __restrict__ integrand,
425  int n,
426  double * __restrict__ w_trapz,
427  double * __restrict__ I,
428  ErrorMsg errmsg);
429 
430  int array_trapezoidal_convolution(double * __restrict__ integrand1,
431  double * __restrict__ integrand2,
432  int n,
433  double * __restrict__ w_trapz,
434  double * __restrict__ I,
435  ErrorMsg errmsg);
436 
437 #ifdef __cplusplus
438 }
439 #endif
440 
441 #endif