FORS Pipeline Reference Manual 4.9.9
Data Structures | Defines | Functions | Variables
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_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(), match_patterns(), remove_large_scale(), remove_large_scale_fit(), 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:
llist to duplicate
duplicateelement copy constructor, or NULL for no deep copy
Returns:
newly allocated list

Definition at line 126 of file list.c.

References assure, and list_malloc.

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

Extract elements.

Parameters:
llist
duplicateelement copy constructor
predicatefunction returning true iff the element (given as the 1st) argument must be extracted.
dataAuxillary 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, and list_new().


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(), and list_new().