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 #ifndef UVES_UTILS_WRAPPERS_H
00134 #define UVES_UTILS_WRAPPERS_H
00135
00136 #ifdef HAVE_CONFIG_H
00137 # include <config.h>
00138 #endif
00139
00140
00141
00142
00143 #include <uves_propertylist.h>
00144 #include <irplib_utils.h>
00145
00146 #include <cpl.h>
00147
00148 #include <stdbool.h>
00149
00150
00151
00152
00153
00154
00155
00156
00157
00158 #define uves_sprintf(...) irplib_sprintf(__VA_ARGS__)
00159
00160 const char *uves_find_frame(const cpl_frameset *frames, const char **wanted,
00161 int N, int *found, const cpl_frame **frame);
00162 cpl_error_code uves_cast_image(cpl_image **image, cpl_type to_type);
00163 cpl_error_code uves_crop_image(cpl_image **image, int x1, int y_1, int x2, int y2);
00164
00165 cpl_error_code uves_get_property_value(const uves_propertylist *plist,
00166 const char *keyword, cpl_type keywordtype,
00167 void *result);
00168 cpl_error_code uves_get_parameter(const cpl_parameterlist *parameters,
00169 const char *context, const char *recipe_id,
00170 const char *name, cpl_type type, void *value);
00171 cpl_error_code uves_set_parameter(cpl_parameterlist *parameters,
00172 const char *context, const char *name,
00173 cpl_type type, void *value);
00174 cpl_error_code uves_set_parameter_default(cpl_parameterlist *parameters,
00175 const char *context,
00176 const char *parname,
00177 cpl_type type, void *value);
00178
00179 void uves_image_reject_all(cpl_image *image);
00180
00181 int uves_get_nextensions(const char *filename);
00182 int uves_select_table_rows(cpl_table *t, const char *column,
00183 cpl_table_select_operator operator,
00184 double value);
00185 int uves_erase_invalid_table_rows(cpl_table *t, const char *column);
00186 int uves_erase_table_rows(cpl_table *t, const char *column,
00187 cpl_table_select_operator operator,
00188 double value);
00189 int uves_extract_table_rows_local(cpl_table *t, const char *column,
00190 cpl_table_select_operator operator, double value);
00191
00192 cpl_table *uves_extract_table_rows(const cpl_table *t, const char *column,
00193 cpl_table_select_operator operator,
00194 double value);
00195
00196 cpl_error_code
00197 uves_table_sort_dfsxxxx(cpl_table *table, const uves_propertylist *reflist);
00198
00199 void uves_sort_table_1(cpl_table *t, const char *column1,
00200 bool reverse1);
00201 void uves_sort_table_2(cpl_table *t, const char *column1,
00202 const char *column2, bool reverse1,
00203 bool reverse2);
00204 void uves_sort_table_3(cpl_table *t, const char *column1,
00205 const char *column2, const char *column3,
00206 bool reverse1, bool reverse2, bool reverse3);
00207
00208
00209 cpl_error_code uves_fit(const cpl_matrix *x, const cpl_matrix *sigma_x,
00210 const cpl_vector *y, const cpl_vector *sigma_y,
00211 cpl_vector *a, const int ia[],
00212 int (*f)(const double x[], const double a[],
00213 double *result),
00214 int (*dfda)(const double x[], const double a[],
00215 double result[]),
00216 double *mse,
00217 double *red_chisq,
00218 cpl_matrix **covariance);
00219
00220 cpl_error_code
00221 uves_fit_1d(const cpl_vector *x, const cpl_vector *sigma_x,
00222 const cpl_vector *y, const cpl_vector *sigma_y,
00223 cpl_fit_mode fit_pars, bool fit_back,
00224 double *x0, double *sigma, double *area, double *offset, double *slope,
00225 double *mse, double *red_chisq,
00226 cpl_matrix **covariance,
00227 int (*f) (const double x[], const double a[], double *result),
00228 int (*dfda)(const double x[], const double a[], double result[]),
00229 int M);
00230
00231 cpl_error_code
00232 uves_fit_1d_image(const cpl_image *image, const cpl_image *noise,
00233 const cpl_binary *image_badmap,
00234 bool horizontal, bool fix_back, bool fit_back,
00235 int xlo, int xhi, int y_0,
00236 double *x0, double *sigma, double *norm, double *background,
00237 double *slope,
00238 double *mse, double *red_chisq,
00239 cpl_matrix **covariance,
00240 int (*f) (const double x[], const double a[], double *result),
00241 int (*dfda)(const double x[], const double a[], double result[]),
00242 int M);
00243
00244
00245 void uves_propertylist_append_property(uves_propertylist *result, const cpl_property *p);
00246
00247 cpl_error_code uves_table_erase_selected_dfs02356(cpl_table *t);
00248 int uves_table_and_selected_invalid(cpl_table *t, const char *column);
00249
00250 void uves_raise_to_median_frac(cpl_table *t, const char *column, double fraction);
00251 void uves_free_image(cpl_image **i);
00252 void uves_free_mask(cpl_mask **m);
00253 void uves_free_imagelist(cpl_imagelist **i);
00254 void uves_free_table(cpl_table **t);
00255 void uves_free_table_const(const cpl_table **t);
00256 void uves_free_propertylist(uves_propertylist **p);
00257 void uves_free_propertylist_const(const uves_propertylist **p);
00258 void uves_free_property(cpl_property **p);
00259 void uves_free_polynomial(cpl_polynomial **p);
00260 void uves_free_matrix(cpl_matrix **m);
00261 void uves_free_vector(cpl_vector **v);
00262 void uves_free_bivector(cpl_bivector **b);
00263 void uves_free_stats(cpl_stats **s);
00264 void uves_unwrap_vector(cpl_vector **v);
00265 void uves_unwrap_vector_const(const cpl_vector **v);
00266 void uves_unwrap_bivector_vectors(cpl_bivector **b);
00267 void uves_free_parameterlist(cpl_parameterlist **p);
00268 void uves_free_frameset(cpl_frameset **f);
00269 void uves_free_frame(cpl_frame **f);
00270 void uves_free_array(cpl_array **a);
00271 void uves_free_int(int **i);
00272 void uves_free_int_const(const int **i);
00273 void uves_free_float(float **f);
00274 void uves_free_double(double **d);
00275 void uves_free_string(char **s);
00276 void uves_free_string_const(const char **s);
00277
00278 #endif
00279
00280
00281
00282
00283
00284
00285
00286
00287
00288
00289
00290