@@ -85261,9 +85261,9 @@ typedef u32 VectorDims;
8526185261/*
8526285262 * Enumerate of supported vector types (0 omitted intentionally as we can use zero as "undefined" value)
8526385263*/
85264- #define VECTOR_TYPE_FLOAT32 1
85265- #define VECTOR_TYPE_FLOAT64 2
85266- #define VECTOR_TYPE_1BIT 3
85264+ #define VECTOR_TYPE_FLOAT32 1
85265+ #define VECTOR_TYPE_FLOAT64 2
85266+ #define VECTOR_TYPE_FLOAT1BIT 3
8526785267
8526885268#define VECTOR_FLAGS_STATIC 1
8526985269
@@ -210999,7 +210999,7 @@ size_t vectorDataSize(VectorType type, VectorDims dims){
210999210999 return dims * sizeof(float);
211000211000 case VECTOR_TYPE_FLOAT64:
211001211001 return dims * sizeof(double);
211002- case VECTOR_TYPE_1BIT :
211002+ case VECTOR_TYPE_FLOAT1BIT :
211003211003 return (dims + 7) / 8;
211004211004 default:
211005211005 assert(0);
@@ -211072,7 +211072,7 @@ float vectorDistanceCos(const Vector *pVector1, const Vector *pVector2){
211072211072 return vectorF32DistanceCos(pVector1, pVector2);
211073211073 case VECTOR_TYPE_FLOAT64:
211074211074 return vectorF64DistanceCos(pVector1, pVector2);
211075- case VECTOR_TYPE_1BIT :
211075+ case VECTOR_TYPE_FLOAT1BIT :
211076211076 return vector1BitDistanceHamming(pVector1, pVector2);
211077211077 default:
211078211078 assert(0);
@@ -211236,7 +211236,7 @@ static int vectorParseMeta(const unsigned char *pBlob, size_t nBlobSize, int *pT
211236211236 }
211237211237 *pDims = nBlobSize / sizeof(double);
211238211238 *pDataSize = nBlobSize;
211239- }else if( *pType == VECTOR_TYPE_1BIT ){
211239+ }else if( *pType == VECTOR_TYPE_FLOAT1BIT ){
211240211240 if( nBlobSize == 0 || nBlobSize % 2 != 0 ){
211241211241 *pzErrMsg = sqlite3_mprintf("vector: 1bit vector blob length must be divisible by 2 and not be empty (excluding 'type'-byte): length=%d", nBlobSize);
211242211242 return SQLITE_ERROR;
@@ -211286,7 +211286,7 @@ int vectorParseSqliteBlobWithType(
211286211286 case VECTOR_TYPE_FLOAT64:
211287211287 vectorF64DeserializeFromBlob(pVector, pBlob, nDataSize);
211288211288 return 0;
211289- case VECTOR_TYPE_1BIT :
211289+ case VECTOR_TYPE_FLOAT1BIT :
211290211290 vector1BitDeserializeFromBlob(pVector, pBlob, nDataSize);
211291211291 return 0;
211292211292 default:
@@ -211384,7 +211384,7 @@ void vectorDump(const Vector *pVector){
211384211384 case VECTOR_TYPE_FLOAT64:
211385211385 vectorF64Dump(pVector);
211386211386 break;
211387- case VECTOR_TYPE_1BIT :
211387+ case VECTOR_TYPE_FLOAT1BIT :
211388211388 vector1BitDump(pVector);
211389211389 break;
211390211390 default:
@@ -211415,7 +211415,7 @@ static int vectorMetaSize(VectorType type, VectorDims dims){
211415211415 return 0;
211416211416 }else if( type == VECTOR_TYPE_FLOAT64 ){
211417211417 return 1;
211418- }else if( type == VECTOR_TYPE_1BIT ){
211418+ }else if( type == VECTOR_TYPE_FLOAT1BIT ){
211419211419 nDataSize = vectorDataSize(type, dims);
211420211420 nMetaSize++; // one byte which specify amount of leftover bits
211421211421 if( nDataSize % 2 == 0 ){
@@ -211435,10 +211435,10 @@ static void vectorSerializeMeta(const Vector *pVector, size_t nDataSize, unsigne
211435211435 assert( nDataSize % 2 == 0 );
211436211436 assert( nBlobSize == nDataSize + 1 );
211437211437 pBlob[nBlobSize - 1] = VECTOR_TYPE_FLOAT64;
211438- }else if( pVector->type == VECTOR_TYPE_1BIT ){
211438+ }else if( pVector->type == VECTOR_TYPE_FLOAT1BIT ){
211439211439 assert( nBlobSize % 2 == 1 );
211440211440 assert( nBlobSize >= 3 );
211441- pBlob[nBlobSize - 1] = VECTOR_TYPE_1BIT ;
211441+ pBlob[nBlobSize - 1] = VECTOR_TYPE_FLOAT1BIT ;
211442211442 pBlob[nBlobSize - 2] = 8 * (nBlobSize - 1) - pVector->dims;
211443211443 }else{
211444211444 assert( 0 );
@@ -211475,7 +211475,7 @@ void vectorSerializeWithMeta(
211475211475 case VECTOR_TYPE_FLOAT64:
211476211476 vectorF64SerializeToBlob(pVector, pBlob, nDataSize);
211477211477 break;
211478- case VECTOR_TYPE_1BIT :
211478+ case VECTOR_TYPE_FLOAT1BIT :
211479211479 vector1BitSerializeToBlob(pVector, pBlob, nDataSize);
211480211480 break;
211481211481 default:
@@ -211491,7 +211491,7 @@ size_t vectorSerializeToBlob(const Vector *pVector, unsigned char *pBlob, size_t
211491211491 return vectorF32SerializeToBlob(pVector, pBlob, nBlobSize);
211492211492 case VECTOR_TYPE_FLOAT64:
211493211493 return vectorF64SerializeToBlob(pVector, pBlob, nBlobSize);
211494- case VECTOR_TYPE_1BIT :
211494+ case VECTOR_TYPE_FLOAT1BIT :
211495211495 return vector1BitSerializeToBlob(pVector, pBlob, nBlobSize);
211496211496 default:
211497211497 assert(0);
@@ -211520,7 +211520,7 @@ static void vectorConvertFromF32(const Vector *pFrom, Vector *pTo){
211520211520 for(i = 0; i < pFrom->dims; i++){
211521211521 dstF64[i] = src[i];
211522211522 }
211523- }else if( pTo->type == VECTOR_TYPE_1BIT ){
211523+ }else if( pTo->type == VECTOR_TYPE_FLOAT1BIT ){
211524211524 dst1Bit = pTo->data;
211525211525 for(i = 0; i < pFrom->dims; i += 8){
211526211526 dst1Bit[i / 8] = 0;
@@ -211552,7 +211552,7 @@ static void vectorConvertFromF64(const Vector *pFrom, Vector *pTo){
211552211552 for(i = 0; i < pFrom->dims; i++){
211553211553 dstF32[i] = src[i];
211554211554 }
211555- }else if( pTo->type == VECTOR_TYPE_1BIT ){
211555+ }else if( pTo->type == VECTOR_TYPE_FLOAT1BIT ){
211556211556 dst1Bit = pTo->data;
211557211557 for(i = 0; i < pFrom->dims; i += 8){
211558211558 dst1Bit[i / 8] = 0;
@@ -211576,7 +211576,7 @@ static void vectorConvertFrom1Bit(const Vector *pFrom, Vector *pTo){
211576211576
211577211577 assert( pFrom->dims == pTo->dims );
211578211578 assert( pFrom->type != pTo->type );
211579- assert( pFrom->type == VECTOR_TYPE_1BIT );
211579+ assert( pFrom->type == VECTOR_TYPE_FLOAT1BIT );
211580211580
211581211581 src = pFrom->data;
211582211582 if( pTo->type == VECTOR_TYPE_FLOAT32 ){
@@ -211614,7 +211614,7 @@ void vectorConvert(const Vector *pFrom, Vector *pTo){
211614211614 vectorConvertFromF32(pFrom, pTo);
211615211615 }else if( pFrom->type == VECTOR_TYPE_FLOAT64 ){
211616211616 vectorConvertFromF64(pFrom, pTo);
211617- }else if( pFrom->type == VECTOR_TYPE_1BIT ){
211617+ }else if( pFrom->type == VECTOR_TYPE_FLOAT1BIT ){
211618211618 vectorConvertFrom1Bit(pFrom, pTo);
211619211619 }else{
211620211620 assert( 0 );
@@ -211697,7 +211697,7 @@ static void vector1BitFunc(
211697211697 int argc,
211698211698 sqlite3_value **argv
211699211699){
211700- vectorFuncHintedType(context, argc, argv, VECTOR_TYPE_1BIT );
211700+ vectorFuncHintedType(context, argc, argv, VECTOR_TYPE_FLOAT1BIT );
211701211701}
211702211702
211703211703/*
@@ -211884,7 +211884,7 @@ void vector1BitDump(const Vector *pVec){
211884211884 u8 *elems = pVec->data;
211885211885 unsigned i;
211886211886
211887- assert( pVec->type == VECTOR_TYPE_1BIT );
211887+ assert( pVec->type == VECTOR_TYPE_FLOAT1BIT );
211888211888
211889211889 printf("f1bit: [");
211890211890 for(i = 0; i < pVec->dims; i++){
@@ -211906,7 +211906,7 @@ size_t vector1BitSerializeToBlob(
211906211906 u8 *pPtr = pBlob;
211907211907 unsigned i;
211908211908
211909- assert( pVector->type == VECTOR_TYPE_1BIT );
211909+ assert( pVector->type == VECTOR_TYPE_FLOAT1BIT );
211910211910 assert( pVector->dims <= MAX_VECTOR_SZ );
211911211911 assert( nBlobSize >= (pVector->dims + 7) / 8 );
211912211912
@@ -211953,8 +211953,8 @@ int vector1BitDistanceHamming(const Vector *v1, const Vector *v2){
211953211953 int i, len8, len32, offset8;
211954211954
211955211955 assert( v1->dims == v2->dims );
211956- assert( v1->type == VECTOR_TYPE_1BIT );
211957- assert( v2->type == VECTOR_TYPE_1BIT );
211956+ assert( v1->type == VECTOR_TYPE_FLOAT1BIT );
211957+ assert( v2->type == VECTOR_TYPE_FLOAT1BIT );
211958211958
211959211959 len8 = (v1->dims + 7) / 8;
211960211960 len32 = v1->dims / 32;
@@ -211976,7 +211976,7 @@ void vector1BitDeserializeFromBlob(
211976211976){
211977211977 u8 *elems = pVector->data;
211978211978
211979- assert( pVector->type == VECTOR_TYPE_1BIT );
211979+ assert( pVector->type == VECTOR_TYPE_FLOAT1BIT );
211980211980 assert( 0 <= pVector->dims && pVector->dims <= MAX_VECTOR_SZ );
211981211981 assert( nBlobSize >= (pVector->dims + 7) / 8 );
211982211982
@@ -212494,7 +212494,7 @@ int diskAnnCreateIndex(
212494212494 }
212495212495 }
212496212496 neighbours = vectorIdxParamsGetU64(pParams, VECTOR_COMPRESS_NEIGHBORS_PARAM_ID);
212497- if( neighbours == VECTOR_TYPE_1BIT && metric != VECTOR_METRIC_TYPE_COS ){
212497+ if( neighbours == VECTOR_TYPE_FLOAT1BIT && metric != VECTOR_METRIC_TYPE_COS ){
212498212498 *pzErrMsg = "1-bit compression available only for cosine metric";
212499212499 return SQLITE_ERROR;
212500212500 }
@@ -213738,7 +213738,7 @@ int diskAnnOpenIndex(
213738213738 if( compressNeighbours == 0 ){
213739213739 pIndex->nEdgeVectorType = pIndex->nNodeVectorType;
213740213740 pIndex->nEdgeVectorSize = pIndex->nNodeVectorSize;
213741- }else if( compressNeighbours == VECTOR_TYPE_1BIT ){
213741+ }else if( compressNeighbours == VECTOR_TYPE_FLOAT1BIT ){
213742213742 pIndex->nEdgeVectorType = compressNeighbours;
213743213743 pIndex->nEdgeVectorSize = vectorDataSize(compressNeighbours, pIndex->nVectorDims);
213744213744 }else{
@@ -214541,8 +214541,8 @@ static struct VectorColumnType VECTOR_COLUMN_TYPES[] = {
214541214541 { "F32_BLOB", VECTOR_TYPE_FLOAT32 },
214542214542 { "FLOAT64", VECTOR_TYPE_FLOAT64 },
214543214543 { "F64_BLOB", VECTOR_TYPE_FLOAT64 },
214544- { "FLOAT1BIT", VECTOR_TYPE_1BIT },
214545- { "F1BIT_BLOB", VECTOR_TYPE_1BIT },
214544+ { "FLOAT1BIT", VECTOR_TYPE_FLOAT1BIT },
214545+ { "F1BIT_BLOB", VECTOR_TYPE_FLOAT1BIT },
214546214546};
214547214547
214548214548/*
@@ -214558,10 +214558,11 @@ struct VectorParamName {
214558214558};
214559214559
214560214560static struct VectorParamName VECTOR_PARAM_NAMES[] = {
214561- { "type", VECTOR_INDEX_TYPE_PARAM_ID, 0, "diskann", VECTOR_INDEX_TYPE_DISKANN },
214562- { "metric", VECTOR_METRIC_TYPE_PARAM_ID, 0, "cosine", VECTOR_METRIC_TYPE_COS },
214563- { "metric", VECTOR_METRIC_TYPE_PARAM_ID, 0, "l2", VECTOR_METRIC_TYPE_L2 },
214564- { "compress_neighbors", VECTOR_COMPRESS_NEIGHBORS_PARAM_ID, 0, "1bit", VECTOR_TYPE_1BIT },
214561+ { "type", VECTOR_INDEX_TYPE_PARAM_ID, 0, "diskann", VECTOR_INDEX_TYPE_DISKANN },
214562+ { "metric", VECTOR_METRIC_TYPE_PARAM_ID, 0, "cosine", VECTOR_METRIC_TYPE_COS },
214563+ { "metric", VECTOR_METRIC_TYPE_PARAM_ID, 0, "l2", VECTOR_METRIC_TYPE_L2 },
214564+ { "compress_neighbors", VECTOR_COMPRESS_NEIGHBORS_PARAM_ID, 0, "float1bit", VECTOR_TYPE_FLOAT1BIT },
214565+ { "compress_neighbors", VECTOR_COMPRESS_NEIGHBORS_PARAM_ID, 0, "float32", VECTOR_TYPE_FLOAT32 },
214565214566 { "alpha", VECTOR_PRUNING_ALPHA_PARAM_ID, 2, 0, 0 },
214566214567 { "search_l", VECTOR_SEARCH_L_PARAM_ID, 1, 0, 0 },
214567214568 { "insert_l", VECTOR_INSERT_L_PARAM_ID, 1, 0, 0 },
@@ -215121,7 +215122,7 @@ int vectorIndexSearch(
215121215122 rc = SQLITE_ERROR;
215122215123 goto out;
215123215124 }
215124- assert( type == VECTOR_TYPE_FLOAT32 || type == VECTOR_TYPE_FLOAT64 || type == VECTOR_TYPE_1BIT );
215125+ assert( type == VECTOR_TYPE_FLOAT32 || type == VECTOR_TYPE_FLOAT64 || type == VECTOR_TYPE_FLOAT1BIT );
215125215126
215126215127 pVector = vectorAlloc(type, dims);
215127215128 if( pVector == NULL ){
0 commit comments