Commit Graph
665 Commits
Author SHA1 Message Date
Andrew Kane ad0ca72d01 Updated SumCenters and SetNewCenters to use float [skip ci] 2024-04-24 16:08:19 -07:00
Andrew Kane de8685b155 Improved code [skip ci] 2024-04-24 15:57:29 -07:00
Andrew Kane 4e37cfc63c Improved SetNewCenters [skip ci] 2024-04-24 15:56:50 -07:00
Andrew Kane b2f2e933f7 Improved SumCenters [skip ci] 2024-04-24 15:50:23 -07:00
Andrew Kane 49763089ce Improved SortVectorArray [skip ci] 2024-04-24 15:38:04 -07:00
Andrew Kane 520f6e7e4b Moved IvfflatGetType [skip ci] 2024-04-24 15:34:10 -07:00
Andrew Kane 3f39a97160 Added support functions for max dimensions for ivfflat 2024-04-24 15:27:10 -07:00
Andrew Kane 6f333f9aa7 Renamed functions [skip ci] 2024-04-24 15:00:36 -07:00
Andrew Kane 21f004a30c Removed type-specific code from HNSW [skip ci] 2024-04-24 14:53:45 -07:00
Heikki LinnakangasandAndrew Kane cafd2e2918 Add comment to 'unused' fields
I just guessed that these exist for future extendability.
2024-04-24 13:05:02 -07:00
Andrew Kane 555cec570a Switched to 0-based numbering for sparsevec on-disk format 2024-04-24 12:51:24 -07:00
Andrew Kane 4bc5aa8d10 Updated comments [skip ci] 2024-04-24 11:27:09 -07:00
Andrew Kane 3f2197fd7f Added comments [skip ci] 2024-04-24 11:26:05 -07:00
Andrew Kane 8f728038b3 Increased max sparsevec dimensions to 1B [skip ci] 2024-04-24 11:17:25 -07:00
Andrew Kane 3bf18af035 Improved error messages for sparsevec input 2024-04-24 11:12:28 -07:00
Andrew Kane c4ceb18ef9 Added comment [skip ci] 2024-04-24 10:13:50 -07:00
Andrew Kane 96e08e1b6d Switched to strtoint for sparsevec input 2024-04-24 09:56:09 -07:00
Heikki LinnakangasandGitHub e452e0afc7 Fix integer overflow in subvector() function (#530)
`end = start + count` can overflow if `start` is very large. That
leads to a segfault later in the function. Add test case for it.
2024-04-24 01:20:16 -07:00
Andrew Kane d382db7ab0 Use VARSIZE_ANY instead of itemsize to avoid uninitialized bytes 2024-04-23 23:52:02 -07:00
Andrew Kane 2b4fcb1df0 Improved consistency of sparsevec_l1_distance with vector [skip ci] 2024-04-23 21:24:02 -07:00
Andrew Kane b0323ae778 Improved consistency with vector [skip ci] 2024-04-23 21:13:00 -07:00
Andrew Kane 0906a9dd69 Improved consistency with vector [skip ci] 2024-04-23 21:11:27 -07:00
Andrew KaneandHeikki Linnakangas ef49591e75 Removed padding for sparsevec - #529
Co-authored-by: Heikki Linnakangas <[email protected]>
2024-04-23 20:07:24 -07:00
Andrew Kane 939bcbe0ca Increased max sparsevec dimensions to 1M [skip ci] 2024-04-23 17:47:11 -07:00
Andrew Kane 1174298890 Moved type-specific code to separate functions 2024-04-23 16:32:10 -07:00
Andrew Kane c0451618bd DRY code for sorting vector arrays [skip ci] 2024-04-23 15:59:42 -07:00
Andrew Kane 70f768b611 Improved code [skip ci] 2024-04-23 15:53:12 -07:00
Andrew Kane a816f615b1 Set length for newCenters and aggCenters [skip ci] 2024-04-23 15:47:04 -07:00
Andrew Kane 09036ccf63 Added safety check to NormCenters [skip ci] 2024-04-23 15:43:04 -07:00
Andrew Kane 30ee9fa123 Switched to support function for normalizing centers for k-means 2024-04-23 15:39:58 -07:00
Andrew Kane 8e5c290640 Moved type lookup to support functions - #527 2024-04-23 13:02:47 -07:00
Heikki LinnakangasandGitHub 2db96535f6 Forbid zero values in sparsevec's binary input function (#528)
The text input function simply left out any zero values, but the
binary input function did not. That's problematic because you end up
with an "unnormalized" sparse vector, which behaves in weird ways.  At
least sparsevec_cmp_internal() expects both inputs to not contain
zeros.

The binary send function never produces such zero values, but an
external tool could. Or to test, you can use COPY TO (FORMAT BINARY),
use a hex editor to edit one of the values to be zero, and copy it
back with COPY FROM (FORMAT BINARY).
2024-04-23 09:13:53 -07:00
Andrew Kane 8ec5fa324b Moved HnswGetType call [skip ci] 2024-04-22 19:22:09 -07:00
Andrew Kane 89e449def7 Removed unneeded headers [skip ci] 2024-04-22 19:10:50 -07:00
Andrew Kane 99d3f851c8 Added support function for l2_normalize to ivfflat 2024-04-22 19:06:06 -07:00
Andrew Kane 9577721f0f Added support function for l2_normalize [skip ci] 2024-04-22 18:36:47 -07:00
Andrew Kane ee4df240cd Removed type-specific code from ivfscan 2024-04-22 18:12:18 -07:00
Andrew Kane cde2f5181c Added comments on dispatching [skip ci] 2024-04-22 16:18:57 -07:00
Andrew Kane 86eaebc33d Added DISABLE_DISPATCH option [skip ci] 2024-04-22 15:43:07 -07:00
Andrew Kane b31f4e7234 Added VECTOR_TARGET_CLONES to VectorL1Distance [skip ci] 2024-04-22 15:15:57 -07:00
Andrew Kane cd240ea8a6 Added CPU dispatching for L1 distance for halfvec 2024-04-22 15:02:17 -07:00
Andrew Kane 0cb91bfd69 Moved L1 distance to halfutils [skip ci] 2024-04-22 13:19:42 -07:00
Andrew Kane 911918f6f6 Renamed bit files 2024-04-22 10:22:18 -07:00
Andrew Kane 78b5c5b75c Removed unneeded headers [skip ci] 2024-04-19 18:09:38 -07:00
Andrew Kane 3d4543b696 Added casts between halfvec and sparsevec 2024-04-19 18:03:07 -07:00
Andrew Kane 4eae97e99f Updated sparsevec input to support indices in any order [skip ci] 2024-04-19 16:54:19 -07:00
Andrew Kane bf1b116987 Improved consistency of CPU dispatching code 2024-04-18 14:13:12 -07:00
337922a6b5 Improved performance of bit distance functions - #519
Co-authored-by: Nathan Bossart <[email protected]>
Co-authored-by: "Jonathan S. Katz" <[email protected]>
2024-04-18 13:45:00 -07:00
Andrew Kane d551f32a1f Improved halfvec dispatching code [skip ci] 2024-04-17 20:22:14 -07:00
Andrew Kane c90187cfef Updated comments [skip ci] 2024-04-17 18:57:59 -07:00