Commit Graph
13 Commits
Author SHA1 Message Date
Andrea Piseri 3fa971a510 Add the inner for loop back in the logic
This could be easier to predict in cases where one of `left` and `right`
is significantly greater than the other, and as such the same branch is
taken multiple times in a row
2022-12-21 22:10:02 +01:00
Andrea Piseri 191223bb3c Fix non-generic cast in core:slice.rotate_left 2022-12-21 21:58:01 +01:00
Andrea Piseri 385d2a143c Fix core:slice.rotate_left
This commit includes two fixes:
- a temporary cast to make the function compile
- a fix to a logic error that caused the function to hang or return
  incorrect results
2022-12-21 21:09:22 +01:00
Andrea Piseri a040be957f Fix tail recursion in _quick_sort_general
The `if` statement should have been a `for` loop, in order to allow recursively
sorting the subarrays with quicksort, and not resort to shell sort after
one step.
2022-04-13 10:55:16 +02:00
Andrea Piseri bff3426d25 Fix leak in core:container/bit_array
calling `clear` on a `bit_array` no longer leaks the previous
allocation, instead it sets all bits to `false` preserving the same
backing dynamic array.
2022-03-06 10:21:46 +01:00
Andrea Piseri b6ebfe4b2c rename iterator procedures 2022-02-05 18:11:48 +01:00
Andrea Piseri bccbdefde9 Update interface to allow more modes of iteration
It's now possible to iterate over:
- all keys in the range min_value ..= max_value, with `iterate_all`
- all set keys in the bit array, with `iterate_set`
- all unset keys in the range min_value ..= max_value, with `iterate_unset`

`Bit_Array` now stores the `max_value` provided during construction, and
updates it when a key that was previously out of range is set.
2022-02-05 18:00:59 +01:00
Andrea Piseri 48af78e469 add iterator to core:container/bit_array 2022-02-04 22:12:07 +01:00
Andrea Piseri cf9f3d5e2d fix logic in bswap_128 2022-02-03 15:50:39 +01:00
Andrea Piseri e190c024fd Fix logic in is_nil procedure: a non_nil slice means there is data to check. 2022-02-02 20:07:38 +01:00
Andrea Piseri 92e70b9a58 use multipointers instead of simple pointers 2021-12-28 16:22:34 +01:00
Andrea Piseri 822da9d12d Merge branch 'master' into slice_scanner 2021-12-28 16:12:15 +01:00
Andrea Piseri 5d80e24224 Add slice/scanner proc 2021-12-23 12:49:40 +01:00