container type


Data Structures

struct  list

Defines

#define assure(EXPR)   assert(EXPR)

Functions

listlist_new (void)
 Constructor.
listlist_duplicate (const list *l, void *(*duplicate)(const void *))
 Copy constructor.
void list_delete_const (const list **l, void(*delete)(void **))
void list_delete (list **l, void(*delete)(void **))
int list_size (const list *l)
void list_insert (list *l, void *e)
const void * list_remove_const (list *l, const void *e)
void * list_remove (list *l, void *e)
void list_reverse (list *l)
const void * list_first_const (const list *l)
void * list_first (list *l)
const void * list_next_const (const list *l)
void * list_next (list *l)
void list_first_pair_const (const list *l, const void **e1, const void **e2)
void list_first_pair (list *l, void **e1, void **e2)
void list_next_pair_const (const list *l, const void **e1, const void **e2)
void list_next_pair (list *l, void **e1, void **e2)
listlist_extract (const list *l, void *(*duplicate)(const void *), bool(*predicate)(const void *, void *), void *data)
 Extract elements.
void * list_min (list *l, list_func_lt less_than, void *data)
void * list_min_val (list *l, list_func_eval eval, void *data)
void * list_max_val (list *l, list_func_eval eval, void *data)
const void * list_max_const (const list *l, list_func_lt less_than, void *data)
void * list_max (list *l, list_func_lt less_than, void *data)
static const void * kth (const void *a[], int k, int n, list_func_lt less_than, void *data)
const void * list_kth_const (const list *l, int k, list_func_lt less_than, void *data)
void * list_kth (list *l, int k, list_func_lt less_than, void *data)
static bool val_less_than (const void *e1, const void *e2, void *data)
const void * list_kth_val_const (const list *l, int k, list_func_eval eval, void *data)
void * list_kth_val (list *l, int k, list_func_eval eval, void *data)
double list_median (const list *l, list_func_eval eval, void *data)
double list_mean (const list *l, list_func_eval eval, void *data)
double list_mean_optimal (const list *l, list_func_eval eval, void *data_eval, list_func_eval eval_err, void *data_err, double *err, double *red_chisq)
static double abs_dev (const void *e1, void *data)
double list_mad (list *l, list_func_eval eval, void *data)

Variables

static void *(*) list_malloc (size_t) = malloc
static void *(*) list_calloc (size_t, size_t) = calloc
static void *(*) list_realloc (void *, size_t) = realloc
static void(*) list_free (const void *) = (void (*)(const void *))free

Detailed Description

The order of elements is undefined and there may be duplicates.

This container is polymorphic and typesafe. That is, the elements are typed, not void pointers.

A few things to be aware of:

To define a class called e.g. integer_list, put in a source file

     #define LIST_DEFINE
     #define LIST_ELEM integer 
     #include <list.h>

And put in the header

     #define LIST_ELEM integer 
     #include <list.h>

Define Documentation

#define assure ( EXPR   )     assert(EXPR)

Define error handling here

Definition at line 101 of file list.c.

Referenced by _get_optional_table_value(), build_equations_lhs_matrix_from_parameters(), build_equations_lhs_matrix_from_poly(), create_bias(), create_dark(), create_phot_table(), create_screen_flat(), create_sky_flat(), create_std_cat(), extract_sex(), extract_test(), fors_angle_diff(), fors_bias(), fors_dark(), fors_dfs_add_wcs(), fors_dfs_pipeline_version(), fors_dfs_set_groups(), fors_extract(), fors_extract_method_new(), fors_fixed_pattern_noise(), fors_fixed_pattern_noise_bias(), fors_frame_get_group_string(), fors_frame_get_level_string(), fors_frame_get_type_string(), fors_frameset_extract(), fors_get_airmass(), fors_identify(), fors_identify_method_new(), fors_image_abs(), fors_image_collapse_create(), fors_image_collapse_ksigma_create(), fors_image_collapse_median_create(), fors_image_collapse_minmax_create(), fors_image_crop(), fors_image_divide(), fors_image_divide_noerr(), fors_image_divide_scalar(), fors_image_draw(), fors_image_duplicate(), fors_image_exponential(), fors_image_filter_max_create(), fors_image_filter_median_create(), fors_image_flat_fit_create(), fors_image_get_data_const(), fors_image_get_error_mean(), fors_image_get_max(), fors_image_get_mean(), fors_image_get_median(), fors_image_get_min(), fors_image_get_size_x(), fors_image_get_size_y(), fors_image_get_stdev(), fors_image_get_stdev_robust(), fors_image_load(), fors_image_load_list(), fors_image_multiply(), fors_image_multiply_noerr(), fors_image_multiply_scalar(), fors_image_new(), fors_image_save(), fors_image_save_sex(), fors_image_square(), fors_image_subtract(), fors_image_subtract_scalar(), fors_img_science(), fors_img_screen_flat(), fors_img_sky_flat(), fors_parameterlist_set_defaults(), fors_photometry(), fors_photometry_define_polyf(), fors_photometry_define_polyp(), fors_photometry_get_night_id(), fors_photometry_read_input(), fors_photometry_remove_unnecessary(), fors_point_distsq(), fors_point_duplicate(), fors_qc_write_group_heading(), fors_setting_new_level(), fors_setting_verify(), fors_stack_const(), fors_stack_method_get_string(), fors_stack_method_new(), fors_star_distsq(), fors_star_duplicate(), fors_star_ellipticity(), fors_star_equal(), fors_star_ext_corr(), fors_star_extension(), fors_star_get_x(), fors_star_get_y(), fors_star_get_zeropoint(), fors_star_get_zeropoint_err(), fors_star_is_identified(), fors_star_new(), fors_star_new_from_table(), fors_star_stellarity(), fors_utils_median_corr(), fors_zeropoint(), fors_zeropoint_astrometry(), fors_zeropoint_astrometry_apply_unidentified_xy2radec(), fors_zeropoint_astrometry_shift_wcs_origin(), get_zeropoint(), is_star(), list_duplicate(), list_extract(), list_first_const(), list_first_pair_const(), list_insert(), list_kth_const(), list_kth_val_const(), list_mad(), list_max_const(), list_max_val(), list_mean(), list_mean_optimal(), list_median(), list_min(), list_min_val(), list_next_const(), list_next_pair_const(), list_remove_const(), list_reverse(), list_size(), match_patterns(), remove_large_scale(), remove_large_scale_fit(), solve_normal(), test_bias(), test_dark(), test_identify(), test_img_science(), test_img_screen_flat(), test_img_sky_flat(), test_photometry(), test_recipe_output(), test_stack(), test_zeropoint(), and write_qc().


Function Documentation

list* list_new ( void   ) 

Constructor.

Returns:
newly allocated list

Definition at line 108 of file list.c.

References list_malloc.

Referenced by list_extract().

list* list_duplicate ( const list l,
void *(*)(const void *)  duplicate 
)

Copy constructor.

Parameters:
l list to duplicate
duplicate element copy constructor, or NULL for no deep copy
Returns:
newly allocated list

Definition at line 126 of file list.c.

References assure, list::back, list::current, list::current_p1, list::current_p2, list::elements, list_malloc, and list::size.

list* list_extract ( const list l,
void *(*)(const void *)  duplicate,
bool(*)(const void *, void *)  predicate,
void *  data 
)

Extract elements.

Parameters:
l list
duplicate element copy constructor
predicate function returning true iff the element (given as the 1st) argument must be extracted.
data Auxillary data sent to the selection function. May be NULL.
Returns:
Newly allocated, possibly empty, list containing the elements which satisfy the given predicate
Time: O(n)

Definition at line 507 of file list.c.

References assure, list::elements, list_insert(), list_new(), and list::size.


Variable Documentation

void*(*) list_malloc(size_t) = malloc [static]

Define memory handling here

Definition at line 92 of file list.c.

Referenced by list_duplicate(), list_kth_const(), and list_new().


Generated on Fri Mar 4 09:46:01 2011 for FORS Pipeline Reference Manual by  doxygen 1.4.7