SELECT '{1:1.5,3:3.5}/5'::sparsevec; SELECT '{1:-2,3:-4}/5'::sparsevec; SELECT '{1:2.,3:4.}/5'::sparsevec; SELECT ' { 1 : 1.5 , 3 : 3.5 } / 5 '::sparsevec; SELECT '{1:1.23456}/1'::sparsevec; SELECT '{1:hello,2:1}/2'::sparsevec; SELECT '{1:NaN,2:1}/2'::sparsevec; SELECT '{1:Infinity,2:1}/2'::sparsevec; SELECT '{1:-Infinity,2:1}/2'::sparsevec; SELECT '{1:1.5e38,2:-1.5e38}/2'::sparsevec; SELECT '{1:1.5e+38,2:-1.5e+38}/2'::sparsevec; SELECT '{1:1.5e-38,2:-1.5e-38}/2'::sparsevec; SELECT '{1:4e38,2:1}/2'::sparsevec; SELECT '{1:-4e38,2:1}/2'::sparsevec; SELECT '{1:1e-46,2:1}/2'::sparsevec; SELECT '{1:-1e-46,2:1}/2'::sparsevec; SELECT ''::sparsevec; SELECT '{'::sparsevec; SELECT '{ '::sparsevec; SELECT '{:'::sparsevec; SELECT '{,'::sparsevec; SELECT '{}'::sparsevec; SELECT '{}/'::sparsevec; SELECT '{}/1'::sparsevec; SELECT '{}/1a'::sparsevec; SELECT '{ }/1'::sparsevec; SELECT '{:}/1'::sparsevec; SELECT '{,}/1'::sparsevec; SELECT '{1,}/1'::sparsevec; SELECT '{:1}/1'::sparsevec; SELECT '{1:}/1'::sparsevec; SELECT '{1a:1}/1'::sparsevec; SELECT '{1:1a}/1'::sparsevec; SELECT '{1:1,}/1'::sparsevec; SELECT '{1:0,2:1,3:0}/3'::sparsevec; SELECT '{2:1,1:1}/2'::sparsevec; SELECT '{1:1,1:1}/2'::sparsevec; SELECT '{1:1,2:1,1:1}/2'::sparsevec; SELECT '{}/5'::sparsevec; SELECT '{}/-1'::sparsevec; SELECT '{}/1000000001'::sparsevec; SELECT '{}/2147483648'::sparsevec; SELECT '{}/-2147483649'::sparsevec; SELECT '{}/9223372036854775808'::sparsevec; SELECT '{}/-9223372036854775809'::sparsevec; SELECT '{2147483647:1}/1'::sparsevec; SELECT '{2147483648:1}/1'::sparsevec; SELECT '{-2147483648:1}/1'::sparsevec; SELECT '{-2147483649:1}/1'::sparsevec; SELECT '{0:1}/1'::sparsevec; SELECT '{2:1}/1'::sparsevec; SELECT '{}/3'::sparsevec(3); SELECT '{}/3'::sparsevec(2); SELECT '{}/3'::sparsevec(3, 2); SELECT '{}/3'::sparsevec('a'); SELECT '{}/3'::sparsevec(0); SELECT '{}/3'::sparsevec(1000000001); SELECT '{1:1,2:2,3:3}/3'::sparsevec < '{1:1,2:2,3:3}/3'; SELECT '{1:1,2:2,3:3}/3'::sparsevec < '{1:1,2:2}/2'; SELECT '{1:1,2:2,3:3}/3'::sparsevec <= '{1:1,2:2,3:3}/3'; SELECT '{1:1,2:2,3:3}/3'::sparsevec <= '{1:1,2:2}/2'; SELECT '{1:1,2:2,3:3}/3'::sparsevec = '{1:1,2:2,3:3}/3'; SELECT '{1:1,2:2,3:3}/3'::sparsevec = '{1:1,2:2}/2'; SELECT '{1:1,2:2,3:3}/3'::sparsevec != '{1:1,2:2,3:3}/3'; SELECT '{1:1,2:2,3:3}/3'::sparsevec != '{1:1,2:2}/2'; SELECT '{1:1,2:2,3:3}/3'::sparsevec >= '{1:1,2:2,3:3}/3'; SELECT '{1:1,2:2,3:3}/3'::sparsevec >= '{1:1,2:2}/2'; SELECT '{1:1,2:2,3:3}/3'::sparsevec > '{1:1,2:2,3:3}/3'; SELECT '{1:1,2:2,3:3}/3'::sparsevec > '{1:1,2:2}/2'; SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{1:1,2:2,3:3}/3'); SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{}/3'); SELECT sparsevec_cmp('{}/3', '{1:1,2:2,3:3}/3'); SELECT sparsevec_cmp('{1:1,2:2}/2', '{1:1,2:2,3:3}/3'); SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{1:1,2:2}/2'); SELECT sparsevec_cmp('{1:1,2:2}/2', '{1:2,2:3,3:4}/3'); SELECT sparsevec_cmp('{1:2,2:3}/2', '{1:1,2:2,3:3}/3'); SELECT round(l2_norm('{1:1,2:1}/2'::sparsevec)::numeric, 5); SELECT l2_norm('{1:3,2:4}/2'::sparsevec); SELECT l2_norm('{2:1}/2'::sparsevec); SELECT l2_norm('{1:3e37,2:4e37}/2'::sparsevec)::real; SELECT l2_norm('{}/2'::sparsevec); SELECT l2_norm('{1:2}/1'::sparsevec); SELECT l2_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); SELECT l2_distance('{1:3}/2'::sparsevec, '{2:4}/2'); SELECT l2_distance('{2:4}/2'::sparsevec, '{1:3}/2'); SELECT l2_distance('{1:3,2:4}/2'::sparsevec, '{}/2'); SELECT l2_distance('{}/2'::sparsevec, '{2:1}/2'); SELECT '{}/2'::sparsevec <-> '{1:3,2:4}/2'; SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); SELECT inner_product('{1:1,3:3}/4'::sparsevec, '{2:2,4:4}/4'); SELECT inner_product('{2:2,4:4}/4'::sparsevec, '{1:1,3:3}/4'); SELECT inner_product('{1:1,3:3,5:5}/5'::sparsevec, '{2:4,3:6,4:8}/5'); SELECT inner_product('{1:1}/2'::sparsevec, '{}/2'); SELECT inner_product('{}/2'::sparsevec, '{1:1}/2'); SELECT inner_product('{1:3e38}/1'::sparsevec, '{1:3e38}/1'); SELECT inner_product('{1:1,3:3,5:5}/5'::sparsevec, '{2:4,3:6,4:8}/5'); SELECT '{1:1,2:2}/2'::sparsevec <#> '{1:3,2:4}/2'; SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{}/2'); SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1,2:1}/2'); SELECT cosine_distance('{1:1}/2'::sparsevec, '{2:2}/2'); SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1,2:-1}/2'); SELECT cosine_distance('{1:2}/2'::sparsevec, '{2:2}/2'); SELECT cosine_distance('{2:2}/2'::sparsevec, '{1:2}/2'); SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:1.1,2:1.1}/2'); SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1.1,2:-1.1}/2'); SELECT cosine_distance('{1:3e38}/1'::sparsevec, '{1:3e38}/1'); SELECT cosine_distance('{}/1'::sparsevec, '{}/1'); SELECT '{1:1,2:2}/2'::sparsevec <=> '{1:2,2:4}/2'; SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); SELECT l1_distance('{}/2'::sparsevec, '{2:1}/2'); SELECT l1_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); SELECT l1_distance('{1:3e38}/1'::sparsevec, '{1:-3e38}/1'); SELECT l1_distance('{1:1,3:3,5:5,7:7}/8'::sparsevec, '{2:2,4:4,6:6,8:8}/8'); SELECT l1_distance('{1:1,3:3,5:5,7:7,9:9}/9'::sparsevec, '{2:2,4:4,6:6,8:8}/9'); SELECT '{}/2'::sparsevec <+> '{1:3,2:4}/2'; SELECT l2_normalize('{1:3,2:4}/2'::sparsevec); 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); SELECT l2_normalize('{2:3e37,4:3e-37,6:4e37,8:4e-37}/9'::sparsevec);