FORS Pipeline Reference Manual  4.12.5
Data Structures | Macros | Functions | Variables
container type

Data Structures

struct  list
 

Macros

#define assure(EXPR)   assert(EXPR)
 

Functions

listlist_new (void)
 Constructor. More...
 
listlist_duplicate (const list *l, void *(*duplicate)(const void *))
 Copy constructor. More...
 
void list_delete_const (const list **l, void(*ldelete)(void **))
 
void list_delete (list **l, void(*ldelete)(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. More...
 
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>

Macro Definition Documentation

#define assure (   EXPR)    assert(EXPR)

Define error handling here

Definition at line 101 of file list.c.

Referenced by _get_optional_table_value(), create_bias(), create_dark(), create_master_bias(), create_master_sky_flat(), create_phot_table(), create_screen_flat(), create_sky_flat(), create_std_cat(), extract_sex(), extract_test(), fors_angle_diff(), 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_parameterlist_set_defaults(), 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(), list_duplicate(), list_extract(), match_patterns(), test_bias(), test_dark(), test_identify(), test_img_science(), test_img_screen_flat(), test_img_sky_flat(), test_photometry(), test_recipe_output(), test_stack(), and test_zeropoint().

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().