Fwd: [ICL] some improvement proposals

Hi 1. (questionable because it changes the visible interface): rename `left_open` and `right_open` to `right_closed` and `left_closed`. Reason: interval_bounds is used in bitwise operations with bit=1 means `closed`. `left_closed() | open()` resulting in `left_closed()` is more readable than `right_open() | open()` resulting in `left_closed()`. Also, there are checkers `is_left_closed()` and `is_right_closed()` but not for *_open I had to use `class bounded_value` in my program (as in Icl details: calculating lower and upper bound of interval separately, then constructing the interval, bitwise or'ing bounds) and I commented every usage of `right_open()` as `left closed` in order to explain why I use `interval_bounds::*right*_open()` in constructing the *left `*bounded_value` of the interval. This resulted in the idea of renaming. Maybe making bit=1 mean `open` would be less painful for other users ? 2. define `contains(interval, elt)` as `!below(interval, elt) && !above(interval, elt)` allowing the user to use `below()` and `above()`. Sometimes it is useful. Anyway, all the versions of `contains()` are made of checking for both bounds. 3. It would nice if the functions taking two intervals will have versions taking an element as second argument. I mean functions like `left_subtract`, `operator &`, etc. (I cannot tell all the list at the moment) Constructing temporary `close_interval` object in order only to pass it into those functions is cheap with ints but would be expensive with heap-allocated domains (blobs, strings, etc).
participants (1)
-
Denis