Andrew Kane
281a74f54e
Improved consistency of sparsevec_l1_distance with vector [skip ci]
2024-04-23 21:24:02 -07:00
Andrew Kane
034713c803
Improved consistency with vector [skip ci]
2024-04-23 21:13:00 -07:00
Andrew Kane
ed2e460f00
Improved consistency with vector [skip ci]
2024-04-23 21:11:27 -07:00
Andrew Kane
794bbaecc7
Removed padding for sparsevec - #529
...
Co-authored-by: Heikki Linnakangas <heikki.linnakangas@iki.fi >
2024-04-23 20:07:24 -07:00
Andrew Kane
8eddcfbd1d
Increased max sparsevec dimensions to 1M [skip ci]
2024-04-23 17:47:11 -07:00
Andrew Kane
b609c343b4
Moved type-specific code to separate functions
2024-04-23 16:32:10 -07:00
Andrew Kane
bbfb3f200a
DRY code for sorting vector arrays [skip ci]
2024-04-23 15:59:42 -07:00
Andrew Kane
99d367edc0
Improved code [skip ci]
2024-04-23 15:53:12 -07:00
Andrew Kane
991743786a
Set length for newCenters and aggCenters [skip ci]
2024-04-23 15:47:04 -07:00
Andrew Kane
60ceaea4f2
Added safety check to NormCenters [skip ci]
2024-04-23 15:43:04 -07:00
Andrew Kane
9cd789fe06
Switched to support function for normalizing centers for k-means
2024-04-23 15:39:58 -07:00
Andrew Kane
0da6213a60
Moved type lookup to support functions - #527
2024-04-23 13:02:47 -07:00
Heikki Linnakangas
d1b83991af
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
bd409f0c6a
Moved HnswGetType call [skip ci]
2024-04-22 19:22:09 -07:00
Andrew Kane
1994fd003a
Removed unneeded headers [skip ci]
2024-04-22 19:10:50 -07:00
Andrew Kane
bd62561a19
Added support function for l2_normalize to ivfflat
2024-04-22 19:06:06 -07:00
Andrew Kane
f14c21748b
Added support function for l2_normalize [skip ci]
2024-04-22 18:36:47 -07:00
Andrew Kane
2b77005610
Removed type-specific code from ivfscan
2024-04-22 18:12:18 -07:00
Andrew Kane
ab71c12a28
Added comments on dispatching [skip ci]
2024-04-22 16:18:57 -07:00
Andrew Kane
4e6aa2f0c1
Added DISABLE_DISPATCH option [skip ci]
2024-04-22 15:43:07 -07:00
Andrew Kane
40e86251c3
Added VECTOR_TARGET_CLONES to VectorL1Distance [skip ci]
2024-04-22 15:15:57 -07:00
Andrew Kane
0c9ae4b187
Added CPU dispatching for L1 distance for halfvec
2024-04-22 15:02:17 -07:00
Andrew Kane
f9941c2992
Moved L1 distance to halfutils [skip ci]
2024-04-22 13:19:42 -07:00
Andrew Kane
ed4837cc4f
Renamed bit files
2024-04-22 10:22:18 -07:00
Andrew Kane
3df5655b30
Removed unneeded headers [skip ci]
2024-04-19 18:09:38 -07:00
Andrew Kane
fb77671d05
Added casts between halfvec and sparsevec
2024-04-19 18:03:07 -07:00
Andrew Kane
fd4fbd238c
Updated sparsevec input to support indices in any order [skip ci]
2024-04-19 16:54:19 -07:00
Andrew Kane
4e093f95be
Improved consistency of CPU dispatching code
2024-04-18 14:13:12 -07:00
Andrew Kane
fb3c964ac2
Improved performance of bit distance functions - #519
...
Co-authored-by: Nathan Bossart <nathan@postgresql.org >
Co-authored-by: "Jonathan S. Katz" <jkatz@users.noreply.github.com >
2024-04-18 13:45:00 -07:00
Andrew Kane
0b938f8328
Improved halfvec dispatching code [skip ci]
2024-04-17 20:22:14 -07:00
Andrew Kane
6153e173f3
Updated comments [skip ci]
2024-04-17 18:57:59 -07:00
Andrew Kane
eb48b9eec4
Added comments [skip ci]
2024-04-17 18:53:58 -07:00
Andrew Kane
fb6af03361
Fixed CPU dispatching check for halfvec distance functions
2024-04-17 18:27:27 -07:00
Andrew Kane
e2d8907180
Added todo [skip ci]
2024-04-17 17:25:53 -07:00
Andrew Kane
09ea1b0d5c
Improved target_clones logic [skip ci]
2024-04-17 15:05:47 -07:00
Andrew Kane
8d68f88507
Improved target_clones logic [skip ci]
2024-04-17 15:05:19 -07:00
Andrew Kane
8b33a359ce
Updated VECTOR_ARRAY_SIZE for alignment [skip ci]
2024-04-17 00:55:28 -07:00
Andrew Kane
576a37e975
Ensure items are always aligned
2024-04-17 00:17:40 -07:00
Andrew Kane
cf570810eb
Fixed alignment for bit in IVFFlat - fixes #520
2024-04-17 00:05:31 -07:00
Andrew Kane
4e2b76e627
Skip duplicate center check for bit [skip ci]
2024-04-16 17:20:48 -07:00
Andrew Kane
04af15c9d6
Added support for bit to IVFFlat
2024-04-16 17:12:27 -07:00
Andrew Kane
588873e145
Added comment [skip ci]
2024-04-16 11:38:59 -07:00
Andrew Kane
7adb8a6e0e
Fixed sparsevec comparison function and added test for consistency
2024-04-16 11:36:45 -07:00
Andrew Kane
5b0eff9dae
Updated comment [skip ci]
2024-04-15 15:53:07 -07:00
Andrew Kane
5cf75c0b83
Added comment [skip ci]
2024-04-15 15:50:59 -07:00
Andrew Kane
5215c28923
Moved norm check to separate function
2024-04-15 15:32:08 -07:00
Andrew Kane
bf3ef4de56
Improved safety check [skip ci]
2024-04-15 14:55:32 -07:00
Andrew Kane
2c82f05503
Improved safety check [skip ci]
2024-04-15 14:51:24 -07:00
Andrew Kane
f655166639
Improved safety check [skip ci]
2024-04-15 14:50:28 -07:00
Andrew Kane
7580e99205
Improved safety check [skip ci]
2024-04-15 14:49:40 -07:00