#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    if (profile.positive_block_candidate_len == 0) {
        return profile.num_vars >= 3000 && profile.num_vars <= 4000 &&
               profile.clauses_seen >= 70000 && profile.clauses_seen <= 90000 &&
               profile.binary_clause_fraction > 0.97 &&
               profile.ternary_clause_fraction == 0 &&
               profile.mixed_clause_fraction == 0 &&
               profile.all_positive_clause_fraction < 0.03 &&
               profile.all_negative_clause_fraction > 0.97 &&
               profile.normalized_clause_span_mean < 0.03;
    }

    if (profile.binary_clause_fraction <= 0.5 ||
        profile.ternary_clause_fraction != 0 ||
        profile.mixed_clause_fraction != 0) {
        return false;
    }

    const double block_mass =
        profile.positive_block_clause_fraction *
        static_cast<double>(profile.positive_block_candidate_len);
    return block_mass >= 1.8 && block_mass <= 2.05;
}
