diff --git a/src/sparsevec.c b/src/sparsevec.c index 6011d92..5bed3ff 100644 --- a/src/sparsevec.c +++ b/src/sparsevec.c @@ -876,6 +876,8 @@ sparsevec_l2_normalize(PG_FUNCTION_ARGS) for (int i = 0; i < a->nnz; i++) { result->indices[i] = a->indices[i]; + + /* TODO Remove zeros */ rx[i] = ax[i] / norm; } diff --git a/test/expected/sparsevec_functions.out b/test/expected/sparsevec_functions.out index afa0250..e6af3c9 100644 --- a/test/expected/sparsevec_functions.out +++ b/test/expected/sparsevec_functions.out @@ -322,3 +322,9 @@ SELECT l2_normalize('{1:3e38}/1'::sparsevec); {1:1}/1 (1 row) +SELECT l2_normalize('{1:3e38,2:1e-37}/2'::sparsevec); + l2_normalize +-------------- + {1:1,2:0}/2 +(1 row) + diff --git a/test/sql/sparsevec_functions.sql b/test/sql/sparsevec_functions.sql index d260dbd..e860067 100644 --- a/test/sql/sparsevec_functions.sql +++ b/test/sql/sparsevec_functions.sql @@ -61,3 +61,4 @@ SELECT l2_normalize('{1:3}/2'::sparsevec); SELECT l2_normalize('{2:0.1}/2'::sparsevec); SELECT l2_normalize('{}/2'::sparsevec); SELECT l2_normalize('{1:3e38}/1'::sparsevec); +SELECT l2_normalize('{1:3e38,2:1e-37}/2'::sparsevec);