Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rebase with upstream v2.10.0 #36

Open
wants to merge 216 commits into
base: main-lantern
Choose a base branch
from

Conversation

var77
Copy link

@var77 var77 commented Sep 26, 2024

No description provided.

ashvardanian and others added 30 commits November 29, 2023 18:56
Fix: undefined var error in `remove` api
* Add threads linker option on linux

Latest versions of libc (>= 2.34, released on August, 2021) have
libpthread built in but in slightly older libcs one has to still
specify -llibpthread to explicitly link it in
The commit makes sure usearch compiles successfully with these
older libcs

* Use is_dummy() instead of repeating dummy predicate check logic
## [2.8.15](unum-cloud/usearch@v2.8.14...v2.8.15) (2024-01-09)

### Fix

* exporting quantization enums in Go (unum-cloud#336) ([93c74c3](unum-cloud@93c74c3)), closes [unum-cloud#336](unum-cloud#336)
* Add move construction tests and fix an issue caused by them

* Only consider zero length IO an error if input buffer was larger than zero

* Move option-override policy opt-in before policy definitions so overrides actually take effect
## [2.8.16](unum-cloud/usearch@v2.8.15...v2.8.16) (2024-01-24)

### Docs

* Downloads numbers ([13cc624](unum-cloud@13cc624))

### Fix

* SimSIMD dispatch ([c8dc3b7](unum-cloud@c8dc3b7)), closes [unum-cloud#320](unum-cloud#320)

### Make

* Fix Node version for SemVer ([a68fca6](unum-cloud@a68fca6))
* Upgrade dependencies ([6ab2150](unum-cloud@6ab2150))
* Upgrade Node environment ([f5b6750](unum-cloud@f5b6750))
Fix invalid automatically being assigned on bug report creation
Ngalstyan4 and others added 30 commits September 26, 2024 13:16
    Per C00 and C++ standards[1], undefined macros are replaced with zero
    Since stdint header is not included when using pointer sizes to determine cpu word size,
    USEARCH_64BIT_ENV is always defined
    The commit brings in cstdint header to make sure the appropriate arch header is defined

    [1]: https://stackoverflow.com/questions/5085392/what-is-the-value-of-an-undefined-constant-used-in-if
In the past, if we got "too lucky" traversing the graph,
we could exit early before accumulating K top matches,
even if the index had more than K entries. This patch
changes that behavior, making output more predicatable.
Previously we were downcasting floats to the target type (e.g. int8_t), and then
clamping to [-100, 100] range. This means that e.g. 129 would be cast to -127 and
then converted to -100, in stead of becoming 100

The fix does clamping first, and then casts the resulting number
(which is guaranteed to be in range [-100, 100], due to clamping)
from source type to target int8_t. Given the clamping, this will never overflow.
When converting floating point arrays to binary, we use bitwise OR
operations to set the relevant bits in the output buffer to 1. We do
nothing if the bit is zero, so we assume that the bit is zero to start
with.
The memset statement makes sure this assumption holds.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.