| summaryrefslogtreecommitdiff |
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-01-20 22:19:09 +0100 |
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-01-20 22:19:09 +0100 |
| commit | df3657b2a99ef20da99ac3c6c02f43cc23e70fca (patch) | |
| tree | 86a9e72bbbbaf7296b2d7cd2725a8bc42611a1f3 /src/tool/sorted_list.c | |
| parent | 0d49fb74eadcf933f696420cd182077927680d26 (diff) | |
Moving towards a server/clients structure.
Diffstat (limited to 'src/tool/sorted_list.c')
| -rw-r--r-- | src/tool/sorted_list.c | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/src/tool/sorted_list.c b/src/tool/sorted_list.c deleted file mode 100644 index 5252c9e..0000000 --- a/src/tool/sorted_list.c +++ /dev/null @@ -1,80 +0,0 @@ -#include "./sorted_list.h" - -int ZoO_sorted_list_index_of -( - ZoO_index const list_length, - const void * const sorted_list, - const void * const elem, - size_t const type_size, - int (*compare) (const void *, const void *, const void *), - const void * const other, - ZoO_index result [const restrict static 1] -) -{ - int cmp; - ZoO_index i, current_min, current_max; - const char * sorted_list_access; - - sorted_list_access = (char *) sorted_list; - - /* This is a binary search. */ - - if (list_length == 0) - { - *result = 0; - - return -1; - } - - current_min = 0; - - current_max = (list_length - 1); - - for (;;) - { - /* FIXME: overflow-safe? */ - /* No: (and (> current_min (/ Max 2)) (> current_max (/ Max 2))) */ - i = ((current_min + current_max) / 2); - - if (i == list_length) - { - /* FIXME: I don't see how this one can be true */ - *result = list_length; - - return -1; - } - - cmp = compare(elem, (sorted_list_access + (i * type_size)), other); - - if (cmp > 0) - { - if ((current_min > current_max)) - { - *result = (i + 1); - - return -1; - } - - /* FIXME: overflow-safe? */ - current_min = (i + 1); - } - else if (cmp < 0) - { - if ((current_min > current_max) || (i == 0)) - { - *result = i; - - return -1; - } - - /* overflow-safe */ - current_max = (i - 1); - } - else - { - *result = i; - - return 0; - } - } -} |


