|
cvx
|
Go to the source code of this file.
Data Structures | |
| struct | cvx_container |
| struct | interval_set_vtabv |
| struct | interval_set_entry |
| struct | interval_set |
| struct | interval_set_iter |
Typedefs | |
| typedef struct cvx_container | cvx_container |
Enumerations | |
| enum | cvx_flags { CVX_FLAG_OK = 0 , CVX_FLAG_VTAB = 1 , CVX_FLAG_WRONG_TAG = 2 , CVX_FLAG_ALLOC = 3 , CVX_FLAG_EMPTY = 4 , CVX_FLAG_FULL = 5 , CVX_FLAG_RANGE = 6 , CVX_FLAG_NOT_FOUND = 7 , CVX_FLAG_INVALID = 8 , CVX_FLAG_DUPLICATE = 9 , CVX_FLAG_ERROR = 10 } |
| interval_set.h More... | |
| enum | cvx_heap_order { CVX_MAX_HEAP = 1 , CVX_MIN_HEAP = -1 } |
| enum cvx_heap_order More... | |
Functions | |
| void | is_init (struct interval_set *self, struct interval_set_vtabv *vtabv) |
| IMPLEMENTATIONS. | |
| void | is_clone (struct interval_set *orig, struct interval_set *clone) |
| void | is_drop (struct interval_set *_self_) |
| enum cvx_flags | is_flag (struct interval_set *_self_) |
| size_t | is_count (struct interval_set *_self_) |
| _Bool | is_empty (struct interval_set *_self_) |
| void | is_add (struct interval_set *_self_, TVal _lo_, TVal _hi_) |
| void | is_remove (struct interval_set *_self_, TVal _lo_, TVal _hi_) |
| _Bool | is_contains (struct interval_set *_self_, TVal _val_) |
| Returns true if val is covered by any interval in the set, i.e. | |
| _Bool | is_contains_interval (struct interval_set *_self_, TVal _lo_, TVal _hi_) |
| Returns true if the interval [lo, hi) is fully covered by a single stored interval, i.e. | |
| _Bool | is_overlaps (struct interval_set *_self_, TVal _lo_, TVal _hi_) |
| Returns true if [lo, hi) has a non-empty intersection with any interval in the set. | |
| struct interval_set * | is_union (struct interval_set *_left_, struct interval_set *_right_) |
| Returns a new set containing all intervals from left and right (A ∪ B). | |
| struct interval_set * | is_intersect (struct interval_set *_left_, struct interval_set *_right_) |
| Returns a new set containing only intervals covered by both left and right (A ∩ B). | |
| struct interval_set * | is_diff (struct interval_set *_left_, struct interval_set *_right_) |
| Returns a new set of intervals in left that are not covered by right (A \ B). | |
| struct interval_set * | is_symdiff (struct interval_set *_left_, struct interval_set *_right_) |
| Returns a new set of intervals covered by exactly one of left or right ((A \ B) ∪ (B \ A)). | |
| struct interval_set * | is_compl (struct interval_set *_self_, TVal _lo_, TVal _hi_) |
| Returns a new set representing the complement of self within the universe [lo, hi). | |
| struct interval_set_iter | is_iter_init_start (struct interval_set *_target_) |
| ITERATOR. | |
| struct interval_set_iter | is_iter_init_end (struct interval_set *_target_) |
| struct interval_set_iter * | is_iter_start (struct interval_set *_target_) |
| struct interval_set_iter * | is_iter_end (struct interval_set *_target_) |
| void | is_iter_drop (struct interval_set_iter *_iter_) |
| _Bool | is_iter_at_start (struct interval_set_iter *_iter_) |
| _Bool | is_iter_at_end (struct interval_set_iter *_iter_) |
| size_t | is_iter_count (struct interval_set_iter *_iter_) |
| void | is_iter_to_start (struct interval_set_iter *_iter_) |
| void | is_iter_to_end (struct interval_set_iter *_iter_) |
| void | is_iter_next (struct interval_set_iter *_iter_) |
| void | is_iter_prev (struct interval_set_iter *_iter_) |
| void | is_iter_forward (struct interval_set_iter *_iter_, size_t _steps_) |
| void | is_iter_backward (struct interval_set_iter *_iter_, size_t _steps_) |
| struct interval_set_entry | is_iter_entry (struct interval_set_iter *_iter_) |
| TVal | is_iter_value_lo (struct interval_set_iter *_iter_) |
| TVal | is_iter_value_hi (struct interval_set_iter *_iter_) |
| size_t | is_iter_index (struct interval_set_iter *_iter_) |
| _Bool | is__assert_capacity (struct interval_set *_self_) |
| PRIVATE FUNCTIONS. | |
| size_t | is__lower_bound (struct interval_set *_self_, TVal _lo_) |
| _Bool | is__append (struct interval_set *_self_, TVal _lo_, TVal _hi_) |
| void | is__proxy_clone (cvx_container *_orig_, cvx_container *_clone_) |
| PROXIES. | |
| void | is__proxy_drop (cvx_container *_col_) |
| size_t | is__proxy_count (cvx_container *_col_) |
| _Bool | is__proxy_empty (cvx_container *_col_) |
| void | is__proxy_add (cvx_container *_col_, TVal _lo_, TVal _hi_) |
| void | is__proxy_remove (cvx_container *_col_, TVal _lo_, TVal _hi_) |
| _Bool | is__proxy_contains (cvx_container *_col_, TVal _val_) |
| _Bool | is__proxy_contains_interval (cvx_container *_col_, TVal _lo_, TVal _hi_) |
| _Bool | is__proxy_overlaps (cvx_container *_col_, TVal _lo_, TVal _hi_) |
| cvx_container * | is__proxy_union (cvx_container *_l_, cvx_container *_r_) |
| cvx_container * | is__proxy_intersect (cvx_container *_l_, cvx_container *_r_) |
| cvx_container * | is__proxy_diff (cvx_container *_l_, cvx_container *_r_) |
| cvx_container * | is__proxy_symdiff (cvx_container *_l_, cvx_container *_r_) |
| cvx_container * | is__proxy_compl (cvx_container *_col_, TVal _lo_, TVal _hi_) |
| cvx_container * | is__proxy_iter_start (cvx_container *_col_) |
| cvx_container * | is__proxy_iter_end (cvx_container *_col_) |
| void | is__proxy_iter_drop (cvx_container *_col_) |
| _Bool | is__proxy_iter_at_start (cvx_container *_col_) |
| _Bool | is__proxy_iter_at_end (cvx_container *_col_) |
| size_t | is__proxy_iter_count (cvx_container *_col_) |
| void | is__proxy_iter_to_start (cvx_container *_col_) |
| void | is__proxy_iter_to_end (cvx_container *_col_) |
| void | is__proxy_iter_next (cvx_container *_col_) |
| void | is__proxy_iter_prev (cvx_container *_col_) |
| void | is__proxy_iter_forward (cvx_container *_col_, size_t _steps_) |
| void | is__proxy_iter_backward (cvx_container *_col_, size_t _steps_) |
| struct interval_set_entry | is__proxy_iter_entry (cvx_container *_col_) |
| TVal | is__proxy_iter_value_lo (cvx_container *_col_) |
| TVal | is__proxy_iter_value_hi (cvx_container *_col_) |
| size_t | is__proxy_iter_index (cvx_container *_col_) |
| typedef struct cvx_container cvx_container |
| enum cvx_flags |
Status
[x] concept [ ] v1 [ ] tests [ ] refine [ ] stabilize
Interval set with right-open intervals [lo, hi).
Status and error flags for the CVX library.
Error Handling
| enum cvx_heap_order |
| _Bool is__append | ( | struct interval_set * | _self_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| _Bool is__assert_capacity | ( | struct interval_set * | _self_ | ) |
PRIVATE FUNCTIONS.
| size_t is__lower_bound | ( | struct interval_set * | _self_, |
| TVal | _lo_ | ||
| ) |
| void is__proxy_add | ( | cvx_container * | _col_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| void is__proxy_clone | ( | cvx_container * | _orig_, |
| cvx_container * | _clone_ | ||
| ) |
PROXIES.
| cvx_container * is__proxy_compl | ( | cvx_container * | _col_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| _Bool is__proxy_contains | ( | cvx_container * | _col_, |
| TVal | _val_ | ||
| ) |
| _Bool is__proxy_contains_interval | ( | cvx_container * | _col_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| size_t is__proxy_count | ( | cvx_container * | _col_ | ) |
| cvx_container * is__proxy_diff | ( | cvx_container * | _l_, |
| cvx_container * | _r_ | ||
| ) |
| void is__proxy_drop | ( | cvx_container * | _col_ | ) |
| _Bool is__proxy_empty | ( | cvx_container * | _col_ | ) |
| cvx_container * is__proxy_intersect | ( | cvx_container * | _l_, |
| cvx_container * | _r_ | ||
| ) |
| _Bool is__proxy_iter_at_end | ( | cvx_container * | _col_ | ) |
| _Bool is__proxy_iter_at_start | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_backward | ( | cvx_container * | _col_, |
| size_t | _steps_ | ||
| ) |
| size_t is__proxy_iter_count | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_drop | ( | cvx_container * | _col_ | ) |
| cvx_container * is__proxy_iter_end | ( | cvx_container * | _col_ | ) |
| struct interval_set_entry is__proxy_iter_entry | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_forward | ( | cvx_container * | _col_, |
| size_t | _steps_ | ||
| ) |
| size_t is__proxy_iter_index | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_next | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_prev | ( | cvx_container * | _col_ | ) |
| cvx_container * is__proxy_iter_start | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_to_end | ( | cvx_container * | _col_ | ) |
| void is__proxy_iter_to_start | ( | cvx_container * | _col_ | ) |
| TVal is__proxy_iter_value_hi | ( | cvx_container * | _col_ | ) |
| TVal is__proxy_iter_value_lo | ( | cvx_container * | _col_ | ) |
| _Bool is__proxy_overlaps | ( | cvx_container * | _col_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| void is__proxy_remove | ( | cvx_container * | _col_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| cvx_container * is__proxy_symdiff | ( | cvx_container * | _l_, |
| cvx_container * | _r_ | ||
| ) |
| cvx_container * is__proxy_union | ( | cvx_container * | _l_, |
| cvx_container * | _r_ | ||
| ) |
| void is_add | ( | struct interval_set * | _self_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| void is_clone | ( | struct interval_set * | orig, |
| struct interval_set * | clone | ||
| ) |
| struct interval_set * is_compl | ( | struct interval_set * | _self_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
Returns a new set representing the complement of self within the universe [lo, hi).
self is left unchanged. Returns NULL on allocation failure. Returns an empty set if lo >= hi.
| _Bool is_contains | ( | struct interval_set * | _self_, |
| TVal | _val_ | ||
| ) |
Returns true if val is covered by any interval in the set, i.e.
there exists [lo, hi) such that lo <= val < hi. The hi endpoint is excluded (right-open). Sets flag to CVX_FLAG_OK on success.
| _Bool is_contains_interval | ( | struct interval_set * | _self_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
Returns true if the interval [lo, hi) is fully covered by a single stored interval, i.e.
there exists [a, b) such that a <= lo and hi <= b. Returns false for an empty query interval (lo >= hi). Sets flag to CVX_FLAG_OK on success.
| size_t is_count | ( | struct interval_set * | _self_ | ) |
| struct interval_set * is_diff | ( | struct interval_set * | _left_, |
| struct interval_set * | _right_ | ||
| ) |
Returns a new set of intervals in left that are not covered by right (A \ B).
Both operands are left unchanged. Returns NULL on allocation failure.
| void is_drop | ( | struct interval_set * | _self_ | ) |
| _Bool is_empty | ( | struct interval_set * | _self_ | ) |
| enum cvx_flags is_flag | ( | struct interval_set * | _self_ | ) |
| void is_init | ( | struct interval_set * | self, |
| struct interval_set_vtabv * | vtabv | ||
| ) |
IMPLEMENTATIONS.
| struct interval_set * is_intersect | ( | struct interval_set * | _left_, |
| struct interval_set * | _right_ | ||
| ) |
Returns a new set containing only intervals covered by both left and right (A ∩ B).
Both operands are left unchanged. Returns NULL on allocation failure.
| _Bool is_iter_at_end | ( | struct interval_set_iter * | _iter_ | ) |
| _Bool is_iter_at_start | ( | struct interval_set_iter * | _iter_ | ) |
| void is_iter_backward | ( | struct interval_set_iter * | _iter_, |
| size_t | _steps_ | ||
| ) |
| size_t is_iter_count | ( | struct interval_set_iter * | _iter_ | ) |
| void is_iter_drop | ( | struct interval_set_iter * | _iter_ | ) |
| struct interval_set_iter * is_iter_end | ( | struct interval_set * | _target_ | ) |
| struct interval_set_entry is_iter_entry | ( | struct interval_set_iter * | _iter_ | ) |
| void is_iter_forward | ( | struct interval_set_iter * | _iter_, |
| size_t | _steps_ | ||
| ) |
| size_t is_iter_index | ( | struct interval_set_iter * | _iter_ | ) |
| struct interval_set_iter is_iter_init_end | ( | struct interval_set * | _target_ | ) |
| struct interval_set_iter is_iter_init_start | ( | struct interval_set * | _target_ | ) |
ITERATOR.
| void is_iter_next | ( | struct interval_set_iter * | _iter_ | ) |
| void is_iter_prev | ( | struct interval_set_iter * | _iter_ | ) |
| struct interval_set_iter * is_iter_start | ( | struct interval_set * | _target_ | ) |
| void is_iter_to_end | ( | struct interval_set_iter * | _iter_ | ) |
| void is_iter_to_start | ( | struct interval_set_iter * | _iter_ | ) |
| TVal is_iter_value_hi | ( | struct interval_set_iter * | _iter_ | ) |
| TVal is_iter_value_lo | ( | struct interval_set_iter * | _iter_ | ) |
| _Bool is_overlaps | ( | struct interval_set * | _self_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
Returns true if [lo, hi) has a non-empty intersection with any interval in the set.
Touching intervals (hi of stored == lo of query, or vice-versa) do NOT count as overlapping under right-open semantics. Returns false for an empty query interval (lo >= hi). Sets flag to CVX_FLAG_OK on success.
| void is_remove | ( | struct interval_set * | _self_, |
| TVal | _lo_, | ||
| TVal | _hi_ | ||
| ) |
| struct interval_set * is_symdiff | ( | struct interval_set * | _left_, |
| struct interval_set * | _right_ | ||
| ) |
Returns a new set of intervals covered by exactly one of left or right ((A \ B) ∪ (B \ A)).
Both operands are left unchanged. Returns NULL on allocation failure.
| struct interval_set * is_union | ( | struct interval_set * | _left_, |
| struct interval_set * | _right_ | ||
| ) |
Returns a new set containing all intervals from left and right (A ∪ B).
Both operands are left unchanged. Returns NULL on allocation failure.