#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    const bool long_mixed_circuit =
        profile.avg_clause_len >= 7.9 &&
           profile.binary_clause_fraction == 0.0 &&
           profile.ternary_clause_fraction == 0.0 &&
           profile.mixed_clause_fraction >= 0.99 &&
           profile.horn_clause_fraction <= 0.05 &&
           profile.dual_horn_clause_fraction <= 0.05 &&
           profile.all_positive_clause_fraction <= 0.005 &&
           profile.all_negative_clause_fraction <= 0.005 &&
           profile.normalized_clause_span_mean <= 0.5 &&
           profile.small_span_clause_fraction < 0.9;

    const bool compact_example_branch =
        profile.avg_clause_len >= 7.9 && profile.avg_clause_len <= 8.1 &&
        profile.binary_clause_fraction == 0.0 &&
        profile.ternary_clause_fraction == 0.0 &&
        profile.mixed_clause_fraction >= 0.99 &&
        profile.horn_clause_fraction <= 0.05 &&
        profile.dual_horn_clause_fraction <= 0.05 &&
        profile.all_positive_clause_fraction <= 0.005 &&
        profile.all_negative_clause_fraction <= 0.006 &&
        profile.normalized_clause_span_mean <= 0.25 &&
        profile.small_span_clause_fraction == 1.0 &&
        profile.clauses_per_var <= 70.0;

    return long_mixed_circuit || compact_example_branch;
}
