cpl.h   cpl.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A
*/ */
/* /*
* $Author: lbilbao $ * $Author: lbilbao $
* $Date: 2009/12/02 10:29:45 $ * $Date: 2009/12/02 10:29:45 $
* $Revision: 1.31 $ * $Revision: 1.31 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
/* CPLCORE */ /* CPLCORE */
#include "cpl_bivector.h" #include "cpl_bivector.h"
#include "cpl_error.h" #include "cpl_error.h"
#include "cpl_errorstate.h" #include "cpl_errorstate.h"
#include "cpl_fits.h" #include "cpl_fits.h"
#include "cpl_image.h" #include "cpl_image.h"
#include "cpl_image_basic.h" #include "cpl_image_basic.h"
#include "cpl_image_iqe.h" #include "cpl_image_iqe.h"
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cpl_apertures.h   cpl_apertures.h 
/* $Id: cpl_apertures.h,v 1.3 2008/12/10 14:14:24 llundin Exp $ /* $Id: cpl_apertures.h,v 1.5 2010/11/11 10:32:10 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/12/10 14:14:24 $ * $Date: 2010/11/11 10:32:10 $
* $Revision: 1.3 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_APERTURES_H #ifndef CPL_APERTURES_H
#define CPL_APERTURES_H #define CPL_APERTURES_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
skipping to change at line 56 skipping to change at line 56
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* IO functions */ /* IO functions */
void cpl_apertures_delete(cpl_apertures *); void cpl_apertures_delete(cpl_apertures *);
void cpl_apertures_dump(const cpl_apertures *, FILE *); void cpl_apertures_dump(const cpl_apertures *, FILE *);
/* Statistics computation */ /* Statistics computation */
cpl_apertures * cpl_apertures_new_from_image(const cpl_image *, const cpl_i cpl_apertures * cpl_apertures_new_from_image(const cpl_image *,
mage *); const cpl_image *) CPL_ATTR_AL
LOC;
/* Accessor functions */ /* Accessor functions */
int cpl_apertures_get_size(const cpl_apertures *); int cpl_apertures_get_size(const cpl_apertures *);
double cpl_apertures_get_max_x(const cpl_apertures *, int); double cpl_apertures_get_max_x(const cpl_apertures *, int);
double cpl_apertures_get_max_y(const cpl_apertures *, int); double cpl_apertures_get_max_y(const cpl_apertures *, int);
double cpl_apertures_get_centroid_x(const cpl_apertures *, int); double cpl_apertures_get_centroid_x(const cpl_apertures *, int);
double cpl_apertures_get_centroid_y(const cpl_apertures *, int); double cpl_apertures_get_centroid_y(const cpl_apertures *, int);
int cpl_apertures_get_npix(const cpl_apertures *, int); int cpl_apertures_get_npix(const cpl_apertures *, int);
int cpl_apertures_get_left(const cpl_apertures *, int); int cpl_apertures_get_left(const cpl_apertures *, int);
int cpl_apertures_get_left_y(const cpl_apertures *, int); int cpl_apertures_get_left_y(const cpl_apertures *, int);
skipping to change at line 87 skipping to change at line 88
double cpl_apertures_get_stdev(const cpl_apertures *, int); double cpl_apertures_get_stdev(const cpl_apertures *, int);
double cpl_apertures_get_flux(const cpl_apertures *, int); double cpl_apertures_get_flux(const cpl_apertures *, int);
/* Sorting functions */ /* Sorting functions */
cpl_error_code cpl_apertures_sort_by_npix(cpl_apertures *); cpl_error_code cpl_apertures_sort_by_npix(cpl_apertures *);
cpl_error_code cpl_apertures_sort_by_max(cpl_apertures *); cpl_error_code cpl_apertures_sort_by_max(cpl_apertures *);
cpl_error_code cpl_apertures_sort_by_flux(cpl_apertures *); cpl_error_code cpl_apertures_sort_by_flux(cpl_apertures *);
/* Detection functions */ /* Detection functions */
cpl_apertures * cpl_apertures_extract(const cpl_image *, const cpl_vector * , cpl_apertures * cpl_apertures_extract(const cpl_image *, const cpl_vector * ,
int *); int *) CPL_ATTR_ALLOC;
cpl_apertures * cpl_apertures_extract_window(const cpl_image *, cpl_apertures * cpl_apertures_extract_window(const cpl_image *,
const cpl_vector *, int, int, const cpl_vector *, int, int,
int, int, int *); int, int, int *) CPL_ATTR_ALLO C;
cpl_apertures * cpl_apertures_extract_sigma(const cpl_image *, double); cpl_apertures * cpl_apertures_extract_sigma(const cpl_image *,
double) CPL_ATTR_ALLOC;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 7 change blocks. 
10 lines changed or deleted 12 lines changed or added


 cpl_apertures_img.h   cpl_apertures_img.h 
/* $Id: cpl_apertures_img.h,v 1.2 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_apertures_img.h,v 1.3 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.2 $ * $Revision: 1.3 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_APERTURES_IMG_H #ifndef CPL_APERTURES_IMG_H
#define CPL_APERTURES_IMG_H #define CPL_APERTURES_IMG_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_array.h   cpl_array.h 
/* $Id: cpl_array.h,v 1.15 2010/04/12 14:49:08 cizzo Exp $ /* $Id: cpl_array.h,v 1.20 2011/01/12 09:28:46 cizzo Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2006 European Southern Observatory * Copyright (C) 2001-2006 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
skipping to change at line 23 skipping to change at line 23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 US A
*/ */
/* /*
* $Author: cizzo $ * $Author: cizzo $
* $Date: 2010/04/12 14:49:08 $ * $Date: 2011/01/12 09:28:46 $
* $Revision: 1.15 $ * $Revision: 1.20 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_ARRAY_H #ifndef CPL_ARRAY_H
#define CPL_ARRAY_H #define CPL_ARRAY_H
#include <stdio.h> #include <stdio.h>
#include <complex.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_type.h> #include <cpl_type.h>
#include <cpl_error.h> #include <cpl_error.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
typedef struct _cpl_array_ cpl_array; typedef struct _cpl_array_ cpl_array;
cpl_array *cpl_array_new(int, cpl_type); cpl_array *cpl_array_new(int, cpl_type);
cpl_array *cpl_array_wrap_int(int *, int); cpl_array *cpl_array_wrap_int(int *, int);
cpl_array *cpl_array_wrap_float(float *, int); cpl_array *cpl_array_wrap_float(float *, int);
cpl_array *cpl_array_wrap_double(double *, int); cpl_array *cpl_array_wrap_double(double *, int);
#ifdef _Complex_I
cpl_array *cpl_array_wrap_float_complex(float complex *, int);
cpl_array *cpl_array_wrap_double_complex(double complex *, int);
#endif
cpl_array *cpl_array_wrap_string(char **, int); cpl_array *cpl_array_wrap_string(char **, int);
cpl_error_code cpl_array_copy_data(cpl_array *, const double *); cpl_error_code cpl_array_copy_data(cpl_array *, const double *);
cpl_error_code cpl_array_copy_data_int(cpl_array *, const int *); cpl_error_code cpl_array_copy_data_int(cpl_array *, const int *);
cpl_error_code cpl_array_copy_data_float(cpl_array *, const float *); cpl_error_code cpl_array_copy_data_float(cpl_array *, const float *);
cpl_error_code cpl_array_copy_data_double(cpl_array *, const double *); cpl_error_code cpl_array_copy_data_double(cpl_array *, const double *);
cpl_error_code cpl_array_copy_data_string(cpl_array *, const char **); cpl_error_code cpl_array_copy_data_string(cpl_array *, const char **);
#ifdef _Complex_I
cpl_error_code cpl_array_copy_data_complex(cpl_array *, const double comple
x *);
cpl_error_code cpl_array_copy_data_float_complex(cpl_array *,
const float complex *);
cpl_error_code cpl_array_copy_data_double_complex(cpl_array *,
const double complex *);
#endif
void cpl_array_delete(cpl_array *); void cpl_array_delete(cpl_array *);
void *cpl_array_unwrap(cpl_array *); void *cpl_array_unwrap(cpl_array *);
int cpl_array_get_size(const cpl_array *); int cpl_array_get_size(const cpl_array *);
cpl_error_code cpl_array_set_size(cpl_array *, int); cpl_error_code cpl_array_set_size(cpl_array *, int);
cpl_type cpl_array_get_type(const cpl_array *); cpl_type cpl_array_get_type(const cpl_array *);
int cpl_array_has_invalid(const cpl_array *); int cpl_array_has_invalid(const cpl_array *);
int cpl_array_has_valid(const cpl_array *); int cpl_array_has_valid(const cpl_array *);
int cpl_array_is_valid(const cpl_array *, int); int cpl_array_is_valid(const cpl_array *, int);
int cpl_array_count_invalid(const cpl_array *); int cpl_array_count_invalid(const cpl_array *);
int *cpl_array_get_data_int(cpl_array *); int *cpl_array_get_data_int(cpl_array *);
const int *cpl_array_get_data_int_const(const cpl_array *); const int *cpl_array_get_data_int_const(const cpl_array *);
float *cpl_array_get_data_float(cpl_array *); float *cpl_array_get_data_float(cpl_array *);
const float *cpl_array_get_data_float_const(const cpl_array *); const float *cpl_array_get_data_float_const(const cpl_array *);
double *cpl_array_get_data_double(cpl_array *); double *cpl_array_get_data_double(cpl_array *);
const double *cpl_array_get_data_double_const(const cpl_array *); const double *cpl_array_get_data_double_const(const cpl_array *);
#ifdef _Complex_I
float complex *cpl_array_get_data_float_complex(cpl_array *);
const float complex *cpl_array_get_data_float_complex_const(const cpl_array
*);
const double complex *cpl_array_get_data_double_complex_const
(const cpl_array *);
double complex *cpl_array_get_data_double_complex(cpl_array *);
#endif
char **cpl_array_get_data_string(cpl_array *); char **cpl_array_get_data_string(cpl_array *);
const char **cpl_array_get_data_string_const(const cpl_array *); const char **cpl_array_get_data_string_const(const cpl_array *);
double cpl_array_get(const cpl_array *, int, int *); double cpl_array_get(const cpl_array *, int, int *);
int cpl_array_get_int(const cpl_array *, int, int *); int cpl_array_get_int(const cpl_array *, int, int *);
float cpl_array_get_float(const cpl_array *, int, int *); float cpl_array_get_float(const cpl_array *, int, int *);
double cpl_array_get_double(const cpl_array *, int, int *); double cpl_array_get_double(const cpl_array *, int, int *);
const char *cpl_array_get_string(const cpl_array *, int); const char *cpl_array_get_string(const cpl_array *, int);
#ifdef _Complex_I
double complex cpl_array_get_complex(const cpl_array *, int, int *);
float complex cpl_array_get_float_complex(const cpl_array *, int, int *);
double complex cpl_array_get_double_complex(const cpl_array *, int, int *);
#endif
cpl_error_code cpl_array_set(cpl_array *array, int, double); cpl_error_code cpl_array_set(cpl_array *array, int, double);
cpl_error_code cpl_array_set_int(cpl_array *, int, int); cpl_error_code cpl_array_set_int(cpl_array *, int, int);
cpl_error_code cpl_array_set_float(cpl_array *, int, float); cpl_error_code cpl_array_set_float(cpl_array *, int, float);
cpl_error_code cpl_array_set_double(cpl_array *, int, double); cpl_error_code cpl_array_set_double(cpl_array *, int, double);
cpl_error_code cpl_array_set_string(cpl_array *, int, const char *); cpl_error_code cpl_array_set_string(cpl_array *, int, const char *);
cpl_error_code cpl_array_set_invalid(cpl_array *, int); cpl_error_code cpl_array_set_invalid(cpl_array *, int);
#ifdef _Complex_I
cpl_error_code cpl_array_set_complex(cpl_array *, int, double complex);
cpl_error_code cpl_array_set_float_complex(cpl_array *, int, float complex)
;
cpl_error_code cpl_array_set_double_complex(cpl_array *, int, double comple
x);
#endif
cpl_error_code cpl_array_fill_window(cpl_array *, int, int, double); cpl_error_code cpl_array_fill_window(cpl_array *, int, int, double);
cpl_error_code cpl_array_fill_window_int(cpl_array *, int, int, int); cpl_error_code cpl_array_fill_window_int(cpl_array *, int, int, int);
cpl_error_code cpl_array_fill_window_float(cpl_array *, int, int, float); cpl_error_code cpl_array_fill_window_float(cpl_array *, int, int, float);
cpl_error_code cpl_array_fill_window_double(cpl_array *, int, int, double); cpl_error_code cpl_array_fill_window_double(cpl_array *, int, int, double);
cpl_error_code cpl_array_fill_window_string(cpl_array *, int, int, cpl_error_code cpl_array_fill_window_string(cpl_array *, int, int,
const char *); const char *);
#ifdef _Complex_I
cpl_error_code cpl_array_fill_window_complex(cpl_array *,
int, int, double complex);
cpl_error_code cpl_array_fill_window_float_complex(cpl_array *, int, int,
float complex);
cpl_error_code cpl_array_fill_window_double_complex(cpl_array *, int, int,
double complex);
#endif
cpl_error_code cpl_array_fill_window_invalid(cpl_array *, int, int); cpl_error_code cpl_array_fill_window_invalid(cpl_array *, int, int);
cpl_array *cpl_array_duplicate(const cpl_array *); cpl_array *cpl_array_duplicate(const cpl_array *);
cpl_array *cpl_array_extract(const cpl_array *, int start, int count); cpl_array *cpl_array_extract(const cpl_array *, int start, int count);
cpl_array *cpl_array_extract_real(cpl_array *);
cpl_array *cpl_array_extract_imag(cpl_array *);
cpl_error_code cpl_array_insert_window(cpl_array *, int start, int count); cpl_error_code cpl_array_insert_window(cpl_array *, int start, int count);
cpl_error_code cpl_array_erase_window(cpl_array *, int start, int count); cpl_error_code cpl_array_erase_window(cpl_array *, int start, int count);
cpl_error_code cpl_array_insert(cpl_array *, const cpl_array *, int); cpl_error_code cpl_array_insert(cpl_array *, const cpl_array *, int);
cpl_error_code cpl_array_add(cpl_array *, const cpl_array *); cpl_error_code cpl_array_add(cpl_array *, const cpl_array *);
cpl_error_code cpl_array_subtract(cpl_array *, const cpl_array *); cpl_error_code cpl_array_subtract(cpl_array *, const cpl_array *);
cpl_error_code cpl_array_multiply(cpl_array *, const cpl_array *); cpl_error_code cpl_array_multiply(cpl_array *, const cpl_array *);
cpl_error_code cpl_array_divide(cpl_array *, const cpl_array *); cpl_error_code cpl_array_divide(cpl_array *, const cpl_array *);
cpl_error_code cpl_array_add_scalar(cpl_array *, double); cpl_error_code cpl_array_add_scalar(cpl_array *, double);
cpl_error_code cpl_array_subtract_scalar(cpl_array *, double); cpl_error_code cpl_array_subtract_scalar(cpl_array *, double);
cpl_error_code cpl_array_multiply_scalar(cpl_array *, double); cpl_error_code cpl_array_multiply_scalar(cpl_array *, double);
cpl_error_code cpl_array_divide_scalar(cpl_array *, double); cpl_error_code cpl_array_divide_scalar(cpl_array *, double);
cpl_error_code cpl_array_abs(cpl_array *); cpl_error_code cpl_array_abs(cpl_array *);
cpl_error_code cpl_array_arg(cpl_array *);
cpl_error_code cpl_array_logarithm(cpl_array *, double); cpl_error_code cpl_array_logarithm(cpl_array *, double);
cpl_error_code cpl_array_power(cpl_array *, double); cpl_error_code cpl_array_power(cpl_array *, double);
cpl_error_code cpl_array_exponential(cpl_array *, double); cpl_error_code cpl_array_exponential(cpl_array *, double);
#ifdef _Complex_I
cpl_error_code cpl_array_add_scalar_complex(cpl_array *, double complex);
cpl_error_code cpl_array_subtract_scalar_complex(cpl_array *, double comple
x);
cpl_error_code cpl_array_multiply_scalar_complex(cpl_array *, double comple
x);
cpl_error_code cpl_array_divide_scalar_complex(cpl_array *, double complex)
;
#endif
#ifdef _Complex_I
double complex cpl_array_get_mean_complex(const cpl_array *);
#endif
double cpl_array_get_mean(const cpl_array *); double cpl_array_get_mean(const cpl_array *);
double cpl_array_get_median(const cpl_array *); double cpl_array_get_median(const cpl_array *);
double cpl_array_get_stdev(const cpl_array *); double cpl_array_get_stdev(const cpl_array *);
double cpl_array_get_max(const cpl_array *); double cpl_array_get_max(const cpl_array *);
double cpl_array_get_min(const cpl_array *); double cpl_array_get_min(const cpl_array *);
cpl_error_code cpl_array_get_maxpos(const cpl_array *, int *); cpl_error_code cpl_array_get_maxpos(const cpl_array *, int *);
cpl_error_code cpl_array_get_minpos(const cpl_array *, int *); cpl_error_code cpl_array_get_minpos(const cpl_array *, int *);
void cpl_array_dump_structure(const cpl_array *, FILE *); void cpl_array_dump_structure(const cpl_array *, FILE *);
void cpl_array_dump(const cpl_array *, int start, int count, FILE *); void cpl_array_dump(const cpl_array *, int start, int count, FILE *);
 End of changes. 14 change blocks. 
4 lines changed or deleted 62 lines changed or added


 cpl_bivector.h   cpl_bivector.h 
/* $Id: cpl_bivector.h,v 1.10 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_bivector.h,v 1.14 2010/12/14 17:25:08 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/12/14 17:25:08 $
* $Revision: 1.10 $ * $Revision: 1.14 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_BIVECTOR_H #ifndef CPL_BIVECTOR_H
#define CPL_BIVECTOR_H #define CPL_BIVECTOR_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include "cpl_vector.h" #include "cpl_vector.h"
#include <stdio.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
typedef struct _cpl_bivector_ cpl_bivector; typedef struct _cpl_bivector_ cpl_bivector;
typedef enum {
CPL_SORT_BY_X,
CPL_SORT_BY_Y
} cpl_sort_mode;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Constructors and destructors */ /* Constructors and destructors */
cpl_bivector * cpl_bivector_new(int); cpl_bivector * cpl_bivector_new(int) CPL_ATTR_ALLOC;
cpl_bivector * cpl_bivector_wrap_vectors(cpl_vector *, cpl_vector *); cpl_bivector * cpl_bivector_wrap_vectors(cpl_vector *,
cpl_bivector * cpl_bivector_duplicate(const cpl_bivector *); cpl_vector *) CPL_ATTR_ALLOC;
cpl_bivector * cpl_bivector_duplicate(const cpl_bivector *) CPL_ATTR_ALLOC;
void cpl_bivector_delete(cpl_bivector *); void cpl_bivector_delete(cpl_bivector *);
void cpl_bivector_unwrap_vectors(cpl_bivector *); void cpl_bivector_unwrap_vectors(cpl_bivector *);
void cpl_bivector_dump(const cpl_bivector *, FILE *); void cpl_bivector_dump(const cpl_bivector *, FILE *);
cpl_bivector * cpl_bivector_read(const char *); cpl_bivector * cpl_bivector_read(const char *) CPL_ATTR_ALLOC;
cpl_error_code cpl_bivector_copy(cpl_bivector *, const cpl_bivector *);
/* Accessors functions */ /* Accessors functions */
int cpl_bivector_get_size(const cpl_bivector *); int cpl_bivector_get_size(const cpl_bivector *);
cpl_vector * cpl_bivector_get_x(cpl_bivector *); cpl_vector * cpl_bivector_get_x(cpl_bivector *);
cpl_vector * cpl_bivector_get_y(cpl_bivector *); cpl_vector * cpl_bivector_get_y(cpl_bivector *);
const cpl_vector * cpl_bivector_get_x_const(const cpl_bivector *); const cpl_vector * cpl_bivector_get_x_const(const cpl_bivector *);
const cpl_vector * cpl_bivector_get_y_const(const cpl_bivector *); const cpl_vector * cpl_bivector_get_y_const(const cpl_bivector *);
double * cpl_bivector_get_x_data(cpl_bivector *); double * cpl_bivector_get_x_data(cpl_bivector *);
double * cpl_bivector_get_y_data(cpl_bivector *); double * cpl_bivector_get_y_data(cpl_bivector *);
const double * cpl_bivector_get_x_data_const(const cpl_bivector *); const double * cpl_bivector_get_x_data_const(const cpl_bivector *);
const double * cpl_bivector_get_y_data_const(const cpl_bivector *); const double * cpl_bivector_get_y_data_const(const cpl_bivector *);
/* Basic functionalities */ /* Basic functionalities */
cpl_error_code cpl_bivector_interpolate_linear(cpl_bivector *, cpl_error_code cpl_bivector_interpolate_linear(cpl_bivector *,
const cpl_bivector *); const cpl_bivector *);
cpl_error_code cpl_bivector_sort(cpl_bivector *, const cpl_bivector *,
cpl_sort_direction, cpl_sort_mode);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 9 change blocks. 
10 lines changed or deleted 22 lines changed or added


 cpl_detector.h   cpl_detector.h 
/* $Id: cpl_detector.h,v 1.4 2009/08/07 09:21:09 lbilbao Exp $ /* $Id: cpl_detector.h,v 1.5 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: lbilbao $ * $Author: llundin $
* $Date: 2009/08/07 09:21:09 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.4 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_DETECTOR_H #ifndef CPL_DETECTOR_H
#define CPL_DETECTOR_H #define CPL_DETECTOR_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <cpl_error.h> #include <cpl_error.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 cpl_dfs.h   cpl_dfs.h 
/* $Id: cpl_dfs.h,v 1.15 2009/07/02 11:00:09 llundin Exp $ /* $Id: cpl_dfs.h,v 1.16 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/07/02 11:00:09 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.15 $ * $Revision: 1.16 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_DFS_H #ifndef CPL_DFS_H
#define CPL_DFS_H #define CPL_DFS_H
#include <cpl_imagelist.h> #include <cpl_imagelist.h>
#include <cpl_table.h> #include <cpl_table.h>
#include <cpl_frameset.h> #include <cpl_frameset.h>
#include <cpl_propertylist.h> #include <cpl_propertylist.h>
#include <cpl_parameterlist.h> #include <cpl_parameterlist.h>
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_error.h   cpl_error.h 
/* $Id: cpl_error.h,v 1.70 2009/08/12 09:15:40 llundin Exp $ /* $Id: cpl_error.h,v 1.79 2010/11/12 14:28:01 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/08/12 09:15:40 $ * $Date: 2010/11/12 14:28:01 $
* $Revision: 1.70 $ * $Revision: 1.79 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_ERROR_H #ifndef CPL_ERROR_H
#define CPL_ERROR_H #define CPL_ERROR_H
#include <stdlib.h> #include <stdlib.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_func.h> #include <cpl_func.h>
#include <cxutils.h> #include <cxutils.h>
skipping to change at line 65 skipping to change at line 65
#ifndef CPL_ERROR_MAX_MESSAGE_LENGTH #ifndef CPL_ERROR_MAX_MESSAGE_LENGTH
#define CPL_ERROR_MAX_MESSAGE_LENGTH 256 #define CPL_ERROR_MAX_MESSAGE_LENGTH 256
#endif #endif
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@ingroup cpl_error @ingroup cpl_error
@brief Flag to indicate support for variadic macros @brief Flag to indicate support for variadic macros
@see cpl_error_set_message() @see cpl_error_set_message()
@note Unless already defined, tries to detect whether variadic macros are @note Unless already defined, tries to detect whether variadic macros are
supported, not only when CPL is compiled, but also when the CPL-bas supported, typically at compile-time of a CPL-based application.
ed This check, which is hardly robust, should support
application is compiled. This check, which is hardly robust, should
support
- disabling of variadic macros when compiling with @em gcc @em -ans i - disabling of variadic macros when compiling with @em gcc @em -ans i
- enabling them when compiling with @em gcc @em -std=c99 - enabling them when compiling with a C99 compliant compiler, such
as
@em gcc @em -std=c99
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#ifndef CPL_HAVE_VA_ARGS #ifndef CPL_HAVE_VA_ARGS
# if defined __STRICT_ANSI__ # if !defined __STDC_VERSION__ && defined __STRICT_ANSI__
/* gcc -ansi and gcc -std=... enters here */ /* (llvm-)gcc -ansi and (llvm-)gcc -std=c89 do not define __STDC_VERS
# if !defined __STDC_VERSION__ || __STDC_VERSION__ <= 199409L ION__
/* gcc -ansi enters here, but gcc -std=... does not but they do define __STRICT_ANSI__ */
(The value 199409L signifies the 1989 C standard as amended in 1994) # define CPL_HAVE_VA_ARGS 0
*/ # else
# define CPL_HAVE_VA_ARGS 0 /* (llvm-)gcc with other language standards (incl. gnu89 (equivalent to
# endif no language specification), iso9899:199409, c99) reaches this point
# endif */
/* Sunstudio 12.1 c99 reaches this point since it defines __STDC_VERSIO
# ifndef CPL_HAVE_VA_ARGS N__
# define CPL_HAVE_VA_ARGS 1 to 199901L as expected (it also defines __STRICT_ANSI__) */
# define CPL_HAVE_VA_ARGS 1
# endif # endif
#endif #endif
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
* @ingroup cpl_error * @ingroup cpl_error
@brief Generic error handling macro @brief Generic error handling macro
@param CONDITION The condition to check @param CONDITION The condition to check
@param CODE The CPL error code to set if @em CONDTION is non-z ero @param CODE The CPL error code to set if @em CONDTION is non-z ero
@param ACTION A statement that is executed iff the @em CONDITION @param ACTION A statement that is executed iff the @em CONDITION
evaluates to non-zero. evaluates to non-zero.
@param ... A printf-style message for cpl_error_set_message() . @param ... A printf-style message for cpl_error_set_message() .
@see cpl_error_set_message() @see cpl_error_set_message()
@note This macro should not be used directly. It is defined only to supp ort @note This macro should not be used directly. It is defined only to supp ort
user-defined error handling macros. If CODE equals CPL_ERROR_NONE, a CPL user-defined error handling macros. If CODE equals CPL_ERROR_NONE, a CPL
error with code CPL_ERROR_UNSPECIFIED is created. The message may be a error with code CPL_ERROR_UNSPECIFIED is created. The message may be a
printf-like format string supplied with arguments unless variadic macros printf-like format string supplied with arguments unless variadic macros
are not supported in which case only a non-format string is accepted. are not supported in which case only a (non-format) string is accepted.
The provided @em CODE, @em ACTION and @em __VA_ARGS__ are evaluated/exec uted The provided @em CODE, @em ACTION and @em __VA_ARGS__ are evaluated/exec uted
only if the @em CONDITION evaluates to false (zero). The @em ACTION @em break only if the @em CONDITION evaluates to false (zero). The @em ACTION @em break
is unsupported (it currently causes the execution to continue after @em is unsupported (it currently causes the execution to continue after @em
cpl_error_ensure()). Some of the below examples cpl_error_ensure()). Some of the below examples
use a @em goto statement to jump to a single cleanup label, assumed to use a @em goto statement to jump to a single cleanup label, assumed to
be located immediately before the function's unified cleanup-code and re turn be located immediately before the function's unified cleanup-code and re turn
point. This error-handling scheme is reminiscent of using exceptions in point. This error-handling scheme is reminiscent of using exceptions in
languages that support exceptions (C++, Java, ...). The use of @em goto and languages that support exceptions (C++, Java, ...). The use of @em goto and
a single clean-up label per function "if the error-handling code is non- a single clean-up label per function "if the error-handling code is non-
trivial, and if errors can occur in several places" is sanctioned by trivial, and if errors can occur in several places" is sanctioned by
skipping to change at line 178 skipping to change at line 176
check( check(
(x = cpl_table_get_int(table, "x", 0, NULL), (x = cpl_table_get_int(table, "x", 0, NULL),
y = cpl_table_get_int(table, "y", 0, NULL), y = cpl_table_get_int(table, "y", 0, NULL),
z = cpl_table_get_int(table, "z", 0, NULL)), z = cpl_table_get_int(table, "z", 0, NULL)),
"Error reading wavelength catalogue"); "Error reading wavelength catalogue");
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#if defined CPL_HAVE_VA_ARGS && CPL_HAVE_VA_ARGS == 1 #if defined CPL_HAVE_VA_ARGS && CPL_HAVE_VA_ARGS == 1 || defined DOXYGEN_SK IP
#define cpl_error_ensure(CONDITION, CODE, ACTION, ...) \ #define cpl_error_ensure(CONDITION, CODE, ACTION, ...) \
do if (!(CONDITION)) { \ do if (!(CONDITION)) { \
/* Evaluate exactly once using a name-space protected variable name */ \ /* Evaluate exactly once using a name-space protected variable name */ \
const cpl_error_code cpl_ensure_error = (CODE); \ const cpl_error_code cpl_ensure_error = (CODE); \
(void)cpl_error_set_message_macro(cpl_func, cpl_ensure_error \ (void)cpl_error_set_message_macro(cpl_func, cpl_ensure_error \
? cpl_ensure_error : \ ? cpl_ensure_error : \
CPL_ERROR_UNSPECIFIED, \ CPL_ERROR_UNSPECIFIED, \
__FILE__, __LINE__, __VA_ARGS__) ; \ __FILE__, __LINE__, __VA_ARGS__) ; \
ACTION; \ ACTION; \
} while (0) } while (0)
skipping to change at line 309 skipping to change at line 307
* Example of usage: * Example of usage:
* @code * @code
* *
* if (image == NULL) { * if (image == NULL) {
* return cpl_error_set_message(cpl_func, CPL_ERROR_NULL_INPUT, * return cpl_error_set_message(cpl_func, CPL_ERROR_NULL_INPUT,
* "Image number %d is NULL", number); * "Image number %d is NULL", number);
* } * }
* *
* @endcode * @endcode
* *
* Example of usage in a C89 application (e.g. compiling with gcc -ansi):
* @code
*
* if (image == NULL) {
* char * my_txt = cpl_sprintf("Image number %d is NULL", number);
* const cpl_error_code my_code =
* cpl_error_set_message(cpl_func, CPL_ERROR_NULL_INPUT, my_txt)
;
* cpl_free(my_txt);
* return my_code;
* }
*
* @endcode
*
* @hideinitializer * @hideinitializer
*/ */
#if defined CPL_HAVE_VA_ARGS && CPL_HAVE_VA_ARGS == 1 #if defined CPL_HAVE_VA_ARGS && CPL_HAVE_VA_ARGS == 1 || defined DOXYGEN_SK IP
#define cpl_error_set_message(function, code, ...) \ #define cpl_error_set_message(function, code, ...) \
cpl_error_set_message_macro(function, code, __FILE__, __LINE__, __VA_AR GS__) cpl_error_set_message_macro(function, code, __FILE__, __LINE__, __VA_AR GS__)
#else #else
#define cpl_error_set_message(function, code, text) \ #define cpl_error_set_message(function, code, text) \
cpl_error_set_message_macro(function, code, __FILE__, __LINE__, text) cpl_error_set_message_macro(function, code, __FILE__, __LINE__, text)
#endif #endif
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
skipping to change at line 421 skipping to change at line 432
typedef enum _cpl_error_code_ cpl_error_code; typedef enum _cpl_error_code_ cpl_error_code;
typedef struct _cpl_error_ cpl_error; typedef struct _cpl_error_ cpl_error;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
void cpl_error_reset(void); void cpl_error_reset(void);
cpl_error_code cpl_error_set_message_macro(const char *, cpl_error_code, cpl_error_code
const char *, unsigned, cpl_error_set_message_macro(const char *, cpl_error_code,
const char *, ...) const char *, unsigned,
#ifdef __GNUC__ const char *, ...) CPL_ATTR_PRINTF(5,6)
#if __GNUC__ > 3 || __GNUC__ == 3 && defined __GNUC_MINOR__ && __GNUC_MINOR #ifdef CPL_HAVE_ATTR_NONNULL
__ > 2
__attribute__((nonnull(3))) __attribute__((nonnull(3)))
#endif #endif
__attribute__((format (printf, 5, 6)))
#endif
;
cpl_error_code cpl_error_get_code(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
const char *cpl_error_get_message(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
const char *cpl_error_get_message_default(cpl_error_code)
#ifdef __GNUC__
__attribute__((const))
#endif
;
const char *cpl_error_get_function(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
const char *cpl_error_get_file(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
unsigned cpl_error_get_line(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
const char *cpl_error_get_where(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
; ;
cpl_error_code cpl_error_get_code(void) CPL_ATTR_PURE;
const char *cpl_error_get_message(void) CPL_ATTR_PURE;
const char *cpl_error_get_message_default(cpl_error_code) CPL_ATTR_CONS
T;
const char *cpl_error_get_function(void) CPL_ATTR_PURE;
const char *cpl_error_get_file(void) CPL_ATTR_PURE;
unsigned cpl_error_get_line(void) CPL_ATTR_PURE;
const char *cpl_error_get_where(void) CPL_ATTR_PURE;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
/* end of cpl_error.h */ /* end of cpl_error.h */
 End of changes. 13 change blocks. 
68 lines changed or deleted 53 lines changed or added


 cpl_errorstate.h   cpl_errorstate.h 
/* $Id: cpl_errorstate.h,v 1.5 2009/08/11 14:19:39 llundin Exp $ /* $Id: cpl_errorstate.h,v 1.7 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/08/11 14:19:39 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.5 $ * $Revision: 1.7 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_ERRORSTATE_H #ifndef CPL_ERRORSTATE_H
#define CPL_ERRORSTATE_H #define CPL_ERRORSTATE_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_type.h> #include <cpl_type.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 51 skipping to change at line 51
#ifndef CPL_ERROR_HISTORY_SIZE #ifndef CPL_ERROR_HISTORY_SIZE
#define CPL_ERROR_HISTORY_SIZE 20 #define CPL_ERROR_HISTORY_SIZE 20
#endif #endif
typedef const void * cpl_errorstate; typedef const void * cpl_errorstate;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Prototypes of functions Prototypes of functions
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
cpl_errorstate cpl_errorstate_get(void) cpl_errorstate cpl_errorstate_get(void) CPL_ATTR_PURE;
#ifdef __GNUC__
__attribute__((pure))
#endif
;
void cpl_errorstate_set(cpl_errorstate); void cpl_errorstate_set(cpl_errorstate);
cpl_boolean cpl_errorstate_is_equal(cpl_errorstate) cpl_boolean cpl_errorstate_is_equal(cpl_errorstate) CPL_ATTR_PURE;
#ifdef __GNUC__
__attribute__((pure))
#endif
;
void cpl_errorstate_dump(cpl_errorstate, void cpl_errorstate_dump(cpl_errorstate,
cpl_boolean, cpl_boolean,
void (*)(unsigned, unsigned, unsigned)); void (*)(unsigned, unsigned, unsigned));
void cpl_errorstate_dump_one(unsigned, unsigned, unsigned); void cpl_errorstate_dump_one(unsigned, unsigned, unsigned);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 5 change blocks. 
15 lines changed or deleted 7 lines changed or added


 cpl_fft.h   cpl_fft.h 
/* $Id: cpl_fft.h,v 1.2 2009/12/14 15:35:53 llundin Exp $ /* $Id: cpl_fft.h,v 1.3 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
#ifndef CPL_FFT_H #ifndef CPL_FFT_H
#define CPL_FFT_H #define CPL_FFT_H
#define CPL_FFT_FORWARD ((unsigned)1 << 1) #define CPL_FFT_FORWARD ((unsigned)1 << 1)
#define CPL_FFT_BACKWARD ((unsigned)1 << 2) #define CPL_FFT_BACKWARD ((unsigned)1 << 2)
/* Function prototypes */ /* Function prototypes */
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 cpl_filter.h   cpl_filter.h 
/* $Id: cpl_filter.h,v 1.16 2010/05/03 11:15:25 llundin Exp $ /* $Id: cpl_filter.h,v 1.19 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/05/03 11:15:25 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.16 $ * $Revision: 1.19 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FILTER_H #ifndef CPL_FILTER_H
#define CPL_FILTER_H #define CPL_FILTER_H
#include <cpl_macros.h> #include <cpl_macros.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*-------------------------------------------------------------------------
---*/
/**
* @defgroup cpl_filter Filters
*
* This module provides definitions for filtering of a
* @c cpl_image and a @c cpl_mask. The actual filtering functions are defin
ed
* in the @c cpl_image and @c cpl_mask modules.
*
* @par Synopsis:
* @code
* #include "cpl_filter.h"
* @endcode
*/
/*-------------------------------------------------------------------------
---*/
/**@{*/
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@ingroup cpl_image_filter
*
* @brief These are the supported border modes. For a kernel/mask of width
* 2n+1, the n left- and rightmost image columns do not have raw pixels for
* the whole kernel/mask. The same holds for the top and bottom image rows.
* The border mode defines the filtering of such border pixels.
*
* <table class="ec" align="center">
* <tr>
* <td class="ecl">CPL_BORDER_FILTER</td>
* <td class="ecr">
* Filter the border using the reduced
* number of pixels. If in median filtering the
* number of pixels is even choose any one of the
* two central values.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_BORDER_CROP</td>
* <td class="ecr">
* Crop the filtered image.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_BORDER_NOP</td>
* <td class="ecr">
* Do not modify the border of the filtered image.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_BORDER_COPY</td>
* <td class="ecr">
* Copy the border of the raw image
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_BORDER_ZERO</td>
* <td class="ecr">
* Set the border of the filtered mask to zero
* </td>
* </tr>
* </table>
* *
* @brief These are the supported border modes.
* For a kernel of width 2n+1, the n left- and rightmost image/mask
* columns do not have elements for the whole kernel. The same holds for th
e
* top and bottom image/mask rows. The border mode defines the filtering of
* such border pixels.
* *
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
enum _cpl_border_mode_ enum _cpl_border_mode_
{ {
CPL_BORDER_FILTER, CPL_BORDER_FILTER,
/* /**<
Filter the border. Filter the border using the reduced number of pixels. If in median
filtering the number of pixels is even choose any one of the two
central values.
*/ */
CPL_BORDER_ZERO, CPL_BORDER_ZERO,
/* /**<
Set the border to zero. Set the border of the filtered image/mask to zero.
*/ */
CPL_BORDER_CROP, CPL_BORDER_CROP,
/* /**<
Crop filtered image. Crop the filtered image/mask.
*/ */
CPL_BORDER_NOP, CPL_BORDER_NOP,
/* /**<
Do not modify the border of the filtered image. Do not modify the border of the filtered image/mask.
*/ */
CPL_BORDER_COPY CPL_BORDER_COPY
/* /**<
Copy the border of the raw image. Copy the border of the input image/mask.
*/ */
}; };
/** /**
* @ingroup cpl_image_filter
*
* @brief * @brief
* The border mode type. * The border mode type.
*/ */
typedef enum _cpl_border_mode_ cpl_border_mode; typedef enum _cpl_border_mode_ cpl_border_mode;
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
* *
@ingroup cpl_image_filter
*
* @brief These are the supported filter modes. * @brief These are the supported filter modes.
* *
*
* <table class="ec" align="center">
* <tr>
* <td class="ecl">CPL_FILTER_LINEAR</td>
* <td class="ecr">
* A linear filter. The kernel elements are used as weights
* like this:
*
@verbatim
Kernel 1 2 3 Image ...
4 5 6 ... 1.0 2.0 3.0 ...
7 8 9 ... 4.0 5.0 6.0 ...
... 7.0 8.0 9.0 ...
...
@endverbatim
*
* The filtered value corresponding to the pixel whose value is 5.0
is:
* \f$\frac{(1*1.0+2*2.0+3*3.0+4*4.0+5*5.0+6*6.0+7*7.0+8*8.0+9*9.0)}
{1+2+3+4+5+6+7+8+9}\f$
*
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_AVERAGE</td>
* <td class="ecr">
* An average filter, i.e. the output pixel is the
* arithmetic average of the surrounding (1 + 2 * hsizex)
* * (1 + 2 * hsizey) pixels.
* The cost per pixel is O(hsizex*hsizey).
* The two images may have different pixel types.
* When the input and output pixel types
* are identical, the arithmetic is done with that type,
* e.g. int for two integer images. When the input and
* output pixel types differ, the arithmetic is done in
* double precision when one of the two images have
* pixel type CPL_TYPE_DOUBLE, otherwise float is used.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_AVERAGE_FAST</td>
* <td class="ecr">
* The same as CPL_FILTER_AVERAGE, except that it uses a running
* average, which will lead to a significant loss of precision if
* there are large differences in the magnitudes of the input pixels.
* The cost per pixel is O(1) if all elements in the kernel are used,
* otherwise the filtering is done as for CPL_FILTER_AVERAGE.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_MEDIAN</td>
* <td class="ecr">
* A median filter. The pixel types of the input and
* output images must be identical. All border modes are
* supported.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_STDEV</td>
* <td class="ecr">
* The filtered value is the standard deviation of the included
* input pixels.
*
*
@verbatim
mask Image ...
1 0 1 ... 1.0 2.0 3.0 ...
0 1 0 ... 4.0 5.0 6.0 ...
1 0 1 ... 7.0 8.0 9.0 ...
...
@endverbatim
*
* The pixel with value 5.0 will have a filtered value of:
* std_dev(1.0, 3.0, 5.0, 7.0, 9.0)
*
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_STDEV_FAST</td>
* <td class="ecr">
* The same as CPL_FILTER_STDEV, except that it uses the same running
* method employed in CPL_FILTER_AVERAGE_FAST, which will lead to a
* significant loss of precision if there are large differences in the
* magnitudes of the input pixels. As for CPL_FILTER_AVERAGE_FAST, the
cost
* per pixel is O(1) if all elements are used, otherwise the filtering
is
* done as for CPL_FILTER_STDEV.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_MORPHO</td>
* <td class="ecr">
* A Morphological filter. The kernel elements are used as weights
* on the sorted values covered by the kernel:
*
@verbatim
Kernel 1 2 3 Image ...
4 5 6 ... 4.0 6.0 5.0 ...
7 8 9 ... 3.0 1.0 2.0 ...
... 7.0 8.0 9.0 ...
...
@endverbatim
*
* The filtered value corresponding to the pixel whose value is 5.0 is:
* \f$\frac{(1*1.0+2*2.0+3*3.0+4*4.0+5*5.0+6*6.0+7*7.0+8*8.0+9*9.0)}{1+2+3
+4+5+6+7+8+9}\f$
*
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_EROSION</td>
* <td class="ecr">
* The binary erosion filter. This filter is used in mask filtering.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_DILATION</td>
* <td class="ecr">
* The binary dilation filter. This filter is used in mask filtering
.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_OPENING</td>
* <td class="ecr">
* The binary opening filter. This filter is used in mask filtering.
* </td>
* </tr>
* <tr>
* <td class="ecl">CPL_FILTER_CLOSING</td>
* <td class="ecr">
* The binary closing filter. This filter is used in mask filtering.
* </td>
* </tr>
* </table>
*
*
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
enum _cpl_filter_mode_ enum _cpl_filter_mode_
{ {
CPL_FILTER_EROSION, CPL_FILTER_EROSION,
/**<
/* The erosion filter (for a @c cpl_mask).
The erosion filter for binary images (cpl_mask)
*/ */
CPL_FILTER_DILATION, CPL_FILTER_DILATION,
/**<
/* The dilation filter (for a @c cpl_mask).
The dilation filter for binary images (cpl_mask)
*/ */
CPL_FILTER_OPENING, CPL_FILTER_OPENING,
/**<
/* The opening filter (for a @c cpl_mask).
The opening filter for binary images (cpl_mask)
*/ */
CPL_FILTER_CLOSING, CPL_FILTER_CLOSING,
/**<
/* The closing filter (for a @c cpl_mask).
The closing filter for binary images (cpl_mask)
*/ */
CPL_FILTER_LINEAR, CPL_FILTER_LINEAR,
/* /**<
A linear filter. A linear filter (for a @c cpl_image). The kernel elements are used
as
weights like this:
@verbatim
Kernel Image ...
1 2 3 ... 1.0 2.0 3.0 ...
4 5 6 ... 4.0 5.0 6.0 ...
7 8 9 ... 7.0 8.0 9.0 ...
...
@endverbatim
The filtered value corresponding to the pixel whose value is 5.0 i
s:
\f$\frac{(1*1.0+2*2.0+3*3.0+4*4.0+5*5.0+6*6.0+7*7.0+8*8.0+9*9.0)}
{1+2+3+4+5+6+7+8+9}\f$
*/ */
CPL_FILTER_AVERAGE, CPL_FILTER_AVERAGE,
/* /**<
An average filter. An average filter (for a @c cpl_image), i.e. the output pixel is t
he
arithmetic average of the surrounding (1 + 2 * hsizex)
* (1 + 2 * hsizey) pixels.
The cost per pixel is O(hsizex*hsizey).
The two images may have different pixel types.
When the input and output pixel types
are identical, the arithmetic is done with that type,
e.g. int for two integer images. When the input and
output pixel types differ, the arithmetic is done in
double precision when one of the two images have
pixel type CPL_TYPE_DOUBLE, otherwise float is used.
*/ */
CPL_FILTER_AVERAGE_FAST, CPL_FILTER_AVERAGE_FAST,
/* /**<
A fast average filter. The same as CPL_FILTER_AVERAGE, except that it uses a running
average, which will lead to a significant loss of precision if
there are large differences in the magnitudes of the input pixels.
The cost per pixel is O(1) if all elements in the kernel are used,
otherwise the filtering is done as for CPL_FILTER_AVERAGE.
*/ */
CPL_FILTER_MEDIAN, CPL_FILTER_MEDIAN,
/* /**<
A median filter. A median filter (for a @c cpl_image). The pixel types of the input
and
output images must be identical. All border modes are supported.
*/ */
CPL_FILTER_STDEV, CPL_FILTER_STDEV,
/**<
The filtered value is the standard deviation of the included
input pixels.
@verbatim
Kernel Image ...
1 0 1 ... 1.0 2.0 3.0 ...
0 1 0 ... 4.0 5.0 6.0 ...
1 0 1 ... 7.0 8.0 9.0 ...
...
@endverbatim
The pixel with value 5.0 will have a filtered value of:
std_dev(1.0, 3.0, 5.0, 7.0, 9.0)
/*
A standard deviation filter.
*/ */
CPL_FILTER_STDEV_FAST, CPL_FILTER_STDEV_FAST,
/**<
/* The same as CPL_FILTER_STDEV, except that it uses the same running
A fast standard deviation filter. method employed in CPL_FILTER_AVERAGE_FAST, which will lead to a
significant loss of precision if there are large differences in th
e
magnitudes of the input pixels. As for CPL_FILTER_AVERAGE_FAST, th
e cost
per pixel is O(1) if all elements are used, otherwise the filterin
g is
done as for CPL_FILTER_STDEV.
*/ */
CPL_FILTER_MORPHO CPL_FILTER_MORPHO
/* /**<
A Morphological filter. A morphological filter (for a @c cpl_image). The kernel elements a
re
used as weights on the sorted values covered by the kernel:
@verbatim
Kernel Image ...
1 2 3 ... 4.0 6.0 5.0 ...
4 5 6 ... 3.0 1.0 2.0 ...
7 8 9 ... 7.0 8.0 9.0 ...
...
@endverbatim
The filtered value corresponding to the pixel whose value is 5.0 i
s:
\f$\frac{(1*1.0+2*2.0+3*3.0+4*4.0+5*5.0+6*6.0+7*7.0+8*8.0+9*9.0)}
{1+2+3+4+5+6+7+8+9}\f$
*/ */
}; };
/** /**
* @ingroup cpl_image_filter
*
* @brief * @brief
* The filter mode type. * The filter mode type.
*/ */
typedef enum _cpl_filter_mode_ cpl_filter_mode; typedef enum _cpl_filter_mode_ cpl_filter_mode;
/**@}*/
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 28 change blocks. 
228 lines changed or deleted 134 lines changed or added


 cpl_fit.h   cpl_fit.h 
/* $Id: cpl_fit.h,v 1.6 2009/12/14 15:35:53 llundin Exp $ /* $Id: cpl_fit.h,v 1.7 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/14 15:35:53 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.6 $ * $Revision: 1.7 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FIT_H #ifndef CPL_FIT_H
#define CPL_FIT_H #define CPL_FIT_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <cpl_vector.h> #include <cpl_vector.h>
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_fits.h   cpl_fits.h 
/* $Id: cpl_fits.h,v 1.4 2008/11/27 13:19:26 lbilbao Exp $ /* $Id: cpl_fits.h,v 1.6 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: lbilbao $ * $Author: llundin $
* $Date: 2008/11/27 13:19:26 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.4 $ * $Revision: 1.6 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FITS_H #ifndef CPL_FITS_H
#define CPL_FITS_H #define CPL_FITS_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <cpl_macros.h> #include <cpl_macros.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
int cpl_fits_count_extensions(const char *); int cpl_fits_count_extensions(const char *);
int cpl_fits_get_nb_extensions(const char *) int cpl_fits_get_nb_extensions(const char *) CPL_ATTR_DEPRECATED;
#ifdef __GNUC__
__attribute__((deprecated))
#endif
;
int cpl_fits_find_extension(const char *, const char *); int cpl_fits_find_extension(const char *, const char *);
int cpl_fits_get_extension_nb(const char *, const char *) int cpl_fits_get_extension_nb(const char *, const char *) CPL_ATTR_DEPRECAT
#ifdef __GNUC__ ED;
__attribute__((deprecated))
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 5 change blocks. 
16 lines changed or deleted 9 lines changed or added


 cpl_frame.h   cpl_frame.h 
/* $Id: cpl_frame.h,v 1.16 2009/02/11 12:10:06 scastro Exp $ /* $Id: cpl_frame.h,v 1.18 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: llundin $
* $Date: 2009/02/11 12:10:06 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.16 $ * $Revision: 1.18 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FRAME_H #ifndef CPL_FRAME_H
#define CPL_FRAME_H #define CPL_FRAME_H
#include <stdio.h> #include <stdio.h>
#include <cpl_error.h> #include <cpl_error.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 239 skipping to change at line 239
* @brief * @brief
* Frame group tag for processed data. * Frame group tag for processed data.
*/ */
#define CPL_FRAME_GROUP_PRODUCT_ID "PRODUCT" #define CPL_FRAME_GROUP_PRODUCT_ID "PRODUCT"
/* /*
* Create, copy and destroy operations * Create, copy and destroy operations
*/ */
cpl_frame *cpl_frame_new(void); cpl_frame *cpl_frame_new(void) CPL_ATTR_ALLOC;
cpl_frame *cpl_frame_duplicate(const cpl_frame *other); cpl_frame *cpl_frame_duplicate(const cpl_frame *other) CPL_ATTR_ALLOC;
void cpl_frame_delete(cpl_frame *self); void cpl_frame_delete(cpl_frame *self);
/* /*
* Modifying and non-modifying operations * Modifying and non-modifying operations
*/ */
const char *cpl_frame_get_filename(const cpl_frame *self); const char *cpl_frame_get_filename(const cpl_frame *self);
const char *cpl_frame_get_tag(const cpl_frame *self); const char *cpl_frame_get_tag(const cpl_frame *self);
cpl_frame_type cpl_frame_get_type(const cpl_frame *self); cpl_frame_type cpl_frame_get_type(const cpl_frame *self);
cpl_frame_group cpl_frame_get_group(const cpl_frame *self); cpl_frame_group cpl_frame_get_group(const cpl_frame *self);
 End of changes. 4 change blocks. 
8 lines changed or deleted 8 lines changed or added


 cpl_framedata.h   cpl_framedata.h 
/* $Id: cpl_framedata.h,v 1.1 2006/10/31 14:49:02 rpalsa Exp $ /* $Id: cpl_framedata.h,v 1.3 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2006 European Southern Observatory * Copyright (C) 2001-2006 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: llundin $
* $Date: 2006/10/31 14:49:02 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.1 $ * $Revision: 1.3 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FRAMEDATA_H #ifndef CPL_FRAMEDATA_H
#define CPL_FRAMEDATA_H #define CPL_FRAMEDATA_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_error.h> #include <cpl_error.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 90 skipping to change at line 90
*/ */
int max_count; int max_count;
}; };
/* /*
* Create, copy and destroy operations * Create, copy and destroy operations
*/ */
cpl_framedata* cpl_framedata_new(void); cpl_framedata* cpl_framedata_new(void) CPL_ATTR_ALLOC;
cpl_framedata* cpl_framedata_create(const char* tag, int min_count, cpl_framedata* cpl_framedata_create(const char* tag, int min_count,
int max_count); int max_count) CPL_ATTR_ALLOC;
cpl_framedata* cpl_framedata_duplicate(const cpl_framedata* other); cpl_framedata* cpl_framedata_duplicate(const cpl_framedata* other)
CPL_ATTR_ALLOC;
void cpl_framedata_clear(cpl_framedata* self); void cpl_framedata_clear(cpl_framedata* self);
void cpl_framedata_delete(cpl_framedata* self); void cpl_framedata_delete(cpl_framedata* self);
/* /*
* Non modifying operations * Non modifying operations
*/ */
const char* cpl_framedata_get_tag(const cpl_framedata* self); const char* cpl_framedata_get_tag(const cpl_framedata* self);
int cpl_framedata_get_min_count(const cpl_framedata* self); int cpl_framedata_get_min_count(const cpl_framedata* self);
 End of changes. 5 change blocks. 
9 lines changed or deleted 10 lines changed or added


 cpl_frameset.h   cpl_frameset.h 
/* $Id: cpl_frameset.h,v 1.17 2009/02/11 12:10:40 scastro Exp $ /* $Id: cpl_frameset.h,v 1.19 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: llundin $
* $Date: 2009/02/11 12:10:40 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.17 $ * $Revision: 1.19 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FRAMESET_H #ifndef CPL_FRAMESET_H
#define CPL_FRAMESET_H #define CPL_FRAMESET_H
#include <stdio.h> #include <stdio.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_frame.h> #include <cpl_frame.h>
skipping to change at line 53 skipping to change at line 53
* *
* This data type is opaque. * This data type is opaque.
*/ */
typedef struct _cpl_frameset_ cpl_frameset; typedef struct _cpl_frameset_ cpl_frameset;
/* /*
* Create, copy and destroy operations * Create, copy and destroy operations
*/ */
cpl_frameset *cpl_frameset_new(void); cpl_frameset *cpl_frameset_new(void) CPL_ATTR_ALLOC;
cpl_frameset *cpl_frameset_duplicate(const cpl_frameset *other); cpl_frameset *cpl_frameset_duplicate(const cpl_frameset *other) CPL_ATTR_AL
LOC;
void cpl_frameset_delete(cpl_frameset *self); void cpl_frameset_delete(cpl_frameset *self);
/* /*
* Non modifying operations * Non modifying operations
*/ */
int cpl_frameset_get_size(const cpl_frameset *self); int cpl_frameset_get_size(const cpl_frameset *self);
int cpl_frameset_is_empty(const cpl_frameset *self); int cpl_frameset_is_empty(const cpl_frameset *self);
int cpl_frameset_count_tags(const cpl_frameset *self, const char *tag); int cpl_frameset_count_tags(const cpl_frameset *self, const char *tag);
/* /*
* Search operations * Search operations
*/ */
const cpl_frame *cpl_frameset_find_const(const cpl_frameset *self, const ch const cpl_frame *cpl_frameset_find_const(const cpl_frameset *self,
ar *tag); const char *tag);
cpl_frame *cpl_frameset_find(cpl_frameset *self, const char *tag); cpl_frame *cpl_frameset_find(cpl_frameset *self, const char *tag);
/* /*
* Sequential access * Sequential access
*/ */
const cpl_frame *cpl_frameset_get_first_const(const cpl_frameset *self); const cpl_frame *cpl_frameset_get_first_const(const cpl_frameset *self);
cpl_frame *cpl_frameset_get_first(cpl_frameset *self); cpl_frame *cpl_frameset_get_first(cpl_frameset *self);
const cpl_frame *cpl_frameset_get_next_const(const cpl_frameset *self); const cpl_frame *cpl_frameset_get_next_const(const cpl_frameset *self);
skipping to change at line 105 skipping to change at line 106
cpl_frame *cpl_frameset_get_frame(cpl_frameset *self, int position); cpl_frame *cpl_frameset_get_frame(cpl_frameset *self, int position);
/* /*
* Miscellaneous functions * Miscellaneous functions
*/ */
int *cpl_frameset_labelise(const cpl_frameset *self, int *cpl_frameset_labelise(const cpl_frameset *self,
int (*compare)(const cpl_frame *, const cpl_fram e *), int (*compare)(const cpl_frame *, const cpl_fram e *),
int *nb_labels); int *nb_labels);
cpl_frameset *cpl_frameset_extract(const cpl_frameset *self, const int *lab els, cpl_frameset *cpl_frameset_extract(const cpl_frameset *self, const int *lab els,
int desired_label); int desired_label) CPL_ATTR_ALLOC;
void cpl_frameset_dump(const cpl_frameset *self, FILE *stream); void cpl_frameset_dump(const cpl_frameset *self, FILE *stream);
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_FRAMESET_H */ #endif /* CPL_FRAMESET_H */
 End of changes. 6 change blocks. 
11 lines changed or deleted 12 lines changed or added


 cpl_frameset_io.h   cpl_frameset_io.h 
/* $Id: cpl_frameset_io.h,v 1.3 2008/07/21 08:48:25 llundin Exp $ /* $Id: cpl_frameset_io.h,v 1.5 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:25 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.3 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_FRAMESET_IO_H #ifndef CPL_FRAMESET_IO_H
#define CPL_FRAMESET_IO_H #define CPL_FRAMESET_IO_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_frameset.h> #include <cpl_frameset.h>
#include <cpl_imagelist.h> #include <cpl_imagelist.h>
#include <cpl_type.h> #include <cpl_type.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/* Convert a frame set to an image list */ /* Convert a frame set to an image list */
cpl_imagelist * cpl_imagelist_load_frameset(const cpl_frameset *, cpl_type, cpl_imagelist * cpl_imagelist_load_frameset(const cpl_frameset *, cpl_type,
int, int) ; int, int) CPL_ATTR_ALLOC;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 4 change blocks. 
6 lines changed or deleted 6 lines changed or added


 cpl_geom_img.h   cpl_geom_img.h 
/* $Id: cpl_geom_img.h,v 1.3 2009/01/20 10:14:28 llundin Exp $ /* $Id: cpl_geom_img.h,v 1.5 2010/11/11 10:47:01 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/01/20 10:14:28 $ * $Date: 2010/11/11 10:47:01 $
* $Revision: 1.3 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_GEOM_IMG_H #ifndef CPL_GEOM_IMG_H
#define CPL_GEOM_IMG_H #define CPL_GEOM_IMG_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <cpl_image.h> #include <cpl_image.h>
skipping to change at line 69 skipping to change at line 69
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Offsets detection and frames recombination */ /* Offsets detection and frames recombination */
cpl_bivector * cpl_geom_img_offset_fine(const cpl_imagelist *, cpl_bivector * cpl_geom_img_offset_fine(const cpl_imagelist *,
const cpl_bivector *, const cpl_bivector *,
const cpl_bivector *, const cpl_bivector *,
int, int, int, int, int, int, int, int,
cpl_vector *); cpl_vector *) CPL_ATTR_ALLOC;
cpl_image ** cpl_geom_img_offset_saa(const cpl_imagelist *, cpl_image ** cpl_geom_img_offset_saa(const cpl_imagelist *,
const cpl_bivector *, const cpl_bivector *,
cpl_kernel, int, int, cpl_geom_combine , cpl_kernel, int, int, cpl_geom_combine ,
double *, double *); double *, double *) CPL_ATTR_ALLOC;
cpl_image ** cpl_geom_img_offset_combine(cpl_imagelist *, const cpl_bivecto r *, cpl_image ** cpl_geom_img_offset_combine(cpl_imagelist *, const cpl_bivecto r *,
int, const cpl_bivector *, int, const cpl_bivector *,
const cpl_vector *, int *, int, in const cpl_vector *, int *,
t, int, int, int, int, int, int,
int, int, int, int, cpl_geom_combi cpl_geom_combine) CPL_ATTR_ALLOC;
ne);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 6 change blocks. 
11 lines changed or deleted 10 lines changed or added


 cpl_image.h   cpl_image.h 
/* $Id: cpl_image.h,v 1.49 2008/07/21 08:48:38 llundin Exp $ /* $Id: cpl_image.h,v 1.51 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:38 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.49 $ * $Revision: 1.51 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_H #ifndef CPL_IMAGE_H
#define CPL_IMAGE_H #define CPL_IMAGE_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image_io.h" #include "cpl_image_io.h"
#include "cpl_image_basic.h" #include "cpl_image_basic.h"
#include "cpl_image_iqe.h" #include "cpl_image_iqe.h"
#include "cpl_image_bpm.h" #include "cpl_image_bpm.h"
#include "cpl_image_resample.h" #include "cpl_image_resample.h"
#include "cpl_image_stats.h" #include "cpl_image_stats.h"
#include "cpl_image_filter.h" #include "cpl_image_filter.h"
#include "cpl_image_gen.h" #include "cpl_image_gen.h"
/*-------------------------------------------------------------------------
---*/
/**
* @defgroup cpl_image Images
*
* This module provides functions to create, use, and destroy a @em cpl_ima
ge.
* A @em cpl_image is a 2-dimensional data structure with a pixel type
* (one of @c CPL_TYPE_INT, @c CPL_TYPE_FLOAT, @c CPL_TYPE_DOUBLE,
* @c CPL_TYPE_FLOAT_COMPLEX or @c CPL_TYPE_DOUBLE_COMPLEX) and an
* optional bad pixel map.
*
* The pixel indexing follows the FITS convention in the sense that the
* lower left pixel in a CPL image has index (1, 1). The pixel buffer is
* stored row-wise so for optimum performance any pixel-wise access should
* be done likewise.
*
* Functionality include:
* FITS I/O
* Image arithmetic, casting, extraction, thresholding, filtering, resampli
ng
* Bad pixel handling
* Image statistics
* Generation of test images
* Special functions, such as the image quality estimator
*
* @par Synopsis:
* @code
* #include "cpl_image.h"
* @endcode
*/
/*-------------------------------------------------------------------------
---*/
#endif #endif
 End of changes. 4 change blocks. 
5 lines changed or deleted 39 lines changed or added


 cpl_image_basic.h   cpl_image_basic.h 
/* $Id: cpl_image_basic.h,v 1.45 2009/09/11 14:49:25 cizzo Exp $ /* $Id: cpl_image_basic.h,v 1.47 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: cizzo $ * $Author: llundin $
* $Date: 2009/09/11 14:49:25 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.45 $ * $Revision: 1.47 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_BASIC_H #ifndef CPL_IMAGE_BASIC_H
#define CPL_IMAGE_BASIC_H #define CPL_IMAGE_BASIC_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
skipping to change at line 69 skipping to change at line 69
CPL_NORM_ABSFLUX CPL_NORM_ABSFLUX
}; };
typedef enum _cpl_norm_ cpl_norm; typedef enum _cpl_norm_ cpl_norm;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Basic operations */ /* Basic operations */
cpl_image * cpl_image_add_create(const cpl_image *, const cpl_image *) ; cpl_image * cpl_image_add_create(const cpl_image *, const cpl_image *);
cpl_image * cpl_image_subtract_create(const cpl_image *, const cpl_image *) cpl_image * cpl_image_subtract_create(const cpl_image *, const cpl_image *)
; ;
cpl_image * cpl_image_multiply_create(const cpl_image *, const cpl_image *) cpl_image * cpl_image_multiply_create(const cpl_image *, const cpl_image *)
; ;
cpl_image * cpl_image_divide_create(const cpl_image *, const cpl_image *) ; cpl_image * cpl_image_divide_create(const cpl_image *, const cpl_image *);
cpl_error_code cpl_image_add(cpl_image *, const cpl_image *) ; cpl_error_code cpl_image_add(cpl_image *, const cpl_image *);
cpl_error_code cpl_image_subtract(cpl_image *, const cpl_image *) ; cpl_error_code cpl_image_subtract(cpl_image *, const cpl_image *);
cpl_error_code cpl_image_multiply(cpl_image *, const cpl_image *) ; cpl_error_code cpl_image_multiply(cpl_image *, const cpl_image *);
cpl_error_code cpl_image_divide(cpl_image *, const cpl_image *) ; cpl_error_code cpl_image_divide(cpl_image *, const cpl_image *);
cpl_error_code cpl_image_add_scalar(cpl_image *, double) ; cpl_error_code cpl_image_add_scalar(cpl_image *, double);
cpl_error_code cpl_image_subtract_scalar(cpl_image *, double) ; cpl_error_code cpl_image_subtract_scalar(cpl_image *, double);
cpl_error_code cpl_image_multiply_scalar(cpl_image *, double) ; cpl_error_code cpl_image_multiply_scalar(cpl_image *, double);
cpl_error_code cpl_image_divide_scalar(cpl_image *, double) ; cpl_error_code cpl_image_divide_scalar(cpl_image *, double);
cpl_error_code cpl_image_power(cpl_image *, double) ; cpl_error_code cpl_image_power(cpl_image *, double);
cpl_error_code cpl_image_exponential(cpl_image *, double) ; cpl_error_code cpl_image_exponential(cpl_image *, double);
cpl_error_code cpl_image_logarithm(cpl_image *, double) ; cpl_error_code cpl_image_logarithm(cpl_image *, double);
cpl_error_code cpl_image_normalise(cpl_image *, cpl_norm) ; cpl_error_code cpl_image_normalise(cpl_image *, cpl_norm);
cpl_error_code cpl_image_abs(cpl_image *) ; cpl_error_code cpl_image_abs(cpl_image *);
cpl_image * cpl_image_add_scalar_create(const cpl_image *, double) ; cpl_image * cpl_image_add_scalar_create(const cpl_image *, double);
cpl_image * cpl_image_subtract_scalar_create(const cpl_image *, double) ; cpl_image * cpl_image_subtract_scalar_create(const cpl_image *, double);
cpl_image * cpl_image_multiply_scalar_create(const cpl_image *, double) ; cpl_image * cpl_image_multiply_scalar_create(const cpl_image *, double);
cpl_image * cpl_image_divide_scalar_create(const cpl_image *, double) ; cpl_image * cpl_image_divide_scalar_create(const cpl_image *, double);
cpl_image * cpl_image_power_create(const cpl_image *, double) ; cpl_image * cpl_image_power_create(const cpl_image *, double);
cpl_image * cpl_image_exponential_create(const cpl_image *, double) ; cpl_image * cpl_image_exponential_create(const cpl_image *, double);
cpl_image * cpl_image_logarithm_create(const cpl_image *, double) ; cpl_image * cpl_image_logarithm_create(const cpl_image *, double);
cpl_image * cpl_image_normalise_create(const cpl_image *, cpl_norm) ; cpl_image * cpl_image_normalise_create(const cpl_image *, cpl_norm);
cpl_image * cpl_image_abs_create(const cpl_image *) ; cpl_image * cpl_image_abs_create(const cpl_image *);
cpl_error_code cpl_image_threshold(cpl_image *, double, double, double, dou ble); cpl_error_code cpl_image_threshold(cpl_image *, double, double, double, dou ble);
cpl_image * cpl_image_average_create(const cpl_image *, const cpl_image *); cpl_image * cpl_image_average_create(const cpl_image *, const cpl_image *);
/* Collapse functions */ /* Collapse functions */
cpl_image * cpl_image_collapse_window_create(const cpl_image *, int, int, i cpl_image * cpl_image_collapse_window_create(const cpl_image *, int, int, i
nt, int, int); nt,
cpl_image * cpl_image_collapse_create(const cpl_image *, int) ; int, int);
cpl_image * cpl_image_collapse_median_create(const cpl_image *, int, int, i cpl_image * cpl_image_collapse_create(const cpl_image *, int);
nt) ; cpl_image * cpl_image_collapse_median_create(const cpl_image *, int, int, i
nt);
/* Extraction function */ /* Extraction function */
cpl_image * cpl_image_extract(const cpl_image *, int, int, int, int) ; cpl_image * cpl_image_extract(const cpl_image *, int, int, int, int);
cpl_vector * cpl_vector_new_from_image_row(const cpl_image *, int) ; cpl_vector * cpl_vector_new_from_image_row(const cpl_image *, int);
cpl_vector * cpl_vector_new_from_image_column(const cpl_image *, int) ; cpl_vector * cpl_vector_new_from_image_column(const cpl_image *, int);
/* Rotation and Shift */ /* Rotation and Shift */
cpl_error_code cpl_image_turn(cpl_image *, int) ; cpl_error_code cpl_image_turn(cpl_image *, int);
cpl_error_code cpl_image_shift(cpl_image *, int, int) ; cpl_error_code cpl_image_shift(cpl_image *, int, int);
/* Insert an image in an other one */ /* Insert an image in an other one */
cpl_error_code cpl_image_copy(cpl_image *, const cpl_image *, int, int); cpl_error_code cpl_image_copy(cpl_image *, const cpl_image *, int, int);
/* Symmetry function */ /* Symmetry function */
cpl_error_code cpl_image_flip(cpl_image *, int) ; cpl_error_code cpl_image_flip(cpl_image *, int);
/* Pixels re-organization */ /* Pixels re-organization */
cpl_error_code cpl_image_move(cpl_image *, int, const int *) ; cpl_error_code cpl_image_move(cpl_image *, int, const int *);
/* Gaussian fit of an image zone */ /* Gaussian fit of an image zone */
cpl_error_code cpl_image_fit_gaussian(const cpl_image *, int, int, int, cpl_error_code
double *, double *, double *, double *, double *, double *, double cpl_image_fit_gaussian(const cpl_image *, int, int, int,
*) double *, double *, double *, double *,
double *, double *, double *) CPL_ATTR_DEPRECATED;
#ifdef __GNUC__
__attribute__((deprecated))
#endif
;
/* FWHM computation on a local maximum */ /* FWHM computation on a local maximum */
cpl_error_code cpl_image_get_fwhm(const cpl_image *, int, int, double *, cpl_error_code cpl_image_get_fwhm(const cpl_image *, int, int, double *,
double *) ; double *);
/* FFT computation */ /* FFT computation */
cpl_error_code cpl_image_fft(cpl_image *, cpl_image *, unsigned) ; cpl_error_code cpl_image_fft(cpl_image *, cpl_image *, unsigned);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 14 change blocks. 
56 lines changed or deleted 53 lines changed or added


 cpl_image_bpm.h   cpl_image_bpm.h 
/* $Id: cpl_image_bpm.h,v 1.17 2010/04/08 11:59:09 llundin Exp $ /* $Id: cpl_image_bpm.h,v 1.18 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/04/08 11:59:09 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.17 $ * $Revision: 1.18 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_BPM_H #ifndef CPL_IMAGE_BPM_H
#define CPL_IMAGE_BPM_H #define CPL_IMAGE_BPM_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_image_filter.h   cpl_image_filter.h 
/* $Id: cpl_image_filter.h,v 1.23 2008/12/16 10:21:56 llundin Exp $ /* $Id: cpl_image_filter.h,v 1.25 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/12/16 10:21:56 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.23 $ * $Revision: 1.25 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_FILTER_H #ifndef CPL_IMAGE_FILTER_H
#define CPL_IMAGE_FILTER_H #define CPL_IMAGE_FILTER_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
skipping to change at line 54 skipping to change at line 54
cpl_error_code cpl_image_filter_mask(cpl_image *, const cpl_image *, cpl_error_code cpl_image_filter_mask(cpl_image *, const cpl_image *,
const cpl_mask *, const cpl_mask *,
cpl_filter_mode, cpl_border_mode); cpl_filter_mode, cpl_border_mode);
cpl_error_code cpl_image_filter(cpl_image *, const cpl_image *, cpl_error_code cpl_image_filter(cpl_image *, const cpl_image *,
const cpl_matrix *, const cpl_matrix *,
cpl_filter_mode, cpl_border_mode); cpl_filter_mode, cpl_border_mode);
cpl_image * cpl_image_filter_linear(const cpl_image *, const cpl_matrix *) cpl_image * cpl_image_filter_linear(const cpl_image *, const cpl_matrix *)
#ifdef __GNUC__ CPL_ATTR_DEPRECATED;
__attribute__((deprecated))
#endif
;
cpl_image * cpl_image_filter_morpho(const cpl_image *, const cpl_matrix *) cpl_image * cpl_image_filter_morpho(const cpl_image *, const cpl_matrix *)
#ifdef __GNUC__ CPL_ATTR_DEPRECATED;
__attribute__((deprecated))
#endif
;
cpl_image * cpl_image_filter_median(const cpl_image *, const cpl_matrix *) cpl_image * cpl_image_filter_median(const cpl_image *, const cpl_matrix *)
#ifdef __GNUC__ CPL_ATTR_DEPRECATED;
__attribute__((deprecated))
#endif
;
cpl_image * cpl_image_filter_stdev(const cpl_image *, const cpl_matrix *) cpl_image * cpl_image_filter_stdev(const cpl_image *, const cpl_matrix *)
#ifdef __GNUC__ CPL_ATTR_DEPRECATED;
__attribute__((deprecated))
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 7 change blocks. 
21 lines changed or deleted 9 lines changed or added


 cpl_image_gen.h   cpl_image_gen.h 
/* $Id: cpl_image_gen.h,v 1.17 2008/07/21 08:48:26 llundin Exp $ /* $Id: cpl_image_gen.h,v 1.19 2010/11/11 15:28:46 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:26 $ * $Date: 2010/11/11 15:28:46 $
* $Revision: 1.17 $ * $Revision: 1.19 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_GEN_H #ifndef CPL_IMAGE_GEN_H
#define CPL_IMAGE_GEN_H #define CPL_IMAGE_GEN_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
#include "cpl_polynomial.h" #include "cpl_polynomial.h"
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
cpl_error_code cpl_image_fill_noise_uniform(cpl_image *, double, double) ; cpl_error_code cpl_image_fill_noise_uniform(cpl_image *, double, double);
cpl_error_code cpl_image_fill_gaussian(cpl_image *, double, double, double, cpl_error_code cpl_image_fill_gaussian(cpl_image *, double, double, double,
double, double) ; double, double);
cpl_error_code cpl_image_fill_polynomial(cpl_image *, cpl_error_code cpl_image_fill_polynomial(cpl_image *,
const cpl_polynomial *, double, double, double, double) ; const cpl_polynomial *, double, double, double, double);
cpl_image * cpl_image_fill_test_create(int, int) ; cpl_image * cpl_image_fill_test_create(int, int) CPL_ATTR_ALLOC;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 6 change blocks. 
9 lines changed or deleted 9 lines changed or added


 cpl_image_io.h   cpl_image_io.h 
/* $Id: cpl_image_io.h,v 1.68 2010/04/08 12:00:28 llundin Exp $ /* $Id: cpl_image_io.h,v 1.72 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/04/08 12:00:28 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.68 $ * $Revision: 1.72 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_IO_H #ifndef CPL_IMAGE_IO_H
#define CPL_IMAGE_IO_H #define CPL_IMAGE_IO_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
typedef struct _cpl_image_ cpl_image; typedef struct _cpl_image_ cpl_image;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h>
#include "cpl_io.h" #include "cpl_io.h"
#include "cpl_propertylist.h" #include "cpl_propertylist.h"
#include "cpl_mask.h" #include "cpl_mask.h"
#include <stdio.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Image constructors */ /* Image constructors */
cpl_image * cpl_image_new(int, int, cpl_type); cpl_image * cpl_image_new(int, int, cpl_type) CPL_ATTR_ALLOC;
cpl_image * cpl_image_wrap_double(int, int, double *); cpl_image * cpl_image_wrap(int, int, cpl_type, void *) CPL_ATTR_ALLOC;
cpl_image * cpl_image_wrap_float(int, int, float *); cpl_image * cpl_image_wrap_double(int, int, double *) CPL_ATTR_ALLOC;
cpl_image * cpl_image_wrap_int(int, int, int *); cpl_image * cpl_image_wrap_float(int, int, float *) CPL_ATTR_ALLOC;
cpl_image * cpl_image_wrap_int(int, int, int *) CPL_ATTR_ALLOC;
#ifdef _Complex_I #ifdef _Complex_I
cpl_image * cpl_image_wrap_double_complex(int, int, double complex *); cpl_image * cpl_image_wrap_double_complex(int, int,
cpl_image * cpl_image_wrap_float_complex(int, int, float complex *); double complex *) CPL_ATTR_ALLOC;
cpl_image * cpl_image_wrap_float_complex(int, int,
float complex *) CPL_ATTR_ALLOC;
#endif #endif
cpl_image * cpl_image_load(const char *, cpl_type, int, int);
cpl_image * cpl_image_load_window(const char *, cpl_type, int, int, int, in cpl_image * cpl_image_load(const char *, cpl_type, int, int) CPL_ATTR_ALLOC
t, ;
int, int); cpl_image * cpl_image_load_window(const char *, cpl_type, int, int,
cpl_image * cpl_image_new_from_mask(const cpl_mask *); int, int, int, int) CPL_ATTR_ALLOC;
cpl_image * cpl_image_labelise_mask_create(const cpl_mask *, int *); cpl_image * cpl_image_new_from_mask(const cpl_mask *) CPL_ATTR_ALLOC;
cpl_image * cpl_image_labelise_mask_create(const cpl_mask *,
int *) CPL_ATTR_ALLOC;
/* Get functions */ /* Get functions */
cpl_type cpl_image_get_type(const cpl_image *); cpl_type cpl_image_get_type(const cpl_image *);
int cpl_image_get_size_x(const cpl_image *); int cpl_image_get_size_x(const cpl_image *);
int cpl_image_get_size_y(const cpl_image *); int cpl_image_get_size_y(const cpl_image *);
double cpl_image_get(const cpl_image *, int, int, int *); double cpl_image_get(const cpl_image *, int, int, int *);
#ifdef _Complex_I #ifdef _Complex_I
double complex cpl_image_get_complex(const cpl_image *, int, int, int *); double complex cpl_image_get_complex(const cpl_image *, int, int, int *);
cpl_error_code cpl_image_set_complex(cpl_image *, int, int, double complex) ; cpl_error_code cpl_image_set_complex(cpl_image *, int, int, double complex) ;
skipping to change at line 111 skipping to change at line 117
/* Image destructor */ /* Image destructor */
void cpl_image_delete(cpl_image *); void cpl_image_delete(cpl_image *);
void * cpl_image_unwrap(cpl_image *); void * cpl_image_unwrap(cpl_image *);
/* Debugging functions */ /* Debugging functions */
cpl_error_code cpl_image_dump_structure(const cpl_image *, FILE *); cpl_error_code cpl_image_dump_structure(const cpl_image *, FILE *);
cpl_error_code cpl_image_dump_window(const cpl_image *, int, int, int, int, cpl_error_code cpl_image_dump_window(const cpl_image *, int, int, int, int,
FILE *); FILE *);
/* Others */ /* Others */
cpl_image * cpl_image_duplicate(const cpl_image *); cpl_image * cpl_image_duplicate(const cpl_image *) CPL_ATTR_ALLOC;
cpl_image * cpl_image_cast(const cpl_image *, cpl_type); cpl_image * cpl_image_cast(const cpl_image *, cpl_type) CPL_ATTR_ALLOC;
/* Saving function */ /* Saving function */
cpl_error_code cpl_image_save(const cpl_image *, const char *, cpl_type_bpp , cpl_error_code cpl_image_save(const cpl_image *, const char *, cpl_type_bpp ,
const cpl_propertylist *, unsigned); const cpl_propertylist *, unsigned);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 9 change blocks. 
21 lines changed or deleted 27 lines changed or added


 cpl_image_iqe.h   cpl_image_iqe.h 
/* $Id: cpl_image_iqe.h,v 1.4 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_image_iqe.h,v 1.5 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.4 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_IQE_H #ifndef CPL_IMAGE_IQE_H
#define CPL_IMAGE_IQE_H #define CPL_IMAGE_IQE_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_image_resample.h   cpl_image_resample.h 
/* $Id: cpl_image_resample.h,v 1.16 2008/12/19 13:48:36 cizzo Exp $ /* $Id: cpl_image_resample.h,v 1.18 2010/11/11 15:28:46 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: cizzo $ * $Author: llundin $
* $Date: 2008/12/19 13:48:36 $ * $Date: 2010/11/11 15:28:46 $
* $Revision: 1.16 $ * $Revision: 1.18 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_RESAMPLE_H #ifndef CPL_IMAGE_RESAMPLE_H
#define CPL_IMAGE_RESAMPLE_H #define CPL_IMAGE_RESAMPLE_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
skipping to change at line 70 skipping to change at line 70
const cpl_vector *, double); const cpl_vector *, double);
cpl_error_code cpl_image_fill_jacobian_polynomial(cpl_image *, cpl_error_code cpl_image_fill_jacobian_polynomial(cpl_image *,
const cpl_polynomial *pol y_x, const cpl_polynomial *pol y_x,
const cpl_polynomial *pol y_y); const cpl_polynomial *pol y_y);
cpl_error_code cpl_image_fill_jacobian(cpl_image *, cpl_error_code cpl_image_fill_jacobian(cpl_image *,
const cpl_image *deltax, const cpl_image *deltax,
const cpl_image *deltay); const cpl_image *deltay);
cpl_image *cpl_image_extract_subsample(const cpl_image*, int, int); cpl_image *cpl_image_extract_subsample(const cpl_image *,
int, int) CPL_ATTR_ALLOC;
cpl_image *cpl_image_rebin(const cpl_image *, int, int, int, int); cpl_image *cpl_image_rebin(const cpl_image *, int, int,
int, int) CPL_ATTR_ALLOC;
double cpl_image_get_interpolated(const cpl_image *, double, double, double cpl_image_get_interpolated(const cpl_image *, double, double,
const cpl_vector *, double, const cpl_vector *, double,
const cpl_vector *, double, double *); const cpl_vector *, double, double *);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 5 change blocks. 
8 lines changed or deleted 10 lines changed or added


 cpl_image_stats.h   cpl_image_stats.h 
/* $Id: cpl_image_stats.h,v 1.26 2008/10/17 14:24:01 llundin Exp $ /* $Id: cpl_image_stats.h,v 1.27 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/10/17 14:24:01 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.26 $ * $Revision: 1.27 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGE_STATS_H #ifndef CPL_IMAGE_STATS_H
#define CPL_IMAGE_STATS_H #define CPL_IMAGE_STATS_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_imagelist.h   cpl_imagelist.h 
/* $Id: cpl_imagelist.h,v 1.5 2009/12/14 15:35:53 llundin Exp $ /* $Id: cpl_imagelist.h,v 1.6 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/14 15:35:53 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.5 $ * $Revision: 1.6 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGELIST_H #ifndef CPL_IMAGELIST_H
#define CPL_IMAGELIST_H #define CPL_IMAGELIST_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
typedef struct _cpl_imagelist_ cpl_imagelist ; typedef struct _cpl_imagelist_ cpl_imagelist ;
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_imagelist_basic.h   cpl_imagelist_basic.h 
/* $Id: cpl_imagelist_basic.h,v 1.20 2009/04/29 09:46:38 lbilbao Exp $ /* $Id: cpl_imagelist_basic.h,v 1.22 2010/11/11 15:28:46 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: lbilbao $ * $Author: llundin $
* $Date: 2009/04/29 09:46:38 $ * $Date: 2010/11/11 15:28:46 $
* $Revision: 1.20 $ * $Revision: 1.22 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGELIST_BASIC_H #ifndef CPL_IMAGELIST_BASIC_H
#define CPL_IMAGELIST_BASIC_H #define CPL_IMAGELIST_BASIC_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
skipping to change at line 59 skipping to change at line 59
typedef enum _cpl_swap_axis_ cpl_swap_axis; typedef enum _cpl_swap_axis_ cpl_swap_axis;
#define CPL_COLLAPSE_MEAN ((unsigned)1 << 1) #define CPL_COLLAPSE_MEAN ((unsigned)1 << 1)
#define CPL_COLLAPSE_MEDIAN ((unsigned)1 << 2) #define CPL_COLLAPSE_MEDIAN ((unsigned)1 << 2)
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Imagelist modifying functions */ /* Imagelist modifying functions */
cpl_error_code cpl_imagelist_add(cpl_imagelist *, const cpl_imagelist *) ; cpl_error_code cpl_imagelist_add(cpl_imagelist *, const cpl_imagelist *);
cpl_error_code cpl_imagelist_subtract(cpl_imagelist *, const cpl_imagelist cpl_error_code cpl_imagelist_subtract(cpl_imagelist *, const cpl_imagelist
*) ; *);
cpl_error_code cpl_imagelist_multiply(cpl_imagelist *, const cpl_imagelist cpl_error_code cpl_imagelist_multiply(cpl_imagelist *, const cpl_imagelist
*) ; *);
cpl_error_code cpl_imagelist_divide(cpl_imagelist *, const cpl_imagelist *) cpl_error_code cpl_imagelist_divide(cpl_imagelist *, const cpl_imagelist *)
; ;
cpl_error_code cpl_imagelist_add_image(cpl_imagelist *, const cpl_image *) ; cpl_error_code cpl_imagelist_add_image(cpl_imagelist *, const cpl_image *);
cpl_error_code cpl_imagelist_subtract_image(cpl_imagelist *, const cpl_imag e *); cpl_error_code cpl_imagelist_subtract_image(cpl_imagelist *, const cpl_imag e *);
cpl_error_code cpl_imagelist_multiply_image(cpl_imagelist *, const cpl_imag e *); cpl_error_code cpl_imagelist_multiply_image(cpl_imagelist *, const cpl_imag e *);
cpl_error_code cpl_imagelist_divide_image(cpl_imagelist *, const cpl_image *) ; cpl_error_code cpl_imagelist_divide_image(cpl_imagelist *, const cpl_image *);
cpl_error_code cpl_imagelist_add_scalar(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_add_scalar(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_subtract_scalar(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_subtract_scalar(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_multiply_scalar(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_multiply_scalar(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_divide_scalar(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_divide_scalar(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_exponential(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_exponential(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_power(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_power(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_logarithm(cpl_imagelist *, double) ; cpl_error_code cpl_imagelist_logarithm(cpl_imagelist *, double);
cpl_error_code cpl_imagelist_normalise(cpl_imagelist *, cpl_norm) ; cpl_error_code cpl_imagelist_normalise(cpl_imagelist *, cpl_norm);
cpl_error_code cpl_imagelist_threshold(cpl_imagelist *, double, double, dou cpl_error_code cpl_imagelist_threshold(cpl_imagelist *, double, double,
ble, double, double);
double) ;
cpl_imagelist * cpl_imagelist_swap_axis_create(const cpl_imagelist *, cpl_imagelist * cpl_imagelist_swap_axis_create(const cpl_imagelist *,
cpl_swap_axis) ; cpl_swap_axis) CPL_ATTR_ALLO C;
/* Imagelist to image functions */ /* Imagelist to image functions */
cpl_image * cpl_image_new_from_accepted(const cpl_imagelist *) ; cpl_image * cpl_image_new_from_accepted(const cpl_imagelist *) CPL_ATTR_ALL
cpl_image * cpl_imagelist_collapse_create(const cpl_imagelist *) ; OC;
cpl_image * cpl_imagelist_collapse_median_create(const cpl_imagelist *) ; cpl_image * cpl_imagelist_collapse_create(const cpl_imagelist *) CPL_ATTR_A
cpl_image * cpl_imagelist_collapse_minmax_create(const cpl_imagelist *,int, LLOC;
int); cpl_image * cpl_imagelist_collapse_median_create(const cpl_imagelist *)
cpl_image * cpl_imagelist_collapse_sigclip_create(const cpl_imagelist *, CPL_ATTR_ALLOC;
double, double, double, unsigned, cpl_image *); cpl_image * cpl_imagelist_collapse_minmax_create(const cpl_imagelist *,
int, int) CPL_ATTR_ALLOC;
cpl_image * cpl_imagelist_collapse_sigclip_create(const cpl_imagelist *, do
uble,
double, double, unsigned,
cpl_image *) CPL_ATTR_ALL
OC;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 10 change blocks. 
34 lines changed or deleted 39 lines changed or added


 cpl_imagelist_io.h   cpl_imagelist_io.h 
/* $Id: cpl_imagelist_io.h,v 1.22 2009/12/14 15:35:53 llundin Exp $ /* $Id: cpl_imagelist_io.h,v 1.24 2010/11/11 15:28:46 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/14 15:35:53 $ * $Date: 2010/11/11 15:28:46 $
* $Revision: 1.22 $ * $Revision: 1.24 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IMAGELIST_IO_H #ifndef CPL_IMAGELIST_IO_H
#define CPL_IMAGELIST_IO_H #define CPL_IMAGELIST_IO_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image.h" #include "cpl_image.h"
#include "cpl_imagelist.h" #include "cpl_imagelist.h"
#include "cpl_vector.h" #include "cpl_vector.h"
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Imagelist constructors */ /* Imagelist constructors */
cpl_imagelist * cpl_imagelist_new(void); cpl_imagelist * cpl_imagelist_new(void) CPL_ATTR_ALLOC;
cpl_imagelist * cpl_imagelist_load(const char *, cpl_type, int) ; cpl_imagelist * cpl_imagelist_load(const char *, cpl_type, int) CPL_ATTR_AL
LOC;
cpl_imagelist * cpl_imagelist_load_window(const char *, cpl_type, int, int, cpl_imagelist * cpl_imagelist_load_window(const char *, cpl_type, int, int,
int, int, int) ; int, int, int) CPL_ATTR_ALLOC;
/* Imagelist accessors */ /* Imagelist accessors */
int cpl_imagelist_get_size(const cpl_imagelist *) ; int cpl_imagelist_get_size(const cpl_imagelist *);
cpl_image * cpl_imagelist_get(cpl_imagelist *, int) ; cpl_image * cpl_imagelist_get(cpl_imagelist *, int);
const cpl_image * cpl_imagelist_get_const(const cpl_imagelist *, int) ; const cpl_image * cpl_imagelist_get_const(const cpl_imagelist *, int);
cpl_error_code cpl_imagelist_set(cpl_imagelist *, cpl_image *, int) ; cpl_error_code cpl_imagelist_set(cpl_imagelist *, cpl_image *, int);
cpl_image * cpl_imagelist_unset(cpl_imagelist *, int) ; cpl_image * cpl_imagelist_unset(cpl_imagelist *, int);
/* Imagelist destructor */ /* Imagelist destructor */
void cpl_imagelist_delete(cpl_imagelist *) ; void cpl_imagelist_delete(cpl_imagelist *);
/* Others */ /* Others */
cpl_imagelist * cpl_imagelist_duplicate(const cpl_imagelist *) ; cpl_imagelist * cpl_imagelist_duplicate(const cpl_imagelist *) CPL_ATTR_ALL
cpl_error_code cpl_imagelist_erase(cpl_imagelist *, const cpl_vector *) ; OC;
int cpl_imagelist_is_uniform(const cpl_imagelist *) ; cpl_error_code cpl_imagelist_erase(cpl_imagelist *, const cpl_vector *);
int cpl_imagelist_is_uniform(const cpl_imagelist *);
cpl_error_code cpl_imagelist_dump_structure(const cpl_imagelist *, FILE *); cpl_error_code cpl_imagelist_dump_structure(const cpl_imagelist *, FILE *);
cpl_error_code cpl_imagelist_dump_window(const cpl_imagelist *, cpl_error_code cpl_imagelist_dump_window(const cpl_imagelist *,
int, int, int, int, FILE *); int, int, int, int, FILE *);
/* Saving function */ /* Saving function */
cpl_error_code cpl_imagelist_save(const cpl_imagelist *, const char *, cpl_error_code cpl_imagelist_save(const cpl_imagelist *, const char *,
cpl_type_bpp, const cpl_propertylist *, cpl_type_bpp, const cpl_propertylist *,
unsigned); unsigned);
CPL_END_DECLS CPL_END_DECLS
 End of changes. 8 change blocks. 
17 lines changed or deleted 19 lines changed or added


 cpl_init.h   cpl_init.h 
/* $Id: cpl_init.h,v 1.8 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_init.h,v 1.9 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.8 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_INIT_H #ifndef CPL_INIT_H
#define CPL_INIT_H #define CPL_INIT_H
#include <cpl_macros.h> #include <cpl_macros.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
#define CPL_INIT_DEFAULT 0 #define CPL_INIT_DEFAULT 0
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_io.h   cpl_io.h 
/* $Id: cpl_io.h,v 1.14 2010/02/23 12:43:03 llundin Exp $ /* $Id: cpl_io.h,v 1.16 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/02/23 12:43:03 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.14 $ * $Revision: 1.16 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_IO_H #ifndef CPL_IO_H
#define CPL_IO_H #define CPL_IO_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <cpl_macros.h> #include <cpl_macros.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*-------------------------------------------------------------------------
---*/
/**
* @defgroup cpl_io I/O
*
* This module provides definitions related to I/O. The actual I/O function
s
* are defined in the respective CPL modules.
*
* @par Synopsis:
* @code
* #include "cpl_io.h"
* @endcode
*/
/*-------------------------------------------------------------------------
---*/
/**@{*/
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Defines Defines
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/*-------------------------------------------------------------------------
---*/
/** /**
* Each FITS IO mode is listed below. *
* The modes can be combined with bitwise or. * @brief These are the file I/O modes.
* No mode has the value 1, which makes the (mis)use of logical or detectab
le.
*/ */
/*------------------------------------------------------------------------- ---*/
/* CPL_IO_CREATE: files opened for writing will be overwritten */ enum _cpl_io_type_ {
#define CPL_IO_CREATE ((unsigned)1 << 1)
/* CPL_IO_EXTEND: Data is saved in an new extension appended to the file */ /*
#define CPL_IO_EXTEND ((unsigned)1 << 2) * More modes may be added in the future. To support future combination
of
* different modes (using bit-wise or) no mode has the value 1, since t
his
* makes the (mis)use of logical or detectable.
*/
/* CPL_IO_APPEND: Data is appended to the last data unit */ /** @hideinitializer */
#define CPL_IO_APPEND ((unsigned)1 << 3) CPL_IO_CREATE = ((unsigned)1 << 1),
/**< Overwrite the file, if it already exists. */
/* The maximum value for the IO mode bitmask */ /** @hideinitializer */
#define CPL_IO_MAX (CPL_IO_APPEND) CPL_IO_EXTEND = ((unsigned)1 << 2),
/**< Append a new extension to the file. */
/* For backwards compatibility */ /** @hideinitializer */
#define CPL_IO_DEFAULT ((unsigned)CPL_IO_CREATE) CPL_IO_APPEND = ((unsigned)1 << 3),
/**< Append to the last data unit of the file. */
typedef enum { /** @hideinitializer */
/* FITS pixel depths */ CPL_IO_MAX = CPL_IO_APPEND,
/**< Reserved for internal CPL usage. */
/** /** @hideinitializer */
* FITS BITPIX=8 CPL_IO_DEFAULT = ((unsigned)CPL_IO_CREATE)
* @hideinitializer /**< Deprecated, kept only for backwards compatibility */
*/
};
/**
* @brief
* The file I/O modes.
*/
typedef enum _cpl_io_type_ cpl_io_type;
/*-------------------------------------------------------------------------
---*/
/**
*
* @brief These are the pixel types that can be used for saving.
*/
/*-------------------------------------------------------------------------
---*/
enum _cpl_type_bpp_ {
/** @hideinitializer */
CPL_BPP_8_UNSIGNED = 8, CPL_BPP_8_UNSIGNED = 8,
/**< 8-bit unsigned integer */
/** /** @hideinitializer */
* FITS BITPIX=16
* @hideinitializer
*/
CPL_BPP_16_SIGNED = 16, CPL_BPP_16_SIGNED = 16,
/**< 16-bit signed integer */
/** /** @hideinitializer */
* FITS BITPIX=16
* FITS BZERO=32768
* @hideinitializer
*/
CPL_BPP_16_UNSIGNED = 20, CPL_BPP_16_UNSIGNED = 20,
/**< 16-bit unsigned integer */
/** /** @hideinitializer */
* FITS BITPIX=32
* @hideinitializer
*/
CPL_BPP_32_SIGNED = 32, CPL_BPP_32_SIGNED = 32,
/**< 32-bit signed integer */
/** /** @hideinitializer */
* FITS BITPIX=-32
* @hideinitializer
*/
CPL_BPP_IEEE_FLOAT = -32, CPL_BPP_IEEE_FLOAT = -32,
/**< 32-bit floating point */
/** /** @hideinitializer */
* FITS BITPIX=-64
* @hideinitializer
*/
CPL_BPP_IEEE_DOUBLE = -64 CPL_BPP_IEEE_DOUBLE = -64
/**< 64-bit floating point */
} cpl_type_bpp; };
/**
* @brief
* The pixel types that can be used for saving.
*/
typedef enum _cpl_type_bpp_ cpl_type_bpp;
/**@}*/
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_IO_H */ #endif /* CPL_IO_H */
 End of changes. 26 change blocks. 
47 lines changed or deleted 95 lines changed or added


 cpl_macros.h   cpl_macros.h 
/* $Id: cpl_macros.h,v 1.3 2005/02/01 15:28:50 rpalsa Exp $ /* $Id: cpl_macros.h,v 1.9 2011/01/11 12:26:35 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: llundin $
* $Date: 2005/02/01 15:28:50 $ * $Date: 2011/01/11 12:26:35 $
* $Revision: 1.3 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
/* /*
* This file must not include any other file than cxmacros.h * This file must not include any other file than cxmacros.h
*/ */
#ifndef CPL_MACROS_H #ifndef CPL_MACROS_H
#define CPL_MACROS_H #define CPL_MACROS_H
#include <cxmacros.h> #include <cxmacros.h>
skipping to change at line 47 skipping to change at line 47
/* /*
* C code guard * C code guard
*/ */
#undef CPL_BEGIN_DECLS #undef CPL_BEGIN_DECLS
#undef CPL_END_DECLS #undef CPL_END_DECLS
#define CPL_BEGIN_DECLS CX_BEGIN_DECLS #define CPL_BEGIN_DECLS CX_BEGIN_DECLS
#define CPL_END_DECLS CX_END_DECLS #define CPL_END_DECLS CX_END_DECLS
/* Needed to concatenate two and three macro arguments */
#define CPL_CONCAT(a,b) a ## _ ## b
#define CPL_CONCAT2X(a,b) CPL_CONCAT(a,b)
#define CPL_CONCAT3X(a,b,c) CPL_CONCAT2X(CPL_CONCAT2X(a,b),c)
/*
(Try to) determine support for the function __attribute__
These attributes are used in CPL (from the given gcc version)
2.3 format (used only from gcc 3)
2.5 const (used only from gcc 3)
2.96 pure (used only from gcc 3)
3.0 malloc
3.1 deprecated
3.3 nonnull
3.4 warn_unused_result
4.3 alloc_size
*/
#if defined __GNUC__ && __GNUC__ > 2
/* gcc 3 or higher */
# define CPL_ATTR_CONST __attribute__((const))
# define CPL_ATTR_PRINTF(A,B) __attribute__((format (printf, A, B)))
# define CPL_ATTR_PURE __attribute__((pure))
# if __GNUC__ > 3 || defined __GNUC_MINOR__ && __GNUC_MINOR__ > 0
/* gcc 3.1 or higher */
# define CPL_ATTR_DEPRECATED __attribute__((deprecated))
# endif
# if __GNUC__ > 3 || defined __GNUC_MINOR__ && __GNUC_MINOR__ > 2
/* gcc 3.3 or higher */
# define CPL_ATTR_NONNULL __attribute__((nonnull))
# define CPL_HAVE_ATTR_NONNULL
# endif
# if __GNUC__ > 3 || defined __GNUC_MINOR__ && __GNUC_MINOR__ > 3
/* gcc 3.4 or higher */
# define CPL_ATTR_ALLOC __attribute__((malloc, warn_unused_result))
# if __GNUC__ > 4 || __GNUC__ == 4 && defined __GNUC_MINOR__ && __GNUC_M
INOR__ > 2
/* gcc 4.3 or higher */
# define CPL_ATTR_MALLOC \
__attribute__((malloc, warn_unused_result, alloc_size(1)))
# define CPL_ATTR_CALLOC \
__attribute__((malloc, warn_unused_result, alloc_size(1,2)))
# define CPL_ATTR_REALLOC \
__attribute__((malloc, warn_unused_result, alloc_size(2)))
# else
/* gcc 3.4 to 4.2 */
# define CPL_ATTR_MALLOC __attribute__((malloc, warn_unused_result))
# define CPL_ATTR_CALLOC __attribute__((malloc, warn_unused_result))
# define CPL_ATTR_REALLOC __attribute__((malloc, warn_unused_result))
# endif
# else
/* gcc 3.0 to 3.3 */
# define CPL_ATTR_ALLOC __attribute__((malloc))
# define CPL_ATTR_MALLOC __attribute__((malloc))
# define CPL_ATTR_CALLOC __attribute__((malloc))
# define CPL_ATTR_REALLOC __attribute__((malloc))
# endif
#endif
#ifndef CPL_ATTR_ALLOC
# define CPL_ATTR_ALLOC /* __attribute__ */
#endif
#ifndef CPL_ATTR_CALLOC
# define CPL_ATTR_CALLOC /*__attribute__ */
#endif
#ifndef CPL_ATTR_CONST
# define CPL_ATTR_CONST /* __attribute__ */
#endif
#ifndef CPL_ATTR_DEPRECATED
# define CPL_ATTR_DEPRECATED /* __attribute__ */
#endif
#ifndef CPL_ATTR_PURE
# define CPL_ATTR_PURE /* __attribute__ */
#endif
#ifndef CPL_ATTR_MALLOC
# define CPL_ATTR_MALLOC /* __attribute__ */
#endif
#ifndef CPL_ATTR_NONNULL
# define CPL_ATTR_NONNULL /* __attribute__ */
#endif
#ifndef CPL_ATTR_PRINTF
# define CPL_ATTR_PRINTF(A,B) /* __attribute__ */
#endif
#ifndef CPL_ATTR_REALLOC
# define CPL_ATTR_REALLOC /* __attribute__ */
#endif
#endif /* CPL_MACROS_H */ #endif /* CPL_MACROS_H */
 End of changes. 4 change blocks. 
6 lines changed or deleted 113 lines changed or added


 cpl_mask.h   cpl_mask.h 
/* $Id: cpl_mask.h,v 1.26 2010/04/28 13:47:56 llundin Exp $ /* $Id: cpl_mask.h,v 1.29 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/04/28 13:47:56 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.26 $ * $Revision: 1.29 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_MASK_H #ifndef CPL_MASK_H
#define CPL_MASK_H #define CPL_MASK_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
typedef struct _cpl_mask_ cpl_mask; typedef struct _cpl_mask_ cpl_mask;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_image_io.h" #include "cpl_image.h"
#include "cpl_matrix.h" #include "cpl_matrix.h"
#include "cpl_filter.h" #include "cpl_filter.h"
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
cpl_binary type definition cpl_binary type definition
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
typedef unsigned char cpl_binary; typedef unsigned char cpl_binary;
skipping to change at line 65 skipping to change at line 65
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#define CPL_BINARY_1 (cpl_binary)1 #define CPL_BINARY_1 (cpl_binary)1
#define CPL_BINARY_0 (cpl_binary)0 #define CPL_BINARY_0 (cpl_binary)0
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* IO operations */ /* IO operations */
cpl_mask * cpl_mask_new(int, int); cpl_mask * cpl_mask_new(int, int) CPL_ATTR_ALLOC;
cpl_mask * cpl_mask_wrap(int, int, cpl_binary *); cpl_mask * cpl_mask_wrap(int, int, cpl_binary *) CPL_ATTR_ALLOC;
cpl_mask * cpl_mask_duplicate(const cpl_mask *); cpl_mask * cpl_mask_duplicate(const cpl_mask *) CPL_ATTR_ALLOC;
void cpl_mask_delete(cpl_mask *); void cpl_mask_delete(cpl_mask *);
void * cpl_mask_unwrap(cpl_mask *); void * cpl_mask_unwrap(cpl_mask *);
cpl_error_code cpl_mask_dump_window(const cpl_mask *, int, int, cpl_error_code cpl_mask_dump_window(const cpl_mask *, int, int,
int, int, FILE *); int, int, FILE *);
/* Accessor functions */ /* Accessor functions */
cpl_binary * cpl_mask_get_data(cpl_mask *); cpl_binary * cpl_mask_get_data(cpl_mask *);
const cpl_binary * cpl_mask_get_data_const(const cpl_mask *); const cpl_binary * cpl_mask_get_data_const(const cpl_mask *);
cpl_binary cpl_mask_get(const cpl_mask *, int, int); cpl_binary cpl_mask_get(const cpl_mask *, int, int);
cpl_error_code cpl_mask_set(cpl_mask *, int, int, cpl_binary); cpl_error_code cpl_mask_set(cpl_mask *, int, int, cpl_binary);
skipping to change at line 90 skipping to change at line 90
/* Basic operations */ /* Basic operations */
cpl_boolean cpl_mask_is_empty(const cpl_mask *); cpl_boolean cpl_mask_is_empty(const cpl_mask *);
cpl_boolean cpl_mask_is_empty_window(const cpl_mask *, int, int, int, int); cpl_boolean cpl_mask_is_empty_window(const cpl_mask *, int, int, int, int);
int cpl_mask_count(const cpl_mask *); int cpl_mask_count(const cpl_mask *);
int cpl_mask_count_window(const cpl_mask *, int, int, int, int); int cpl_mask_count_window(const cpl_mask *, int, int, int, int);
cpl_error_code cpl_mask_and(cpl_mask *, const cpl_mask *); cpl_error_code cpl_mask_and(cpl_mask *, const cpl_mask *);
cpl_error_code cpl_mask_or(cpl_mask *, const cpl_mask *); cpl_error_code cpl_mask_or(cpl_mask *, const cpl_mask *);
cpl_error_code cpl_mask_xor(cpl_mask *, const cpl_mask *); cpl_error_code cpl_mask_xor(cpl_mask *, const cpl_mask *);
cpl_error_code cpl_mask_not(cpl_mask *); cpl_error_code cpl_mask_not(cpl_mask *);
cpl_mask * cpl_mask_collapse_create(const cpl_mask *, int); cpl_mask * cpl_mask_collapse_create(const cpl_mask *, int) CPL_ATTR_ALLOC;
cpl_mask * cpl_mask_extract(const cpl_mask *, int, int, int, int); cpl_mask * cpl_mask_extract(const cpl_mask *, int, int,
int, int) CPL_ATTR_ALLOC;
cpl_error_code cpl_mask_turn(cpl_mask *, int); cpl_error_code cpl_mask_turn(cpl_mask *, int);
cpl_error_code cpl_mask_shift(cpl_mask *, int, int); cpl_error_code cpl_mask_shift(cpl_mask *, int, int);
cpl_error_code cpl_mask_copy(cpl_mask *, const cpl_mask *, int, int); cpl_error_code cpl_mask_copy(cpl_mask *, const cpl_mask *, int, int);
cpl_error_code cpl_mask_flip(cpl_mask *, int); cpl_error_code cpl_mask_flip(cpl_mask *, int);
cpl_error_code cpl_mask_move(cpl_mask *, int, const int *); cpl_error_code cpl_mask_move(cpl_mask *, int, const int *);
cpl_mask * cpl_mask_extract_subsample(const cpl_mask *, int, int); cpl_mask * cpl_mask_extract_subsample(const cpl_mask *,
int, int) CPL_ATTR_ALLOC;
/* Morphological operations */ /* Morphological operations */
cpl_error_code cpl_mask_filter(cpl_mask *, const cpl_mask *, const cpl_mask *, cpl_error_code cpl_mask_filter(cpl_mask *, const cpl_mask *, const cpl_mask *,
cpl_filter_mode, cpl_border_mode); cpl_filter_mode, cpl_border_mode);
cpl_error_code cpl_mask_closing(cpl_mask *, const cpl_matrix *) cpl_error_code cpl_mask_closing(cpl_mask *,
#ifdef __GNUC__ const cpl_matrix *) CPL_ATTR_DEPRECATED;
__attribute__((deprecated)) cpl_error_code cpl_mask_opening(cpl_mask *,
#endif const cpl_matrix *) CPL_ATTR_DEPRECATED;
; cpl_error_code cpl_mask_erosion(cpl_mask *,
cpl_error_code cpl_mask_opening(cpl_mask *, const cpl_matrix *) const cpl_matrix *) CPL_ATTR_DEPRECATED;
#ifdef __GNUC__ cpl_error_code cpl_mask_dilation(cpl_mask *,
__attribute__((deprecated)) const cpl_matrix *) CPL_ATTR_DEPRECATED;
#endif
;
cpl_error_code cpl_mask_erosion(cpl_mask *, const cpl_matrix *)
#ifdef __GNUC__
__attribute__((deprecated))
#endif
;
cpl_error_code cpl_mask_dilation(cpl_mask *, const cpl_matrix *)
#ifdef __GNUC__
__attribute__((deprecated))
#endif
;
/* Zones selection */ /* Zones selection */
cpl_mask * cpl_mask_threshold_image_create(const cpl_image *, double, doubl cpl_mask * cpl_mask_threshold_image_create(const cpl_image *,
e); double, double) CPL_ATTR_ALLOC;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 9 change blocks. 
34 lines changed or deleted 24 lines changed or added


 cpl_math_const.h   cpl_math_const.h 
/* $Id: cpl_math_const.h,v 1.7 2008/07/21 08:48:38 llundin Exp $ /* $Id: cpl_math_const.h,v 1.9 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:38 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.7 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_MATH_CONST_H #ifndef CPL_MATH_CONST_H
#define CPL_MATH_CONST_H #define CPL_MATH_CONST_H
#include <cpl_macros.h> #include <cpl_macros.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/** /**
* @defgroup cpl_math Fundamental math functionality * @defgroup cpl_math Fundamental math functionality
* *
* This module provides fundamental math constants. * This module provides fundamental math constants.
* *
* Source: On-Line Encyclopedia of Integer Sequences (OEIS) * Source: On-Line Encyclopedia of Integer Sequences (OEIS)
*
* pi: http://www.research.att.com/~njas/sequences/A000796 * pi: http://www.research.att.com/~njas/sequences/A000796
*
* e: http://www.research.att.com/~njas/sequences/A001113 * e: http://www.research.att.com/~njas/sequences/A001113
*
* ln(2): http://www.research.att.com/~njas/sequences/A002162 * ln(2): http://www.research.att.com/~njas/sequences/A002162
*
* ln(10): http://www.research.att.com/~njas/sequences/A002392 * ln(10): http://www.research.att.com/~njas/sequences/A002392
* *
* sqrt(2): http://www.research.att.com/~njas/sequences/A002193
*
* sqrt(3): http://www.research.att.com/~njas/sequences/A002194
*
* The derived constants have been computed with the * The derived constants have been computed with the
* GNU Multiple-Precision Library v. 4.2.2. * GNU Multiple-Precision Library v. 4.2.2.
* *
* The constants are listed with a precision that allows a one-line definit ion. * The constants are listed with a precision that allows a one-line definit ion.
* *
* @par Synopsis: * @par Synopsis:
* @code * @code
* #include <cpl_math_const.h> * #include <cpl_math_const.h>
* @endcode * @endcode
*/ */
/**@{*/ /**@{*/
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Defines Defines
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* The base of the exponential function */ /*-------------------------------------------------------------------------
---*/
/**
* @brief The base of the exponential function
* @see On-Line Encyclopedia of Integer Sequences (OEIS),
* http://www.research.att.com/~njas/sequences/A001113
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_E 2.71828182845904523536028747135266249775724709369 99595 #define CPL_MATH_E 2.71828182845904523536028747135266249775724709369 99595
/* The ratio of a circles circumference to its diameter */ /*-------------------------------------------------------------------------
---*/
/**
* @brief The ratio of a circles circumference to its diameter
* @see On-Line Encyclopedia of Integer Sequences (OEIS),
* http://www.research.att.com/~njas/sequences/A000796
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_PI 3.14159265358979323846264338327950288419716939937 51058 #define CPL_MATH_PI 3.14159265358979323846264338327950288419716939937 51058
/* The natural logarithm of 2 */ /*-------------------------------------------------------------------------
---*/
/**
* @brief The natural logarithm of 2
* @see On-Line Encyclopedia of Integer Sequences (OEIS),
* http://www.research.att.com/~njas/sequences/A002162
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_LN2 0.69314718055994530941723212145817656807550013436 02553 #define CPL_MATH_LN2 0.69314718055994530941723212145817656807550013436 02553
/* The natural logarithm of 10 */ /*-------------------------------------------------------------------------
---*/
/**
* @brief The natural logarithm of 10
* @see On-Line Encyclopedia of Integer Sequences (OEIS),
* http://www.research.att.com/~njas/sequences/A002392
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_LN10 2.30258509299404568401799145468436420760110148862 87730 #define CPL_MATH_LN10 2.30258509299404568401799145468436420760110148862 87730
/* Derived constants */ /*-------------------------------------------------------------------------
/* 2pi */ ---*/
/**
@brief 2 pi
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_2PI 6.28318530717958647692528676655900576839433879875 02116 #define CPL_MATH_2PI 6.28318530717958647692528676655900576839433879875 02116
/* pi/2 */ /*-------------------------------------------------------------------------
---*/
/**
@brief pi/2
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_PI_2 1.57079632679489661923132169163975144209858469968 75529 #define CPL_MATH_PI_2 1.57079632679489661923132169163975144209858469968 75529
/* pi/4 */ /*-------------------------------------------------------------------------
---*/
/**
@brief pi/4
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_PI_4 0.78539816339744830961566084581987572104929234984 37765 #define CPL_MATH_PI_4 0.78539816339744830961566084581987572104929234984 37765
/* 1/pi */ /*-------------------------------------------------------------------------
---*/
/**
@brief 1/pi
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_1_PI 0.31830988618379067153776752674502872406891929148 09129 #define CPL_MATH_1_PI 0.31830988618379067153776752674502872406891929148 09129
/* 2/pi */ /*-------------------------------------------------------------------------
---*/
/**
@brief 2/pi
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_2_PI 0.63661977236758134307553505349005744813783858296 18258 #define CPL_MATH_2_PI 0.63661977236758134307553505349005744813783858296 18258
/* 4/pi */ /*-------------------------------------------------------------------------
---*/
/**
@brief 4/pi
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_4_PI 1.27323954473516268615107010698011489627567716592 36516 #define CPL_MATH_4_PI 1.27323954473516268615107010698011489627567716592 36516
/* sqrt(2pi) */ /*-------------------------------------------------------------------------
---*/
/**
@brief sqrt(2pi)
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_SQRT2PI 2.50662827463100050241576528481104525300698674060 99383 #define CPL_MATH_SQRT2PI 2.50662827463100050241576528481104525300698674060 99383
/* 2/sqrt(pi) */ /*-------------------------------------------------------------------------
---*/
/**
@brief 2/sqrt(pi)
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_2_SQRTPI 1.12837916709551257389615890312154517168810125865 79977 #define CPL_MATH_2_SQRTPI 1.12837916709551257389615890312154517168810125865 79977
/* sqrt(2) */ /*-------------------------------------------------------------------------
---*/
/**
* @brief The square root of 2
* @see On-Line Encyclopedia of Integer Sequences (OEIS),
* http://www.research.att.com/~njas/sequences/A002193
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_SQRT2 1.41421356237309504880168872420969807856967187537 69481 #define CPL_MATH_SQRT2 1.41421356237309504880168872420969807856967187537 69481
/* sqrt(3) */ /*-------------------------------------------------------------------------
---*/
/**
* @brief The square root of 3
* @see On-Line Encyclopedia of Integer Sequences (OEIS),
* http://www.research.att.com/~njas/sequences/A002194
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_SQRT3 1.73205080756887729352744634150587236694280525381 03806 #define CPL_MATH_SQRT3 1.73205080756887729352744634150587236694280525381 03806
/* sqrt(1/2) */ /*-------------------------------------------------------------------------
---*/
/**
@brief sqrt(1/2)
@see CPL_MATH_SQRT2
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_SQRT1_2 0.70710678118654752440084436210484903928483593768 84740 #define CPL_MATH_SQRT1_2 0.70710678118654752440084436210484903928483593768 84740
/* log2(e) */ /*-------------------------------------------------------------------------
---*/
/**
@brief log2(e)
@see CPL_MATH_LN2
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_LOG2E 1.44269504088896340735992468100189213742664595415 29859 #define CPL_MATH_LOG2E 1.44269504088896340735992468100189213742664595415 29859
/* log10(e) */ /*-------------------------------------------------------------------------
---*/
/**
@brief log10(e)
@see CPL_MATH_LN10
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_LOG10E 0.43429448190325182765112891891660508229439700580 36666 #define CPL_MATH_LOG10E 0.43429448190325182765112891891660508229439700580 36666
/* 180/pi */ /*-------------------------------------------------------------------------
---*/
/**
@brief 180/pi
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_DEG_RAD 57.2957795130823208767981548141051703324054724665 64322 #define CPL_MATH_DEG_RAD 57.2957795130823208767981548141051703324054724665 64322
/* pi/180 */ /*-------------------------------------------------------------------------
---*/
/**
@brief pi/180
@see CPL_MATH_PI
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_RAD_DEG 0.01745329251994329576923690768488612713442871888 54173 #define CPL_MATH_RAD_DEG 0.01745329251994329576923690768488612713442871888 54173
/* FWHM per Sigma, 2.0*sqrt(2.0*log(2.0)) */ /*-------------------------------------------------------------------------
---*/
/**
@brief FWHM per Sigma, 2.0*sqrt(2.0*log(2.0))
@see CPL_MATH_LN2
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_FWHM_SIG 2.35482004503094938202313865291939927549477137877 16411 #define CPL_MATH_FWHM_SIG 2.35482004503094938202313865291939927549477137877 16411
/* Sigma per FWHM, 0.5/sqrt(2.0*log(2.0)) */ /*-------------------------------------------------------------------------
---*/
/**
@brief Sigma per FWHM, 0.5/sqrt(2.0*log(2.0))
@see CPL_MATH_LN2
@note Derived from a fundamental constant
*/
/*-------------------------------------------------------------------------
---*/
#define CPL_MATH_SIG_FWHM 0.42466090014400952136075141705144480985757054689 21770 #define CPL_MATH_SIG_FWHM 0.42466090014400952136075141705144480985757054689 21770
/**@}*/ /**@}*/
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 29 change blocks. 
27 lines changed or deleted 202 lines changed or added


 cpl_matrix.h   cpl_matrix.h 
/* $Id: cpl_matrix.h,v 1.34 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_matrix.h,v 1.37 2010/11/23 11:02:06 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/11/23 11:02:06 $
* $Revision: 1.34 $ * $Revision: 1.37 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_MATRIX_H #ifndef CPL_MATRIX_H
#define CPL_MATRIX_H #define CPL_MATRIX_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
skipping to change at line 56 skipping to change at line 56
typedef struct _cpl_matrix_ cpl_matrix; typedef struct _cpl_matrix_ cpl_matrix;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* /*
* IO methods * IO methods
*/ */
cpl_matrix *cpl_matrix_new(int, int); cpl_matrix *cpl_matrix_new(int, int) CPL_ATTR_ALLOC;
cpl_matrix *cpl_matrix_wrap(int, int, double *); cpl_matrix *cpl_matrix_wrap(int, int, double *) CPL_ATTR_ALLOC;
void cpl_matrix_delete(cpl_matrix *); void cpl_matrix_delete(cpl_matrix *);
void *cpl_matrix_unwrap(cpl_matrix *); void *cpl_matrix_unwrap(cpl_matrix *);
void cpl_matrix_dump(const cpl_matrix *, FILE *); void cpl_matrix_dump(const cpl_matrix *, FILE *);
/* /*
* Accessors * Accessors
*/ */
int cpl_matrix_get_nrow(const cpl_matrix *); int cpl_matrix_get_nrow(const cpl_matrix *);
int cpl_matrix_get_ncol(const cpl_matrix *); int cpl_matrix_get_ncol(const cpl_matrix *);
double *cpl_matrix_get_data(cpl_matrix *); double *cpl_matrix_get_data(cpl_matrix *);
const double *cpl_matrix_get_data_const(const cpl_matrix *); const double *cpl_matrix_get_data_const(const cpl_matrix *);
double cpl_matrix_get(const cpl_matrix *, int, int); double cpl_matrix_get(const cpl_matrix *, int, int);
cpl_error_code cpl_matrix_set(cpl_matrix *, int, int, double); cpl_error_code cpl_matrix_set(cpl_matrix *, int, int, double);
/* /*
* Copying methods * Copying methods
*/ */
cpl_matrix *cpl_matrix_duplicate(const cpl_matrix *); cpl_matrix *cpl_matrix_duplicate(const cpl_matrix *) CPL_ATTR_ALLOC;
cpl_matrix *cpl_matrix_extract(const cpl_matrix *, cpl_matrix *cpl_matrix_extract(const cpl_matrix *,
int, int, int, int, int, int) ; int, int, int, int, int, int) CPL_ATTR_ALLOC
cpl_matrix *cpl_matrix_extract_row(const cpl_matrix *, int); ;
cpl_matrix *cpl_matrix_extract_column(const cpl_matrix *, int); cpl_matrix *cpl_matrix_extract_row(const cpl_matrix *, int) CPL_ATTR_ALLOC;
cpl_matrix *cpl_matrix_extract_diagonal(const cpl_matrix *, int); cpl_matrix *cpl_matrix_extract_column(const cpl_matrix *, int) CPL_ATTR_ALL
OC;
cpl_matrix *cpl_matrix_extract_diagonal(const cpl_matrix *, int) CPL_ATTR_A
LLOC;
/* /*
* Writing methods * Writing methods
*/ */
cpl_error_code cpl_matrix_copy(cpl_matrix *, const cpl_matrix *, int, int); cpl_error_code cpl_matrix_copy(cpl_matrix *, const cpl_matrix *, int, int);
cpl_error_code cpl_matrix_fill(cpl_matrix *, double); cpl_error_code cpl_matrix_fill(cpl_matrix *, double);
cpl_error_code cpl_matrix_fill_row(cpl_matrix *, double, int); cpl_error_code cpl_matrix_fill_row(cpl_matrix *, double, int);
cpl_error_code cpl_matrix_fill_column(cpl_matrix *, double, int); cpl_error_code cpl_matrix_fill_column(cpl_matrix *, double, int);
cpl_error_code cpl_matrix_fill_diagonal(cpl_matrix *, double, int); cpl_error_code cpl_matrix_fill_diagonal(cpl_matrix *, double, int);
skipping to change at line 144 skipping to change at line 144
cpl_error_code cpl_matrix_multiply(cpl_matrix *, const cpl_matrix *); cpl_error_code cpl_matrix_multiply(cpl_matrix *, const cpl_matrix *);
cpl_error_code cpl_matrix_divide(cpl_matrix *, const cpl_matrix *); cpl_error_code cpl_matrix_divide(cpl_matrix *, const cpl_matrix *);
cpl_error_code cpl_matrix_add_scalar(cpl_matrix *, double); cpl_error_code cpl_matrix_add_scalar(cpl_matrix *, double);
cpl_error_code cpl_matrix_subtract_scalar(cpl_matrix *, double); cpl_error_code cpl_matrix_subtract_scalar(cpl_matrix *, double);
cpl_error_code cpl_matrix_multiply_scalar(cpl_matrix *, double); cpl_error_code cpl_matrix_multiply_scalar(cpl_matrix *, double);
cpl_error_code cpl_matrix_divide_scalar(cpl_matrix *, double); cpl_error_code cpl_matrix_divide_scalar(cpl_matrix *, double);
cpl_error_code cpl_matrix_logarithm(cpl_matrix *, double); cpl_error_code cpl_matrix_logarithm(cpl_matrix *, double);
cpl_error_code cpl_matrix_exponential(cpl_matrix *, double); cpl_error_code cpl_matrix_exponential(cpl_matrix *, double);
cpl_error_code cpl_matrix_power(cpl_matrix *, double); cpl_error_code cpl_matrix_power(cpl_matrix *, double);
cpl_matrix *cpl_matrix_product_create(const cpl_matrix *, const cpl_matrix cpl_matrix *cpl_matrix_product_create(const cpl_matrix *,
*); const cpl_matrix *) CPL_ATTR_ALLOC;
cpl_matrix *cpl_matrix_transpose_create(const cpl_matrix *); cpl_matrix *cpl_matrix_transpose_create(const cpl_matrix *) CPL_ATTR_ALLOC;
/* /*
* More complex operations * More complex operations
*/ */
double cpl_matrix_get_determinant(const cpl_matrix *); double cpl_matrix_get_determinant(const cpl_matrix *);
cpl_matrix *cpl_matrix_solve(const cpl_matrix *, const cpl_matrix *); cpl_matrix *cpl_matrix_solve(const cpl_matrix *,
cpl_matrix *cpl_matrix_solve_normal(const cpl_matrix *, const cpl_matrix *) const cpl_matrix *) CPL_ATTR_ALLOC;
; cpl_matrix *cpl_matrix_solve_normal(const cpl_matrix *,
cpl_matrix *cpl_matrix_invert_create(const cpl_matrix *); const cpl_matrix *) CPL_ATTR_ALLOC;
cpl_matrix *cpl_matrix_invert_create(const cpl_matrix *) CPL_ATTR_ALLOC;
cpl_error_code cpl_matrix_decomp_lu(cpl_matrix *, int *, int *); cpl_error_code cpl_matrix_decomp_lu(cpl_matrix *, int *, int *);
cpl_error_code cpl_matrix_solve_lu(const cpl_matrix *, cpl_matrix *, cpl_error_code cpl_matrix_solve_lu(const cpl_matrix *, cpl_matrix *,
const int *); const int *);
cpl_error_code cpl_matrix_decomp_chol(cpl_matrix *); cpl_error_code cpl_matrix_decomp_chol(cpl_matrix *);
cpl_error_code cpl_matrix_solve_chol(const cpl_matrix *, cpl_matrix *); cpl_error_code cpl_matrix_solve_chol(const cpl_matrix *, cpl_matrix *);
/* /*
* Stats methods * Stats methods
*/ */
 End of changes. 8 change blocks. 
19 lines changed or deleted 23 lines changed or added


 cpl_memory.h   cpl_memory.h 
/* $Id: cpl_memory.h,v 1.19 2010/03/11 16:54:17 llundin Exp $ /* $Id: cpl_memory.h,v 1.22 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/03/11 16:54:17 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.19 $ * $Revision: 1.22 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_MEMORY_H #ifndef CPL_MEMORY_H
#define CPL_MEMORY_H #define CPL_MEMORY_H
#include <sys/types.h> #include <sys/types.h>
#include <stdarg.h> #include <stdarg.h>
#include <cpl_macros.h> #include <cpl_macros.h>
/*------------------------------------------------------------------------- --- /*------------------------------------------------------------------------- ---
Defines
--------------------------------------------------------------------------
--*/
#undef CPL_HAVE_GNUC_ALLOC_SIZE
#if defined __GNUC__
#if __GNUC__ > 4 || __GNUC__ == 4 && defined __GNUC_MINOR__ && __GNUC_MINOR
__ > 2
#define CPL_HAVE_GNUC_ALLOC_SIZE
#endif
#endif
#undef CPL_HAVE_GNUC_UNUSED_RESULT
#if defined __GNUC__ && __GNUC__ > 3
#define CPL_HAVE_GNUC_UNUSED_RESULT
#endif
/*-------------------------------------------------------------------------
---
Function prototypes Function prototypes
-------------------------------------------------------------------------- --*/ -------------------------------------------------------------------------- --*/
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
void *cpl_malloc(size_t) void *cpl_malloc(size_t) CPL_ATTR_MALLOC;
#ifdef CPL_HAVE_GNUC_ALLOC_SIZE void *cpl_calloc(size_t, size_t) CPL_ATTR_CALLOC;
__attribute__((warn_unused_result, malloc, alloc_size(1))) void *cpl_realloc(void *, size_t) CPL_ATTR_REALLOC;
#else
__attribute__((malloc))
#endif
;
void *cpl_calloc(size_t, size_t)
#ifdef CPL_HAVE_GNUC_ALLOC_SIZE
__attribute__((warn_unused_result, malloc, alloc_size(1,2)))
#else
__attribute__((malloc))
#endif
;
void *cpl_realloc(void *, size_t)
#ifdef CPL_HAVE_GNUC_ALLOC_SIZE
__attribute__((warn_unused_result, alloc_size(2)))
#endif
;
void cpl_free(void *); void cpl_free(void *);
char *cpl_strdup(const char *) char *cpl_strdup(const char *) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
char *cpl_vsprintf(const char *, va_list)
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc, format (printf, 1, 0)))
#elif defined __GNUC__
__attribute__((malloc, format (printf, 1, 0)))
#endif
;
char * cpl_sprintf(const char *, ...) char *cpl_vsprintf(const char *, va_list) CPL_ATTR_ALLOC CPL_ATTR_PRINTF(1,
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT 0);
__attribute__((warn_unused_result, malloc, format (printf, 1, 2))) char *cpl_sprintf (const char *, ...) CPL_ATTR_ALLOC CPL_ATTR_PRINTF(1,
#elif defined __GNUC__ 2);
__attribute__((malloc, format (printf, 1, 2)))
#endif int cpl_memory_is_empty(void) CPL_ATTR_PURE;
;
int cpl_memory_is_empty(void)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
void cpl_memory_dump(void); void cpl_memory_dump(void);
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_MEMORY_H */ #endif /* CPL_MEMORY_H */
 End of changes. 8 change blocks. 
71 lines changed or deleted 15 lines changed or added


 cpl_msg.h   cpl_msg.h 
/* $Id: cpl_msg.h,v 1.13 2008/07/21 08:48:38 llundin Exp $ /* $Id: cpl_msg.h,v 1.15 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:38 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.13 $ * $Revision: 1.15 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_MSG_H #ifndef CPL_MSG_H
#define CPL_MSG_H #define CPL_MSG_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_error.h> #include <cpl_error.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 97 skipping to change at line 97
void cpl_msg_set_domain(const char *); void cpl_msg_set_domain(const char *);
const char *cpl_msg_get_domain(void); const char *cpl_msg_get_domain(void);
void cpl_msg_set_width(int); void cpl_msg_set_width(int);
void cpl_msg_set_indentation(int); void cpl_msg_set_indentation(int);
void cpl_msg_indent_more(void); void cpl_msg_indent_more(void);
void cpl_msg_indent_less(void); void cpl_msg_indent_less(void);
void cpl_msg_indent(int); void cpl_msg_indent(int);
void cpl_msg_error(const char *component, const char *format, ...) void cpl_msg_error(const char *, const char *, ...) CPL_ATTR_PRINTF(2,3);
#ifdef __GNUC__ void cpl_msg_warning(const char *, const char *, ...) CPL_ATTR_PRINTF(2,3);
__attribute__((format (printf, 2, 3))) void cpl_msg_info(const char *, const char *, ...) CPL_ATTR_PRINTF(2,3);
#endif void cpl_msg_debug(const char *, const char *, ...) CPL_ATTR_PRINTF(2,3);
; void cpl_msg_info_overwritable(const char *,
void cpl_msg_warning(const char *component, const char *format, ...) const char *, ...) CPL_ATTR_PRINTF(2,3);
#ifdef __GNUC__ void cpl_msg_progress(const char *, int, int, const char *,
__attribute__((format (printf, 2, 3))) ...) CPL_ATTR_DEPRECATED CPL_ATTR_PRINTF(4,5);
#endif
;
void cpl_msg_info(const char *component, const char *format, ...)
#ifdef __GNUC__
__attribute__((format (printf, 2, 3)))
#endif
;
void cpl_msg_debug(const char *component, const char *format, ...)
#ifdef __GNUC__
__attribute__((format (printf, 2, 3)))
#endif
;
void cpl_msg_info_overwritable(const char *component, const char *format, .
..)
#ifdef __GNUC__
__attribute__((format (printf, 2, 3)))
#endif
;
void cpl_msg_progress(const char *component,
int i, int iter, const char *format, ...)
#ifdef __GNUC__
__attribute__((format (printf, 4, 5)))
__attribute__((deprecated))
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif /* end of cpl_messages.h */ #endif /* end of cpl_messages.h */
 End of changes. 4 change blocks. 
38 lines changed or deleted 13 lines changed or added


 cpl_parameter.h   cpl_parameter.h 
/* $Id: cpl_parameter.h,v 1.13 2007/07/17 09:36:49 scastro Exp $ /* $Id: cpl_parameter.h,v 1.15 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: llundin $
* $Date: 2007/07/17 09:36:49 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.13 $ * $Revision: 1.15 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PARAMETER_H #ifndef CPL_PARAMETER_H
#define CPL_PARAMETER_H #define CPL_PARAMETER_H
#include <stdio.h> #include <stdio.h>
#include <cpl_error.h> #include <cpl_error.h>
#include <cpl_type.h> #include <cpl_type.h>
skipping to change at line 145 skipping to change at line 145
*/ */
typedef struct _cpl_parameter_ cpl_parameter; typedef struct _cpl_parameter_ cpl_parameter;
/* /*
* Create and destroy operations * Create and destroy operations
*/ */
cpl_parameter *cpl_parameter_new_value(const char *name, cpl_type type, cpl_parameter *cpl_parameter_new_value(const char *name, cpl_type type,
const char *description, const char *description,
const char *context, ...); const char *context, ...) CPL_ATTR_A LLOC;
cpl_parameter *cpl_parameter_new_range(const char *name, cpl_type type, cpl_parameter *cpl_parameter_new_range(const char *name, cpl_type type,
const char *description, const char *description,
const char *context, ...); const char *context, ...) CPL_ATTR_A LLOC;
cpl_parameter *cpl_parameter_new_enum(const char *name, cpl_type type, cpl_parameter *cpl_parameter_new_enum(const char *name, cpl_type type,
const char *description, const char *description,
const char *context, ...); const char *context, ...) CPL_ATTR_AL LOC;
void cpl_parameter_delete(cpl_parameter *self); void cpl_parameter_delete(cpl_parameter *self);
/* /*
* Non-modifying operations * Non-modifying operations
*/ */
cpl_type cpl_parameter_get_type(const cpl_parameter *self); cpl_type cpl_parameter_get_type(const cpl_parameter *self);
cpl_parameter_class cpl_parameter_get_class(const cpl_parameter *self); cpl_parameter_class cpl_parameter_get_class(const cpl_parameter *self);
 End of changes. 6 change blocks. 
9 lines changed or deleted 9 lines changed or added


 cpl_parameterlist.h   cpl_parameterlist.h 
/* $Id: cpl_parameterlist.h,v 1.7 2007/07/16 11:55:39 scastro Exp $ /* $Id: cpl_parameterlist.h,v 1.9 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: llundin $
* $Date: 2007/07/16 11:55:39 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.7 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PARAMETERLIST_H #ifndef CPL_PARAMETERLIST_H
#define CPL_PARAMETERLIST_H #define CPL_PARAMETERLIST_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_parameter.h> #include <cpl_parameter.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 49 skipping to change at line 49
* @brief * @brief
* The opaque parameter list data type. * The opaque parameter list data type.
*/ */
typedef struct _cpl_parameterlist_ cpl_parameterlist; typedef struct _cpl_parameterlist_ cpl_parameterlist;
/* /*
* Create, copy and destroy operations * Create, copy and destroy operations
*/ */
cpl_parameterlist *cpl_parameterlist_new(void); cpl_parameterlist *cpl_parameterlist_new(void) CPL_ATTR_ALLOC;
void cpl_parameterlist_delete(cpl_parameterlist *self); void cpl_parameterlist_delete(cpl_parameterlist *self);
/* /*
* Non modifying operations * Non modifying operations
*/ */
int cpl_parameterlist_get_size(const cpl_parameterlist *self); int cpl_parameterlist_get_size(const cpl_parameterlist *self);
/* /*
* Element insertion. * Element insertion.
 End of changes. 4 change blocks. 
7 lines changed or deleted 7 lines changed or added


 cpl_photom.h   cpl_photom.h 
/* $Id: cpl_photom.h,v 1.2 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_photom.h,v 1.3 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.2 $ * $Revision: 1.3 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PHOTOM_H #ifndef CPL_PHOTOM_H
#define CPL_PHOTOM_H #define CPL_PHOTOM_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_phys_const.h   cpl_phys_const.h 
/* $Id: cpl_phys_const.h,v 1.6 2008/07/21 08:48:40 llundin Exp $ /* $Id: cpl_phys_const.h,v 1.9 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 08:48:40 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.6 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PHYS_CONST_H #ifndef CPL_PHYS_CONST_H
#define CPL_PHYS_CONST_H #define CPL_PHYS_CONST_H
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Defines Defines
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
skipping to change at line 54 skipping to change at line 54
/* Planck constant [Js] */ /* Planck constant [Js] */
#define CPL_PHYS_H 6.6260693E-34 #define CPL_PHYS_H 6.6260693E-34
/* Boltzmann constant [J/K] */ /* Boltzmann constant [J/K] */
#define CPL_PHYS_K 1.3806505E-23 #define CPL_PHYS_K 1.3806505E-23
/* Wien displacement law constant [mK] (meter * Kelvin)*/ /* Wien displacement law constant [mK] (meter * Kelvin)*/
#define CPL_PHYS_Wien 2.8977685E-3 #define CPL_PHYS_Wien 2.8977685E-3
/* The speed of light in vacuum [m/s] */ /* The speed of light in vacuum [m/s] */
#define CPL_PHYS_C 299792458 #define CPL_PHYS_C 299792458.0
/* These dimension definitions will be replaced ASAP */
enum _cpl_unit_ { enum _cpl_unit_ {
CPL_UNIT_LESS = 1, /* Dimension-less */ CPL_UNIT_LESS = 1, /* Dimension-less */
CPL_UNIT_RADIAN = 2, /* [radian] */ CPL_UNIT_RADIAN = 2, /* [radian] */
CPL_UNIT_LENGTH = 3, /* [m] */ CPL_UNIT_LENGTH = 3, /* [m] */
CPL_UNIT_FREQUENCY = 5, /* [1/s] */ CPL_UNIT_TIME = 5, /* [s] */
CPL_UNIT_PHOTONRADIANCE = 7, /* [ radian/s/m^3] */ CPL_UNIT_PERLENGTH = 7, /* [1/m] */
CPL_UNIT_ENERGYRADIANCE = 11 /* [J*radian/s/m^3] */ CPL_UNIT_FREQUENCY = 11, /* [1/s] */
CPL_UNIT_MASS = 13, /* [kg] */
/* Derived quantities */
CPL_UNIT_ACCELERATION /* [m/s^2]*/
= CPL_UNIT_LENGTH * CPL_UNIT_FREQUENCY * CPL_UNIT_FREQUENCY,
CPL_UNIT_FORCE /* [N] = [kg * m/s^2]*/
= CPL_UNIT_MASS * CPL_UNIT_ACCELERATION,
CPL_UNIT_ENERGY /* [J] = [m * N] */
= CPL_UNIT_LENGTH * CPL_UNIT_FORCE,
CPL_UNIT_PHOTONRADIANCE /* [ radian/s/m^3] */
= CPL_UNIT_RADIAN * CPL_UNIT_FREQUENCY * CPL_UNIT_PERLENGTH
* CPL_UNIT_PERLENGTH * CPL_UNIT_PERLENGTH,
CPL_UNIT_ENERGYRADIANCE /* [J*radian/s/m^3] */
= CPL_UNIT_ENERGY * CPL_UNIT_PHOTONRADIANCE
}; };
typedef enum _cpl_unit_ cpl_unit; typedef enum _cpl_unit_ cpl_unit;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 6 change blocks. 
10 lines changed or deleted 24 lines changed or added


 cpl_plot.h   cpl_plot.h 
/* $Id: cpl_plot.h,v 1.8 2010/04/22 13:13:57 llundin Exp $ /* $Id: cpl_plot.h,v 1.9 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/04/22 13:13:57 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.8 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PLOT_H #ifndef CPL_PLOT_H
#define CPL_PLOT_H #define CPL_PLOT_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include "cpl_error.h" #include "cpl_error.h"
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_plugin.h   cpl_plugin.h 
/* $Id: cpl_plugin.h,v 1.11 2007/07/18 13:45:17 scastro Exp $ /* $Id: cpl_plugin.h,v 1.14 2011/01/11 10:33:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: llundin $
* $Date: 2007/07/18 13:45:17 $ * $Date: 2011/01/11 10:33:18 $
* $Revision: 1.11 $ * $Revision: 1.14 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PLUGIN_H #ifndef CPL_PLUGIN_H
#define CPL_PLUGIN_H #define CPL_PLUGIN_H
#include <stdio.h> #include <stdio.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_error.h> #include <cpl_error.h>
skipping to change at line 265 skipping to change at line 265
*/ */
cpl_plugin_func deinitialize; cpl_plugin_func deinitialize;
}; };
/* /*
* Create, copy and destroy operations. * Create, copy and destroy operations.
*/ */
cpl_plugin *cpl_plugin_new(void); cpl_plugin *cpl_plugin_new(void) CPL_ATTR_ALLOC;
cpl_error_code cpl_plugin_copy(cpl_plugin *self, const cpl_plugin *other); cpl_error_code cpl_plugin_copy(cpl_plugin *self, const cpl_plugin *other);
void cpl_plugin_delete(cpl_plugin *self); void cpl_plugin_delete(cpl_plugin *self);
/* /*
* Accessor Functions * Accessor Functions
*/ */
cpl_error_code cpl_plugin_set_api(cpl_plugin *self , unsigned int api); cpl_error_code cpl_plugin_set_api(cpl_plugin *self , unsigned int api);
unsigned int cpl_plugin_get_api(const cpl_plugin *self); unsigned int cpl_plugin_get_api(const cpl_plugin *self);
int cpl_plugin_set_version(cpl_plugin *self, unsigned long version); int cpl_plugin_set_version(cpl_plugin *self, unsigned long version);
unsigned long cpl_plugin_get_version(const cpl_plugin *self); unsigned long cpl_plugin_get_version(const cpl_plugin *self);
char *cpl_plugin_get_version_string(const cpl_plugin *self); char *cpl_plugin_get_version_string(const cpl_plugin *self) CPL_ATTR_ALLOC;
cpl_error_code cpl_plugin_set_type(cpl_plugin *self, unsigned long type); cpl_error_code cpl_plugin_set_type(cpl_plugin *self, unsigned long type);
unsigned long cpl_plugin_get_type(const cpl_plugin *self); unsigned long cpl_plugin_get_type(const cpl_plugin *self);
char *cpl_plugin_get_type_string(const cpl_plugin *self); char *cpl_plugin_get_type_string(const cpl_plugin *self) CPL_ATTR_ALLOC;
cpl_error_code cpl_plugin_set_name(cpl_plugin *self, const char *name); cpl_error_code cpl_plugin_set_name(cpl_plugin *self, const char *name);
const char *cpl_plugin_get_name(const cpl_plugin *self); const char *cpl_plugin_get_name(const cpl_plugin *self);
cpl_error_code cpl_plugin_set_synopsis(cpl_plugin *self, const char *synops is); cpl_error_code cpl_plugin_set_synopsis(cpl_plugin *self, const char *synops is);
const char *cpl_plugin_get_synopsis(const cpl_plugin *self); const char *cpl_plugin_get_synopsis(const cpl_plugin *self);
cpl_error_code cpl_plugin_set_description(cpl_plugin *self, cpl_error_code cpl_plugin_set_description(cpl_plugin *self,
const char *description); const char *description);
const char *cpl_plugin_get_description(const cpl_plugin *self); const char *cpl_plugin_get_description(const cpl_plugin *self);
 End of changes. 6 change blocks. 
9 lines changed or deleted 9 lines changed or added


 cpl_plugininfo.h   cpl_plugininfo.h 
/* $Id: cpl_plugininfo.h,v 1.4 2009/12/15 10:05:27 llundin Exp $ /* $Id: cpl_plugininfo.h,v 1.5 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/15 10:05:27 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.4 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PLUGININFO_H #ifndef CPL_PLUGININFO_H
#define CPL_PLUGININFO_H #define CPL_PLUGININFO_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_pluginlist.h> #include <cpl_pluginlist.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
 End of changes. 3 change blocks. 
5 lines changed or deleted 5 lines changed or added


 cpl_pluginlist.h   cpl_pluginlist.h 
/* $Id: cpl_pluginlist.h,v 1.6 2005/02/10 14:29:26 rpalsa Exp $ /* $Id: cpl_pluginlist.h,v 1.8 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: llundin $
* $Date: 2005/02/10 14:29:26 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.6 $ * $Revision: 1.8 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PLUGINLIST_H #ifndef CPL_PLUGINLIST_H
#define CPL_PLUGINLIST_H #define CPL_PLUGINLIST_H
#include <stdio.h> #include <stdio.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_error.h> #include <cpl_error.h>
#include <cpl_plugin.h> #include <cpl_plugin.h>
skipping to change at line 52 skipping to change at line 52
* @brief * @brief
* The opaque plugin list data type. * The opaque plugin list data type.
*/ */
typedef struct _cpl_pluginlist_ cpl_pluginlist; typedef struct _cpl_pluginlist_ cpl_pluginlist;
/* /*
* Create, copy and destroy operations. * Create, copy and destroy operations.
*/ */
cpl_pluginlist *cpl_pluginlist_new(void); cpl_pluginlist *cpl_pluginlist_new(void) CPL_ATTR_ALLOC;
void cpl_pluginlist_delete(cpl_pluginlist *); void cpl_pluginlist_delete(cpl_pluginlist *);
/* /*
* Accessor Functions * Accessor Functions
*/ */
cpl_error_code cpl_pluginlist_append(cpl_pluginlist *, const cpl_plugin *); cpl_error_code cpl_pluginlist_append(cpl_pluginlist *, const cpl_plugin *);
cpl_error_code cpl_pluginlist_prepend(cpl_pluginlist *, const cpl_plugin *) ; cpl_error_code cpl_pluginlist_prepend(cpl_pluginlist *, const cpl_plugin *) ;
cpl_plugin *cpl_pluginlist_get_first(cpl_pluginlist *); cpl_plugin *cpl_pluginlist_get_first(cpl_pluginlist *);
cpl_plugin *cpl_pluginlist_get_last(cpl_pluginlist *); cpl_plugin *cpl_pluginlist_get_last(cpl_pluginlist *);
 End of changes. 4 change blocks. 
7 lines changed or deleted 7 lines changed or added


 cpl_polynomial.h   cpl_polynomial.h 
/* $Id: cpl_polynomial.h,v 1.35 2010/03/11 17:17:18 llundin Exp $ /* $Id: cpl_polynomial.h,v 1.37 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/03/11 17:17:18 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.35 $ * $Revision: 1.37 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_POLYNOMIAL_H #ifndef CPL_POLYNOMIAL_H
#define CPL_POLYNOMIAL_H #define CPL_POLYNOMIAL_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include "cpl_vector.h" #include "cpl_vector.h"
#include "cpl_bivector.h" #include "cpl_bivector.h"
#include "cpl_error.h" #include "cpl_error.h"
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*-------------------------------------------------------------------------
---
Defines
--------------------------------------------------------------------------
--*/
#undef CPL_HAVE_GNUC_UNUSED_RESULT
#if defined __GNUC__ && __GNUC__ > 3
#define CPL_HAVE_GNUC_UNUSED_RESULT
#endif
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
New types New types
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
typedef struct _cpl_polynomial_ cpl_polynomial; typedef struct _cpl_polynomial_ cpl_polynomial;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* cpl_polynomial handling */ /* cpl_polynomial handling */
cpl_polynomial * cpl_polynomial_new(int) cpl_polynomial * cpl_polynomial_new(int) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
void cpl_polynomial_delete(cpl_polynomial *); void cpl_polynomial_delete(cpl_polynomial *);
cpl_error_code cpl_polynomial_dump(const cpl_polynomial *, FILE *); cpl_error_code cpl_polynomial_dump(const cpl_polynomial *, FILE *);
cpl_polynomial * cpl_polynomial_duplicate(const cpl_polynomial *) cpl_polynomial * cpl_polynomial_duplicate(const cpl_polynomial *)
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT CPL_ATTR_ALLOC;
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
cpl_error_code cpl_polynomial_copy(cpl_polynomial *, const cpl_polynomial * ); cpl_error_code cpl_polynomial_copy(cpl_polynomial *, const cpl_polynomial * );
/* Accessor functions */ /* Accessor functions */
double cpl_polynomial_get_coeff(const cpl_polynomial *, const int *); double cpl_polynomial_get_coeff(const cpl_polynomial *, const int *);
cpl_error_code cpl_polynomial_set_coeff(cpl_polynomial *, const int *, doub le); cpl_error_code cpl_polynomial_set_coeff(cpl_polynomial *, const int *, doub le);
/* Basic operations */ /* Basic operations */
int cpl_polynomial_compare(const cpl_polynomial *, const cpl_polynomial *, int cpl_polynomial_compare(const cpl_polynomial *, const cpl_polynomial *,
double tol); double tol);
int cpl_polynomial_get_dimension(const cpl_polynomial *); int cpl_polynomial_get_dimension(const cpl_polynomial *);
int cpl_polynomial_get_degree(const cpl_polynomial *); int cpl_polynomial_get_degree(const cpl_polynomial *);
double cpl_polynomial_eval(const cpl_polynomial *, const cpl_vector *); double cpl_polynomial_eval(const cpl_polynomial *, const cpl_vector *);
cpl_polynomial * cpl_polynomial_extract(const cpl_polynomial *, int, cpl_polynomial * cpl_polynomial_extract(const cpl_polynomial *, int,
const cpl_polynomial *) const cpl_polynomial *) CPL_ATTR_AL
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT LOC;
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
cpl_error_code cpl_polynomial_derivative(cpl_polynomial *, int); cpl_error_code cpl_polynomial_derivative(cpl_polynomial *, int);
cpl_error_code cpl_polynomial_fit(cpl_polynomial *, cpl_error_code cpl_polynomial_fit(cpl_polynomial *,
const cpl_matrix *, const cpl_matrix *,
const cpl_boolean *, const cpl_boolean *,
const cpl_vector *, const cpl_vector *,
const cpl_vector *, const cpl_vector *,
cpl_boolean , cpl_boolean ,
const int *, const int *,
skipping to change at line 131 skipping to change at line 104
double cpl_polynomial_eval_1d(const cpl_polynomial *, double, double *); double cpl_polynomial_eval_1d(const cpl_polynomial *, double, double *);
double cpl_polynomial_eval_1d_diff(const cpl_polynomial *, double, double, double cpl_polynomial_eval_1d_diff(const cpl_polynomial *, double, double,
double *); double *);
cpl_error_code cpl_vector_fill_polynomial(cpl_vector *, const cpl_polynomia l *, cpl_error_code cpl_vector_fill_polynomial(cpl_vector *, const cpl_polynomia l *,
double, double); double, double);
cpl_error_code cpl_polynomial_solve_1d(const cpl_polynomial *, double, doub le *, cpl_error_code cpl_polynomial_solve_1d(const cpl_polynomial *, double, doub le *,
int); int);
cpl_error_code cpl_polynomial_shift_1d(cpl_polynomial *, int, double); cpl_error_code cpl_polynomial_shift_1d(cpl_polynomial *, int, double);
cpl_polynomial * cpl_polynomial_fit_1d_create(const cpl_vector *, cpl_polynomial * cpl_polynomial_fit_1d_create(const cpl_vector *,
const cpl_vector *, const cpl_vector *, int,
int, double *) double *) CPL_ATTR_DEPRECATED
#ifdef __GNUC__ ;
__attribute__((deprecated))
#endif
;
/* Basic operations on 2d-polynomials */ /* Basic operations on 2d-polynomials */
cpl_polynomial * cpl_polynomial_fit_2d_create(cpl_bivector *, cpl_vector *, cpl_polynomial * cpl_polynomial_fit_2d_create(cpl_bivector *, cpl_vector *,
int, double *) int,
#ifdef __GNUC__ double *) CPL_ATTR_DEPRECATED
__attribute__((deprecated)) ;
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 9 change blocks. 
49 lines changed or deleted 16 lines changed or added


 cpl_ppm.h   cpl_ppm.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 US A
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/07/21 11:13:25 $ * $Date: 2008/07/21 11:13:25 $
* $Revision: 1.9 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PPM_H #ifndef CPL_PPM_H
#define CPL_PPM_H #define CPL_PPM_H
#include <cpl_bivector.h> #include <cpl_bivector.h>
#include <cpl_array.h> #include <cpl_array.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cpl_property.h   cpl_property.h 
/* $Id: cpl_property.h,v 1.10 2007/07/17 09:37:33 scastro Exp $ /* $Id: cpl_property.h,v 1.13 2010/12/22 11:32:12 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: llundin $
* $Date: 2007/07/17 09:37:33 $ * $Date: 2010/12/22 11:32:12 $
* $Revision: 1.10 $ * $Revision: 1.13 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PROPERTY_H #ifndef CPL_PROPERTY_H
#define CPL_PROPERTY_H #define CPL_PROPERTY_H
#include <cpl_error.h> #include <cpl_error.h>
#include <cpl_type.h> #include <cpl_type.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 49 skipping to change at line 49
* @brief * @brief
* The opaque property data type. * The opaque property data type.
*/ */
typedef struct _cpl_property_ cpl_property; typedef struct _cpl_property_ cpl_property;
/* /*
* Create, copy and destroy operations. * Create, copy and destroy operations.
*/ */
cpl_property *cpl_property_new(const char *name, cpl_type type); cpl_property *cpl_property_new(const char *name,
cpl_type type) CPL_ATTR_ALLOC;
cpl_property *cpl_property_new_array(const char *name, cpl_type type, cpl_property *cpl_property_new_array(const char *name, cpl_type type,
int size); int size) CPL_ATTR_ALLOC;
cpl_property *cpl_property_duplicate(const cpl_property *other); cpl_property *cpl_property_duplicate(const cpl_property *other) CPL_ATTR_AL
LOC;
void cpl_property_delete(cpl_property *self); void cpl_property_delete(cpl_property *self);
/* /*
* Non modifying operations * Non modifying operations
*/ */
long cpl_property_get_size(const cpl_property *self); long cpl_property_get_size(const cpl_property *self);
cpl_type cpl_property_get_type(const cpl_property *self); cpl_type cpl_property_get_type(const cpl_property *self);
/* /*
skipping to change at line 76 skipping to change at line 77
cpl_error_code cpl_property_set_name(cpl_property *self, const char *name); cpl_error_code cpl_property_set_name(cpl_property *self, const char *name);
cpl_error_code cpl_property_set_comment(cpl_property *self, cpl_error_code cpl_property_set_comment(cpl_property *self,
const char *comment); const char *comment);
cpl_error_code cpl_property_set_char(cpl_property *self, char value); cpl_error_code cpl_property_set_char(cpl_property *self, char value);
cpl_error_code cpl_property_set_bool(cpl_property *self, int value); cpl_error_code cpl_property_set_bool(cpl_property *self, int value);
cpl_error_code cpl_property_set_int(cpl_property *self, int value); cpl_error_code cpl_property_set_int(cpl_property *self, int value);
cpl_error_code cpl_property_set_long(cpl_property *self, long value); cpl_error_code cpl_property_set_long(cpl_property *self, long value);
cpl_error_code cpl_property_set_float(cpl_property *self, float value); cpl_error_code cpl_property_set_float(cpl_property *self, float value);
cpl_error_code cpl_property_set_double(cpl_property *self, double value); cpl_error_code cpl_property_set_double(cpl_property *self, double value);
cpl_error_code cpl_property_set_string(cpl_property *self, const char *valu e); cpl_error_code cpl_property_set_string(cpl_property *self, const char *valu e);
#ifdef _Complex_I
cpl_error_code cpl_property_set_double_complex(cpl_property *self,
double complex value);
cpl_error_code cpl_property_set_float_complex(cpl_property *self,
float complex value);
#endif
/* /*
* Element access * Element access
*/ */
const char *cpl_property_get_name(const cpl_property *self); const char *cpl_property_get_name(const cpl_property *self);
const char *cpl_property_get_comment(const cpl_property *self); const char *cpl_property_get_comment(const cpl_property *self);
char cpl_property_get_char(const cpl_property *self); char cpl_property_get_char(const cpl_property *self);
int cpl_property_get_bool(const cpl_property *self); int cpl_property_get_bool(const cpl_property *self);
int cpl_property_get_int(const cpl_property *self); int cpl_property_get_int(const cpl_property *self);
long cpl_property_get_long(const cpl_property *self); long cpl_property_get_long(const cpl_property *self);
float cpl_property_get_float(const cpl_property *self); float cpl_property_get_float(const cpl_property *self);
double cpl_property_get_double(const cpl_property *self); double cpl_property_get_double(const cpl_property *self);
const char *cpl_property_get_string(const cpl_property *self); const char *cpl_property_get_string(const cpl_property *self);
#ifdef _Complex_I
float complex cpl_property_get_float_complex(const cpl_property *self);
double complex cpl_property_get_double_complex(const cpl_property *self);
#endif
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_PROPERTY_H */ #endif /* CPL_PROPERTY_H */
 End of changes. 7 change blocks. 
10 lines changed or deleted 21 lines changed or added


 cpl_propertylist.h   cpl_propertylist.h 
/* $Id: cpl_propertylist.h,v 1.21 2009/12/14 15:35:53 llundin Exp $ /* $Id: cpl_propertylist.h,v 1.24 2010/12/22 11:32:13 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/14 15:35:53 $ * $Date: 2010/12/22 11:32:13 $
* $Revision: 1.21 $ * $Revision: 1.24 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_PROPERTYLIST_H #ifndef CPL_PROPERTYLIST_H
#define CPL_PROPERTYLIST_H #define CPL_PROPERTYLIST_H
#include <stdio.h> #include <stdio.h>
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_type.h> #include <cpl_type.h>
#include <cpl_property.h> #include <cpl_property.h>
skipping to change at line 63 skipping to change at line 63
*/ */
typedef int (*cpl_propertylist_compare_func)(const cpl_property *first, typedef int (*cpl_propertylist_compare_func)(const cpl_property *first,
const cpl_property *second); const cpl_property *second);
/* /*
* Create, copy and destroy operations. * Create, copy and destroy operations.
*/ */
cpl_propertylist * cpl_propertylist *
cpl_propertylist_new(void); cpl_propertylist_new(void) CPL_ATTR_ALLOC;
cpl_propertylist * cpl_propertylist *
cpl_propertylist_duplicate(const cpl_propertylist *other); cpl_propertylist_duplicate(const cpl_propertylist *other) CPL_ATTR_ALLOC;
void void
cpl_propertylist_delete(cpl_propertylist *self); cpl_propertylist_delete(cpl_propertylist *self);
/* /*
* Non modifying operations * Non modifying operations
*/ */
long long
cpl_propertylist_get_size(const cpl_propertylist *self); cpl_propertylist_get_size(const cpl_propertylist *self);
skipping to change at line 116 skipping to change at line 116
cpl_error_code cpl_error_code
cpl_propertylist_set_float(cpl_propertylist *self, const char *name, cpl_propertylist_set_float(cpl_propertylist *self, const char *name,
float value); float value);
cpl_error_code cpl_error_code
cpl_propertylist_set_double(cpl_propertylist *self, const char *name, cpl_propertylist_set_double(cpl_propertylist *self, const char *name,
double value); double value);
cpl_error_code cpl_error_code
cpl_propertylist_set_string(cpl_propertylist *self, const char *name, cpl_propertylist_set_string(cpl_propertylist *self, const char *name,
const char *value); const char *value);
#ifdef _Complex_I
cpl_error_code
cpl_propertylist_set_float_complex(cpl_propertylist *self, const char *name
,
float complex value);
cpl_error_code
cpl_propertylist_set_double_complex(cpl_propertylist *self, const char *nam
e,
double complex value);
#endif
/* /*
* Element access * Element access
*/ */
const cpl_property * const cpl_property *
cpl_propertylist_get_const(const cpl_propertylist *self, long position); cpl_propertylist_get_const(const cpl_propertylist *self, long position);
cpl_property * cpl_property *
cpl_propertylist_get(cpl_propertylist *self, long position); cpl_propertylist_get(cpl_propertylist *self, long position);
skipping to change at line 156 skipping to change at line 165
float float
cpl_propertylist_get_float(const cpl_propertylist *self, const char *name); cpl_propertylist_get_float(const cpl_propertylist *self, const char *name);
double double
cpl_propertylist_get_double(const cpl_propertylist *self, const char *name) ; cpl_propertylist_get_double(const cpl_propertylist *self, const char *name) ;
const char * const char *
cpl_propertylist_get_string(const cpl_propertylist *self, const char *name) ; cpl_propertylist_get_string(const cpl_propertylist *self, const char *name) ;
#ifdef _Complex_I
float complex
cpl_propertylist_get_float_complex(const cpl_propertylist *self,
const char *name);
double complex
cpl_propertylist_get_double_complex(const cpl_propertylist *self,
const char *name);
#endif
/* /*
* Inserting and removing elements * Inserting and removing elements
*/ */
cpl_error_code cpl_error_code
cpl_propertylist_insert_char(cpl_propertylist *self, const char *here, cpl_propertylist_insert_char(cpl_propertylist *self, const char *here,
const char *name, char value); const char *name, char value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_bool(cpl_propertylist *self, const char *here, cpl_propertylist_insert_bool(cpl_propertylist *self, const char *here,
skipping to change at line 188 skipping to change at line 207
const char *name, float value); const char *name, float value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_double(cpl_propertylist *self, const char *here, cpl_propertylist_insert_double(cpl_propertylist *self, const char *here,
const char *name, double value); const char *name, double value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_string(cpl_propertylist *self, const char *here, cpl_propertylist_insert_string(cpl_propertylist *self, const char *here,
const char *name, const char *value); const char *name, const char *value);
#ifdef _Complex_I
cpl_error_code
cpl_propertylist_insert_float_complex(cpl_propertylist *self, const char *h
ere,
const char *name, float complex value
);
cpl_error_code
cpl_propertylist_insert_double_complex(cpl_propertylist *self, const char *
here,
const char *name, double complex val
ue);
#endif
cpl_error_code cpl_error_code
cpl_propertylist_insert_after_char(cpl_propertylist *self, const char *afte r, cpl_propertylist_insert_after_char(cpl_propertylist *self, const char *afte r,
const char *name, char value); const char *name, char value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_after_bool(cpl_propertylist *self, const char *afte r, cpl_propertylist_insert_after_bool(cpl_propertylist *self, const char *afte r,
const char *name, int value); const char *name, int value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_after_int(cpl_propertylist *self, const char *after , cpl_propertylist_insert_after_int(cpl_propertylist *self, const char *after ,
skipping to change at line 216 skipping to change at line 245
const char *name, float value); const char *name, float value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_after_double(cpl_propertylist *self, const char *af ter, cpl_propertylist_insert_after_double(cpl_propertylist *self, const char *af ter,
const char *name, double value); const char *name, double value);
cpl_error_code cpl_error_code
cpl_propertylist_insert_after_string(cpl_propertylist *self, const char *af ter, cpl_propertylist_insert_after_string(cpl_propertylist *self, const char *af ter,
const char *name, const char *value); const char *name, const char *value);
#ifdef _Complex_I
cpl_error_code
cpl_propertylist_insert_after_float_complex(cpl_propertylist *self,
const char *after, const char *
name,
float complex value);
cpl_error_code
cpl_propertylist_insert_after_double_complex(cpl_propertylist *self,
const char *after,
const char *name,
double complex value);
#endif
cpl_error_code cpl_error_code
cpl_propertylist_prepend_char(cpl_propertylist *self, const char *name, cpl_propertylist_prepend_char(cpl_propertylist *self, const char *name,
char value); char value);
cpl_error_code cpl_error_code
cpl_propertylist_prepend_bool(cpl_propertylist *self, const char *name, cpl_propertylist_prepend_bool(cpl_propertylist *self, const char *name,
int value); int value);
cpl_error_code cpl_error_code
cpl_propertylist_prepend_int(cpl_propertylist *self, const char *name, cpl_propertylist_prepend_int(cpl_propertylist *self, const char *name,
int value); int value);
skipping to change at line 242 skipping to change at line 284
cpl_propertylist_prepend_float(cpl_propertylist *self, const char *name, cpl_propertylist_prepend_float(cpl_propertylist *self, const char *name,
float value); float value);
cpl_error_code cpl_error_code
cpl_propertylist_prepend_double(cpl_propertylist *self, const char *name, cpl_propertylist_prepend_double(cpl_propertylist *self, const char *name,
double value); double value);
cpl_error_code cpl_error_code
cpl_propertylist_prepend_string(cpl_propertylist *self, const char *name, cpl_propertylist_prepend_string(cpl_propertylist *self, const char *name,
const char *value); const char *value);
#ifdef _Complex_I
cpl_error_code
cpl_propertylist_prepend_float_complex(cpl_propertylist *self,
const char *name,
float complex value);
cpl_error_code
cpl_propertylist_prepend_double_complex(cpl_propertylist *self,
const char *name,
double complex value);
#endif
cpl_error_code cpl_error_code
cpl_propertylist_append_char(cpl_propertylist *self, const char *name, cpl_propertylist_append_char(cpl_propertylist *self, const char *name,
char value); char value);
cpl_error_code cpl_error_code
cpl_propertylist_append_bool(cpl_propertylist *self, const char *name, cpl_propertylist_append_bool(cpl_propertylist *self, const char *name,
int value); int value);
cpl_error_code cpl_error_code
skipping to change at line 271 skipping to change at line 324
float value); float value);
cpl_error_code cpl_error_code
cpl_propertylist_append_double(cpl_propertylist *self, const char *name, cpl_propertylist_append_double(cpl_propertylist *self, const char *name,
double value); double value);
cpl_error_code cpl_error_code
cpl_propertylist_append_string(cpl_propertylist *self, const char *name, cpl_propertylist_append_string(cpl_propertylist *self, const char *name,
const char *value); const char *value);
#ifdef _Complex_I
cpl_error_code
cpl_propertylist_append_float_complex(cpl_propertylist *self, const char *n
ame,
float complex value);
cpl_error_code
cpl_propertylist_append_double_complex(cpl_propertylist *self, const char *
name,
double complex value);
#endif
cpl_error_code cpl_error_code
cpl_propertylist_append(cpl_propertylist *self, cpl_propertylist_append(cpl_propertylist *self,
const cpl_propertylist *other); const cpl_propertylist *other);
int int
cpl_propertylist_erase(cpl_propertylist *self, const char *name); cpl_propertylist_erase(cpl_propertylist *self, const char *name);
int int
cpl_propertylist_erase_regexp(cpl_propertylist *self, const char *regexp, cpl_propertylist_erase_regexp(cpl_propertylist *self, const char *regexp,
int invert); int invert);
skipping to change at line 311 skipping to change at line 374
cpl_error_code cpl_error_code
cpl_propertylist_update_float(cpl_propertylist *self, const char *name, cpl_propertylist_update_float(cpl_propertylist *self, const char *name,
float value); float value);
cpl_error_code cpl_error_code
cpl_propertylist_update_double(cpl_propertylist *self, const char *name, cpl_propertylist_update_double(cpl_propertylist *self, const char *name,
double value); double value);
cpl_error_code cpl_error_code
cpl_propertylist_update_string(cpl_propertylist *self, const char *name, cpl_propertylist_update_string(cpl_propertylist *self, const char *name,
const char *value); const char *value);
#ifdef _Complex_I
cpl_error_code
cpl_propertylist_update_float_complex(cpl_propertylist *self, const char *n
ame,
float complex value);
cpl_error_code
cpl_propertylist_update_double_complex(cpl_propertylist *self, const char *
name,
double complex value);
#endif
/* /*
* Working on properties * Working on properties
*/ */
cpl_error_code cpl_error_code
cpl_propertylist_copy_property(cpl_propertylist *self, cpl_propertylist_copy_property(cpl_propertylist *self,
const cpl_propertylist *other, const cpl_propertylist *other,
const char *name); const char *name);
cpl_error_code cpl_error_code
cpl_propertylist_copy_property_regexp(cpl_propertylist *self, cpl_propertylist_copy_property_regexp(cpl_propertylist *self,
skipping to change at line 354 skipping to change at line 426
cpl_error_code cpl_error_code
cpl_propertylist_sort(cpl_propertylist *self, cpl_propertylist_sort(cpl_propertylist *self,
cpl_propertylist_compare_func compare); cpl_propertylist_compare_func compare);
/* /*
* Loading, saving and conversion operations. * Loading, saving and conversion operations.
*/ */
cpl_propertylist * cpl_propertylist *
cpl_propertylist_load(const char *name, int position); cpl_propertylist_load(const char *name, int position) CPL_ATTR_ALLOC;
cpl_propertylist * cpl_propertylist *
cpl_propertylist_load_regexp(const char *name, int position, cpl_propertylist_load_regexp(const char *name, int position,
const char *regexp, int invert); const char *regexp, int invert) CPL_ATTR_ALLOC ;
cpl_error_code cpl_error_code
cpl_propertylist_save(const cpl_propertylist * self, const char * filename, cpl_propertylist_save(const cpl_propertylist * self, const char * filename,
unsigned mode) ; unsigned mode) ;
void cpl_propertylist_dump(const cpl_propertylist *self, FILE *stream); void cpl_propertylist_dump(const cpl_propertylist *self, FILE *stream);
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_PROPERTYLIST_H */ #endif /* CPL_PROPERTYLIST_H */
 End of changes. 14 change blocks. 
9 lines changed or deleted 92 lines changed or added


 cpl_recipe.h   cpl_recipe.h 
/* $Id: cpl_recipe.h,v 1.6 2006/10/31 14:54:34 rpalsa Exp $ /* $Id: cpl_recipe.h,v 1.7 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2006 European Southern Observatory * Copyright (C) 2001-2006 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: llundin $
* $Date: 2006/10/31 14:54:34 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.6 $ * $Revision: 1.7 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_RECIPE_H #ifndef CPL_RECIPE_H
#define CPL_RECIPE_H #define CPL_RECIPE_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_plugin.h> #include <cpl_plugin.h>
#include <cpl_frameset.h> #include <cpl_frameset.h>
#include <cpl_parameterlist.h> #include <cpl_parameterlist.h>
#include <cpl_recipeconfig.h> #include <cpl_recipeconfig.h>
 End of changes. 3 change blocks. 
6 lines changed or deleted 6 lines changed or added


 cpl_recipeconfig.h   cpl_recipeconfig.h 
/* $Id: cpl_recipeconfig.h,v 1.2 2007/07/16 08:52:52 rpalsa Exp $ /* $Id: cpl_recipeconfig.h,v 1.4 2010/11/11 10:31:52 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2006 European Southern Observatory * Copyright (C) 2001-2006 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: llundin $
* $Date: 2007/07/16 08:52:52 $ * $Date: 2010/11/11 10:31:52 $
* $Revision: 1.2 $ * $Revision: 1.4 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_RECIPECONFIG_H #ifndef CPL_RECIPECONFIG_H
#define CPL_RECIPECONFIG_H #define CPL_RECIPECONFIG_H
#include <cpl_macros.h> #include <cpl_macros.h>
#include <cpl_framedata.h> #include <cpl_framedata.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
skipping to change at line 49 skipping to change at line 49
* @brief * @brief
* The opaque recipe configuration object type. * The opaque recipe configuration object type.
*/ */
typedef struct _cpl_recipeconfig_ cpl_recipeconfig; typedef struct _cpl_recipeconfig_ cpl_recipeconfig;
/* /*
* Create, copy and destroy operations * Create, copy and destroy operations
*/ */
cpl_recipeconfig* cpl_recipeconfig_new(void); cpl_recipeconfig* cpl_recipeconfig_new(void) CPL_ATTR_ALLOC;
void cpl_recipeconfig_delete(cpl_recipeconfig* self); void cpl_recipeconfig_delete(cpl_recipeconfig* self);
void cpl_recipeconfig_clear(cpl_recipeconfig* self); void cpl_recipeconfig_clear(cpl_recipeconfig* self);
/* /*
* Non modifying operations * Non modifying operations
*/ */
char** cpl_recipeconfig_get_tags(const cpl_recipeconfig* self); char** cpl_recipeconfig_get_tags(const cpl_recipeconfig* self);
char** cpl_recipeconfig_get_inputs(const cpl_recipeconfig* self, char** cpl_recipeconfig_get_inputs(const cpl_recipeconfig* self,
const char* tag); const char* tag);
 End of changes. 4 change blocks. 
7 lines changed or deleted 7 lines changed or added


 cpl_recipedefine.h   cpl_recipedefine.h 
/* $Id: cpl_recipedefine.h,v 1.8 2010/03/11 15:03:30 llundin Exp $ /* $Id: cpl_recipedefine.h,v 1.13 2011/01/03 15:39:21 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2006 European Southern Observatory * Copyright (C) 2001-2006 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
skipping to change at line 23 skipping to change at line 23
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/03/11 15:03:30 $ * $Date: 2011/01/03 15:39:21 $
* $Revision: 1.8 $ * $Revision: 1.13 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_RECIPEDEFINE_H #ifndef CPL_RECIPEDEFINE_H
#define CPL_RECIPEDEFINE_H #define CPL_RECIPEDEFINE_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <cpl_recipe.h> #include <cpl_recipe.h>
#include <cpl_plugininfo.h> #include <cpl_plugininfo.h>
#include <cpl_version.h> #include <cpl_version.h>
#include <cpl_errorstate.h> #include <cpl_errorstate.h>
/*------------------------------------------------------------------------- CPL_BEGIN_DECLS
----
Define
--------------------------------------------------------------------------
---*/
#undef CPL_HAVE_GNUC_NONNULL
#if defined __GNUC__
#if __GNUC__ > 3 || __GNUC__ == 3 && defined __GNUC_MINOR__ && __GNUC_MINOR
__ > 2
#define CPL_HAVE_GNUC_NONNULL
#endif
#endif
#ifndef CPL_CONCAT
/* Needed to concatenate two macro arguments */
#define CPL_CONCAT(a,b) a ## _ ## b
#define CPL_CONCAT2X(a,b) CPL_CONCAT(a,b)
#endif
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_recipedefine @ingroup cpl_recipedefine
@brief Generate the recipe copyright and license text @brief Generate the recipe copyright and license text (GPL v.2)
@param PACKAGE_NAME The name as a string literal, e.g. from config.h @param PACKAGE_NAME The name as a string literal, e.g. from config.h
@param YEAR The year(s) as a string literal @param YEAR The year(s) as a string literal
@return The recipe copyright and license text as a string literal @return The recipe copyright and license text as a string literal
Example: Example:
@code @code
const char * my_license = cpl_get_license(PACKAGE_NAME, "2005, 2008"); const char * eso_gpl_license = cpl_get_license(PACKAGE_NAME, "2005, 20 08");
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_get_license(PACKAGE_NAME, YEAR) \ #define cpl_get_license(PACKAGE_NAME, YEAR) \
"This file is part of the " PACKAGE_NAME "\n" \ "This file is part of the " PACKAGE_NAME "\n" \
"Copyright (C) " YEAR " European Southern Observatory\n" \ "Copyright (C) " YEAR " European Southern Observatory\n" \
"\n" \ "\n" \
"This program is free software; you can redistribute it and/or modify\n " \ "This program is free software; you can redistribute it and/or modify\n " \
skipping to change at line 95 skipping to change at line 80
"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" \ "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n" \
"GNU General Public License for more details.\n" \ "GNU General Public License for more details.\n" \
"\n" \ "\n" \
"You should have received a copy of the GNU General Public License\n" \ "You should have received a copy of the GNU General Public License\n" \
"along with this program; if not, write to the Free Software\n" \ "along with this program; if not, write to the Free Software\n" \
"Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, \n" \ "Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, \n" \
"MA 02111-1307 USA" "MA 02111-1307 USA"
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_recipedefine @ingroup cpl_recipedefine
@brief Define a standard CPL recipe @brief Define a standard CPL recipe
@param RECIPE_NAME The name as an identifier @param RECIPE_NAME The name as an identifier
@param RECIPE_VERSION The binary version number @param RECIPE_VERSION The binary version number
@param RECIPE_FILL_PARAMS A function call to fill the recipe paramete @param RECIPE_AUTHOR The author as a string literal
rlist @param RECIPE_EMAIL The contact email as a string literal
Must evaluate to zero if and only if succes @param RECIPE_YEAR The copyright year as a string literal
sful @param RECIPE_SYNOPSIS The synopsis as a string literal
@param RECIPE_AUTHOR The author as a string literal @param RECIPE_DESCRIPTION The man-page as a string literal
@param RECIPE_AUTHOR_EMAIL The author email as a string literal
@param RECIPE_YEAR The copyright year as a string literal
@param RECIPE_SYNOPSIS The synopsis as a string literal
@param RECIPE_DESCRIPTION The man-page as a string literal
A CPL-based recipe may use this macro to define its four mandatory A CPL-based recipe may use this macro to define its four mandatory
functions: cpl_plugin_get_info(), \<recipe\>_create(), \<recipe\>_exec() and functions: cpl_plugin_get_info(), \<recipe\>_create(), \<recipe\>_exec() and
\<recipe\>_destroy(), as well as declaring the actual data reduction \<recipe\>_destroy(), as well as declaring the actual data reduction
function, \<recipe\>() as function, \<recipe\>() as
@code @code
static int <recipe>(cpl_frameset *, const cpl_parameterlist *); static int <recipe>(cpl_frameset *, const cpl_parameterlist *);
@endcode @endcode
This may be done by defining a macro, e.g. in my_recipe.h: The macro also declares the recipe-specific function that fills the
recipe parameterlist with the supported parameters as
@code
static cpl_error_code <recipe>_fill_parameterlist(cpl_parameterlist *s
elf);
@endcode
A recipe that invokes cpl_recipedefine() must define this function.
The macro cpl_recipedefine() may be used by defining a macro, e.g. in
my_recipe.h:
@code @code
#define MY_RECIPE_DEFINE(NAME, FILL_PARAMS_FUNC, SYNOPSIS, DESCRIPTION) #define MY_RECIPE_DEFINE(NAME, SYNOPSIS, DESCRIPTION)
\ \
CPL_RECIPE_DEFINE(NAME, MY_BINARY_VERSION, cpl_recipe_define(NAME, MY_BINARY_VERSION,
\ \
FILL_PARAMS_FUNC(recipe->parameters),
\
"Firstname Lastname", "2006, 2008", SYNOPSIS, DESCRIPTION) "Firstname Lastname", "2006, 2008", SYNOPSIS, DESCRIPTION)
@endcode @endcode
- and then by invoking this macro in each recipe: - and then by invoking this macro in each recipe:
@code @code
#include "my_recipe.h" #include "my_recipe.h"
MY_RECIPE_DEFINE(instrume_img_dark, MY_RECIPE_DEFINE(instrume_img_dark,
instrume_img_dark_fill_parameterlist,
"Dark recipe", "Dark recipe",
"instrume_img_dark -- imaging dark recipe.\n" "instrume_img_dark -- imaging dark recipe.\n"
" ... recipe man-page\n") " ... recipe man-page\n");
static
cpl_error_code instrume_img_dark_fill_parameterlist(cpl_parameterlist *s
elf);
{
// Fill the parameterlist with the parameters supported by the recipe
.
retun CPL_ERROR_NONE;
}
@endcode @endcode
where instrume_img_dark_fill_parameterlist() is a recipe specific functi */
on, /*-------------------------------------------------------------------------
that takes an empty parameterlist and fills it with those parameters tha ---*/
t
the recipe supports. #define cpl_recipe_define(RECIPE_NAME, RECIPE_VERSION, RECIPE_AUTHOR,
\
RECIPE_EMAIL, RECIPE_YEAR,
\
RECIPE_SYNOPSIS, RECIPE_DESCRIPTION)
\
\
/* The prototypes of the recipe create, exec and destroy functions */
\
static int CPL_CONCAT2X(RECIPE_NAME,create) (cpl_plugin * plugin);
\
static int CPL_CONCAT2X(RECIPE_NAME,exec) (cpl_plugin * plugin);
\
static int CPL_CONCAT2X(RECIPE_NAME,destroy)(cpl_plugin * plugin);
\
\
/* The prototype of the function called by the recipe exec function */
\
static int RECIPE_NAME(cpl_frameset *, const cpl_parameterlist *);
\
\
/* The prototype of the parameterlist filler function */
\
static cpl_error_code CPL_CONCAT2X(RECIPE_NAME,fill_parameterlist)
\
(cpl_parameterlist *);
\
\
int cpl_plugin_get_info(cpl_pluginlist * list)
\
{
\
/* Propagate error, if any. Return 1 on failure */
\
return cpl_recipedefine_init(list, CPL_VERSION_CODE,
\
RECIPE_VERSION,
\
#RECIPE_NAME,
\
RECIPE_SYNOPSIS,
\
RECIPE_DESCRIPTION,
\
RECIPE_AUTHOR,
\
RECIPE_EMAIL,
\
cpl_get_license(PACKAGE_NAME, RECIPE_YEAR),
\
CPL_CONCAT2X(RECIPE_NAME,create),
\
CPL_CONCAT2X(RECIPE_NAME,exec),
\
CPL_CONCAT2X(RECIPE_NAME,destroy))
\
? ((void)cpl_error_set_where(cpl_func), 1) : 0;
\
}
\
\
/* The definition of the recipe create function */
\
static int CPL_CONCAT2X(RECIPE_NAME,create)(cpl_plugin * plugin)
\
{
\
cpl_recipe * recipe = (cpl_recipe *)plugin; /* Needed for the fill
*/ \
cpl_errorstate prestate = cpl_errorstate_get(); /* To check the fill */
\
\
/* Propagate error, if any */
\
/* - Need two function calls to ensure plugin validity before the fill
*/ \
return cpl_recipedefine_create(plugin)
\
|| cpl_recipedefine_create_is_ok(prestate,
\
CPL_CONCAT2X(RECIPE_NAME,fill_parameterlist)(recipe->parameter
s)) \
? (int)cpl_error_set_where(cpl_func) : 0;
\
}
\
\
/* The definition of the recipe exec function */
\
static int CPL_CONCAT2X(RECIPE_NAME,exec)(cpl_plugin * plugin)
\
{
\
/* Propagate error, if any */
\
return cpl_recipedefine_exec(plugin, RECIPE_NAME)
\
? (int)cpl_error_set_where(cpl_func) : 0;
\
}
\
\
/* The definition of the recipe destroy function */
\
static int CPL_CONCAT2X(RECIPE_NAME,destroy)(cpl_plugin * plugin)
\
{
\
/* Propagate error, if any */
\
return cpl_recipedefine_destroy(plugin)
\
? (int)cpl_error_set_where(cpl_func) : 0;
\
}
\
\
/* This dummy declaration requires the macro to be invoked as if it was
\
a kind of function declaration, with a terminating ; */
\
extern int cpl_plugin_end
/*-------------------------------------------------------------------------
---*/
/**
@hideinitializer
@ingroup cpl_recipedefine
@brief Define a standard CPL recipe
@param RECIPE_NAME The name as an identifier
@param RECIPE_VERSION The binary version number
@param RECIPE_FILL_PARAMS A function call to fill the recipe parameter
list.
Must evaluate to zero if and only if success
ful
@param RECIPE_AUTHOR The author as a string literal
@param RECIPE_AUTHOR_EMAIL The author email as a string literal
@param RECIPE_YEAR The copyright year as a string literal
@param RECIPE_SYNOPSIS The synopsis as a string literal
@param RECIPE_DESCRIPTION The man-page as a string literal
@deprecated Use cpl_recipe_define()
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define CPL_RECIPE_DEFINE(RECIPE_NAME, RECIPE_VERSION, RECIPE_FILL_PARAMS, \ #define CPL_RECIPE_DEFINE(RECIPE_NAME, RECIPE_VERSION, RECIPE_FILL_PARAMS, \
RECIPE_AUTHOR, RECIPE_AUTHOR_EMAIL, RECIPE_YEAR, \ RECIPE_AUTHOR, RECIPE_AUTHOR_EMAIL, RECIPE_YEAR, \
RECIPE_SYNOPSIS, RECIPE_DESCRIPTION) \ RECIPE_SYNOPSIS, RECIPE_DESCRIPTION) \
\ \
/* The prototypes of the recipe create, exec and destroy functions */ \ /* The prototypes of the recipe create, exec and destroy functions */ \
static int CPL_CONCAT2X(RECIPE_NAME,create) (cpl_plugin * plugin); \ static int CPL_CONCAT2X(RECIPE_NAME,create) (cpl_plugin * plugin); \
skipping to change at line 219 skipping to change at line 302
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
cpl_error_code cpl_recipedefine_init(cpl_pluginlist *, unsigned long, cpl_error_code cpl_recipedefine_init(cpl_pluginlist *, unsigned long,
unsigned long, const char *, const cha r *, unsigned long, const char *, const cha r *,
const char *, const char *, const char *, const char *, const char *, const char *,
const char *, cpl_plugin_func, const char *, cpl_plugin_func,
cpl_plugin_func, cpl_plugin_func) cpl_plugin_func, cpl_plugin_func)
#ifdef CPL_HAVE_GNUC_NONNULL #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(9, 10, 11, 12))) __attribute__((nonnull(9, 10, 11, 12)))
#endif #endif
; ;
cpl_error_code cpl_recipedefine_create(cpl_plugin *); cpl_error_code cpl_recipedefine_create(cpl_plugin *);
cpl_error_code cpl_recipedefine_create_is_ok(cpl_errorstate, int); cpl_error_code cpl_recipedefine_create_is_ok(cpl_errorstate, cpl_error_code );
cpl_error_code cpl_recipedefine_exec(cpl_plugin *, cpl_error_code cpl_recipedefine_exec(cpl_plugin *,
int (*)(cpl_frameset *, int (*)(cpl_frameset *,
const cpl_parameterlist *)); const cpl_parameterlist *));
cpl_error_code cpl_recipedefine_destroy(cpl_plugin *); cpl_error_code cpl_recipedefine_destroy(cpl_plugin *);
CPL_END_DECLS
#endif #endif
/* end of cpl_recipedefine.h */ /* end of cpl_recipedefine.h */
 End of changes. 16 change blocks. 
54 lines changed or deleted 203 lines changed or added


 cpl_stats.h   cpl_stats.h 
/* $Id: cpl_stats.h,v 1.11 2008/10/17 14:24:01 llundin Exp $ /* $Id: cpl_stats.h,v 1.13 2010/11/11 15:28:46 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2008/10/17 14:24:01 $ * $Date: 2010/11/11 15:28:46 $
* $Revision: 1.11 $ * $Revision: 1.13 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_STATS_H #ifndef CPL_STATS_H
#define CPL_STATS_H #define CPL_STATS_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h>
#include "cpl_image.h" #include "cpl_image.h"
#include <stdio.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Defines Defines
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* No mode has the value 1, which makes the (mis)use of logical or detectab le */ /* No mode has the value 1, which makes the (mis)use of logical or detectab le */
#define CPL_STATS_MIN ((unsigned) 1 << 1) #define CPL_STATS_MIN ((unsigned) 1 << 1)
#define CPL_STATS_MAX ((unsigned) 1 << 2) #define CPL_STATS_MAX ((unsigned) 1 << 2)
#define CPL_STATS_MEAN ((unsigned) 1 << 3) #define CPL_STATS_MEAN ((unsigned) 1 << 3)
#define CPL_STATS_MEDIAN ((unsigned) 1 << 4) #define CPL_STATS_MEDIAN ((unsigned) 1 << 4)
skipping to change at line 90 skipping to change at line 90
double cpl_stats_get_centroid_y(const cpl_stats *); double cpl_stats_get_centroid_y(const cpl_stats *);
int cpl_stats_get_min_x(const cpl_stats *); int cpl_stats_get_min_x(const cpl_stats *);
int cpl_stats_get_min_y(const cpl_stats *); int cpl_stats_get_min_y(const cpl_stats *);
int cpl_stats_get_max_x(const cpl_stats *); int cpl_stats_get_max_x(const cpl_stats *);
int cpl_stats_get_max_y(const cpl_stats *); int cpl_stats_get_max_y(const cpl_stats *);
int cpl_stats_get_npix(const cpl_stats *); int cpl_stats_get_npix(const cpl_stats *);
void cpl_stats_delete(cpl_stats *); void cpl_stats_delete(cpl_stats *);
/* Statistics computations */ /* Statistics computations */
cpl_stats * cpl_stats_new_from_image(const cpl_image *, unsigned); cpl_stats * cpl_stats_new_from_image(const cpl_image *,
unsigned) CPL_ATTR_ALLOC;
cpl_stats * cpl_stats_new_from_image_window(const cpl_image *, unsigned, in t, cpl_stats * cpl_stats_new_from_image_window(const cpl_image *, unsigned, in t,
int, int, int); int, int, int) CPL_ATTR_ALLOC;
cpl_error_code cpl_stats_dump(const cpl_stats *, unsigned, FILE *); cpl_error_code cpl_stats_dump(const cpl_stats *, unsigned, FILE *);
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 7 change blocks. 
9 lines changed or deleted 10 lines changed or added


 cpl_table.h   cpl_table.h 
/* $Id: cpl_table.h,v 1.60 2009/12/07 10:38:44 cizzo Exp $ /* $Id: cpl_table.h,v 1.65 2011/01/12 09:28:46 cizzo Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: cizzo $ * $Author: cizzo $
* $Date: 2009/12/07 10:38:44 $ * $Date: 2011/01/12 09:28:46 $
* $Revision: 1.60 $ * $Revision: 1.65 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_TABLE_H #ifndef CPL_TABLE_H
#define CPL_TABLE_H #define CPL_TABLE_H
#include <stdio.h> #include <stdio.h>
#include "cpl_io.h" #include "cpl_io.h"
#include "cpl_type.h" #include "cpl_type.h"
#include "cpl_propertylist.h" #include "cpl_propertylist.h"
skipping to change at line 72 skipping to change at line 72
cpl_error_code cpl_table_new_column(cpl_table *, const char *, cpl_type); cpl_error_code cpl_table_new_column(cpl_table *, const char *, cpl_type);
cpl_error_code cpl_table_new_column_array(cpl_table *, const char *, cpl_error_code cpl_table_new_column_array(cpl_table *, const char *,
cpl_type, int); cpl_type, int);
cpl_error_code cpl_table_set_column_savetype(cpl_table *, cpl_error_code cpl_table_set_column_savetype(cpl_table *,
const char *name, cpl_type); const char *name, cpl_type);
cpl_error_code cpl_table_wrap_int(cpl_table *, int *, const char *); cpl_error_code cpl_table_wrap_int(cpl_table *, int *, const char *);
cpl_error_code cpl_table_wrap_float(cpl_table *, float *, const char *); cpl_error_code cpl_table_wrap_float(cpl_table *, float *, const char *);
cpl_error_code cpl_table_wrap_double(cpl_table *, double *, const char *); cpl_error_code cpl_table_wrap_double(cpl_table *, double *, const char *);
#ifdef _Complex_I
cpl_error_code cpl_table_wrap_float_complex(cpl_table *,
float complex *, const char *);
cpl_error_code cpl_table_wrap_double_complex(cpl_table *,
double complex *, const char *
);
#endif
cpl_error_code cpl_table_wrap_string(cpl_table *, char **, const char *); cpl_error_code cpl_table_wrap_string(cpl_table *, char **, const char *);
void *cpl_table_unwrap(cpl_table *, const char *); void *cpl_table_unwrap(cpl_table *, const char *);
cpl_error_code cpl_table_copy_structure(cpl_table *, const cpl_table *); cpl_error_code cpl_table_copy_structure(cpl_table *, const cpl_table *);
void cpl_table_delete(cpl_table *); void cpl_table_delete(cpl_table *);
/* /*
* Methods: * Methods:
skipping to change at line 113 skipping to change at line 119
int *cpl_table_get_data_int(cpl_table *, const char *name); int *cpl_table_get_data_int(cpl_table *, const char *name);
const int *cpl_table_get_data_int_const(const cpl_table *, const int *cpl_table_get_data_int_const(const cpl_table *,
const char *name); const char *name);
float *cpl_table_get_data_float(cpl_table *, const char *name); float *cpl_table_get_data_float(cpl_table *, const char *name);
const float *cpl_table_get_data_float_const(const cpl_table *, const float *cpl_table_get_data_float_const(const cpl_table *,
const char *name); const char *name);
double *cpl_table_get_data_double(cpl_table *, const char *name); double *cpl_table_get_data_double(cpl_table *, const char *name);
const double *cpl_table_get_data_double_const(const cpl_table *, const double *cpl_table_get_data_double_const(const cpl_table *,
const char *name); const char *name);
#ifdef _Complex_I
float complex *cpl_table_get_data_float_complex(cpl_table *, const char *na
me);
const float complex *cpl_table_get_data_float_complex_const(const cpl_table
*,
const char *nam
e);
double complex *cpl_table_get_data_double_complex(cpl_table *, const char *
);
const double complex *cpl_table_get_data_double_complex_const(const cpl_tab
le *,
const char *)
;
#endif
char **cpl_table_get_data_string(cpl_table *, const char *name); char **cpl_table_get_data_string(cpl_table *, const char *name);
const char **cpl_table_get_data_string_const(const cpl_table *, const char **cpl_table_get_data_string_const(const cpl_table *,
const char *name); const char *name);
cpl_array **cpl_table_get_data_array(cpl_table *, const char *); cpl_array **cpl_table_get_data_array(cpl_table *, const char *);
const cpl_array **cpl_table_get_data_array_const(const cpl_table *, const cpl_array **cpl_table_get_data_array_const(const cpl_table *,
const char *); const char *);
double cpl_table_get(const cpl_table *, const char *, int, int *null); double cpl_table_get(const cpl_table *, const char *, int, int *null);
int cpl_table_get_int(const cpl_table *, const char *, int, int *null); int cpl_table_get_int(const cpl_table *, const char *, int, int *null);
float cpl_table_get_float(const cpl_table *, const char *, int, int *null); float cpl_table_get_float(const cpl_table *, const char *, int, int *null);
double cpl_table_get_double(const cpl_table *, const char *, int, int *null ); double cpl_table_get_double(const cpl_table *, const char *, int, int *null );
#ifdef _Complex_I
double complex cpl_table_get_complex(const cpl_table *,
const char *, int, int *);
float complex cpl_table_get_float_complex(const cpl_table *,
const char *, int, int *null);
double complex cpl_table_get_double_complex(const cpl_table *,
const char *, int, int *null);
#endif
const char *cpl_table_get_string(const cpl_table *, const char *, int); const char *cpl_table_get_string(const cpl_table *, const char *, int);
const cpl_array *cpl_table_get_array(const cpl_table *, const char *, int); const cpl_array *cpl_table_get_array(const cpl_table *, const char *, int);
cpl_error_code cpl_table_set(cpl_table *, const char *, int, double); cpl_error_code cpl_table_set(cpl_table *, const char *, int, double);
cpl_error_code cpl_table_set_int(cpl_table *, const char *, int, int); cpl_error_code cpl_table_set_int(cpl_table *, const char *, int, int);
cpl_error_code cpl_table_set_float(cpl_table *, const char *, int, float); cpl_error_code cpl_table_set_float(cpl_table *, const char *, int, float);
cpl_error_code cpl_table_set_double(cpl_table *, const char *, int, double) ; cpl_error_code cpl_table_set_double(cpl_table *, const char *, int, double) ;
#ifdef _Complex_I
cpl_error_code cpl_table_set_complex(cpl_table *,
const char *, int, double complex);
cpl_error_code cpl_table_set_float_complex(cpl_table *,
const char *, int, float complex
);
cpl_error_code cpl_table_set_double_complex(cpl_table *,
const char *, int, double compl
ex);
#endif
cpl_error_code cpl_table_set_string(cpl_table *, const char *, int, cpl_error_code cpl_table_set_string(cpl_table *, const char *, int,
const char *); const char *);
cpl_error_code cpl_table_set_array(cpl_table *, const char *, int, cpl_error_code cpl_table_set_array(cpl_table *, const char *, int,
const cpl_array *); const cpl_array *);
cpl_error_code cpl_table_fill_column_window(cpl_table *, const char *, cpl_error_code cpl_table_fill_column_window(cpl_table *, const char *,
int, int, double); int, int, double);
cpl_error_code cpl_table_fill_column_window_int(cpl_table *, const char *, cpl_error_code cpl_table_fill_column_window_int(cpl_table *, const char *,
int, int, int); int, int, int);
cpl_error_code cpl_table_fill_column_window_float(cpl_table *, const char * , cpl_error_code cpl_table_fill_column_window_float(cpl_table *, const char * ,
int, int, float); int, int, float);
cpl_error_code cpl_table_fill_column_window_double(cpl_table *, const char *, cpl_error_code cpl_table_fill_column_window_double(cpl_table *, const char *,
int, int, double); int, int, double);
#ifdef _Complex_I
cpl_error_code cpl_table_fill_column_window_complex(cpl_table *, const char
*,
int, int, double complex);
cpl_error_code cpl_table_fill_column_window_float_complex(cpl_table *,
const char *, int, int, float complex);
cpl_error_code cpl_table_fill_column_window_double_complex(cpl_table *,
const char *, int, int, double complex);
#endif
cpl_error_code cpl_table_fill_column_window_string(cpl_table *, const char *, cpl_error_code cpl_table_fill_column_window_string(cpl_table *, const char *,
int, int, const char *); int, int, const char *);
cpl_error_code cpl_table_fill_column_window_array(cpl_table *, const char * , cpl_error_code cpl_table_fill_column_window_array(cpl_table *, const char * ,
int, int, const cpl_array *); int, int, const cpl_array *);
cpl_error_code cpl_table_copy_data_int(cpl_table *, const char *, const int *); cpl_error_code cpl_table_copy_data_int(cpl_table *, const char *, const int *);
cpl_error_code cpl_table_copy_data_float(cpl_table *, const char *, cpl_error_code cpl_table_copy_data_float(cpl_table *, const char *,
const float *); const float *);
cpl_error_code cpl_table_copy_data_double(cpl_table *, const char *, cpl_error_code cpl_table_copy_data_double(cpl_table *, const char *,
const double *); const double *);
#ifdef _Complex_I
cpl_error_code cpl_table_copy_data_float_complex(cpl_table *, const char *,
const float complex *);
cpl_error_code cpl_table_copy_data_double_complex(cpl_table *, const char *
,
const double complex *);
#endif
cpl_error_code cpl_table_copy_data_string(cpl_table *, const char *, cpl_error_code cpl_table_copy_data_string(cpl_table *, const char *,
const char **); const char **);
cpl_error_code cpl_table_shift_column(cpl_table *, const char *, int); cpl_error_code cpl_table_shift_column(cpl_table *, const char *, int);
cpl_error_code cpl_table_set_invalid(cpl_table *, const char *, int); cpl_error_code cpl_table_set_invalid(cpl_table *, const char *, int);
cpl_error_code cpl_table_set_column_invalid(cpl_table *, cpl_error_code cpl_table_set_column_invalid(cpl_table *,
const char *, int, int); const char *, int, int);
skipping to change at line 175 skipping to change at line 219
int cpl_table_count_invalid(const cpl_table *, const char *); int cpl_table_count_invalid(const cpl_table *, const char *);
int cpl_table_has_invalid(const cpl_table *table, const char *name); int cpl_table_has_invalid(const cpl_table *table, const char *name);
int cpl_table_has_valid(const cpl_table *table, const char *name); int cpl_table_has_valid(const cpl_table *table, const char *name);
cpl_error_code cpl_table_fill_invalid_int(cpl_table *, const char *, cpl_error_code cpl_table_fill_invalid_int(cpl_table *, const char *,
int); int);
cpl_error_code cpl_table_fill_invalid_float(cpl_table *, const char *, cpl_error_code cpl_table_fill_invalid_float(cpl_table *, const char *,
float); float);
cpl_error_code cpl_table_fill_invalid_double(cpl_table *, const char *, cpl_error_code cpl_table_fill_invalid_double(cpl_table *, const char *,
double); double);
#ifdef _Complex_I
cpl_error_code cpl_table_fill_invalid_float_complex(cpl_table *, const char
*,
float complex);
cpl_error_code cpl_table_fill_invalid_double_complex(cpl_table *, const cha
r *,
double complex);
#endif
cpl_error_code cpl_table_erase_column(cpl_table *, const char *); cpl_error_code cpl_table_erase_column(cpl_table *, const char *);
cpl_error_code cpl_table_move_column(cpl_table *, const char *, cpl_table * ); cpl_error_code cpl_table_move_column(cpl_table *, const char *, cpl_table * );
cpl_error_code cpl_table_duplicate_column(cpl_table *, const char *, cpl_error_code cpl_table_duplicate_column(cpl_table *, const char *,
const cpl_table *, const char *); const cpl_table *, const char *);
cpl_error_code cpl_table_name_column(cpl_table *, const char *, const char *); cpl_error_code cpl_table_name_column(cpl_table *, const char *, const char *);
int cpl_table_has_column(const cpl_table *, const char *); int cpl_table_has_column(const cpl_table *, const char *);
const char *cpl_table_get_column_name(const cpl_table *); const char *cpl_table_get_column_name(const cpl_table *);
skipping to change at line 219 skipping to change at line 269
const char *, const char *); const char *, const char *);
cpl_error_code cpl_table_multiply_columns(cpl_table *, cpl_error_code cpl_table_multiply_columns(cpl_table *,
const char *, const char *); const char *, const char *);
cpl_error_code cpl_table_divide_columns(cpl_table *, cpl_error_code cpl_table_divide_columns(cpl_table *,
const char *, const char *); const char *, const char *);
cpl_error_code cpl_table_add_scalar(cpl_table *, const char *, double); cpl_error_code cpl_table_add_scalar(cpl_table *, const char *, double);
cpl_error_code cpl_table_subtract_scalar(cpl_table *, const char *, double) ; cpl_error_code cpl_table_subtract_scalar(cpl_table *, const char *, double) ;
cpl_error_code cpl_table_multiply_scalar(cpl_table *, const char *, double) ; cpl_error_code cpl_table_multiply_scalar(cpl_table *, const char *, double) ;
cpl_error_code cpl_table_divide_scalar(cpl_table *, const char *, double); cpl_error_code cpl_table_divide_scalar(cpl_table *, const char *, double);
#ifdef _Complex_I
cpl_error_code cpl_table_add_scalar_complex(cpl_table *,
const char *, double complex);
cpl_error_code cpl_table_subtract_scalar_complex(cpl_table *,
const char *, double compl
ex);
cpl_error_code cpl_table_multiply_scalar_complex(cpl_table *,
const char *, double compl
ex);
cpl_error_code cpl_table_divide_scalar_complex(cpl_table *,
const char *, double complex
);
#endif
cpl_error_code cpl_table_abs_column(cpl_table *, const char *); cpl_error_code cpl_table_abs_column(cpl_table *, const char *);
cpl_error_code cpl_table_logarithm_column(cpl_table *, const char *, double ); cpl_error_code cpl_table_logarithm_column(cpl_table *, const char *, double );
cpl_error_code cpl_table_power_column(cpl_table *, const char *, double); cpl_error_code cpl_table_power_column(cpl_table *, const char *, double);
cpl_error_code cpl_table_exponential_column(cpl_table *, const char *, doub le); cpl_error_code cpl_table_exponential_column(cpl_table *, const char *, doub le);
cpl_error_code cpl_table_conjugate_column(cpl_table *, const char *);
cpl_error_code cpl_table_real_column(cpl_table *, const char *);
cpl_error_code cpl_table_imag_column(cpl_table *, const char *);
cpl_error_code cpl_table_arg_column(cpl_table *, const char *);
cpl_error_code cpl_table_erase_invalid_rows(cpl_table *); cpl_error_code cpl_table_erase_invalid_rows(cpl_table *);
cpl_error_code cpl_table_erase_invalid(cpl_table *); cpl_error_code cpl_table_erase_invalid(cpl_table *);
double cpl_table_get_column_max(const cpl_table *, const char *); double cpl_table_get_column_max(const cpl_table *, const char *);
double cpl_table_get_column_min(const cpl_table *, const char *); double cpl_table_get_column_min(const cpl_table *, const char *);
cpl_error_code cpl_table_get_column_maxpos(const cpl_table *, cpl_error_code cpl_table_get_column_maxpos(const cpl_table *,
const char *, int *); const char *, int *);
cpl_error_code cpl_table_get_column_minpos(const cpl_table *, cpl_error_code cpl_table_get_column_minpos(const cpl_table *,
const char *, int *); const char *, int *);
#ifdef _Complex_I
double complex cpl_table_get_column_mean_complex(const cpl_table *,
const char *);
#endif
double cpl_table_get_column_mean(const cpl_table *, const char *); double cpl_table_get_column_mean(const cpl_table *, const char *);
double cpl_table_get_column_median(const cpl_table *, const char *); double cpl_table_get_column_median(const cpl_table *, const char *);
double cpl_table_get_column_stdev(const cpl_table *, const char *); double cpl_table_get_column_stdev(const cpl_table *, const char *);
cpl_error_code cpl_table_sort(cpl_table *, const cpl_propertylist *); cpl_error_code cpl_table_sort(cpl_table *, const cpl_propertylist *);
int cpl_table_and_selected_window(cpl_table *, int, int); int cpl_table_and_selected_window(cpl_table *, int, int);
int cpl_table_or_selected_window(cpl_table *, int, int); int cpl_table_or_selected_window(cpl_table *, int, int);
int cpl_table_not_selected(cpl_table *); int cpl_table_not_selected(cpl_table *);
skipping to change at line 262 skipping to change at line 330
int cpl_table_and_selected_int(cpl_table *, const char *, int cpl_table_and_selected_int(cpl_table *, const char *,
cpl_table_select_operator, int); cpl_table_select_operator, int);
int cpl_table_or_selected_int(cpl_table *, const char *, int cpl_table_or_selected_int(cpl_table *, const char *,
cpl_table_select_operator, int); cpl_table_select_operator, int);
int cpl_table_and_selected_float(cpl_table *, const char *, int cpl_table_and_selected_float(cpl_table *, const char *,
cpl_table_select_operator, float); cpl_table_select_operator, float);
int cpl_table_or_selected_float(cpl_table *, const char *, int cpl_table_or_selected_float(cpl_table *, const char *,
cpl_table_select_operator, float); cpl_table_select_operator, float);
int cpl_table_and_selected_double(cpl_table *, const char *, int cpl_table_and_selected_double(cpl_table *, const char *,
cpl_table_select_operator, double); cpl_table_select_operator, double);
int cpl_table_or_selected_double(cpl_table *, const char *, int cpl_table_or_selected_double(cpl_table *, const char *,
cpl_table_select_operator, double); cpl_table_select_operator, double);
#ifdef _Complex_I
int cpl_table_and_selected_float_complex(cpl_table *, const char *,
cpl_table_select_operator, float comple
x);
int cpl_table_or_selected_float_complex(cpl_table *, const char *,
cpl_table_select_operator, float comple
x);
int cpl_table_and_selected_double_complex(cpl_table *, const char *,
cpl_table_select_operator, double comp
lex);
int cpl_table_or_selected_double_complex(cpl_table *, const char *,
cpl_table_select_operator, double comp
lex);
#endif
int cpl_table_and_selected_string(cpl_table *, const char *, int cpl_table_and_selected_string(cpl_table *, const char *,
cpl_table_select_operator, const char *); cpl_table_select_operator, const char *);
int cpl_table_or_selected_string(cpl_table *, const char *, int cpl_table_or_selected_string(cpl_table *, const char *,
cpl_table_select_operator, const char *); cpl_table_select_operator, const char *);
int cpl_table_and_selected(cpl_table *, const char *, int cpl_table_and_selected(cpl_table *, const char *,
cpl_table_select_operator, const char *); cpl_table_select_operator, const char *);
int cpl_table_or_selected(cpl_table *, const char *, int cpl_table_or_selected(cpl_table *, const char *,
cpl_table_select_operator, const char *); cpl_table_select_operator, const char *);
 End of changes. 15 change blocks. 
6 lines changed or deleted 103 lines changed or added


 cpl_test.h   cpl_test.h 
/* $Id: cpl_test.h,v 1.43 2010/02/26 14:05:00 llundin Exp $ /* $Id: cpl_test.h,v 1.58 2011/02/10 12:54:53 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/02/26 14:05:00 $ * $Date: 2011/02/10 12:54:53 $
* $Revision: 1.43 $ * $Revision: 1.58 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_TEST_H #ifndef CPL_TEST_H
#define CPL_TEST_H #define CPL_TEST_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
skipping to change at line 54 skipping to change at line 54
#include <cpl_imagelist.h> #include <cpl_imagelist.h>
#include <cpl_polynomial.h> #include <cpl_polynomial.h>
#include <cpl_errorstate.h> #include <cpl_errorstate.h>
#include <errno.h> #include <errno.h>
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Defines Defines
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#undef CPL_HAVE_GNUC_NONNULL
#if defined __GNUC__
#if __GNUC__ > 3 || __GNUC__ == 3 && defined __GNUC_MINOR__ && __GNUC_MINOR
__ > 2
#define CPL_HAVE_GNUC_NONNULL
#endif
#endif
#ifndef CPL_TEST_FITS #ifndef CPL_TEST_FITS
#define CPL_TEST_FITS "CPL_TEST_FITS" #define CPL_TEST_FITS "CPL_TEST_FITS"
#endif #endif
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Initialize CPL + CPL messaging + unit test @brief Initialize CPL + CPL messaging + unit test
@param REPORT The email address for the error message e.g. PACKAGE_BUGR EPORT @param REPORT The email address for the error message e.g. PACKAGE_BUGR EPORT
@param LEVEL The default messaging level, e.g. CPL_MSG_WARNING @param LEVEL The default messaging level, e.g. CPL_MSG_WARNING
@return void @return void
@see cpl_init() @see cpl_init()
@note This macro should be used at the beginning of main() of a unit te st @note This macro should be used at the beginning of main() of a unit te st
instead of cpl_init() and before any other CPL function call. instead of cpl_init() and before any other CPL function call.
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_init(REPORT, LEVEL) \ #define cpl_test_init(REPORT, LEVEL) \
cpl_test_init_macro(__FILE__, REPORT, LEVEL) cpl_test_init_macro(__FILE__, REPORT, LEVEL)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Evaluate an expression and increment an internal counter if zero @brief Evaluate an expression and increment an internal counter if zero
@param bool The expression to evaluate, side-effects are allowed @param bool The expression to evaluate, side-effects are allowed
@note A zero value of the expression is a failure, other values are no t @note A zero value of the expression is a failure, other values are no t
@return void @return void
@see cpl_test_init() @see cpl_test_init()
@note This macro should be used for unit tests @note This macro should be used for unit tests
Example of usage: Example of usage:
@code @code
cpl_test(myfunc()); // myfunc() is expected to return non-zero cpl_test(myfunc()); // myfunc() is expected to return non-zero
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test(bool) do { \ #define cpl_test(bool) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_macro(cpl_test_errno, cpl_test_time, cpl_test_flops, \
cpl_test_macro(cpl_test_errno, cpl_test_state, \ cpl_test_state, (bool) ? 1 : 0, CPL_TRUE, #bool, \
(bool) ? 1 : 0, CPL_TRUE, #bool, cpl_func, \ cpl_func, __FILE__, __LINE__); \
__FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Evaluate an expression and increment an internal counter if non- zero @brief Evaluate an expression and increment an internal counter if non- zero
@param zero The numerical expression to evaluate, side-effects are al lowed @param zero The numerical expression to evaluate, side-effects are al lowed
@note A zero value of the expression is a success, other values are no t @note A zero value of the expression is a success, other values are no t
@return void @return void
@see cpl_test() @see cpl_test()
@note This macro should be used for unit tests @note This macro should be used for unit tests
Example of usage: Example of usage:
@code @code
cpl_test_zero(myfunc()); // myfunc() is expected to return zero cpl_test_zero(myfunc()); // myfunc() is expected to return zero
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_zero(zero) do { \ #define cpl_test_zero(zero) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_macro(cpl_test_errno, cpl_test_time, cpl_test_flops, \
cpl_test_macro(cpl_test_errno, cpl_test_state, \ cpl_test_state, (zero) ? 1 : 0, CPL_FALSE, \
(zero) ? 1 : 0, CPL_FALSE, #zero, \ #zero, cpl_func, __FILE__, __LINE__); \
cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if a pointer is NULL and update an internal counter on failu re @brief Test if a pointer is NULL and update an internal counter on failu re
@param pointer The NULL-pointer to check, side-effects are allowed @param pointer The NULL-pointer to check, side-effects are allowed
@see cpl_test() @see cpl_test()
@return void @return void
Example of usage: Example of usage:
@code @code
cpl_test_null(pointer); // pointer is expected to be NULL cpl_test_null(pointer); // pointer is expected to be NULL
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_null(pointer) do { \ #define cpl_test_null(pointer) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_null_macro(cpl_test_errno, cpl_test_time, \
cpl_test_null_macro(cpl_test_errno, cpl_test_state, pointer, \ cpl_test_flops, cpl_test_state, pointer, \
#pointer, cpl_func, __FILE__, __LINE__); \ #pointer, cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if a pointer is non-NULL @brief Test if a pointer is non-NULL
@param pointer The pointer to check, side-effects are allowed @param pointer The pointer to check, side-effects are allowed
@see cpl_test_nonnull() @see cpl_test_nonnull()
@return void @return void
Example of usage: Example of usage:
@code @code
cpl_test_nonnull(pointer); // pointer is expected to be non-NULL cpl_test_nonnull(pointer); // pointer is expected to be non-NULL
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_nonnull(pointer) do { \ #define cpl_test_nonnull(pointer) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_nonnull_macro(cpl_test_errno, cpl_test_time, \
cpl_test_nonnull_macro(cpl_test_errno, cpl_test_state, \ cpl_test_flops, cpl_test_state, \
pointer, #pointer, cpl_func, \ pointer, #pointer, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test
@brief Test and if necessary reset the CPL errorstate
@param errorstate The expected CPL errorstate
@see cpl_test()
@note After the test, the CPL errorstate is set to the provided state
@return void
This function is useful for verifying that a successful call to a functio
n
does not modify any pre-existing errors.
Example of usage:
@code
const cpl_error_code error = cpl_error_set(cpl_func, CPL_ERROR_EOL);
cpl_errorstate prestate = cpl_errorstate_get();
const cpl_error_code ok = my_func(); // Expected to succeed
cpl_test_errorstate(prestate); // Verify that no additional errors occur
red
cpl_test_error(CPL_ERROR_EOL); // Reset error
cpl_test_eq(ok, CPL_ERROR_NONE); // Verify that my_func() succeeded
@endcode
*/
/*-------------------------------------------------------------------------
---*/
#define cpl_test_errorstate(errorstate) do { \
const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
cpl_test_errorstate_macro(cpl_test_errno, cpl_test_time, \
cpl_test_flops, cpl_test_state, \
errorstate, #errorstate, cpl_func, \
__FILE__, __LINE__); \
} while (0)
/*-------------------------------------------------------------------------
---*/
/**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test and reset the CPL error code @brief Test and reset the CPL error code
@param error The expected CPL error code (incl. CPL_ERROR_NONE) @param error The expected CPL error code (incl. CPL_ERROR_NONE)
@see cpl_test() @see cpl_test()
@note After the test, the CPL errorstate is reset @note After the test, the CPL errorstate is reset
@return void @return void
Example of usage: Example of usage:
@code @code
skipping to change at line 219 skipping to change at line 263
// The errorstate has been reset. // The errorstate has been reset.
cpl_test( !my_func(p) ); // my_func(p) is expected to return zero cpl_test( !my_func(p) ); // my_func(p) is expected to return zero
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_error(error) do { \ #define cpl_test_error(error) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_error_macro(cpl_test_errno, cpl_test_time, \
cpl_test_error_macro(cpl_test_errno, cpl_test_state, error, \ cpl_test_flops, cpl_test_state, error, \
#error, cpl_func, __FILE__, __LINE__); \ #error, cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two error expressions are equal and reset the CPL error c ode @brief Test if two error expressions are equal and reset the CPL error c ode
@param first The first value in the comparison @param first The first value in the comparison
@param second The second value in the comparison @param second The second value in the comparison
@see cpl_test_error @see cpl_test_error
@note If the two CPL error expressions are equal they will also be test ed @note If the two CPL error expressions are equal they will also be test ed
against the current CPL error code. After the test(s), the CPL against the current CPL error code. After the test(s), the CPL
errorstate is reset. errorstate is reset.
Example of usage: Example of usage:
skipping to change at line 256 skipping to change at line 303
error = my_func(p); // Successful call error = my_func(p); // Successful call
cpl_test_eq_error(error, CPL_ERROR_NONE); cpl_test_eq_error(error, CPL_ERROR_NONE);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_eq_error(first, second) do { \ #define cpl_test_eq_error(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_eq_error_macro(cpl_test_errno, cpl_test_time, \
cpl_test_eq_error_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, cpl_func, \ #first, second, #second, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two integer expressions are equal @brief Test if two integer expressions are equal
@param first The first value in the comparison, side-effects are al @param first The first value in the comparison, side-effects are allowe
lowed d
@param second The second value in the comparison, side-effects are a @param second The second value in the comparison, side-effects are allow
llowed ed
@see cpl_test() @see cpl_test()
@return void @return void
Example of usage: Example of usage:
@code @code
cpl_test_eq(computed, expected); cpl_test_eq(computed, expected);
@endcode @endcode
For comparison of floating point values, see cpl_test_abs() and For comparison of floating point values, see cpl_test_abs() and
cpl_test_rel(). cpl_test_rel().
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_eq(first, second) do { \ #define cpl_test_eq(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_eq_macro(cpl_test_errno, cpl_test_time, cpl_test_flops, \
cpl_test_eq_macro(cpl_test_errno, cpl_test_state, first, #first, \ cpl_test_state, first, #first, \
second, #second, cpl_func, __FILE__, __LINE__); \ second, #second, cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two integer expressions are not equal @brief Test if two integer expressions are not equal
@param first The first value in the comparison, side-effects are al @param first The first value in the comparison, side-effects are allowe
lowed d
@param second The second value in the comparison, side-effects are a @param second The second value in the comparison, side-effects are allow
llowed ed
@see cpl_test_eq() @see cpl_test_eq()
@return void @return void
Example of usage: Example of usage:
@code @code
cpl_test_noneq(computed, wrong); cpl_test_noneq(computed, wrong);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_noneq(first, second) do { \ #define cpl_test_noneq(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_noneq_macro(cpl_test_errno, cpl_test_time, \
cpl_test_noneq_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, cpl_func, \ #first, second, #second, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two pointer expressions are equal @brief Test if two pointer expressions are equal
@param first The first value in the comparison, side-effects are allo wed @param first The first value in the comparison, side-effects are allo wed
@param second The second value in the comparison, side-effects are all owed @param second The second value in the comparison, side-effects are all owed
@see cpl_test_eq() @see cpl_test_eq()
@return void @return void
Example of usage: Example of usage:
@code @code
cpl_test_eq_ptr(computed, expected); cpl_test_eq_ptr(computed, expected);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_eq_ptr(first, second) do { \ #define cpl_test_eq_ptr(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_eq_ptr_macro(cpl_test_errno, cpl_test_time, \
cpl_test_eq_ptr_macro(cpl_test_errno, cpl_test_state, first, #first cpl_test_flops, cpl_test_state, first, \
, \ #first, second, #second, cpl_func, \
second, #second, cpl_func, __FILE__, __LINE__ __FILE__, __LINE__); \
); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two pointer expressions are not equal @brief Test if two pointer expressions are not equal
@param first The first value in the comparison, side-effects are allo wed @param first The first value in the comparison, side-effects are allo wed
@param second The second value in the comparison, side-effects are all owed @param second The second value in the comparison, side-effects are all owed
@see cpl_test_eq_ptr() @see cpl_test_eq_ptr()
@return void @return void
Example of usage: Example of usage:
@code @code
cpl_test_noneq_ptr(computed, wrong); cpl_test_noneq_ptr(computed, wrong);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_noneq_ptr(first, second) do { \ #define cpl_test_noneq_ptr(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_noneq_ptr_macro(cpl_test_errno, cpl_test_time, \
cpl_test_noneq_ptr_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, cpl_func, \ #first, second, #second, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two strings are equal @brief Test if two strings are equal
@param first The first string or NULL of the comparison @param first The first string or NULL of the comparison
@param second The second string or NULL of the comparison @param second The second string or NULL of the comparison
@note One or two NULL pointer(s) is considered a failure. @note One or two NULL pointer(s) is considered a failure.
Example of usage: Example of usage:
@code @code
cpl_test_eq_string(computed, expected); cpl_test_eq_string(computed, expected);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_eq_string(first, second) do { \ #define cpl_test_eq_string(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_eq_string_macro(cpl_test_errno, cpl_test_time, \
cpl_test_eq_string_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, cpl_func, \ #first, second, #second, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0)
/*-------------------------------------------------------------------------
---*/
/**
@hideinitializer
@ingroup cpl_test
@brief Test if two strings are not equal
@param first The first string or NULL of the comparison
@param second The second string or NULL of the comparison
@note One or two NULL pointer(s) is considered a failure.
Example of usage:
@code
cpl_test_noneq_string(computed, expected);
@endcode
*/
/*-------------------------------------------------------------------------
---*/
#define cpl_test_noneq_string(first, second) do { \
const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
cpl_test_noneq_string_macro(cpl_test_errno, cpl_test_time, \
cpl_test_flops, cpl_test_state, \
first, #first, second, #second, \
cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if a file is valid FITS using an external verification utili ty @brief Test if a file is valid FITS using an external verification utili ty
@param fitsfile The file to verify, NULL causes failure @param fitsfile The file to verify, NULL causes failure
@note The external verification utility is specified with the environemt @note The external verification utility is specified with the environemt
variable CPL_TEST_FITS, if is not set the test will pass on any variable CPL_TEST_FITS, if is not set the test will pass on any
non-NULL file. non-NULL file.
Example of usage: Example of usage:
@code @code
skipping to change at line 426 skipping to change at line 521
@code @code
cpl_test_fits(fitsfile); cpl_test_fits(fitsfile);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_fits(fitsfile) do { \ #define cpl_test_fits(fitsfile) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_fits_macro(cpl_test_errno, cpl_test_time, \
cpl_test_fits_macro(cpl_test_errno, cpl_test_state, fitsfile, \ cpl_test_flops, cpl_test_state, fitsfile, \
#fitsfile, cpl_func, __FILE__, __LINE__); #fitsfile, cpl_func, __FILE__, __LINE__); \
\
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two CPL masks are equal @brief Test if two CPL masks are equal
@param first The first mask or NULL of the comparison @param first The first mask or NULL of the comparison
@param second The second mask or NULL of the comparison @param second The second mask or NULL of the comparison
@note One or two NULL pointer(s) is considered a failure. @note One or two NULL pointer(s) is considered a failure.
Example of usage: Example of usage:
@code @code
cpl_test_eq_mask(computed, expected); cpl_test_eq_mask(computed, expected);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_eq_mask(first, second) do { \ #define cpl_test_eq_mask(first, second) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_eq_mask_macro(cpl_test_errno, cpl_test_time, \
cpl_test_eq_mask_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, cpl_func, \ #first, second, #second, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Evaluate A <= B and increment an internal counter if it is not t rue @brief Evaluate A <= B and increment an internal counter if it is not t rue
@param value The number to test @param value The number to test
@param tolerance The upper limit to compare against @param tolerance The upper limit to compare against
@return void @return void
@see cpl_test_init() @see cpl_test_init()
@note This macro should be used for unit tests @note This macro should be used for unit tests
Example of usage: Example of usage:
@code @code
cpl_test_leq(fabs(myfunc(&p)), DBL_EPSILON); cpl_test_leq(fabs(myfunc(&p)), DBL_EPSILON);
cpl_test_nonnull(p); cpl_test_nonnull(p);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_leq(value, tolerance) do { \ #define cpl_test_leq(value, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_leq_macro(cpl_test_errno, cpl_test_time, \
cpl_test_leq_macro(cpl_test_errno, cpl_test_state, value, \ cpl_test_flops, cpl_test_state, value, \
#value, tolerance, #tolerance, cpl_func, \ #value, tolerance, #tolerance, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Evaluate A < B and increment an internal counter if it is not tr ue @brief Evaluate A < B and increment an internal counter if it is not tr ue
@param value The number to test @param value The number to test
@param tolerance The upper limit to compare against @param tolerance The upper limit to compare against
@return void @return void
@see cpl_test_init() @see cpl_test_init()
@note This macro should be used for unit tests @note This macro should be used for unit tests
Example of usage: Example of usage:
@code @code
cpl_test_lt(0.0, myfunc()); cpl_test_lt(0.0, myfunc());
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_lt(value, tolerance) do { \ #define cpl_test_lt(value, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_lt_macro(cpl_test_errno, cpl_test_time, \
cpl_test_lt_macro(cpl_test_errno, cpl_test_state, value, \ cpl_test_flops, cpl_test_state, value, \
#value, tolerance, #tolerance, cpl_func, \ #value, tolerance, #tolerance, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two numerical expressions are within a given absolute tol @brief Test if two numerical expressions are within a given absolute tole
erance rance
@param first The first value in the comparison, side-effects are al @param first The first value in the comparison, side-effects are allo
lowed wed
@param second The second value in the comparison, side-effects are a @param second The second value in the comparison, side-effects are all
llowed owed
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@note If the tolerance is negative, the test will always fail @note If the tolerance is negative, the test will always fail
@see cpl_test() @see cpl_test()
@return void
Example of usage: Example of usage:
@code @code
cpl_test_abs(computed, expected, DBL_EPSILON); cpl_test_abs(computed, expected, DBL_EPSILON);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_abs(first, second, tolerance) do { \ #define cpl_test_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_abs_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, tolerance, \ #first, second, #second, tolerance, \
#tolerance, cpl_func, __FILE__, __LINE__); \ #tolerance, cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
#ifdef _Complex_I
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test
@brief Test if two complex expressions are within a given absolute tolera
nce
@param first The first value in the comparison, side-effects are allo
wed
@param second The second value in the comparison, side-effects are all
owed
@param tolerance A non-negative tolerance
@note If the tolerance is negative, the test will always fail
@see cpl_test()
Example of usage:
@code
cpl_test_abs_complex(computed, expected, DBL_EPSILON);
@endcode
*/
/*-------------------------------------------------------------------------
---*/
#define cpl_test_abs_complex(first, second, tolerance) do { \
const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
cpl_test_abs_complex_macro(cpl_test_errno, cpl_test_time, \
cpl_test_flops, cpl_test_state, first, \
#first, second, #second, tolerance, \
#tolerance, cpl_func, __FILE__, __LINE__); \
} while (0)
#endif
/*-------------------------------------------------------------------------
---*/
/**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two vectors are identical within a given (absolute) toler ance @brief Test if two vectors are identical within a given (absolute) toler ance
@param first The first vector in the comparison @param first The first vector in the comparison
@param second The second vector of identical size in the comparison @param second The second vector of identical size in the comparison
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@return void @return void
@see cpl_test_abs() @see cpl_test_abs()
@note The test will fail if one or both the vectors are NULL @note The test will fail if one or both the vectors are NULL
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_vector_abs(first, second, tolerance) do { \ #define cpl_test_vector_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_vector_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_vector_abs_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, \
#first, second, #second, tolerance, \ first, #first, second, #second, \
#tolerance, cpl_func, __FILE__, __LINE__ tolerance, #tolerance, cpl_func, \
); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test
@brief Test if two matrices are identical within a given (absolute) tole
rance
@param first The first matrix in the comparison
@param second The second matrix of identical size in the comparison
@param tolerance A non-negative tolerance
@return void
@see cpl_test_abs()
@note The test will fail if one or both the matrices are NULL
*/
/*-------------------------------------------------------------------------
---*/
#define cpl_test_matrix_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
cpl_test_matrix_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_flops, cpl_test_state, \
first, #first, second, #second, \
tolerance, #tolerance, cpl_func, \
__FILE__, __LINE__); \
} while (0)
/*-------------------------------------------------------------------------
---*/
/**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two numerical arrays are identical within a given (absolu te) @brief Test if two numerical arrays are identical within a given (absolu te)
tolerance tolerance
@param first The first array in the comparison @param first The first array in the comparison
@param second The second array of identical size in the comparison @param second The second array of identical size in the comparison
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@return void @return void
@see cpl_test_abs() @see cpl_test_abs()
@note The test will fail if one or both the arrays are NULL or of a @note The test will fail if one or both the arrays are NULL or of a
non-numerical type non-numerical type
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_array_abs(first, second, tolerance) do { \ #define cpl_test_array_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_array_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_array_abs_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, tolerance, \ #first, second, #second, tolerance, \
#tolerance, cpl_func, __FILE__, __LINE__) ; \ #tolerance, cpl_func, __FILE__, __LINE__) ; \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two images are identical within a given (absolute) tolera nce @brief Test if two images are identical within a given (absolute) tolera nce
@param first The first image in the comparison @param first The first image in the comparison
@param second The second image of identical size in the comparison @param second The second image of identical size in the comparison
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@return void @return void
@see cpl_test_abs() @see cpl_test_abs()
@note The test will fail if one or both the images are NULL @note The test will fail if one or both the images are NULL
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_image_abs(first, second, tolerance) do { \ #define cpl_test_image_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_image_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_image_abs_macro(cpl_test_errno, cpl_test_state, first, \ cpl_test_flops, cpl_test_state, first, \
#first, second, #second, tolerance, \ #first, second, #second, tolerance, \
#tolerance, cpl_func, __FILE__, __LINE__) ; \ #tolerance, cpl_func, __FILE__, __LINE__) ; \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two imagelists are identical within a given (absolute) @brief Test if two imagelists are identical within a given (absolute)
tolerance tolerance
@param first The first imagelist in the comparison @param first The first imagelist in the comparison
@param second The second imagelist of identical size in the compari son @param second The second imagelist of identical size in the compari son
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@return void @return void
@see cpl_test_image_abs() @see cpl_test_image_abs()
@note The test will fail if one or both the imagelists are NULL @note The test will fail if one or both the imagelists are NULL
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_imagelist_abs(first, second, tolerance) do { \ #define cpl_test_imagelist_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_imagelist_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_imagelist_abs_macro(cpl_test_errno, cpl_test_state, \ cpl_test_flops, cpl_test_state, \
first, #first, second, #second, \ first, #first, second, #second, \
tolerance, #tolerance, cpl_func, \ tolerance, #tolerance, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two polynomials are identical within a given (absolute) @brief Test if two polynomials are identical within a given (absolute)
tolerance tolerance
@param first The first polynomial in the comparison @param first The first polynomial in the comparison
@param second The second polynomial in the comparison @param second The second polynomial in the comparison
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@return void @return void
@see cpl_test_abs() @see cpl_test_abs()
@note The test will fail if one or both the polynomials are NULL @note The test will fail if one or both the polynomials are NULL
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_polynomial_abs(first, second, tolerance) do { \ #define cpl_test_polynomial_abs(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_polynomial_abs_macro(cpl_test_errno, cpl_test_time, \
cpl_test_polynomial_abs_macro(cpl_test_errno, cpl_test_state, \ cpl_test_flops, cpl_test_state, \
first, #first, second, #second, \ first, #first, second, #second, \
tolerance, #tolerance, cpl_func, \ tolerance, #tolerance, cpl_func, \
__FILE__, __LINE__); \ __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if two numerical expressions are within a given relative tol @brief Test if two numerical expressions are within a given relative tole
erance rance
@param first The first value in the comparison, side-effects are al @param first The first value in the comparison, side-effects are allo
lowed wed
@param second The second value in the comparison, side-effects are a @param second The second value in the comparison, side-effects are all
llowed owed
@param tolerance A non-negative tolerance @param tolerance A non-negative tolerance
@note If the tolerance is negative or if one but not both of the two va @note If the tolerance is negative or if one but not both of the two val
lues ues
is zero, the test will always fail. if both values are zero, the is zero, the test will always fail. if both values are zero, the t
test est
will succeed for any non-negative tolerance. The test is commutat will succeed for any non-negative tolerance. The test is commutati
ive ve
in the two values. in the two values.
@see cpl_test() @see cpl_test()
@return void
The test is carried out by comparing the absolute value of the difference The test is carried out by comparing the absolute value of the difference
abs (@em first - @em second) abs (@em first - @em second)
to the product of the tolerance and the minimum of the absolute value of to the product of the tolerance and the minimum of the absolute value of
the two values, the two values,
tolerance * min(abs(@em first), abs(@em second)) tolerance * min(abs(@em first), abs(@em second))
(The test is implemented like this to avoid division with a number that m ay (The test is implemented like this to avoid division with a number that m ay
be zero. be zero.
Example of usage: Example of usage:
@code @code
cpl_test_rel(computed, expected, 0.001); cpl_test_rel(computed, expected, 0.001);
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_rel(first, second, tolerance) do { \ #define cpl_test_rel(first, second, tolerance) do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_rel_macro(cpl_test_errno, cpl_test_time, \
cpl_test_rel_macro(cpl_test_errno, cpl_test_state, first, #first, \ cpl_test_flops, cpl_test_state, first, \
second, #second, tolerance, #tolerance, \ #first, second, #second, tolerance, \
cpl_func, __FILE__, __LINE__); \ #tolerance, cpl_func, __FILE__, __LINE__); \
} while (0) } while (0)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Test if the memory system is empty @brief Test if the memory system is empty
@see cpl_memory_is_empty() @see cpl_memory_is_empty()
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_test_memory_is_empty() do { \ #define cpl_test_memory_is_empty() do { \
const int cpl_test_errno = errno; \ const int cpl_test_errno = errno; \
const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \ cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
errno = 0; \ cpl_test_memory_is_empty_macro(cpl_test_errno, cpl_test_time, \
cpl_test_memory_is_empty_macro(cpl_test_errno, cpl_test_state, \ cpl_test_flops, cpl_test_state, \
cpl_func, __FILE__, __LINE__) cpl_func, __FILE__, __LINE__)
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
/** /**
@hideinitializer
@ingroup cpl_test @ingroup cpl_test
@brief Evaluate an expression and return if it fails @brief Evaluate an expression and return if it fails
@param bool The (boolean) expression to evaluate, side-effects are al lowed @param bool The (boolean) expression to evaluate, side-effects are al lowed
@note A zero value of the expression is a failure, other values are no t @note A zero value of the expression is a failure, other values are no t
@return void @return void
@see cpl_test() @see cpl_test()
@note This macro should be used for unit tests that cannot continue aft er @note This macro should be used for unit tests that cannot continue aft er
a failure. a failure.
Example of usage: Example of usage:
@code @code
int main (void) int main (void)
{ {
cpl_test_init(CPL_MSG_WARNING); cpl_test_init(CPL_MSG_WARNING);
cpl_test(myfunc(&p)); cpl_test(myfunc(&p));
cpl_assert(p != NULL); cpl_test_assert(p != NULL);
cpl_test(*p); cpl_test(*p);
return cpl_test_end(0); return cpl_test_end(0);
} }
@endcode @endcode
*/ */
/*------------------------------------------------------------------------- ---*/ /*------------------------------------------------------------------------- ---*/
#define cpl_assert(bool) do { \ #define cpl_test_assert(bool) do { \
const int cpl_assert_errno = errno; \ const int cpl_test_errno = errno; \
cpl_errorstate cpl_assert_state = cpl_errorstate_get(); \ const cpl_flops cpl_test_flops = cpl_test_get_flops(); \
const double cpl_test_time = cpl_test_get_walltime(); \
cpl_errorstate cpl_test_state = cpl_errorstate_get(); \
/* Evaluate bool just once */ \ /* Evaluate bool just once */ \
const cpl_boolean cpl_assert_ok = (bool) ? CPL_TRUE : CPL_FALSE; \ const cpl_boolean cpl_test_ok = (bool) ? CPL_TRUE : CPL_FALSE; \
cpl_test_macro(cpl_assert_errno, cpl_assert_state, cpl_assert_ok, \ cpl_test_macro(cpl_test_errno, cpl_test_time, cpl_test_flops, \
CPL_TRUE, #bool, cpl_func, __FILE__, __LINE__); \ cpl_test_state, cpl_test_ok, CPL_TRUE, #bool, \
if (cpl_assert_ok == CPL_FALSE) return cpl_test_end(0); \ cpl_func, __FILE__, __LINE__); \
if (cpl_test_ok == CPL_FALSE) return cpl_test_end(0); \
} while (0) } while (0)
/* Acceptable error margin */ /* Deprecated. Do not use */
/* Should be set to 1.0 in development, can be set to 2.0 in deliveries */ #define cpl_assert cpl_test_assert
#ifndef cpl_error_margin #ifndef cpl_error_margin
/* Deprecated. Do not use */
#define cpl_error_margin 2.0 #define cpl_error_margin 2.0
#endif #endif
typedef unsigned long long int cpl_flops;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
void cpl_test_init_macro(const char *, const char *, cpl_msg_severity) void cpl_test_init_macro(const char *, const char *,
#ifdef CPL_HAVE_GNUC_NONNULL cpl_msg_severity) CPL_ATTR_NONNULL;
__attribute__((nonnull))
#endif
;
int cpl_test_end(int); int cpl_test_end(int);
void cpl_test_macro(int, cpl_errorstate, int, cpl_boolean, const char *, void cpl_test_macro(int, double, cpl_flops, cpl_errorstate, int, cpl_boolea
const char *, const char *, unsigned) n,
#ifdef CPL_HAVE_GNUC_NONNULL const char *, const char *,
__attribute__((nonnull)) const char *, unsigned) CPL_ATTR_NONNULL;
#endif
;
void cpl_test_error_macro(int, cpl_errorstate, cpl_error_code, const char * void cpl_test_errorstate_macro(int, double, cpl_flops, cpl_errorstate,
, cpl_errorstate, const char *, const char *,
const char *, const char *, unsigned) const char *, unsigned) CPL_ATTR_NONNULL;
#ifdef CPL_HAVE_GNUC_NONNULL
__attribute__((nonnull))
#endif
;
void cpl_test_eq_error_macro(int, cpl_errorstate, cpl_error_code, const cha void cpl_test_error_macro(int, double, cpl_flops, cpl_errorstate,
r *, cpl_error_code, const char *, const char *,
cpl_error_code, const char *, const char *, unsigned) CPL_ATTR_NONNULL;
const char *, const char *, unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL
__attribute__((nonnull))
#endif
;
void cpl_test_null_macro(int, cpl_errorstate, const void *, const char *, void cpl_test_eq_error_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const char *, unsigned) cpl_error_code, const char *, cpl_error_code,
#ifdef CPL_HAVE_GNUC_NONNULL const char *, const char *,
__attribute__((nonnull(4, 5, 6))) const char *, unsigned) CPL_ATTR_NONNULL;
#endif
;
void cpl_test_nonnull_macro(int, cpl_errorstate, const void *, const char *
,
const char *, const char *, unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL
__attribute__((nonnull(4, 5, 6)))
#endif
;
void cpl_test_eq_macro(int, cpl_errorstate, int, const char *, int,
const char *, const char *, const char *, unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL
__attribute__((nonnull))
#endif
;
void cpl_test_noneq_macro(int, cpl_errorstate, int, const char *, int, void cpl_test_null_macro(int, double, cpl_flops, cpl_errorstate, const void
const char *, const char *, const char *, unsigne *,
d) const char *, const char *, const char *, unsigned
#ifdef CPL_HAVE_GNUC_NONNULL )
__attribute__((nonnull)) #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 7, 8)))
#endif #endif
; ;
void cpl_test_nonnull_macro(int, double, cpl_flops, cpl_errorstate,
void cpl_test_eq_ptr_macro(int, cpl_errorstate, const void *, const char *, const void *, const char *, const char *,
const void *, const char *, const char *, const char *, unsigned)
const char *, unsigned) #ifdef CPL_HAVE_ATTR_NONNULL
#ifdef CPL_HAVE_GNUC_NONNULL __attribute__((nonnull(6, 7, 8)))
__attribute__((nonnull(4, 6, 7, 8)))
#endif #endif
; ;
void cpl_test_eq_macro(int, double, cpl_flops, cpl_errorstate, int,
const char *, int, const char *, const char *,
const char *, unsigned) CPL_ATTR_NONNULL;
void cpl_test_noneq_ptr_macro(int, cpl_errorstate, const void *, const char void cpl_test_noneq_macro(int, double, cpl_flops, cpl_errorstate, int,
*, const char *, int, const char *, const char *,
const void *, const char *, const char *, const char *, unsigned) CPL_ATTR_NONNULL;
const char *, unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL void cpl_test_eq_ptr_macro(int, double, cpl_flops, cpl_errorstate, const vo
__attribute__((nonnull(4, 6, 7, 8))) id *,
const char *, const void *, const char *,
const char *, const char *, unsigned)
#ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 8, 9, 10)))
#endif #endif
; ;
void cpl_test_eq_string_macro(int, cpl_errorstate, const char *, const cha void cpl_test_noneq_ptr_macro(int, double, cpl_flops, cpl_errorstate,
r *, const void *, const char *, const void *,
const char *, const char *, const char *, const char *, const char *, const char *,
const char *, unsigned) unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(4, 6, 7, 8))) __attribute__((nonnull(6, 8, 9, 10)))
#endif #endif
; ;
void cpl_test_fits_macro(int, cpl_errorstate, const char *, const char *, void cpl_test_eq_string_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const char *, unsigned) const char *, const char *, const char *,
#ifdef CPL_HAVE_GNUC_NONNULL const char *, const char *, const char *,
__attribute__((nonnull(4, 5, 6))) unsigned)
#ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 8, 9, 10)))
#endif #endif
; ;
void cpl_test_eq_mask_macro(int, cpl_errorstate, const cpl_mask *, void cpl_test_noneq_string_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const cpl_mask *, const char *, const char *, const char *, const char *,
const char *, const char *, unsigned) const char *, const char *, const char *,
#ifdef CPL_HAVE_GNUC_NONNULL unsigned)
__attribute__((nonnull(4, 6, 7, 8))) #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 8, 9, 10)))
#endif #endif
; ;
void cpl_test_leq_macro(int, cpl_errorstate, double, const char *, double, void cpl_test_fits_macro(int, double, cpl_flops, cpl_errorstate, const char
const char *, const char *, const char *, unsigned) *,
#ifdef CPL_HAVE_GNUC_NONNULL const char *, const char *, const char *, unsigned
__attribute__((nonnull)) )
#ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 7, 8)))
#endif #endif
; ;
void cpl_test_lt_macro(int, cpl_errorstate, double, const char *, double, void cpl_test_eq_mask_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const char *, const char *, unsigned) const cpl_mask *, const char *, const cpl_mask
#ifdef CPL_HAVE_GNUC_NONNULL *,
__attribute__((nonnull)) const char *, const char *, const char *, unsig
ned)
#ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 8, 9, 10)))
#endif #endif
; ;
void cpl_test_abs_macro(int, cpl_errorstate, double, const char *, double, void cpl_test_leq_macro(int, double, cpl_flops, cpl_errorstate, double,
const char *, double, const char *, const char *, const char *, double, const char *, const char *,
const char *, unsigned) const char *, unsigned) CPL_ATTR_NONNULL;
#ifdef CPL_HAVE_GNUC_NONNULL
__attribute__((nonnull)) void cpl_test_lt_macro(int, double, cpl_flops, cpl_errorstate, double,
const char *, double, const char *, const char *,
const char *, unsigned) CPL_ATTR_NONNULL;
void cpl_test_abs_macro(int, double, cpl_flops, cpl_errorstate, double,
const char *, double, const char *, double,
const char *, const char *, const char *,
unsigned) CPL_ATTR_NONNULL;
#ifdef _Complex_I
void cpl_test_abs_complex_macro(int, double, cpl_flops, cpl_errorstate,
double complex, const char *,
double complex, const char *, double,
const char *, const char *, const char *,
unsigned) CPL_ATTR_NONNULL;
#endif #endif
;
void cpl_test_rel_macro(int, cpl_errorstate, double, const char *, double, void cpl_test_rel_macro(int, double, cpl_flops, cpl_errorstate, double,
const char *, double, const char *, const char *, const char *, double, const char *, double,
const char *, unsigned) const char *, const char *, const char *,
#ifdef CPL_HAVE_GNUC_NONNULL unsigned) CPL_ATTR_NONNULL;
__attribute__((nonnull))
void cpl_test_vector_abs_macro(int, double, cpl_flops, cpl_errorstate,
const cpl_vector *, const char *,
const cpl_vector *, const char *,
double, const char *, const char *,
const char *, unsigned)
#ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(6, 8, 10, 11, 12)))
#endif #endif
; ;
void cpl_test_vector_abs_macro(int, cpl_errorstate, const cpl_vector *, void cpl_test_matrix_abs_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const cpl_vector *, const char const cpl_matrix *, const char *,
*, const cpl_matrix *, const char *,
double, const char *, const char *, const cha double, const char *, const char *,
r *, const char *, unsigned)
unsigned) #ifdef CPL_HAVE_ATTR_NONNULL
#ifdef CPL_HAVE_GNUC_NONNULL __attribute__((nonnull(6, 8, 10, 11, 12)))
__attribute__((nonnull(4, 6, 8, 9, 10)))
#endif #endif
; ;
void cpl_test_array_abs_macro(int, cpl_errorstate, const cpl_array *, void cpl_test_array_abs_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const cpl_array *, const char * const cpl_array *, const char *,
, const cpl_array *, const char *, double,
double, const char *, const char *, const cha const char *, const char *, const char *,
r *,
unsigned) unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(4, 6, 8, 9, 10))) __attribute__((nonnull(6, 8, 10, 11, 12)))
#endif #endif
; ;
void cpl_test_image_abs_macro(int, cpl_errorstate, const cpl_image *, void cpl_test_image_abs_macro(int, double, cpl_flops, cpl_errorstate,
const char *, const cpl_image *, const char * const cpl_image *, const char *,
, const cpl_image *, const char *, double,
double, const char *, const char *, const cha const char *, const char *, const char *,
r *,
unsigned) unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(4, 6, 8, 9, 10))) __attribute__((nonnull(6, 8, 10, 11, 12)))
#endif #endif
; ;
void cpl_test_imagelist_abs_macro(int, cpl_errorstate, void cpl_test_imagelist_abs_macro(int, double, cpl_flops, cpl_errorstate,
const cpl_imagelist *, const cpl_imagelist *,
const char *, const char *,
const cpl_imagelist *, const cpl_imagelist *,
const char *, const char *,
double, const char *, double, const char *,
const char *, const char *, const char *, const char *,
unsigned ) unsigned )
#ifdef CPL_HAVE_GNUC_NONNULL #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(4, 6, 8, 9, 10))) __attribute__((nonnull(6, 8, 10, 11, 12)))
#endif #endif
; ;
void cpl_test_polynomial_abs_macro(int, cpl_errorstate, const cpl_polynomia void cpl_test_polynomial_abs_macro(int, double, cpl_flops, cpl_errorstate,
l *, const cpl_polynomial *,
const char *, const cpl_polynomial *, const char *, const cpl_polynomial *,
const char *, double, const char *, const char *, double, const char *,
const char *, const char *, unsigned) const char *, const char *, unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL #ifdef CPL_HAVE_ATTR_NONNULL
__attribute__((nonnull(4, 6, 8, 9, 10))) __attribute__((nonnull(6, 8, 10, 11, 12)))
#endif #endif
; ;
void cpl_test_memory_is_empty_macro(int, cpl_errorstate, const char *, void cpl_test_memory_is_empty_macro(int, double, cpl_flops, cpl_errorstate,
const char *, unsigned) const char *, const char *, unsigned)
#ifdef CPL_HAVE_GNUC_NONNULL CPL_ATTR_NONNULL;
__attribute__((nonnull))
#endif
;
double cpl_test_get_cputime(void); double cpl_test_get_cputime(void);
double cpl_test_get_walltime(void); double cpl_test_get_walltime(void);
size_t cpl_test_get_bytes_vector(const cpl_vector *) size_t cpl_test_get_bytes_vector(const cpl_vector *) CPL_ATTR_PURE;
#ifdef __GNUC__ size_t cpl_test_get_bytes_matrix(const cpl_matrix *) CPL_ATTR_PURE;
__attribute__((pure)) size_t cpl_test_get_bytes_image(const cpl_image *) CPL_ATTR_PURE;
#endif size_t cpl_test_get_bytes_imagelist(const cpl_imagelist *) CPL_ATTR_PURE;
;
size_t cpl_test_get_bytes_matrix(const cpl_matrix *) cpl_flops cpl_test_get_flops(void) CPL_ATTR_PURE;
#ifdef __GNUC__
__attribute__((pure))
#endif
;
size_t cpl_test_get_bytes_image(const cpl_image *)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
size_t cpl_test_get_bytes_imagelist(const cpl_imagelist *)
#ifdef __GNUC__
__attribute__((pure))
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 118 change blocks. 
271 lines changed or deleted 463 lines changed or added


 cpl_type.h   cpl_type.h 
/* $Id: cpl_type.h,v 1.15 2009/10/19 07:44:57 cizzo Exp $ /* $Id: cpl_type.h,v 1.17 2010/11/11 09:23:18 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: cizzo $ * $Author: llundin $
* $Date: 2009/10/19 07:44:57 $ * $Date: 2010/11/11 09:23:18 $
* $Revision: 1.15 $ * $Revision: 1.17 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_TYPE_H #ifndef CPL_TYPE_H
#define CPL_TYPE_H #define CPL_TYPE_H
#include <cpl_macros.h> #include <cpl_macros.h>
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/** /**
skipping to change at line 169 skipping to change at line 169
typedef enum _cpl_type_ cpl_type; typedef enum _cpl_type_ cpl_type;
enum _cpl_boolean_ { enum _cpl_boolean_ {
CPL_FALSE = 0, CPL_FALSE = 0,
CPL_TRUE = !CPL_FALSE CPL_TRUE = !CPL_FALSE
}; };
typedef enum _cpl_boolean_ cpl_boolean; typedef enum _cpl_boolean_ cpl_boolean;
size_t cpl_type_get_sizeof(cpl_type type) size_t cpl_type_get_sizeof(cpl_type type) CPL_ATTR_CONST;
#ifdef __GNUC__
__attribute__((const))
#endif
;
const char * cpl_type_get_name(cpl_type type); const char * cpl_type_get_name(cpl_type type);
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_TYPE_H */ #endif /* CPL_TYPE_H */
 End of changes. 4 change blocks. 
11 lines changed or deleted 7 lines changed or added


 cpl_vector.h   cpl_vector.h 
/* $Id: cpl_vector.h,v 1.59 2010/03/11 17:17:18 llundin Exp $ /* $Id: cpl_vector.h,v 1.62 2010/12/13 11:02:43 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2008 European Southern Observatory * Copyright (C) 2001-2008 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2010/03/11 17:17:18 $ * $Date: 2010/12/13 11:02:43 $
* $Revision: 1.59 $ * $Revision: 1.62 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_VECTOR_H #ifndef CPL_VECTOR_H
#define CPL_VECTOR_H #define CPL_VECTOR_H
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Includes Includes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
#include <stdio.h> #include <stdio.h>
skipping to change at line 48 skipping to change at line 48
#include "cpl_propertylist.h" #include "cpl_propertylist.h"
#include "cpl_matrix.h" #include "cpl_matrix.h"
#include "cpl_io.h" #include "cpl_io.h"
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Defines Defines
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/*-------------------------------------------------------------------------
---
Defines
--------------------------------------------------------------------------
--*/
#undef CPL_HAVE_GNUC_UNUSED_RESULT
#if defined __GNUC__ && __GNUC__ > 3
#define CPL_HAVE_GNUC_UNUSED_RESULT
#endif
#ifndef CPL_KERNEL_DEFAULT #ifndef CPL_KERNEL_DEFAULT
#define CPL_KERNEL_DEFAULT CPL_KERNEL_TANH #define CPL_KERNEL_DEFAULT CPL_KERNEL_TANH
#endif #endif
/* Suggested resolution of interpolation profile */ /* Suggested resolution of interpolation profile */
#ifndef CPL_KERNEL_TABSPERPIX #ifndef CPL_KERNEL_TABSPERPIX
#define CPL_KERNEL_TABSPERPIX 1000 #define CPL_KERNEL_TABSPERPIX 1000
#endif #endif
/* Suggested radius of pixel interpolation */ /* Suggested radius of pixel interpolation */
skipping to change at line 110 skipping to change at line 100
CPL_FIT_CENTROID = 1 << 1, CPL_FIT_CENTROID = 1 << 1,
CPL_FIT_STDEV = 1 << 2, CPL_FIT_STDEV = 1 << 2,
CPL_FIT_AREA = 1 << 3, CPL_FIT_AREA = 1 << 3,
CPL_FIT_OFFSET = 1 << 4, CPL_FIT_OFFSET = 1 << 4,
CPL_FIT_ALL = (1 << 1) | CPL_FIT_ALL = (1 << 1) |
(1 << 2) | (1 << 2) |
(1 << 3) | (1 << 3) |
(1 << 4) (1 << 4)
} cpl_fit_mode; } cpl_fit_mode;
typedef enum {
/* Must use these values for backwards compatability of cpl_vector_sort
() */
CPL_SORT_DESCENDING = -1,
CPL_SORT_ASCENDING = 1
} cpl_sort_direction;
typedef struct _cpl_vector_ cpl_vector; typedef struct _cpl_vector_ cpl_vector;
/*------------------------------------------------------------------------- ---- /*------------------------------------------------------------------------- ----
Function prototypes Function prototypes
-------------------------------------------------------------------------- ---*/ -------------------------------------------------------------------------- ---*/
/* Constructors and destructors */ /* Constructors and destructors */
cpl_vector * cpl_vector_new(int) cpl_vector * cpl_vector_new(int) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT cpl_vector * cpl_vector_wrap(int, double *) CPL_ATTR_ALLOC;
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
cpl_vector * cpl_vector_wrap(int, double *)
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
void cpl_vector_delete(cpl_vector *); void cpl_vector_delete(cpl_vector *);
void * cpl_vector_unwrap(cpl_vector *); void * cpl_vector_unwrap(cpl_vector *);
cpl_vector * cpl_vector_read(const char *) cpl_vector * cpl_vector_read(const char *) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
void cpl_vector_dump(const cpl_vector *, FILE *); void cpl_vector_dump(const cpl_vector *, FILE *);
cpl_vector * cpl_vector_load(const char *, int) cpl_vector * cpl_vector_load(const char *, int) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
cpl_error_code cpl_vector_save(const cpl_vector *, const char *, cpl_type_b pp, cpl_error_code cpl_vector_save(const cpl_vector *, const char *, cpl_type_b pp,
const cpl_propertylist *, unsigned); const cpl_propertylist *, unsigned);
cpl_vector * cpl_vector_duplicate(const cpl_vector *) cpl_vector * cpl_vector_duplicate(const cpl_vector *) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
cpl_error_code cpl_vector_copy(cpl_vector *, const cpl_vector *); cpl_error_code cpl_vector_copy(cpl_vector *, const cpl_vector *);
/* Accessor functions */ /* Accessor functions */
int cpl_vector_get_size(const cpl_vector *); int cpl_vector_get_size(const cpl_vector *);
double * cpl_vector_get_data(cpl_vector *); double * cpl_vector_get_data(cpl_vector *);
const double * cpl_vector_get_data_const(const cpl_vector *); const double * cpl_vector_get_data_const(const cpl_vector *);
double cpl_vector_get(const cpl_vector *, int); double cpl_vector_get(const cpl_vector *, int);
cpl_error_code cpl_vector_set_size(cpl_vector *, int); cpl_error_code cpl_vector_set_size(cpl_vector *, int);
cpl_error_code cpl_vector_set(cpl_vector *, int, double); cpl_error_code cpl_vector_set(cpl_vector *, int, double);
/* Basic operations */ /* Basic operations */
cpl_error_code cpl_vector_add(cpl_vector *, const cpl_vector *); cpl_error_code cpl_vector_add(cpl_vector *, const cpl_vector *);
cpl_error_code cpl_vector_subtract(cpl_vector *, const cpl_vector *); cpl_error_code cpl_vector_subtract(cpl_vector *, const cpl_vector *);
cpl_error_code cpl_vector_multiply(cpl_vector *, const cpl_vector *); cpl_error_code cpl_vector_multiply(cpl_vector *, const cpl_vector *);
cpl_error_code cpl_vector_divide(cpl_vector *, const cpl_vector *); cpl_error_code cpl_vector_divide(cpl_vector *, const cpl_vector *);
double cpl_vector_product(const cpl_vector *, const cpl_vector *); double cpl_vector_product(const cpl_vector *, const cpl_vector *);
cpl_error_code cpl_vector_sort(cpl_vector *, int); cpl_error_code cpl_vector_sort(cpl_vector *, cpl_sort_direction);
cpl_error_code cpl_vector_add_scalar(cpl_vector *, double); cpl_error_code cpl_vector_add_scalar(cpl_vector *, double);
cpl_error_code cpl_vector_subtract_scalar(cpl_vector *, double); cpl_error_code cpl_vector_subtract_scalar(cpl_vector *, double);
cpl_error_code cpl_vector_multiply_scalar(cpl_vector *, double); cpl_error_code cpl_vector_multiply_scalar(cpl_vector *, double);
cpl_error_code cpl_vector_divide_scalar(cpl_vector *, double); cpl_error_code cpl_vector_divide_scalar(cpl_vector *, double);
cpl_error_code cpl_vector_logarithm(cpl_vector *, double); cpl_error_code cpl_vector_logarithm(cpl_vector *, double);
cpl_error_code cpl_vector_exponential(cpl_vector *, double); cpl_error_code cpl_vector_exponential(cpl_vector *, double);
cpl_error_code cpl_vector_power(cpl_vector *, double); cpl_error_code cpl_vector_power(cpl_vector *, double);
cpl_error_code cpl_vector_fill(cpl_vector *, double); cpl_error_code cpl_vector_fill(cpl_vector *, double);
cpl_error_code cpl_vector_sqrt(cpl_vector *); cpl_error_code cpl_vector_sqrt(cpl_vector *);
int cpl_vector_find(const cpl_vector *, double); int cpl_vector_find(const cpl_vector *, double);
cpl_vector * cpl_vector_extract(const cpl_vector *, int, int, int); cpl_vector * cpl_vector_extract(const cpl_vector *, int,
int, int) CPL_ATTR_ALLOC;
/* Statistics on cpl_vector */ /* Statistics on cpl_vector */
double cpl_vector_get_min(const cpl_vector *); double cpl_vector_get_min(const cpl_vector *);
double cpl_vector_get_max(const cpl_vector *); double cpl_vector_get_max(const cpl_vector *);
double cpl_vector_get_mean(const cpl_vector *); double cpl_vector_get_mean(const cpl_vector *);
double cpl_vector_get_median(cpl_vector *); double cpl_vector_get_median(cpl_vector *);
double cpl_vector_get_median_const(const cpl_vector *); double cpl_vector_get_median_const(const cpl_vector *);
double cpl_vector_get_stdev(const cpl_vector *); double cpl_vector_get_stdev(const cpl_vector *);
int cpl_vector_correlate(cpl_vector *, const cpl_vector *, const cpl_vector *); int cpl_vector_correlate(cpl_vector *, const cpl_vector *, const cpl_vector *);
/* Filtering */ /* Filtering */
cpl_vector * cpl_vector_filter_lowpass_create(const cpl_vector *, cpl_lowpa ss, cpl_vector * cpl_vector_filter_lowpass_create(const cpl_vector *, cpl_lowpa ss,
int) int) CPL_ATTR_ALLOC;
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT cpl_vector * cpl_vector_filter_median_create(const cpl_vector *,
__attribute__((warn_unused_result, malloc)) int) CPL_ATTR_ALLOC;
#else
__attribute__((malloc))
#endif
;
cpl_vector * cpl_vector_filter_median_create(const cpl_vector *, int)
#ifdef CPL_HAVE_GNUC_UNUSED_RESULT
__attribute__((warn_unused_result, malloc))
#else
__attribute__((malloc))
#endif
;
cpl_error_code cpl_vector_fill_kernel_profile(cpl_vector *, cpl_kernel, dou ble); cpl_error_code cpl_vector_fill_kernel_profile(cpl_vector *, cpl_kernel, dou ble);
/* Fitting */ /* Fitting */
cpl_error_code cpl_vector_fit_gaussian(const cpl_vector *, const cpl_vector *, cpl_error_code cpl_vector_fit_gaussian(const cpl_vector *, const cpl_vector *,
const cpl_vector *, const cpl_vector *, const cpl_vector *, const cpl_vector *,
cpl_fit_mode, cpl_fit_mode,
double *, double *, double *, double *,
double *, double *, double *, double *,
double *, double *, double *, double *,
cpl_matrix **); cpl_matrix **);
/* FIXME: Will disappear. Do not use in new code! */ cpl_vector * cpl_vector_new_lss_kernel(double, double) CPL_ATTR_DEPRECATED;
cpl_vector * cpl_vector_new_lss_kernel(double, double)
#ifdef __GNUC__
__attribute__((deprecated))
#endif
;
cpl_error_code cpl_vector_convolve_symmetric(cpl_vector *, const cpl_vector *) cpl_error_code cpl_vector_convolve_symmetric(cpl_vector *, const cpl_vector *)
#ifdef __GNUC__ CPL_ATTR_DEPRECATED;
__attribute__((deprecated))
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif #endif
 End of changes. 14 change blocks. 
78 lines changed or deleted 25 lines changed or added


 cpl_version.h   cpl_version.h 
skipping to change at line 30 skipping to change at line 30
/* /*
* Do not edit this file! This file was automatically generated. * Do not edit this file! This file was automatically generated.
* All changes to this file might be lost! * All changes to this file might be lost!
*/ */
#ifndef CPL_VERSION_H #ifndef CPL_VERSION_H
#define CPL_VERSION_H #define CPL_VERSION_H
#include <cpl_macros.h> #include <cpl_macros.h>
#define CPL_VERSION_STRING "5.2.0" #define CPL_VERSION_STRING "5.3.1"
#define CPL_VERSION_CODE 328192 #define CPL_VERSION_CODE 328449
#define CPL_VERSION(major, minor, micro) \ #define CPL_VERSION(major, minor, micro) \
(((major) * 65536) + ((minor) * 256) + (micro)) (((major) * 65536) + ((minor) * 256) + (micro))
CPL_BEGIN_DECLS CPL_BEGIN_DECLS
unsigned int cpl_version_get_major(void) unsigned int cpl_version_get_major(void) CPL_ATTR_CONST;
#ifdef __GNUC__ unsigned int cpl_version_get_minor(void) CPL_ATTR_CONST;
__attribute__((const)) unsigned int cpl_version_get_micro(void) CPL_ATTR_CONST;
#endif
;
unsigned int cpl_version_get_minor(void)
#ifdef __GNUC__
__attribute__((const))
#endif
;
unsigned int cpl_version_get_micro(void)
#ifdef __GNUC__
__attribute__((const))
#endif
;
unsigned int cpl_version_get_interface_age(void) unsigned int cpl_version_get_interface_age(void) CPL_ATTR_CONST;
#ifdef __GNUC__ unsigned int cpl_version_get_binary_age(void) CPL_ATTR_CONST;
__attribute__((const))
#endif
;
unsigned int cpl_version_get_binary_age(void)
#ifdef __GNUC__
__attribute__((const))
#endif
;
const char *cpl_version_get_version(void) const char *cpl_version_get_version(void) CPL_ATTR_CONST;
#ifdef __GNUC__ unsigned int cpl_version_get_binary_version(void) CPL_ATTR_CONST;
__attribute__((const))
#endif
;
unsigned int cpl_version_get_binary_version(void)
#ifdef __GNUC__
__attribute__((const))
#endif
;
CPL_END_DECLS CPL_END_DECLS
#endif /* CPL_VERSION_H */ #endif /* CPL_VERSION_H */
 End of changes. 4 change blocks. 
37 lines changed or deleted 9 lines changed or added


 cpl_wcs.h   cpl_wcs.h 
/* $Id: cpl_wcs.h,v 1.11 2009/08/05 09:32:57 llundin Exp $ /* $Id: cpl_wcs.h,v 1.13 2010/11/11 10:32:10 llundin Exp $
* *
* This file is part of the ESO Common Pipeline Library * This file is part of the ESO Common Pipeline Library
* Copyright (C) 2001-2005 European Southern Observatory * Copyright (C) 2001-2005 European Southern Observatory
* *
* This program is free software; you can redistribute it and/or modify * This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or * the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/08/05 09:32:57 $ * $Date: 2010/11/11 10:32:10 $
* $Revision: 1.11 $ * $Revision: 1.13 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CPL_WCS_H #ifndef CPL_WCS_H
#define CPL_WCS_H #define CPL_WCS_H
#include "cpl_error.h" #include "cpl_error.h"
#include "cpl_propertylist.h" #include "cpl_propertylist.h"
#include "cpl_matrix.h" #include "cpl_matrix.h"
#include "cpl_array.h" #include "cpl_array.h"
skipping to change at line 66 skipping to change at line 66
typedef enum cpl_wcs_platesol_fitmode cpl_wcs_platesol_fitmode; typedef enum cpl_wcs_platesol_fitmode cpl_wcs_platesol_fitmode;
enum cpl_wcs_platesol_outmode { enum cpl_wcs_platesol_outmode {
CPL_WCS_MV_CRVAL, CPL_WCS_MV_CRVAL,
CPL_WCS_MV_CRPIX}; CPL_WCS_MV_CRPIX};
typedef enum cpl_wcs_platesol_outmode cpl_wcs_platesol_outmode; typedef enum cpl_wcs_platesol_outmode cpl_wcs_platesol_outmode;
/* Function prototypes */ /* Function prototypes */
cpl_wcs *cpl_wcs_new_from_propertylist(const cpl_propertylist *plist); cpl_wcs *cpl_wcs_new_from_propertylist(const cpl_propertylist *plist)
CPL_ATTR_ALLOC;
void cpl_wcs_delete(cpl_wcs *wcs); void cpl_wcs_delete(cpl_wcs *wcs);
cpl_error_code cpl_wcs_convert(const cpl_wcs *wcs, const cpl_matrix *from, cpl_error_code cpl_wcs_convert(const cpl_wcs *wcs, const cpl_matrix *from,
cpl_matrix **to, cpl_array **status, cpl_matrix **to, cpl_array **status,
cpl_wcs_trans_mode transform); cpl_wcs_trans_mode transform);
cpl_error_code cpl_wcs_platesol(const cpl_propertylist *ilist, cpl_error_code cpl_wcs_platesol(const cpl_propertylist *ilist,
const cpl_matrix *cel, const cpl_matrix *cel,
const cpl_matrix *xy, int niter, float thre sh, const cpl_matrix *xy, int niter, float thre sh,
cpl_wcs_platesol_fitmode fitmode, cpl_wcs_platesol_fitmode fitmode,
cpl_wcs_platesol_outmode outmode, cpl_wcs_platesol_outmode outmode,
cpl_propertylist **olist); cpl_propertylist **olist);
 End of changes. 4 change blocks. 
6 lines changed or deleted 7 lines changed or added


 cxdeque.h   cxdeque.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: scastro $
* $Date: 2007/07/04 12:14:04 $ * $Date: 2007/07/04 12:14:04 $
* $Revision: 1.2 $ * $Revision: 1.2 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_DEQUE_H #ifndef CX_DEQUE_H
#define CX_DEQUE_H #define CX_DEQUE_H
#include <cxmemory.h> #include <cxmemory.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
typedef struct _cx_deque_ cx_deque; typedef struct _cx_deque_ cx_deque;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxfileutils.h   cxfileutils.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: rpalsa $
* $Date: 2006/06/12 09:57:33 $ * $Date: 2006/06/12 09:57:33 $
* $Revision: 1.3 $ * $Revision: 1.3 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_FILEUTILS_H #ifndef CX_FILEUTILS_H
#define CX_FILEUTILS_H #define CX_FILEUTILS_H
#include <cxtypes.h> #include <cxtypes.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
cxlong cx_path_max(const cxchar *); cxlong cx_path_max(const cxchar *);
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxlist.h   cxlist.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: rpalsa $
* $Date: 2006/06/12 09:57:33 $ * $Date: 2006/06/12 09:57:33 $
* $Revision: 1.3 $ * $Revision: 1.3 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_LIST_H #ifndef CX_LIST_H
#define CX_LIST_H #define CX_LIST_H
#include <cxmemory.h> #include <cxmemory.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
typedef struct _cx_lnode_ *cx_list_iterator; typedef struct _cx_lnode_ *cx_list_iterator;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxmacros.h   cxmacros.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: scastro $ * $Author: scastro $
* $Date: 2007/12/12 12:09:41 $ * $Date: 2007/12/12 12:09:41 $
* $Revision: 1.6 $ * $Revision: 1.6 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
/* /*
* This file MUST not include any other cext header file. * This file MUST not include any other cext header file.
*/ */
#ifndef CX_MACROS_H #ifndef CX_MACROS_H
#define CX_MACROS_H #define CX_MACROS_H
/* /*
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxmap.h   cxmap.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: rpalsa $
* $Date: 2006/06/12 09:57:33 $ * $Date: 2006/06/12 09:57:33 $
* $Revision: 1.4 $ * $Revision: 1.4 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_MAP_H #ifndef CX_MAP_H
#define CX_MAP_H #define CX_MAP_H
#include <cxmemory.h> #include <cxmemory.h>
#include <cxtree.h> #include <cxtree.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxmemory.h   cxmemory.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/03/25 13:01:22 $ * $Date: 2009/03/25 13:01:22 $
* $Revision: 1.4 $ * $Revision: 1.4 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_MEMORY_H #ifndef CX_MEMORY_H
#define CX_MEMORY_H #define CX_MEMORY_H
#include <cxtypes.h> #include <cxtypes.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
struct _cx_memory_vtable_ { struct _cx_memory_vtable_ {
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxmessages.h   cxmessages.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/07 15:48:15 $ * $Date: 2009/12/07 15:48:15 $
* $Revision: 1.9 $ * $Revision: 1.9 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_MESSAGES_H #ifndef CX_MESSAGES_H
#define CX_MESSAGES_H #define CX_MESSAGES_H
#include <stdarg.h> #include <stdarg.h>
#include <cxmacros.h> #include <cxmacros.h>
#include <cxtypes.h> #include <cxtypes.h>
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxmultimap.h   cxmultimap.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: rpalsa $
* $Date: 2006/06/12 09:57:33 $ * $Date: 2006/06/12 09:57:33 $
* $Revision: 1.5 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_MULTIMAP_H #ifndef CX_MULTIMAP_H
#define CX_MULTIMAP_H #define CX_MULTIMAP_H
#include <cxmemory.h> #include <cxmemory.h>
#include <cxtree.h> #include <cxtree.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxslist.h   cxslist.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: rpalsa $
* $Date: 2006/06/12 09:54:44 $ * $Date: 2006/06/12 09:54:44 $
* $Revision: 1.6 $ * $Revision: 1.6 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_SLIST_H #ifndef CX_SLIST_H
#define CX_SLIST_H #define CX_SLIST_H
#include <cxmemory.h> #include <cxmemory.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
typedef struct _cx_slnode_ *cx_slist_iterator; typedef struct _cx_slnode_ *cx_slist_iterator;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxstring.h   cxstring.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/07 15:48:15 $ * $Date: 2009/12/07 15:48:15 $
* $Revision: 1.7 $ * $Revision: 1.7 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_STRING_H_ #ifndef CX_STRING_H_
#define CX_STRING_H_ 1 #define CX_STRING_H_ 1
#include <stdarg.h> #include <stdarg.h>
#include <string.h> #include <string.h>
#include <ctype.h> #include <ctype.h>
#include <cxtypes.h> #include <cxtypes.h>
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxstrutils.h   cxstrutils.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/07 15:48:15 $ * $Date: 2009/12/07 15:48:15 $
* $Revision: 1.5 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_STRUTILS_H #ifndef CX_STRUTILS_H
#define CX_STRUTILS_H #define CX_STRUTILS_H
#include <stdarg.h> #include <stdarg.h>
#include <cxtypes.h> #include <cxtypes.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxtree.h   cxtree.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: rpalsa $ * $Author: rpalsa $
* $Date: 2006/06/12 09:54:44 $ * $Date: 2006/06/12 09:54:44 $
* $Revision: 1.4 $ * $Revision: 1.4 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_TREE_H #ifndef CX_TREE_H
#define CX_TREE_H #define CX_TREE_H
#include <cxmemory.h> #include <cxmemory.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
typedef struct _cx_tnode_ *cx_tree_iterator; typedef struct _cx_tnode_ *cx_tree_iterator;
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 cxutils.h   cxutils.h 
skipping to change at line 25 skipping to change at line 25
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 U SA
*/ */
/* /*
* $Author: llundin $ * $Author: llundin $
* $Date: 2009/12/07 15:48:15 $ * $Date: 2009/12/07 15:48:15 $
* $Revision: 1.5 $ * $Revision: 1.5 $
* $Name: cpl-5_2_0 $ * $Name: cpl-5_3_0-BRANCH $
*/ */
#ifndef CX_UTILS_H #ifndef CX_UTILS_H
#define CX_UTILS_H #define CX_UTILS_H
#include <stdarg.h> #include <stdarg.h>
#include <cxtypes.h> #include <cxtypes.h>
CX_BEGIN_DECLS CX_BEGIN_DECLS
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/