#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    if (profile.binary_clause_fraction != 0.0 || profile.clauses_seen != 1000000 ||
        profile.num_vars < 1000000 ||
        profile.positive_block_candidate_len != profile.dominant_clause_len) {
        return false;
    }

    switch (profile.dominant_clause_len) {
        case 3:
            return profile.all_positive_clause_fraction >= 0.016 &&
                   profile.all_positive_clause_fraction <= 0.085;
        case 4:
            return profile.all_positive_clause_fraction >= 0.015 &&
                   profile.all_positive_clause_fraction <= 0.0165;
        case 5:
            return profile.all_positive_clause_fraction >= 0.010 &&
                   profile.all_positive_clause_fraction <= 0.0110;
        case 8:
            return profile.all_positive_clause_fraction >= 0.0025 &&
                   profile.all_positive_clause_fraction <= 0.0027;
        case 9:
            return profile.all_positive_clause_fraction >= 0.0012 &&
                   profile.all_positive_clause_fraction <= 0.0014;
        default:
            return false;
    }
}
