00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120
00121
00122
00123
00124
00125
00126
00127
00128
00129
00130
00131
00132
00133
00134
00135
00136 #ifndef UVES_UTILS_WRAPPERS_H
00137 #define UVES_UTILS_WRAPPERS_H
00138
00139 #ifdef HAVE_CONFIG_H
00140 # include <config.h>
00141 #endif
00142
00143
00144
00145
00146 #include <uves_propertylist.h>
00147 #include <irplib_utils.h>
00148
00149 #include <cpl.h>
00150
00151 #include <stdbool.h>
00152
00153
00154
00155
00156
00157
00158
00159
00160
00161 #define uves_sprintf(...) irplib_sprintf(__VA_ARGS__)
00162
00163 const char *uves_find_frame(const cpl_frameset *frames, const char **wanted,
00164 int N, int *found, const cpl_frame **frame);
00165 cpl_error_code uves_cast_image(cpl_image **image, cpl_type to_type);
00166 cpl_error_code uves_crop_image(cpl_image **image, int x1, int y_1, int x2, int y2);
00167
00168 cpl_error_code uves_get_property_value(const uves_propertylist *plist,
00169 const char *keyword, cpl_type keywordtype,
00170 void *result);
00171 cpl_error_code uves_get_parameter(const cpl_parameterlist *parameters,
00172 const char *context, const char *recipe_id,
00173 const char *name, cpl_type type, void *value);
00174 cpl_error_code uves_set_parameter(cpl_parameterlist *parameters,
00175 const char *context, const char *name,
00176 cpl_type type, void *value);
00177 cpl_error_code uves_set_parameter_default(cpl_parameterlist *parameters,
00178 const char *context,
00179 const char *parname,
00180 cpl_type type, void *value);
00181
00182 void uves_image_reject_all(cpl_image *image);
00183
00184 int uves_get_nextensions(const char *filename);
00185 int uves_select_table_rows(cpl_table *t, const char *column,
00186 cpl_table_select_operator operator,
00187 double value);
00188 int uves_erase_invalid_table_rows(cpl_table *t, const char *column);
00189 int uves_erase_table_rows(cpl_table *t, const char *column,
00190 cpl_table_select_operator operator,
00191 double value);
00192 int uves_extract_table_rows_local(cpl_table *t, const char *column,
00193 cpl_table_select_operator operator, double value);
00194
00195 cpl_table *uves_extract_table_rows(const cpl_table *t, const char *column,
00196 cpl_table_select_operator operator,
00197 double value);
00198
00199 cpl_error_code
00200 uves_table_sort_dfsxxxx(cpl_table *table, const uves_propertylist *reflist);
00201
00202 void uves_sort_table_1(cpl_table *t, const char *column1,
00203 bool reverse1);
00204 void uves_sort_table_2(cpl_table *t, const char *column1,
00205 const char *column2, bool reverse1,
00206 bool reverse2);
00207 void uves_sort_table_3(cpl_table *t, const char *column1,
00208 const char *column2, const char *column3,
00209 bool reverse1, bool reverse2, bool reverse3);
00210
00211
00212 cpl_error_code uves_fit(const cpl_matrix *x, const cpl_matrix *sigma_x,
00213 const cpl_vector *y, const cpl_vector *sigma_y,
00214 cpl_vector *a, const int ia[],
00215 int (*f)(const double x[], const double a[],
00216 double *result),
00217 int (*dfda)(const double x[], const double a[],
00218 double result[]),
00219 double *mse,
00220 double *red_chisq,
00221 cpl_matrix **covariance);
00222
00223 cpl_error_code
00224 uves_fit_1d(const cpl_vector *x, const cpl_vector *sigma_x,
00225 const cpl_vector *y, const cpl_vector *sigma_y,
00226 cpl_fit_mode fit_pars, bool fit_back,
00227 double *x0, double *sigma, double *area, double *offset, double *slope,
00228 double *mse, double *red_chisq,
00229 cpl_matrix **covariance,
00230 int (*f) (const double x[], const double a[], double *result),
00231 int (*dfda)(const double x[], const double a[], double result[]),
00232 int M);
00233
00234 cpl_error_code
00235 uves_fit_1d_image(const cpl_image *image, const cpl_image *noise,
00236 const cpl_binary *image_badmap,
00237 bool horizontal, bool fix_back, bool fit_back,
00238 int xlo, int xhi, int y_0,
00239 double *x0, double *sigma, double *norm, double *background,
00240 double *slope,
00241 double *mse, double *red_chisq,
00242 cpl_matrix **covariance,
00243 int (*f) (const double x[], const double a[], double *result),
00244 int (*dfda)(const double x[], const double a[], double result[]),
00245 int M);
00246
00247
00248 void uves_propertylist_append_property(uves_propertylist *result, const cpl_property *p);
00249
00250 cpl_error_code uves_table_erase_selected_dfs02356(cpl_table *t);
00251 int uves_table_and_selected_invalid(cpl_table *t, const char *column);
00252
00253 void uves_raise_to_median_frac(cpl_table *t, const char *column, double fraction);
00254 void uves_free(const void *mem);
00255 void uves_free_image(cpl_image **i);
00256 void uves_free_mask(cpl_mask **m);
00257 void uves_free_imagelist(cpl_imagelist **i);
00258 void uves_free_table(cpl_table **t);
00259 void uves_free_table_const(const cpl_table **t);
00260 void uves_free_propertylist(uves_propertylist **p);
00261 void uves_free_propertylist_const(const uves_propertylist **p);
00262 void uves_free_property(cpl_property **p);
00263 void uves_free_polynomial(cpl_polynomial **p);
00264 void uves_free_matrix(cpl_matrix **m);
00265 void uves_free_vector(cpl_vector **v);
00266 void uves_free_bivector(cpl_bivector **b);
00267 void uves_free_stats(cpl_stats **s);
00268 void uves_unwrap_vector(cpl_vector **v);
00269 void uves_unwrap_vector_const(const cpl_vector **v);
00270 void uves_unwrap_bivector_vectors(cpl_bivector **b);
00271 void uves_free_parameterlist(cpl_parameterlist **p);
00272 void uves_free_frameset(cpl_frameset **f);
00273 void uves_free_frame(cpl_frame **f);
00274 void uves_free_array(cpl_array **a);
00275 void uves_free_int(int **i);
00276 void uves_free_int_const(const int **i);
00277 void uves_free_float(float **f);
00278 void uves_free_double(double **d);
00279 void uves_free_string(char **s);
00280 void uves_free_string_const(const char **s);
00281
00282 #endif
00283
00284
00285
00286
00287
00288
00289
00290
00291
00292
00293
00294