diff --git a/src/halfvec.c b/src/halfvec.c index 4742c7e..7aefdc1 100644 --- a/src/halfvec.c +++ b/src/halfvec.c @@ -164,7 +164,7 @@ HalfToFloat4(half num) /* * Convert a float4 to a half */ -static half +half Float4ToHalfUnchecked(float num) { #ifdef FLT16_SUPPORT diff --git a/src/halfvec.h b/src/halfvec.h index 7ddad00..fdd3d6b 100644 --- a/src/halfvec.h +++ b/src/halfvec.h @@ -36,5 +36,6 @@ typedef struct HalfVector HalfVector *InitHalfVector(int dim); float HalfToFloat4(half num); half Float4ToHalf(float num); +half Float4ToHalfUnchecked(float num); #endif diff --git a/src/hnswutils.c b/src/hnswutils.c index 0b8c7c5..4ce9028 100644 --- a/src/hnswutils.c +++ b/src/hnswutils.c @@ -199,7 +199,10 @@ HnswNormValue(FmgrInfo *procinfo, Oid collation, Datum *value, int type) HalfVector *result = InitHalfVector(v->dim); for (int i = 0; i < v->dim; i++) - result->x[i] = Float4ToHalf(HalfToFloat4(v->x[i]) / norm); + { + /* TODO Fix */ + result->x[i] = Float4ToHalfUnchecked(HalfToFloat4(v->x[i]) / norm); + } *value = PointerGetDatum(result); }