{"name":"euclidean","abbreviation":"euc","function_name":"distance_euclidean_cpp","expression":"sqrt(sum((x - y)^2))","requires_pseudozeros":false}
{"name":"manhattan","abbreviation":"man","function_name":"distance_manhattan_cpp","expression":"sum(abs(x - y))","requires_pseudozeros":false}
{"name":"chi","abbreviation":"chi","function_name":"distance_chi_cpp","expression":"xy <- x + y; y. <- y / sum(y); x. <- x / sum(x); sqrt(sum(((x. - y.)^2) / (xy / sum(xy))))`","requires_pseudozeros":true}
{"name":"hellinger","abbreviation":"hel","function_name":"distance_hellinger_cpp","expression":"sqrt(1/2 * sum((sqrt(x) - sqrt(y))^2))","requires_pseudozeros":false}
{"name":"canberra","abbreviation":"can","function_name":"distance_canberra_cpp","expression":"sum(abs(x - y) / (abs(x) + abs(y)))","requires_pseudozeros":false}
{"name":"russelrao","abbreviation":"rus","function_name":"distance_russelrao_cpp","expression":"1 - sum(x == y) / length(x)","requires_pseudozeros":false}
{"name":"cosine","abbreviation":"cos","function_name":"distance_cosine_cpp","expression":"1 - sum(x * y) / (sqrt(sum(x^2)) * sqrt(sum(y^2)))","requires_pseudozeros":true}
{"name":"jaccard","abbreviation":"jac","function_name":"distance_jaccard_cpp","expression":"1 - (sum(x & y) / sum(x | y))","requires_pseudozeros":false}
{"name":"chebyshev","abbreviation":"che","function_name":"distance_chebyshev_cpp","expression":"max(abs(x - y))","requires_pseudozeros":false}
{"name":"hamming","abbreviation":"ham","function_name":"distance_hamming_cpp","expression":"sum(x == y)","requires_pseudozeros":false}
{"name":"bray_curtis","abbreviation":"bra","function_name":"distance_bray_curtis_cpp","expression":"1 - (2 * sum(pmin(x, y)) / (sum(x) + sum(y)))","requires_pseudozeros":false}
{"name":"sorensen","abbreviation":"sor","function_name":"distance_sorensen_cpp","expression":"1 - (2 * sum(x & y) / (2 * sum(x & y) + sum(x & !y) + sum(!x & y)))","requires_pseudozeros":false}