MCPcopy Create free account
hub / github.com/apache/madlib / float8arr_dot

Function float8arr_dot

methods/svec/src/pg_gp/operators.c:812–829  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

810Datum float8arr_dot(PG_FUNCTION_ARGS);
811PG_FUNCTION_INFO_V1( float8arr_dot);
812Datum float8arr_dot(PG_FUNCTION_ARGS) {
813 ArrayType *arr_left = PG_GETARG_ARRAYTYPE_P(0);
814 ArrayType *arr_right = PG_GETARG_ARRAYTYPE_P(1);
815 SparseData left = sdata_uncompressed_from_float8arr_internal(arr_left);
816 SparseData right = sdata_uncompressed_from_float8arr_internal(arr_right);
817 SparseData mult_result;
818 double accum;
819
820 mult_result = op_sdata_by_sdata(multiply,left,right);
821 accum = sum_sdata_values_double(mult_result);
822 freeSparseData(left);
823 freeSparseData(right);
824 freeSparseDataAndData(mult_result);
825
826 if (IS_NVP(accum)) PG_RETURN_NULL();
827
828 PG_RETURN_FLOAT8(accum);
829}
830
831/*
832 * Permute the basic operators (minus,plus,mult,div) between SparseData

Callers

nothing calls this directly

Calls 5

op_sdata_by_sdataFunction · 0.85
sum_sdata_values_doubleFunction · 0.85
freeSparseDataFunction · 0.85
freeSparseDataAndDataFunction · 0.85

Tested by

no test coverage detected