]> source.dussan.org Git - rspamd.git/commitdiff
Fix floating point classification in bayes.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 25 Jun 2015 10:55:34 +0000 (11:55 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Thu, 25 Jun 2015 10:56:17 +0000 (11:56 +0100)
src/libstat/classifiers/bayes.c

index 87cc6e464ce8cabed492d535a52304fdb795799d..6c17e90caa5a36d93f21fd9de9bb7dc33dc3f895 100644 (file)
@@ -177,7 +177,7 @@ bayes_classify (struct classifier_ctx * ctx,
                        s = 1 - inv_chi_square (-2. * rt->ham_prob,
                                        2 * rt->processed_tokens);
 
-                       if (isnormal (s) && isnormal (h)) {
+                       if (isfinite (s) && isfinite (h)) {
                                final_prob = (s + 1.0 - h) / 2.;
                                msg_debug ("<%s> got ham prob %.2f -> %.2f and spam prob %.2f -> %.2f,"
                                                " %L tokens processed of %ud total tokens",
@@ -189,12 +189,12 @@ bayes_classify (struct classifier_ctx * ctx,
                                 * We have some overflow, hence we need to check which class
                                 * is NaN
                                 */
-                               if (isnormal (h)) {
+                               if (isfinite (h)) {
                                        final_prob = 1.0;
                                        msg_debug ("<%s> spam class is overflowed, as we have no"
                                                        " ham samples", task->message_id);
                                }
-                               else if (isnormal (s)){
+                               else if (isfinite (s)){
                                        final_prob = 0.0;
                                        msg_debug ("<%s> spam class is overflowed, as we have no"
                                                        " spam samples", task->message_id);