SELECT '{1:1,2:2,3:3}/3'::sparsevec < '{1:1,2:2,3:3}/3'; ?column? ---------- f (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec < '{1:1,2:2}/2'; ?column? ---------- f (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec <= '{1:1,2:2,3:3}/3'; ?column? ---------- t (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec <= '{1:1,2:2}/2'; ?column? ---------- f (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec = '{1:1,2:2,3:3}/3'; ?column? ---------- t (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec = '{1:1,2:2}/2'; ?column? ---------- f (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec != '{1:1,2:2,3:3}/3'; ?column? ---------- f (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec != '{1:1,2:2}/2'; ?column? ---------- t (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec >= '{1:1,2:2,3:3}/3'; ?column? ---------- t (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec >= '{1:1,2:2}/2'; ?column? ---------- t (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec > '{1:1,2:2,3:3}/3'; ?column? ---------- f (1 row) SELECT '{1:1,2:2,3:3}/3'::sparsevec > '{1:1,2:2}/2'; ?column? ---------- t (1 row) SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{1:1,2:2,3:3}/3'); sparsevec_cmp --------------- 0 (1 row) SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{}/3'); sparsevec_cmp --------------- 1 (1 row) SELECT sparsevec_cmp('{}/3', '{1:1,2:2,3:3}/3'); sparsevec_cmp --------------- -1 (1 row) SELECT sparsevec_cmp('{1:1,2:2}/2', '{1:1,2:2,3:3}/3'); sparsevec_cmp --------------- -1 (1 row) SELECT sparsevec_cmp('{1:1,2:2,3:3}/3', '{1:1,2:2}/2'); sparsevec_cmp --------------- 1 (1 row) SELECT sparsevec_cmp('{1:1,2:2}/2', '{1:2,2:3,3:4}/3'); sparsevec_cmp --------------- -1 (1 row) SELECT sparsevec_cmp('{1:2,2:3}/2', '{1:1,2:2,3:3}/3'); sparsevec_cmp --------------- 1 (1 row) SELECT round(l2_norm('{1:1,2:1}/2'::sparsevec)::numeric, 5); round --------- 1.41421 (1 row) SELECT l2_norm('{1:3,2:4}/2'::sparsevec); l2_norm --------- 5 (1 row) SELECT l2_norm('{2:1}/2'::sparsevec); l2_norm --------- 1 (1 row) SELECT l2_norm('{1:3e37,2:4e37}/2'::sparsevec)::real; l2_norm --------- 5e+37 (1 row) SELECT l2_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); l2_distance ------------- 5 (1 row) SELECT l2_distance('{}/2'::sparsevec, '{2:1}/2'); l2_distance ------------- 1 (1 row) SELECT '{}/2'::sparsevec <-> '{1:3,2:4}/2'; ?column? ---------- 5 (1 row) SELECT inner_product('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); inner_product --------------- 10 (1 row) SELECT sparsevec_negative_inner_product('{1:1,2:2}/2', '{1:2,2:4}/2'); sparsevec_negative_inner_product ---------------------------------- -10 (1 row) SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{1:2,2:4}/2'); cosine_distance ----------------- 0 (1 row) SELECT cosine_distance('{1:1,2:2}/2'::sparsevec, '{}/2'); cosine_distance ----------------- NaN (1 row) SELECT cosine_distance('{1:1,2:1}/2'::sparsevec, '{1:-1,2:-1}/2'); cosine_distance ----------------- 2 (1 row) SELECT cosine_distance('{1:2}/2'::sparsevec, '{2:2}/2'); cosine_distance ----------------- 1 (1 row) SELECT cosine_distance('{}/1'::sparsevec, '{}/1'); cosine_distance ----------------- NaN (1 row) SELECT cosine_distance('{1:2}/2'::sparsevec, '{1:1}/3'); ERROR: different sparsevec dimensions 2 and 3 SELECT l1_distance('{}/2'::sparsevec, '{1:3,2:4}/2'); l1_distance ------------- 7 (1 row) SELECT l1_distance('{}/2'::sparsevec, '{2:1}/2'); l1_distance ------------- 1 (1 row) SELECT l1_distance('{1:1,2:2}/2'::sparsevec, '{1:3}/1'); ERROR: different sparsevec dimensions 2 and 1 SELECT l1_distance('{1:3e38}/1'::sparsevec, '{1:-3e38}/1'); l1_distance ------------- Infinity (1 row)