From 8d31b8793395e204e00a13de40b1fb05a5289cc7 Mon Sep 17 00:00:00 2001 From: Andrew Kane Date: Thu, 13 Aug 2026 22:12:04 -0700 Subject: [PATCH] Improved casting [skip ci] --- src/sparsevec.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/sparsevec.c b/src/sparsevec.c index be55fbe..be5b119 100644 --- a/src/sparsevec.c +++ b/src/sparsevec.c @@ -724,20 +724,20 @@ array_to_sparsevec(PG_FUNCTION_ARGS) #ifdef _MSC_VER /* /fp:fast may not propagate +/-Infinity or NaN */ -#define IS_NOT_ZERO(v) (isnan((float) (v)) || isinf((float) (v)) || ((float) (v)) != 0) +#define IS_NOT_ZERO(v) (isnan(v) || isinf(v) || (v) != 0.0f) #else -#define IS_NOT_ZERO(v) (((float) (v)) != 0) +#define IS_NOT_ZERO(v) ((v) != 0.0f) #endif if (ARR_ELEMTYPE(array) == INT4OID) { for (int i = 0; i < nelemsp; i++) - nnz += IS_NOT_ZERO(DatumGetInt32(elemsp[i])); + nnz += IS_NOT_ZERO((float) DatumGetInt32(elemsp[i])); } else if (ARR_ELEMTYPE(array) == FLOAT8OID) { for (int i = 0; i < nelemsp; i++) - nnz += IS_NOT_ZERO(DatumGetFloat8(elemsp[i])); + nnz += IS_NOT_ZERO((float) DatumGetFloat8(elemsp[i])); } else if (ARR_ELEMTYPE(array) == FLOAT4OID) {