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', `');