14 m4_include(`SQLCommon.m4
')
117 CREATE TYPE MADLIB_SCHEMA.t_test_result AS (
118 statistic DOUBLE PRECISION,
120 p_value_one_sided DOUBLE PRECISION,
121 p_value_two_sided DOUBLE PRECISION
124 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.t_test_one_transition(
125 state DOUBLE PRECISION[],
126 value DOUBLE PRECISION
127 ) RETURNS DOUBLE PRECISION[]
133 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.t_test_merge_states(
134 state1 DOUBLE PRECISION[],
135 state2 DOUBLE PRECISION[])
136 RETURNS DOUBLE PRECISION[]
141 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.t_test_one_final(
142 state DOUBLE PRECISION[])
143 RETURNS MADLIB_SCHEMA.t_test_result
145 LANGUAGE C IMMUTABLE STRICT;
147 CREATE TYPE MADLIB_SCHEMA.f_test_result AS (
148 statistic DOUBLE PRECISION,
149 df1 DOUBLE PRECISION,
150 df2 DOUBLE PRECISION,
151 p_value_one_sided DOUBLE PRECISION,
152 p_value_two_sided DOUBLE PRECISION
155 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.f_test_final(
156 state DOUBLE PRECISION[])
157 RETURNS MADLIB_SCHEMA.f_test_result
159 LANGUAGE C IMMUTABLE STRICT;
202 CREATE AGGREGATE MADLIB_SCHEMA.t_test_one(
203 /*+ value */ DOUBLE PRECISION) (
205 SFUNC=MADLIB_SCHEMA.t_test_one_transition,
206 STYPE=DOUBLE PRECISION[],
207 FINALFUNC=MADLIB_SCHEMA.t_test_one_final,
208 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
209 INITCOND='{0,0,0,0,0,0,0}
'
213 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.t_test_two_transition(
214 state DOUBLE PRECISION[],
216 "value" DOUBLE PRECISION)
217 RETURNS DOUBLE PRECISION[]
223 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.t_test_two_pooled_final(
224 state DOUBLE PRECISION[])
225 RETURNS MADLIB_SCHEMA.t_test_result
227 LANGUAGE C IMMUTABLE STRICT;
278 CREATE AGGREGATE MADLIB_SCHEMA.t_test_two_pooled(
279 /*+ "first" */ BOOLEAN,
280 /*+ "value" */ DOUBLE PRECISION) (
282 SFUNC=MADLIB_SCHEMA.t_test_two_transition,
283 STYPE=DOUBLE PRECISION[],
284 FINALFUNC=MADLIB_SCHEMA.t_test_two_pooled_final,
285 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
286 INITCOND='{0,0,0,0,0,0,0}
'
290 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.t_test_two_unpooled_final(
291 state DOUBLE PRECISION[])
292 RETURNS MADLIB_SCHEMA.t_test_result
294 LANGUAGE C IMMUTABLE STRICT;
342 CREATE AGGREGATE MADLIB_SCHEMA.t_test_two_unpooled(
343 /*+ "first" */ BOOLEAN,
344 /*+ "value" */ DOUBLE PRECISION) (
346 SFUNC=MADLIB_SCHEMA.t_test_two_transition,
347 STYPE=DOUBLE PRECISION[],
348 FINALFUNC=MADLIB_SCHEMA.t_test_two_unpooled_final,
349 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
350 INITCOND='{0,0,0,0,0,0,0}
'
397 CREATE AGGREGATE MADLIB_SCHEMA.f_test(
398 /*+ "first" */ BOOLEAN,
399 /*+ "value" */ DOUBLE PRECISION) (
401 SFUNC=MADLIB_SCHEMA.t_test_two_transition,
402 STYPE=DOUBLE PRECISION[],
403 FINALFUNC=MADLIB_SCHEMA.f_test_final,
404 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.t_test_merge_states,!>)
405 INITCOND='{0,0,0,0,0,0,0}
'
409 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.chi2_gof_test_transition(
410 state DOUBLE PRECISION[],
412 expected DOUBLE PRECISION,
414 ) RETURNS DOUBLE PRECISION[]
420 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.chi2_gof_test_transition(
421 state DOUBLE PRECISION[],
423 expected DOUBLE PRECISION
424 ) RETURNS DOUBLE PRECISION[]
430 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.chi2_gof_test_transition(
431 state DOUBLE PRECISION[],
433 ) RETURNS DOUBLE PRECISION[]
439 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.chi2_gof_test_merge_states(
440 state1 DOUBLE PRECISION[],
441 state2 DOUBLE PRECISION[])
442 RETURNS DOUBLE PRECISION[]
448 CREATE TYPE MADLIB_SCHEMA.chi2_test_result AS (
449 statistic DOUBLE PRECISION,
450 p_value DOUBLE PRECISION,
452 phi DOUBLE PRECISION,
453 contingency_coef DOUBLE PRECISION
456 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.chi2_gof_test_final(
457 state DOUBLE PRECISION[]
458 ) RETURNS MADLIB_SCHEMA.chi2_test_result
527 CREATE AGGREGATE MADLIB_SCHEMA.chi2_gof_test(
528 /*+ observed */ BIGINT,
529 /*+ expected */ DOUBLE PRECISION /*+ DEFAULT 1 */,
530 /*+ df */ BIGINT /*+ DEFAULT 0 */
532 SFUNC=MADLIB_SCHEMA.chi2_gof_test_transition,
533 STYPE=DOUBLE PRECISION[],
534 FINALFUNC=MADLIB_SCHEMA.chi2_gof_test_final,
535 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.chi2_gof_test_merge_states,!>)
536 INITCOND='{0,0,0,0,0,0}
'
539 CREATE AGGREGATE MADLIB_SCHEMA.chi2_gof_test(
540 /*+ observed */ BIGINT,
541 /*+ expected */ DOUBLE PRECISION
543 SFUNC=MADLIB_SCHEMA.chi2_gof_test_transition,
544 STYPE=DOUBLE PRECISION[],
545 FINALFUNC=MADLIB_SCHEMA.chi2_gof_test_final,
546 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.chi2_gof_test_merge_states,!>)
547 INITCOND='{0,0,0,0,0,0,0}
'
550 CREATE AGGREGATE MADLIB_SCHEMA.chi2_gof_test(
551 /*+ observed */ BIGINT
553 SFUNC=MADLIB_SCHEMA.chi2_gof_test_transition,
554 STYPE=DOUBLE PRECISION[],
555 FINALFUNC=MADLIB_SCHEMA.chi2_gof_test_final,
556 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.chi2_gof_test_merge_states,!>)
557 INITCOND='{0,0,0,0,0,0,0}
'
560 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.ks_test_transition(
561 state DOUBLE PRECISION[],
563 "value" DOUBLE PRECISION,
566 ) RETURNS DOUBLE PRECISION[]
572 CREATE TYPE MADLIB_SCHEMA.ks_test_result AS (
573 statistic DOUBLE PRECISION,
574 k_statistic DOUBLE PRECISION,
575 p_value DOUBLE PRECISION
578 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.ks_test_final(
579 state DOUBLE PRECISION[])
580 RETURNS MADLIB_SCHEMA.ks_test_result
582 LANGUAGE C IMMUTABLE STRICT;
632 m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
634 m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
635 AGGREGATE MADLIB_SCHEMA.ks_test(
636 /*+ "first" */ BOOLEAN,
637 /*+ "value" */ DOUBLE PRECISION,
641 SFUNC=MADLIB_SCHEMA.ks_test_transition,
642 STYPE=DOUBLE PRECISION[],
643 FINALFUNC=MADLIB_SCHEMA.ks_test_final,
644 INITCOND='{0,0,0,0,0,0,0}
'
648 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.mw_test_transition(
649 state DOUBLE PRECISION[],
651 "value" DOUBLE PRECISION
652 ) RETURNS DOUBLE PRECISION[]
658 CREATE TYPE MADLIB_SCHEMA.mw_test_result AS (
659 statistic DOUBLE PRECISION,
660 u_statistic DOUBLE PRECISION,
661 p_value_one_sided DOUBLE PRECISION,
662 p_value_two_sided DOUBLE PRECISION
665 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.mw_test_final(
666 state DOUBLE PRECISION[])
667 RETURNS MADLIB_SCHEMA.mw_test_result
669 LANGUAGE C IMMUTABLE STRICT;
721 m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
723 m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
724 AGGREGATE MADLIB_SCHEMA.mw_test(
725 /*+ "first" */ BOOLEAN,
726 /*+ "value" */ DOUBLE PRECISION
728 SFUNC=MADLIB_SCHEMA.mw_test_transition,
729 STYPE=DOUBLE PRECISION[],
730 FINALFUNC=MADLIB_SCHEMA.mw_test_final,
731 INITCOND='{0,0,0,0,0,0,0}
'
735 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.wsr_test_transition(
736 state DOUBLE PRECISION[],
737 value DOUBLE PRECISION,
738 "precision" DOUBLE PRECISION
739 ) RETURNS DOUBLE PRECISION[]
745 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.wsr_test_transition(
746 state DOUBLE PRECISION[],
747 value DOUBLE PRECISION
748 ) RETURNS DOUBLE PRECISION[]
755 CREATE TYPE MADLIB_SCHEMA.wsr_test_result AS (
756 statistic DOUBLE PRECISION,
760 z_statistic DOUBLE PRECISION,
761 p_value_one_sided DOUBLE PRECISION,
762 p_value_two_sided DOUBLE PRECISION
765 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.wsr_test_final(
766 state DOUBLE PRECISION[])
767 RETURNS MADLIB_SCHEMA.wsr_test_result
769 LANGUAGE C IMMUTABLE STRICT;
849 m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
851 m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
852 AGGREGATE MADLIB_SCHEMA.wsr_test(
853 /*+ "value" */ DOUBLE PRECISION,
854 /*+ "precision" */ DOUBLE PRECISION /*+ DEFAULT -1 */
856 SFUNC=MADLIB_SCHEMA.wsr_test_transition,
857 STYPE=DOUBLE PRECISION[],
858 FINALFUNC=MADLIB_SCHEMA.wsr_test_final,
859 INITCOND='{0,0,0,0,0,0,0,0,0}
'
863 m4_ifdef(<!__HAS_ORDERED_AGGREGATES__!>,<!
865 m4_ifdef(<!__GREENPLUM__!>,<!ORDERED!>)
866 AGGREGATE MADLIB_SCHEMA.wsr_test(
867 /*+ value */ DOUBLE PRECISION
869 SFUNC=MADLIB_SCHEMA.wsr_test_transition,
870 STYPE=DOUBLE PRECISION[],
871 FINALFUNC=MADLIB_SCHEMA.wsr_test_final,
872 INITCOND='{0,0,0,0,0,0,0,0,0}
'
876 CREATE TYPE MADLIB_SCHEMA.one_way_anova_result AS (
877 sum_squares_between DOUBLE PRECISION,
878 sum_squares_within DOUBLE PRECISION,
881 mean_squares_between DOUBLE PRECISION,
882 mean_squares_within DOUBLE PRECISION,
883 statistic DOUBLE PRECISION,
884 p_value DOUBLE PRECISION
887 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.one_way_anova_transition(
888 state DOUBLE PRECISION[],
890 value DOUBLE PRECISION)
891 RETURNS DOUBLE PRECISION[]
897 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.one_way_anova_merge_states(
898 state1 DOUBLE PRECISION[],
899 state2 DOUBLE PRECISION[])
900 RETURNS DOUBLE PRECISION[]
905 CREATE OR REPLACE FUNCTION MADLIB_SCHEMA.one_way_anova_final(
906 state DOUBLE PRECISION[])
907 RETURNS MADLIB_SCHEMA.one_way_anova_result
909 LANGUAGE C IMMUTABLE STRICT;
965 CREATE AGGREGATE MADLIB_SCHEMA.one_way_anova(
966 /*+ group */ INTEGER,
967 /*+ value */ DOUBLE PRECISION) (
969 SFUNC=MADLIB_SCHEMA.one_way_anova_transition,
970 STYPE=DOUBLE PRECISION[],
971 FINALFUNC=MADLIB_SCHEMA.one_way_anova_final,
972 m4_ifdef(<!__GREENPLUM__!>,<!PREFUNC=MADLIB_SCHEMA.one_way_anova_merge_states,!>)
976 m4_changequote(<!`!>,<!'!>)