X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flanguage%2Fstats%2Fwilcoxon.c;h=e44233a7ab7904fb437a1988f6505cb3af4559cf;hb=6d077bbfd3230959846621bbfb1447410e17dd8c;hp=a485f3506fd8b226e956ca88b3b126dc5297bec3;hpb=e00c8b2ca5092c6871c0cae67be95a884b5671a3;p=pspp-builds.git diff --git a/src/language/stats/wilcoxon.c b/src/language/stats/wilcoxon.c index a485f350..e44233a7 100644 --- a/src/language/stats/wilcoxon.c +++ b/src/language/stats/wilcoxon.c @@ -34,9 +34,6 @@ #include #include -static double timed_wilcoxon_significance (double w, long int n, double timer); - - static double append_difference (const struct ccase *c, casenumber n UNUSED, void *aux) { @@ -280,7 +277,7 @@ static void show_tests_box (const struct wilcoxon_state *ws, const struct two_sample_test *t2s, bool exact, - double timer + double timer UNUSED ) { size_t i; @@ -342,14 +339,10 @@ show_tests_box (const struct wilcoxon_state *ws, if (exact) { - double p = - timed_wilcoxon_significance (ws[i].positives.sum, - n, - timer ); - - if ( p == SYSMIS) + double p = LevelOfSignificanceWXMPSR (ws[i].positives.sum, n); + if (p < 0) { - msg (MW, _("Exact significance was not calculated after %.2f minutes. Skipping test."), timer); + msg (MW, ("Too many pairs to calculate exact significance.")); } else { @@ -365,48 +358,3 @@ show_tests_box (const struct wilcoxon_state *ws, tab_submit (table); } - - - -#include - -static sigjmp_buf env; - -static void -give_up_callback (int signal UNUSED) -{ - siglongjmp (env, 1); -} - -static double -timed_wilcoxon_significance (double w, long int n, double timer) -{ - double p = SYSMIS; - - sigset_t set; - - struct sigaction timeout_action; - struct sigaction old_action; - - if (timer <= 0 ) - return LevelOfSignificanceWXMPSR (w, n); - - sigemptyset (&set); - - timeout_action.sa_mask = set; - timeout_action.sa_flags = 0; - - timeout_action.sa_handler = give_up_callback; - - if ( 0 == sigsetjmp (env, 1)) - { - sigaction (SIGALRM, &timeout_action, &old_action); - alarm (timer * 60.0); - - p = LevelOfSignificanceWXMPSR (w, n); - } - - sigaction (SIGALRM, &old_action, NULL); - - return p; -}