| chris@162 | 1 /** | 
| chris@162 | 2  * Copyright (c) 2014, 2015, Enzien Audio Ltd. | 
| chris@162 | 3  * | 
| chris@162 | 4  * Permission to use, copy, modify, and/or distribute this software for any | 
| chris@162 | 5  * purpose with or without fee is hereby granted, provided that the above | 
| chris@162 | 6  * copyright notice and this permission notice appear in all copies. | 
| chris@162 | 7  * | 
| chris@162 | 8  * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH | 
| chris@162 | 9  * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY | 
| chris@162 | 10  * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, | 
| chris@162 | 11  * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM | 
| chris@162 | 12  * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR | 
| chris@162 | 13  * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR | 
| chris@162 | 14  * PERFORMANCE OF THIS SOFTWARE. | 
| chris@162 | 15  */ | 
| chris@162 | 16 | 
| chris@162 | 17 #include "Utils_unix.h" | 
| chris@162 | 18 | 
| chris@162 | 19 #if HV_UNIX | 
| chris@162 | 20 | 
| chris@162 | 21 hv_size_t hv_max_ui(hv_size_t x, hv_size_t y) { | 
| chris@162 | 22   return (x >= y) ? x : y; | 
| chris@162 | 23 } | 
| chris@162 | 24 | 
| chris@162 | 25 hv_size_t hv_min_ui(hv_size_t x, hv_size_t y) { | 
| chris@162 | 26   return (x <= y) ? x : y; | 
| chris@162 | 27 } | 
| chris@162 | 28 | 
| chris@162 | 29 int hv_max_i(int x, int y) { | 
| chris@162 | 30   return (x >= y) ? x : y; | 
| chris@162 | 31 } | 
| chris@162 | 32 | 
| chris@162 | 33 int hv_min_i(int x, int y) { | 
| chris@162 | 34   return (x <= y) ? x : y; | 
| chris@162 | 35 } | 
| chris@162 | 36 | 
| chris@162 | 37 hv_uint32_t hv_min_max_log2(hv_uint32_t x) { | 
| chris@162 | 38   // finds ceil(log2(x)) | 
| chris@162 | 39   // http://stackoverflow.com/questions/2589096/find-most-significant-bit-left-most-that-is-set-in-a-bit-array | 
| chris@162 | 40   return (hv_uint32_t) ((8 * sizeof(unsigned int)) - __builtin_clz(x - 1)); | 
| chris@162 | 41 } | 
| chris@162 | 42 | 
| chris@162 | 43 #endif // HV_UNIX |