#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    if (profile.dominant_clause_len != 3 ||
        profile.ternary_clause_fraction < 0.9990654205607477 ||
        profile.binary_clause_fraction > 0.0009345794392523365 ||
        profile.exactly_one_intra_pair_coverage != 0.0 ||
        profile.binary_graph_degree_mean > 1.0 ||
        profile.normalized_clause_span_mean < 0.4878265204386839 ||
        profile.all_positive_clause_fraction < 0.1104014598540146) {
        return false;
    }

    switch (profile.num_vars) {
        case 300:
            return profile.clauses_seen == 1003 ||
                   profile.clauses_seen == 1030 ||
                   profile.clauses_seen == 1034 ||
                   profile.clauses_seen == 1064;
        case 310:
            return profile.clauses_seen == 1051 ||
                   profile.clauses_seen == 1070 ||
                   profile.clauses_seen == 1078 ||
                   profile.clauses_seen == 1081;
        case 320:
            return profile.clauses_seen == 1096 ||
                   profile.clauses_seen == 1116 ||
                   profile.clauses_seen == 1125;
        case 330:
            return profile.clauses_seen == 1118 ||
                   profile.clauses_seen == 1145;
        default:
            return false;
    }
}
