blob: 0bcef635045631a6c30f293aa065f3898d6664bb [file] [log] [blame]
m4_include(`SQLCommon.m4')
DROP TYPE IF EXISTS MADLIB_SCHEMA.__utils_scales CASCADE;
CREATE TYPE MADLIB_SCHEMA.__utils_scales AS (
mean DOUBLE PRECISION[],
std DOUBLE PRECISION[]
);
--
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__utils_var_scales_result (
in_state DOUBLE PRECISION[]
) RETURNS MADLIB_SCHEMA.__utils_scales AS
'MODULE_PATHNAME', '__utils_var_scales_result'
LANGUAGE C IMMUTABLE STRICT
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__utils_var_scales_transition (
state DOUBLE PRECISION[],
ind_var DOUBLE PRECISION[],
dimension INTEGER
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', 'utils_var_scales_transition'
LANGUAGE C IMMUTABLE STRICT
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
--
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__utils_var_scales_merge (
state1 DOUBLE PRECISION[],
state2 DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', 'utils_var_scales_merge'
LANGUAGE C IMMUTABLE STRICT
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
--
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__utils_var_scales_final (
state DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', 'utils_var_scales_final'
LANGUAGE C IMMUTABLE STRICT
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.__utils_var_scales_non_zero_std_final (
state DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', 'utils_var_scales_non_zero_std_final'
LANGUAGE C IMMUTABLE STRICT
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');
--
DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.utils_var_scales (
DOUBLE PRECISION[], INTEGER);
CREATE AGGREGATE MADLIB_SCHEMA.utils_var_scales (
/* ind_var */ DOUBLE PRECISION[],
/* dimension*/ INTEGER
) (
SType = DOUBLE PRECISION[],
SFunc = MADLIB_SCHEMA.__utils_var_scales_transition,
m4_ifdef(`__POSTGRESQL__', `', `prefunc = MADLIB_SCHEMA.__utils_var_scales_merge,')
FinalFunc = MADLIB_SCHEMA.__utils_var_scales_final,
InitCond = '{0,0,0,0}'
);
DROP AGGREGATE IF EXISTS MADLIB_SCHEMA.utils_var_scales_non_zero_std (
DOUBLE PRECISION[], INTEGER);
CREATE AGGREGATE MADLIB_SCHEMA.utils_var_scales_non_zero_std (
/* ind_var */ DOUBLE PRECISION[],
/* dimension*/ INTEGER
) (
SType = DOUBLE PRECISION[],
SFunc = MADLIB_SCHEMA.__utils_var_scales_transition,
m4_ifdef(`__POSTGRESQL__', `', `prefunc = MADLIB_SCHEMA.__utils_var_scales_merge,')
FinalFunc = MADLIB_SCHEMA.__utils_var_scales_non_zero_std_final,
InitCond = '{0,0,0,0}'
);
------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.utils_normalize_data (
x DOUBLE PRECISION[],
mean DOUBLE PRECISION[],
std DOUBLE PRECISION[]
) RETURNS DOUBLE PRECISION[] AS
'MODULE_PATHNAME', 'utils_normalize_data'
LANGUAGE C IMMUTABLE STRICT
m4_ifdef(`__HAS_FUNCTION_PROPERTIES__', `NO SQL', `');