Functions | |
| static bool | illegal_position (const uves_iterate_position *p) |
| Find out if the current position is valid. | |
| uves_iterate_position * | uves_iterate_new (int nx, int ny, const polynomial *order_locations, int minorder, int maxorder, slit_geometry sg) |
| Allocate iterator. | |
| void | uves_iterate_delete (uves_iterate_position **p) |
| Deallocate iterator and set pointer to NULL. | |
| void | uves_iterate_set_first (uves_iterate_position *p, int xmin, int xmax, int ordermin, int ordermax, const cpl_binary *bpm, bool loop_y) |
| Initialize iteration. | |
| void | uves_iterate_increment (uves_iterate_position *p) |
| Get next position. | |
| bool | uves_iterate_finished (const uves_iterate_position *p) |
| Finished iterating? | |
| void | uves_iterate_dump (const uves_iterate_position *p, FILE *stream) |
| dump iterator (for debugging) | |
for (uves_iterate_set_first(pos, ...); !uves_iterate_finished(pos); uves_iterate_increment(pos)) { do something }
instead of repeating the same structure of nested loops + selections again and again in the extraction module. I.e. to avoid repetitions of (in pseudocode)
for each order ... for each bin ... calculate limits for this bin for each position on the slit ... if pixel is good ... do something
where only the "do something" part is different
|
|
Find out if the current position is valid.
Definition at line 344 of file uves_extract_iterate.c. Referenced by uves_iterate_increment(), and uves_iterate_set_first(). |
|
||||||||||||||||||||||||||||
|
Allocate iterator.
for (uves_iterate_set_first(pos, xmin, xmax, ordermin, ordermax, current_image_bpm, true); !uves_iterate_finished(pos); uves_iterate_increment(pos)) { flux += image[p->x, p->y]; } The struct members int order; int x, y; double ycenter; int ylow; int yhigh; can be accessed inside the loop. Definition at line 151 of file uves_extract_iterate.c. Referenced by create_spectrum(), test_extract(), test_iterate(), and uves_extract(). |
|
|
Deallocate iterator and set pointer to NULL.
Definition at line 175 of file uves_extract_iterate.c. Referenced by test_iterate(). |
|
||||||||||||||||||||||||||||||||
|
Initialize iteration.
Definition at line 200 of file uves_extract_iterate.c. References illegal_position(), uves_iterate_finished(), uves_iterate_increment(), uves_polynomial_evaluate_2d(), and uves_round_double(). Referenced by estimate_sn(), opt_subtract_sky(), revise_noise(), test_iterate(), and uves_create_image(). |
|
|
Get next position.
Definition at line 243 of file uves_extract_iterate.c. References illegal_position(), uves_iterate_finished(), uves_polynomial_evaluate_2d(), and uves_round_double(). Referenced by estimate_sn(), opt_subtract_sky(), revise_noise(), test_iterate(), uves_create_image(), and uves_iterate_set_first(). |
|
|
Finished iterating?
Definition at line 298 of file uves_extract_iterate.c. Referenced by estimate_sn(), opt_subtract_sky(), revise_noise(), test_iterate(), uves_create_image(), uves_iterate_increment(), and uves_iterate_set_first(). |
|
||||||||||||
|
dump iterator (for debugging)
Definition at line 311 of file uves_extract_iterate.c. |
1.4.6