| 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 |
| -- ); |