blob: ff569d8f21648bd21da044dc240540b762c20706 [file] [log] [blame]
m4_include(`SQLCommon.m4')
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__pivotalr_crossprod_transition(
current_state DOUBLE PRECISION[],
left_arr DOUBLE PRECISION[],
right_arr DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', '__pivotalr_crossprod_transition'
LANGUAGE C IMMUTABLE
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__pivotalr_crossprod_merge(
left_state DOUBLE PRECISION[],
right_state DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', '__pivotalr_crossprod_merge'
LANGUAGE C IMMUTABLE
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.crossprod(DOUBLE PRECISION[], DOUBLE PRECISION[]);
CREATE AGGREGATE MADLIB_SCHEMA.crossprod(
/* left vector */ DOUBLE PRECISION[],
/* right vector */ DOUBLE PRECISION[]
) (
SType = DOUBLE PRECISION[],
SFunc = MADLIB_SCHEMA.__pivotalr_crossprod_transition
m4_ifdef(`__GREENPLUM__',
`, PreFunc = MADLIB_SCHEMA.__pivotalr_crossprod_merge')
-- use NULL as the initial value
);
----------------------------------------------------------------------
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__pivotalr_crossprod_sym_transition(
current_state DOUBLE PRECISION[],
arr DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', '__pivotalr_crossprod_sym_transition'
LANGUAGE C IMMUTABLE
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.crossprod_sym(DOUBLE PRECISION[]);
CREATE AGGREGATE MADLIB_SCHEMA.crossprod_sym(
/* vector */ DOUBLE PRECISION[]
) (
SType = DOUBLE PRECISION[],
SFunc = MADLIB_SCHEMA.__pivotalr_crossprod_sym_transition
m4_ifdef(`__GREENPLUM__',
`, PreFunc = MADLIB_SCHEMA.__pivotalr_crossprod_merge')
-- use NULL as the initial value
);
----------------------------------------------------------------------
-- CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__pivotalr_array_sum_transition(
-- current_state DOUBLE PRECISION[],
-- arr DOUBLE PRECISION[]
-- ) RETURNS DOUBLE PRECISION[] AS
-- 'MODULE_PATHNAME', '__pivotalr_array_mean_transition'
-- LANGUAGE C IMMUTABLE;
-- CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__pivotalr_array_sum_merge(
-- left_state DOUBLE PRECISION[],
-- right_state DOUBLE PRECISION[]
-- ) RETURNS DOUBLE PRECISION[] AS
-- 'MODULE_PATHNAME', '__pivotalr_array_mean_merge'
-- LANGUAGE C IMMUTABLE;
-- CREATE AGGREGATE MADLIB_SCHEMA.pivotalr_array_sum(
-- /* vector */ DOUBLE PRECISION[]
-- ) (
-- SType = DOUBLE PRECISION[],
-- m4_ifdef(`__GREENPLUM__', `PreFunc = MADLIB_SCHEMA.__pivotalr_array_sum_merge,')
-- SFunc = MADLIB_SCHEMA.__pivotalr_array_sum_transition
-- -- use NULL as the initial value
-- );