#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    const bool low_positive_mode =
        profile.num_vars >= 30000 &&
        profile.clauses_seen >= 130000 &&
        profile.binary_clause_fraction >= 0.50 &&
        profile.all_negative_clause_fraction >= 0.09 &&
        profile.all_negative_clause_fraction <= 0.26 &&
        profile.all_positive_clause_fraction <= 0.04 &&
        profile.normalized_clause_span_mean >= 0.27 &&
        profile.normalized_clause_span_mean <= 0.435 &&
        profile.small_span_clause_fraction <= 0.11 &&
        profile.positive_block_candidate_len <= 3 &&
        profile.exactly_one_intra_pair_coverage <= 0.6666666666666666 &&
        profile.polarity_balance_mean <= 0.60;

    const bool high_positive_mode =
        profile.num_vars >= 30000 &&
        profile.clauses_seen >= 130000 &&
        profile.binary_clause_fraction >= 0.68 &&
        profile.all_negative_clause_fraction >= 0.09 &&
        profile.all_negative_clause_fraction <= 0.26 &&
        profile.all_positive_clause_fraction >= 0.25 &&
        profile.normalized_clause_span_mean >= 0.33 &&
        profile.normalized_clause_span_mean <= 0.39 &&
        profile.small_span_clause_fraction <= 0.11 &&
        profile.positive_block_clause_fraction >= 0.25 &&
        profile.exactly_one_intra_pair_coverage == 0 &&
        profile.polarity_balance_mean >= 0.45 &&
        profile.polarity_balance_mean <= 0.61;

    return low_positive_mode || high_positive_mode;
}
