#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    const bool avg3_block =
        profile.binary_clause_fraction == 0.0 &&
        profile.avg_clause_len == 3 &&
        profile.all_positive_clause_fraction >= 0.11510323524630141 &&
        profile.all_positive_clause_fraction <= 0.13315460232350312 &&
        profile.all_negative_clause_fraction >= 0.11689156234758576 &&
        profile.all_negative_clause_fraction <= 0.1347794296855959 &&
        profile.pure_var_fraction >= 0.02662993572084481 &&
        profile.pure_var_fraction <= 0.04735376044568245 &&
        profile.normalized_clause_span_mean >= 0.4911288898031648 &&
        profile.normalized_clause_span_mean <= 0.5075419534312398 &&
        profile.small_span_clause_fraction <= 0.0010723860589812334 &&
        profile.positive_block_candidate_len == 3 &&
        profile.positive_block_clause_fraction >= 0.11510323524630141 &&
        profile.positive_block_clause_fraction <= 0.13315460232350312 &&
        profile.horn_clause_fraction >= 0.48257372654155495 &&
        profile.horn_clause_fraction <= 0.5085790884718498 &&
        profile.dual_horn_clause_fraction >= 0.49142091152815015 &&
        profile.dual_horn_clause_fraction <= 0.517426273458445 &&
        profile.occurrence_mean >= 8.412392788377385 &&
        profile.occurrence_mean <= 11.360406091370558;

    const bool avg4_block =
        profile.binary_clause_fraction == 0.0 &&
        profile.avg_clause_len == 4 &&
        profile.all_positive_clause_fraction >= 0.05895691609977324 &&
        profile.all_positive_clause_fraction <= 0.06428571428571428 &&
        profile.all_negative_clause_fraction >= 0.05787172011661808 &&
        profile.all_negative_clause_fraction <= 0.06878727634194831 &&
        profile.pure_var_fraction == 0.0 &&
        profile.normalized_clause_span_mean >= 0.5867851311953353 &&
        profile.normalized_clause_span_mean <= 0.6099580174927114 &&
        profile.small_span_clause_fraction == 0.0 &&
        profile.positive_block_candidate_len == 4 &&
        profile.positive_block_clause_fraction >= 0.05895691609977324 &&
        profile.positive_block_clause_fraction <= 0.06428571428571428 &&
        profile.horn_clause_fraction >= 0.30612244897959184 &&
        profile.horn_clause_fraction <= 0.32339297548045065 &&
        profile.dual_horn_clause_fraction >= 0.30563286944996687 &&
        profile.dual_horn_clause_fraction <= 0.3160025915127956 &&
        profile.occurrence_mean >= 27.80141843971631 &&
        profile.occurrence_mean <= 28.201438848920862;

    return avg3_block || avg4_block;
}
