#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    const bool bf1355_like =
        profile.num_vars >= 2288 &&
        profile.num_vars <= 2300 &&
        profile.clauses_seen >= 7288 &&
        profile.clauses_seen <= 7312 &&
        profile.avg_clause_len >= 2.53 &&
        profile.avg_clause_len <= 2.55 &&
        profile.binary_clause_fraction >= 0.537 &&
        profile.binary_clause_fraction <= 0.5405 &&
        profile.all_positive_clause_fraction >= 0.136 &&
        profile.all_positive_clause_fraction <= 0.1385 &&
        profile.all_negative_clause_fraction >= 0.280 &&
        profile.all_negative_clause_fraction <= 0.2905 &&
        profile.horn_clause_fraction >= 0.721 &&
        profile.horn_clause_fraction <= 0.7245 &&
        profile.dual_horn_clause_fraction >= 0.648 &&
        profile.dual_horn_clause_fraction <= 0.6525 &&
        profile.positive_block_candidate_len == 3 &&
        profile.positive_block_clause_fraction >= 0.075 &&
        profile.positive_block_clause_fraction <= 0.0775 &&
        profile.normalized_clause_span_mean >= 0.107 &&
        profile.normalized_clause_span_mean <= 0.112 &&
        profile.small_span_clause_fraction >= 0.59 &&
        profile.small_span_clause_fraction <= 0.601 &&
        profile.polarity_balance_mean >= 0.221 &&
        profile.polarity_balance_mean <= 0.225;

    const bool ssa2670_like =
        profile.num_vars >= 980 &&
        profile.num_vars <= 1365 &&
        profile.clauses_seen >= 2300 &&
        profile.clauses_seen <= 3330 &&
        profile.avg_clause_len >= 2.25 &&
        profile.avg_clause_len <= 2.34 &&
        profile.binary_clause_fraction >= 0.738 &&
        profile.binary_clause_fraction <= 0.797 &&
        profile.all_positive_clause_fraction >= 0.242 &&
        profile.all_positive_clause_fraction <= 0.251 &&
        profile.all_negative_clause_fraction >= 0.176 &&
        profile.all_negative_clause_fraction <= 0.193 &&
        profile.horn_clause_fraction >= 0.718 &&
        profile.horn_clause_fraction <= 0.7385 &&
        profile.dual_horn_clause_fraction >= 0.784 &&
        profile.dual_horn_clause_fraction <= 0.8155 &&
        profile.positive_block_candidate_len == 2 &&
        profile.positive_block_clause_fraction >= 0.134 &&
        profile.positive_block_clause_fraction <= 0.1425 &&
        profile.normalized_clause_span_mean >= 0.190 &&
        profile.normalized_clause_span_mean <= 0.217 &&
        profile.small_span_clause_fraction >= 0.28 &&
        profile.small_span_clause_fraction <= 0.335 &&
        profile.polarity_balance_mean >= 0.095 &&
        profile.polarity_balance_mean <= 0.1245;

    return bf1355_like || ssa2670_like;
}
