various macros and functions for validating and guarding signals in c (Bounds, Clamps, etc...)
$ clib install mofosyne/bound_and_clamp.c
- is_above_bound(value, max)
- is_below_bound(value, min)
- is_within_bound(value, min, max)
- is_out_of_bound(value, min, max)
- clamp_upper(value, max)
- clamp_lower(value, min)
- clamp_range(value, min, max)
This is useful to get a sense of how this will work.
So Given:
- min = -2
- max = 2
i | clamp_upper | clamp_lower | clamp_range |
---|---|---|---|
-5 | -5 | -2 | -2 |
-4 | -4 | -2 | -2 |
-3 | -3 | -2 | -2 |
-2 | -2 | -2 | -2 |
-1 | -1 | -1 | -1 |
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 2 | 2 | 2 |
3 | 2 | 3 | 2 |
4 | 2 | 4 | 2 |
5 | 2 | 5 | 2 |
i | is_below_bound | is_above_bound | is_within_bound | is_out_of_bound |
---|---|---|---|---|
-5 | true | false | false | true |
-4 | true | false | false | true |
-3 | true | false | false | true |
-2 | false | false | true | false |
-1 | false | false | true | false |
0 | false | false | true | false |
1 | false | false | true | false |
2 | false | false | true | false |
3 | false | true | false | true |
4 | false | true | false | true |
5 | false | true | false | true |
GNUv3