#include "formula_profile.h"

LYMPHOSAT_MATCHER {
    const bool pure_negative_high_binary_long_span =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len >= 10 &&
        profile.positive_block_clause_fraction < 0.03 &&
        profile.all_positive_clause_fraction < 0.03 &&
        profile.all_negative_clause_fraction > 0.95 &&
        profile.dominant_clause_len == 2 &&
        profile.binary_graph_degree_mean >= 9 &&
        profile.binary_graph_degree_mean <= 13 &&
        profile.binary_graph_degree_max <= 20 &&
        profile.normalized_clause_span_mean > 0.33 &&
        profile.normalized_clause_span_mean < 0.348 &&
        profile.small_span_clause_fraction > 0.08 &&
        profile.small_span_clause_fraction < 0.18;

    const bool pure_negative_high_binary_short_span =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len >= 10 &&
        profile.positive_block_clause_fraction < 0.03 &&
        profile.all_positive_clause_fraction < 0.03 &&
        profile.all_negative_clause_fraction > 0.95 &&
        profile.dominant_clause_len == 2 &&
        profile.binary_graph_degree_mean >= 11 &&
        profile.binary_graph_degree_mean <= 13 &&
        profile.binary_graph_degree_max <= 14 &&
        profile.normalized_clause_span_mean > 0.17 &&
        profile.normalized_clause_span_mean < 0.18 &&
        profile.small_span_clause_fraction > 0.15 &&
        profile.small_span_clause_fraction < 0.18;

    const bool low_degree_routing =
        profile.binary_clause_fraction > 0.82 &&
        profile.exactly_one_intra_pair_coverage < 0.05 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.15 &&
        profile.all_positive_clause_fraction > 0.15 &&
        profile.all_positive_clause_fraction < 0.29 &&
        profile.all_negative_clause_fraction > 0.15 &&
        profile.all_negative_clause_fraction < 0.30 &&
        profile.mixed_clause_fraction > 0.48 &&
        profile.mixed_clause_fraction < 0.62 &&
        profile.polarity_balance_mean > 0.58 &&
        profile.polarity_balance_mean < 0.71 &&
        profile.binary_graph_degree_mean > 2.5 &&
        profile.binary_graph_degree_mean < 14 &&
        profile.binary_graph_degree_max <= 16 &&
        profile.occurrence_stddev <= 5 &&
        profile.normalized_clause_span_mean > 0.373 &&
        profile.normalized_clause_span_mean < 0.41 &&
        profile.small_span_clause_fraction > 0.05 &&
        profile.small_span_clause_fraction < 0.2 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool mid_binary_routing =
        profile.binary_clause_fraction > 0.90 &&
        profile.binary_clause_fraction < 0.96 &&
        profile.exactly_one_intra_pair_coverage < 0.05 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction < 0.24 &&
        profile.all_negative_clause_fraction > 0.23 &&
        profile.all_negative_clause_fraction < 0.30 &&
        profile.mixed_clause_fraction > 0.50 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.64 &&
        profile.polarity_balance_mean < 0.72 &&
        profile.binary_graph_degree_mean > 6 &&
        profile.binary_graph_degree_mean < 9.5 &&
        profile.binary_graph_degree_max <= 22 &&
        profile.occurrence_stddev > 3 &&
        profile.occurrence_stddev < 6 &&
        profile.normalized_clause_span_mean > 0.34 &&
        profile.normalized_clause_span_mean < 0.35 &&
        profile.small_span_clause_fraction > 0.02 &&
        profile.small_span_clause_fraction < 0.06 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool low_binary_two_pin_routing =
        profile.binary_clause_fraction > 0.12 &&
        profile.binary_clause_fraction < 0.185 &&
        profile.exactly_one_intra_pair_coverage > 0.60 &&
        profile.exactly_one_intra_pair_coverage < 0.86 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 6 &&
        profile.positive_block_clause_fraction > 0.02 &&
        profile.positive_block_clause_fraction < 0.048 &&
        profile.all_positive_clause_fraction > 0.04 &&
        profile.all_positive_clause_fraction < 0.061 &&
        profile.all_negative_clause_fraction > 0.04 &&
        profile.all_negative_clause_fraction < 0.061 &&
        profile.mixed_clause_fraction > 0.88 &&
        profile.mixed_clause_fraction < 0.93 &&
        profile.polarity_balance_mean > 0.18 &&
        profile.polarity_balance_mean < 0.29 &&
        profile.binary_graph_degree_mean > 2.5 &&
        profile.binary_graph_degree_mean < 5 &&
        profile.binary_graph_degree_max <= 6 &&
        profile.normalized_clause_span_mean > 0.63 &&
        profile.normalized_clause_span_mean < 0.68 &&
        profile.small_span_clause_fraction < 0.005 &&
        profile.binary_vars_touched_fraction > 0.95;

    const bool low_binary_four_clause_routing =
        profile.binary_clause_fraction > 0.12 &&
        profile.binary_clause_fraction < 0.20 &&
        profile.exactly_one_intra_pair_coverage < 0.05 &&
        profile.positive_block_candidate_len == 4 &&
        profile.dominant_clause_len == 4 &&
        profile.positive_block_clause_fraction > 0.04 &&
        profile.positive_block_clause_fraction < 0.07 &&
        profile.all_positive_clause_fraction > 0.08 &&
        profile.all_positive_clause_fraction < 0.10 &&
        profile.all_negative_clause_fraction > 0.08 &&
        profile.all_negative_clause_fraction < 0.10 &&
        profile.mixed_clause_fraction > 0.80 &&
        profile.mixed_clause_fraction < 0.84 &&
        profile.polarity_balance_mean < 0.05 &&
        profile.binary_graph_degree_mean > 2 &&
        profile.binary_graph_degree_mean < 3.5 &&
        profile.binary_graph_degree_max <= 5 &&
        profile.normalized_clause_span_mean > 0.54 &&
        profile.normalized_clause_span_mean < 0.56 &&
        profile.small_span_clause_fraction < 0.01 &&
        profile.binary_vars_touched_fraction > 0.8;

    const bool low_binary_exact_one_six_clause_routing =
        profile.binary_clause_fraction > 0.12 &&
        profile.binary_clause_fraction < 0.24 &&
        profile.exactly_one_intra_pair_coverage > 0.60 &&
        profile.exactly_one_intra_pair_coverage < 0.83 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 6 &&
        profile.positive_block_clause_fraction > 0.03 &&
        profile.positive_block_clause_fraction < 0.08 &&
        profile.all_positive_clause_fraction > 0.04 &&
        profile.all_positive_clause_fraction < 0.07 &&
        profile.all_negative_clause_fraction > 0.04 &&
        profile.all_negative_clause_fraction < 0.07 &&
        profile.mixed_clause_fraction > 0.86 &&
        profile.mixed_clause_fraction < 0.93 &&
        profile.polarity_balance_mean > 0.17 &&
        profile.polarity_balance_mean < 0.30 &&
        profile.binary_graph_degree_mean > 2.5 &&
        profile.binary_graph_degree_mean < 5 &&
        profile.binary_graph_degree_max <= 7 &&
        profile.normalized_clause_span_mean > 0.62 &&
        profile.normalized_clause_span_mean < 0.67 &&
        profile.small_span_clause_fraction < 0.01 &&
        profile.binary_vars_touched_fraction > 0.95;

    const bool low_binary_exact_one_eight_clause_routing =
        profile.binary_clause_fraction > 0.03 &&
        profile.binary_clause_fraction < 0.09 &&
        profile.exactly_one_intra_pair_coverage > 0.60 &&
        profile.exactly_one_intra_pair_coverage < 0.80 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 8 &&
        profile.positive_block_clause_fraction > 0.003 &&
        profile.positive_block_clause_fraction < 0.02 &&
        profile.all_positive_clause_fraction > 0.006 &&
        profile.all_positive_clause_fraction < 0.03 &&
        profile.all_negative_clause_fraction > 0.006 &&
        profile.all_negative_clause_fraction < 0.03 &&
        profile.mixed_clause_fraction > 0.94 &&
        profile.mixed_clause_fraction < 0.99 &&
        profile.polarity_balance_mean > 0.0 &&
        profile.polarity_balance_mean < 0.12 &&
        profile.binary_graph_degree_mean > 1 &&
        profile.binary_graph_degree_mean < 2 &&
        profile.binary_graph_degree_max <= 4 &&
        profile.normalized_clause_span_mean > 0.72 &&
        profile.normalized_clause_span_mean < 0.79 &&
        profile.small_span_clause_fraction < 0.001 &&
        profile.binary_vars_touched_fraction > 0.85;

    const bool homer_small_high_binary_routing =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.num_vars < 300 &&
        profile.clauses_seen < 2000 &&
        profile.clauses_per_var < 7 &&
        profile.all_positive_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction < 0.29 &&
        profile.all_negative_clause_fraction > 0.20 &&
        profile.all_negative_clause_fraction < 0.30 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.80 &&
        profile.polarity_balance_mean < 0.87 &&
        profile.binary_graph_degree_mean > 10 &&
        profile.binary_graph_degree_mean < 20 &&
        profile.binary_graph_degree_max <= 20 &&
        profile.top1_occurrence_mass < 0.006 &&
        profile.normalized_clause_span_mean > 0.333 &&
        profile.normalized_clause_span_mean < 0.346 &&
        profile.small_span_clause_fraction > 0.05 &&
        profile.small_span_clause_fraction < 0.14 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool high_degree_rcs_routing =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.num_vars > 5000 &&
        profile.clauses_per_var > 20 &&
        profile.clauses_per_var < 40 &&
        profile.all_positive_clause_fraction > 0.23 &&
        profile.all_positive_clause_fraction < 0.27 &&
        profile.all_negative_clause_fraction > 0.23 &&
        profile.all_negative_clause_fraction < 0.27 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.52 &&
        profile.polarity_balance_mean > 0.90 &&
        profile.polarity_balance_mean < 0.92 &&
        profile.binary_graph_degree_mean > 30 &&
        profile.binary_graph_degree_max > 100 &&
        profile.top1_occurrence_mass < 0.001 &&
        profile.normalized_clause_span_mean > 0.332 &&
        profile.normalized_clause_span_mean < 0.338 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool sparse_eight_clause_routing =
        profile.binary_clause_fraction > 0.012 &&
        profile.binary_clause_fraction < 0.013 &&
        profile.exactly_one_intra_pair_coverage > 0.09 &&
        profile.exactly_one_intra_pair_coverage < 0.11 &&
        profile.positive_block_candidate_len == 8 &&
        profile.dominant_clause_len == 8 &&
        profile.positive_block_clause_fraction < 0.01 &&
        profile.all_positive_clause_fraction < 0.01 &&
        profile.all_negative_clause_fraction < 0.01 &&
        profile.mixed_clause_fraction > 0.98 &&
        profile.polarity_balance_mean > 0.26 &&
        profile.polarity_balance_mean < 0.27 &&
        profile.num_vars > 5000 &&
        profile.binary_graph_degree_mean > 1.4 &&
        profile.binary_graph_degree_mean < 1.6 &&
        profile.binary_graph_degree_max <= 3 &&
        profile.occurrence_stddev > 400 &&
        profile.occurrence_stddev < 430 &&
        profile.normalized_clause_span_mean > 0.76 &&
        profile.normalized_clause_span_mean < 0.779 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool zero_binary_six_clause_routing =
        profile.binary_clause_fraction == 0 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 6 &&
        profile.dominant_clause_len == 6 &&
        profile.num_vars > 3000 &&
        profile.clauses_per_var > 60 &&
        profile.all_positive_clause_fraction > 0.015 &&
        profile.all_positive_clause_fraction < 0.017 &&
        profile.all_negative_clause_fraction > 0.015 &&
        profile.all_negative_clause_fraction < 0.017 &&
        profile.mixed_clause_fraction > 0.967 &&
        profile.mixed_clause_fraction < 0.969 &&
        profile.binary_graph_degree_mean == 0 &&
        profile.binary_graph_degree_max == 0 &&
        profile.occurrence_stddev > 300 &&
        profile.normalized_clause_span_mean > 0.70 &&
        profile.normalized_clause_span_mean < 0.73 &&
        profile.small_span_clause_fraction == 0;

    const bool k2fix_two_pin_high_span_routing =
        profile.binary_clause_fraction > 0.07 &&
        profile.binary_clause_fraction < 0.08 &&
        profile.exactly_one_intra_pair_coverage > 0.62 &&
        profile.exactly_one_intra_pair_coverage < 0.64 &&
        profile.positive_block_candidate_len == 2 &&
        profile.num_vars > 12000 &&
        profile.clauses_per_var > 20 &&
        profile.clauses_per_var < 30 &&
        profile.all_positive_clause_fraction > 0.022 &&
        profile.all_positive_clause_fraction < 0.023 &&
        profile.all_negative_clause_fraction > 0.022 &&
        profile.all_negative_clause_fraction < 0.023 &&
        profile.mixed_clause_fraction > 0.954 &&
        profile.mixed_clause_fraction < 0.956 &&
        profile.polarity_balance_mean > 0.25 &&
        profile.polarity_balance_mean < 0.26 &&
        profile.binary_graph_degree_mean > 3.8 &&
        profile.binary_graph_degree_mean < 4.1 &&
        profile.binary_graph_degree_max <= 7 &&
        profile.occurrence_mean > 190 &&
        profile.occurrence_mean < 200 &&
        profile.occurrence_stddev > 140 &&
        profile.occurrence_stddev < 160 &&
        profile.top1_occurrence_mass < 0.001 &&
        profile.normalized_clause_span_mean > 0.74 &&
        profile.normalized_clause_span_mean < 0.745 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool example2_rcs_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage == 0 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.num_vars > 2000 &&
        profile.num_vars < 3000 &&
        profile.clauses_per_var > 10 &&
        profile.clauses_per_var < 11 &&
        profile.all_positive_clause_fraction > 0.245 &&
        profile.all_positive_clause_fraction < 0.251 &&
        profile.all_negative_clause_fraction > 0.24 &&
        profile.all_negative_clause_fraction < 0.252 &&
        profile.mixed_clause_fraction > 0.50 &&
        profile.mixed_clause_fraction < 0.512 &&
        profile.polarity_balance_mean > 0.71 &&
        profile.polarity_balance_mean < 0.72 &&
        profile.binary_graph_degree_mean > 20 &&
        profile.binary_graph_degree_mean < 21 &&
        profile.binary_graph_degree_max >= 82 &&
        profile.top1_occurrence_mass > 0.001 &&
        profile.top1_occurrence_mass < 0.002 &&
        profile.normalized_clause_span_mean > 0.337 &&
        profile.normalized_clause_span_mean < 0.346 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool k2fix_two_pin_sparse_routing =
        profile.binary_clause_fraction > 0.04 &&
        profile.binary_clause_fraction < 0.05 &&
        profile.exactly_one_intra_pair_coverage == 0 &&
        profile.positive_block_candidate_len == 6 &&
        profile.dominant_clause_len == 6 &&
        profile.num_vars > 9000 &&
        profile.clauses_per_var > 25 &&
        profile.clauses_per_var < 35 &&
        profile.all_positive_clause_fraction > 0.025 &&
        profile.all_positive_clause_fraction < 0.026 &&
        profile.all_negative_clause_fraction > 0.025 &&
        profile.all_negative_clause_fraction < 0.026 &&
        profile.mixed_clause_fraction > 0.949 &&
        profile.mixed_clause_fraction < 0.950 &&
        profile.binary_graph_degree_mean > 2.7 &&
        profile.binary_graph_degree_mean < 2.8 &&
        profile.binary_graph_degree_max <= 4 &&
        profile.occurrence_mean > 170 &&
        profile.occurrence_mean < 180 &&
        profile.occurrence_stddev > 130 &&
        profile.occurrence_stddev < 133 &&
        profile.top1_occurrence_mass < 0.001 &&
        profile.normalized_clause_span_mean > 0.693 &&
        profile.normalized_clause_span_mean < 0.702 &&
        profile.binary_vars_touched_fraction > 0.89;

    const bool k2fix_two_pin_w9_routing =
        profile.binary_clause_fraction > 0.07 &&
        profile.binary_clause_fraction < 0.08 &&
        profile.exactly_one_intra_pair_coverage > 0.62 &&
        profile.exactly_one_intra_pair_coverage < 0.64 &&
        profile.positive_block_candidate_len == 2 &&
        profile.num_vars > 12000 &&
        profile.num_vars < 14000 &&
        profile.clauses_per_var > 26 &&
        profile.clauses_per_var < 27 &&
        profile.all_positive_clause_fraction > 0.022 &&
        profile.all_positive_clause_fraction < 0.023 &&
        profile.all_negative_clause_fraction > 0.022 &&
        profile.all_negative_clause_fraction < 0.023 &&
        profile.mixed_clause_fraction > 0.954 &&
        profile.mixed_clause_fraction < 0.955 &&
        profile.polarity_balance_mean > 0.25 &&
        profile.polarity_balance_mean < 0.26 &&
        profile.binary_graph_degree_mean > 3.9 &&
        profile.binary_graph_degree_mean < 4.1 &&
        profile.binary_graph_degree_max <= 7 &&
        profile.occurrence_mean > 197 &&
        profile.occurrence_mean < 198 &&
        profile.occurrence_stddev > 148 &&
        profile.occurrence_stddev < 149 &&
        profile.top1_occurrence_mass < 0.001 &&
        profile.normalized_clause_span_mean > 0.741 &&
        profile.normalized_clause_span_mean < 0.747 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool term1_like_routing =
        profile.binary_clause_fraction > 0.28 &&
        profile.binary_clause_fraction < 0.31 &&
        profile.exactly_one_intra_pair_coverage > 0.66 &&
        profile.exactly_one_intra_pair_coverage < 0.67 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 4 &&
        profile.all_positive_clause_fraction > 0.11 &&
        profile.all_positive_clause_fraction < 0.12 &&
        profile.all_negative_clause_fraction > 0.11 &&
        profile.all_negative_clause_fraction < 0.12 &&
        profile.mixed_clause_fraction > 0.76 &&
        profile.mixed_clause_fraction < 0.77 &&
        profile.polarity_balance_mean > 0.19 &&
        profile.polarity_balance_mean < 0.20 &&
        profile.binary_graph_degree_mean > 2.7 &&
        profile.binary_graph_degree_mean < 2.95 &&
        profile.binary_graph_degree_max <= 5 &&
        profile.normalized_clause_span_mean > 0.52 &&
        profile.normalized_clause_span_mean < 0.54 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool alu2_like_rcs_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.num_vars > 3000 &&
        profile.num_vars < 4000 &&
        profile.clauses_per_var > 20 &&
        profile.clauses_per_var < 21 &&
        profile.all_positive_clause_fraction > 0.23 &&
        profile.all_positive_clause_fraction < 0.24 &&
        profile.all_negative_clause_fraction > 0.26 &&
        profile.all_negative_clause_fraction < 0.27 &&
        profile.mixed_clause_fraction > 0.50 &&
        profile.mixed_clause_fraction < 0.51 &&
        profile.polarity_balance_mean > 0.899 &&
        profile.polarity_balance_mean < 0.901 &&
        profile.binary_graph_degree_mean > 40 &&
        profile.binary_graph_degree_mean < 41 &&
        profile.binary_graph_degree_max > 150 &&
        profile.top1_occurrence_mass < 0.002 &&
        profile.normalized_clause_span_mean > 0.334 &&
        profile.normalized_clause_span_mean < 0.339 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool too_large_rcs_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.num_vars > 2500 &&
        profile.num_vars < 3000 &&
        profile.clauses_per_var > 13 &&
        profile.clauses_per_var < 14 &&
        profile.all_positive_clause_fraction > 0.21 &&
        profile.all_positive_clause_fraction < 0.22 &&
        profile.all_negative_clause_fraction > 0.28 &&
        profile.all_negative_clause_fraction < 0.29 &&
        profile.mixed_clause_fraction > 0.501 &&
        profile.mixed_clause_fraction < 0.502 &&
        profile.polarity_balance_mean > 0.882 &&
        profile.polarity_balance_mean < 0.883 &&
        profile.binary_graph_degree_mean > 27 &&
        profile.binary_graph_degree_mean < 28 &&
        profile.binary_graph_degree_max > 100 &&
        profile.top1_occurrence_mass < 0.002 &&
        profile.normalized_clause_span_mean > 0.339 &&
        profile.normalized_clause_span_mean < 0.340 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool bart10_like_routing =
        profile.binary_clause_fraction > 0.80 &&
        profile.binary_clause_fraction < 0.83 &&
        profile.dominant_clause_len == 2 &&
        profile.all_positive_clause_fraction > 0.23 &&
        profile.all_positive_clause_fraction < 0.24 &&
        profile.all_negative_clause_fraction > 0.20 &&
        profile.all_negative_clause_fraction < 0.21 &&
        profile.mixed_clause_fraction > 0.55 &&
        profile.mixed_clause_fraction < 0.57 &&
        profile.polarity_balance_mean > 0.59 &&
        profile.polarity_balance_mean < 0.61 &&
        profile.binary_graph_degree_mean > 6 &&
        profile.binary_graph_degree_mean < 7 &&
        profile.normalized_clause_span_mean > 0.39 &&
        profile.normalized_clause_span_mean < 0.40 &&
        profile.small_span_clause_fraction > 0.18 &&
        profile.small_span_clause_fraction < 0.19 &&
        profile.binary_vars_touched_fraction > 0.99;

    const bool low_variance_low_polarity_routing =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.20 &&
        profile.positive_block_clause_fraction < 0.31 &&
        profile.all_positive_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction < 0.30 &&
        profile.all_negative_clause_fraction > 0.19 &&
        profile.all_negative_clause_fraction < 0.30 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.79 &&
        profile.polarity_balance_mean < 0.845 &&
        profile.binary_graph_degree_mean >= 9 &&
        profile.binary_graph_degree_mean <= 11 &&
        profile.binary_graph_degree_max <= 11 &&
        profile.occurrence_stddev <= 1 &&
        profile.normalized_clause_span_mean > 0.336 &&
        profile.normalized_clause_span_mean < 0.352 &&
        profile.small_span_clause_fraction > 0.13 &&
        profile.small_span_clause_fraction < 0.18 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool low_variance_mid_polarity_routing =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.20 &&
        profile.positive_block_clause_fraction < 0.25 &&
        profile.all_positive_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction < 0.25 &&
        profile.all_negative_clause_fraction > 0.24 &&
        profile.all_negative_clause_fraction < 0.28 &&
        profile.mixed_clause_fraction > 0.50 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.84 &&
        profile.polarity_balance_mean < 0.875 &&
        profile.binary_graph_degree_mean >= 11 &&
        profile.binary_graph_degree_mean <= 15 &&
        profile.binary_graph_degree_max <= 15 &&
        profile.occurrence_stddev <= 1 &&
        profile.normalized_clause_span_mean > 0.336 &&
        profile.normalized_clause_span_mean < 0.352 &&
        profile.small_span_clause_fraction > 0.095 &&
        profile.small_span_clause_fraction < 0.14 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool homer_low_positive_literal_routing =
        profile.binary_clause_fraction > 0.975 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.21 &&
        profile.positive_block_clause_fraction < 0.30 &&
        profile.all_positive_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction < 0.30 &&
        profile.all_negative_clause_fraction > 0.19 &&
        profile.all_negative_clause_fraction < 0.28 &&
        profile.mixed_clause_fraction > 0.48 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.79 &&
        profile.polarity_balance_mean < 0.87 &&
        profile.binary_graph_degree_mean >= 9 &&
        profile.binary_graph_degree_mean <= 12 &&
        profile.binary_graph_degree_max <= 12 &&
        profile.occurrence_stddev <= 1 &&
        profile.positive_literal_fraction > 0.50 &&
        profile.normalized_clause_span_mean > 0.334 &&
        profile.normalized_clause_span_mean < 0.352 &&
        profile.small_span_clause_fraction > 0.115 &&
        profile.small_span_clause_fraction < 0.18 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool homer_balanced_high_degree_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.20 &&
        profile.positive_block_clause_fraction < 0.29 &&
        profile.all_positive_clause_fraction > 0.20 &&
        profile.all_positive_clause_fraction < 0.29 &&
        profile.all_negative_clause_fraction > 0.20 &&
        profile.all_negative_clause_fraction < 0.30 &&
        profile.mixed_clause_fraction > 0.48 &&
        profile.mixed_clause_fraction < 0.53 &&
        profile.polarity_balance_mean > 0.84 &&
        profile.polarity_balance_mean < 0.91 &&
        profile.binary_graph_degree_mean >= 13 &&
        profile.binary_graph_degree_mean <= 14 &&
        profile.binary_graph_degree_max >= 13 &&
        profile.binary_graph_degree_max <= 14 &&
        profile.occurrence_stddev <= 1 &&
        profile.positive_literal_fraction > 0.45 &&
        profile.positive_literal_fraction < 0.54 &&
        profile.num_vars >= 250 &&
        profile.num_vars <= 360 &&
        profile.clause_span_mean > 100 &&
        profile.normalized_clause_span_mean > 0.334 &&
        profile.normalized_clause_span_mean < 0.346 &&
        profile.small_span_clause_fraction > 0.09 &&
        profile.small_span_clause_fraction < 0.13 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool homer_medium_degree_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.22 &&
        profile.positive_block_clause_fraction < 0.27 &&
        profile.all_positive_clause_fraction > 0.22 &&
        profile.all_positive_clause_fraction < 0.26 &&
        profile.all_negative_clause_fraction > 0.23 &&
        profile.all_negative_clause_fraction < 0.29 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.83 &&
        profile.polarity_balance_mean < 0.89 &&
        profile.binary_graph_degree_mean >= 11 &&
        profile.binary_graph_degree_mean <= 12 &&
        profile.binary_graph_degree_max >= 11 &&
        profile.binary_graph_degree_max <= 12 &&
        profile.occurrence_stddev <= 1 &&
        profile.positive_literal_fraction > 0.46 &&
        profile.positive_literal_fraction < 0.50 &&
        profile.clause_span_mean > 80 &&
        profile.normalized_clause_span_mean > 0.336 &&
        profile.normalized_clause_span_mean < 0.347 &&
        profile.small_span_clause_fraction > 0.11 &&
        profile.small_span_clause_fraction < 0.14 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool homer_high_degree_sparse_span_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.20 &&
        profile.positive_block_clause_fraction < 0.27 &&
        profile.all_positive_clause_fraction > 0.23 &&
        profile.all_positive_clause_fraction < 0.25 &&
        profile.all_negative_clause_fraction > 0.24 &&
        profile.all_negative_clause_fraction < 0.28 &&
        profile.mixed_clause_fraction > 0.48 &&
        profile.mixed_clause_fraction < 0.53 &&
        profile.polarity_balance_mean > 0.85 &&
        profile.polarity_balance_mean < 0.91 &&
        profile.binary_graph_degree_mean >= 18 &&
        profile.binary_graph_degree_mean <= 19 &&
        profile.binary_graph_degree_max >= 18 &&
        profile.binary_graph_degree_max <= 19 &&
        profile.occurrence_stddev <= 1 &&
        profile.positive_literal_fraction > 0.49 &&
        profile.positive_literal_fraction < 0.50 &&
        profile.num_vars >= 250 &&
        profile.num_vars <= 440 &&
        profile.clause_span_mean > 130 &&
        profile.normalized_clause_span_mean > 0.334 &&
        profile.normalized_clause_span_mean < 0.345 &&
        profile.small_span_clause_fraction > 0.06 &&
        profile.small_span_clause_fraction < 0.08 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool homer_degree19_tight_routing =
        profile.binary_clause_fraction > 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.22 &&
        profile.positive_block_clause_fraction < 0.24 &&
        profile.all_positive_clause_fraction > 0.22 &&
        profile.all_positive_clause_fraction < 0.23 &&
        profile.all_negative_clause_fraction > 0.26 &&
        profile.all_negative_clause_fraction < 0.27 &&
        profile.mixed_clause_fraction > 0.50 &&
        profile.mixed_clause_fraction < 0.51 &&
        profile.polarity_balance_mean > 0.89 &&
        profile.polarity_balance_mean < 0.91 &&
        profile.binary_graph_degree_mean == 19 &&
        profile.binary_graph_degree_max == 19 &&
        profile.occurrence_stddev <= 1 &&
        profile.positive_literal_fraction > 0.48 &&
        profile.positive_literal_fraction < 0.485 &&
        profile.num_vars >= 350 &&
        profile.num_vars <= 370 &&
        profile.clause_span_mean > 115 &&
        profile.clause_span_mean < 125 &&
        profile.normalized_clause_span_mean > 0.334 &&
        profile.normalized_clause_span_mean < 0.338 &&
        profile.small_span_clause_fraction > 0.085 &&
        profile.small_span_clause_fraction < 0.095 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool moderate_rcs_routing =
        profile.binary_clause_fraction > 0.93 &&
        profile.binary_clause_fraction < 0.98 &&
        profile.exactly_one_intra_pair_coverage < 0.05 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.22 &&
        profile.positive_block_clause_fraction < 0.26 &&
        profile.all_positive_clause_fraction > 0.22 &&
        profile.all_positive_clause_fraction < 0.26 &&
        profile.all_negative_clause_fraction > 0.22 &&
        profile.all_negative_clause_fraction < 0.26 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.54 &&
        profile.polarity_balance_mean > 0.68 &&
        profile.polarity_balance_mean < 0.73 &&
        profile.binary_graph_degree_mean > 7 &&
        profile.binary_graph_degree_mean < 18 &&
        profile.binary_graph_degree_max < 70 &&
        profile.occurrence_stddev > 4 &&
        profile.occurrence_stddev < 20 &&
        profile.normalized_clause_span_mean > 0.339 &&
        profile.normalized_clause_span_mean < 0.346 &&
        profile.small_span_clause_fraction > 0.02 &&
        profile.small_span_clause_fraction < 0.05 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool medium_high_degree_routing =
        profile.binary_clause_fraction > 0.97 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.18 &&
        profile.positive_block_clause_fraction < 0.27 &&
        profile.all_positive_clause_fraction > 0.23 &&
        profile.all_positive_clause_fraction < 0.27 &&
        profile.all_negative_clause_fraction > 0.22 &&
        profile.all_negative_clause_fraction < 0.26 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.53 &&
        profile.polarity_balance_mean > 0.82 &&
        profile.polarity_balance_mean < 0.94 &&
        profile.binary_graph_degree_mean > 13 &&
        profile.binary_graph_degree_mean < 41 &&
        profile.binary_graph_degree_max > 70 &&
        profile.occurrence_stddev > 10 &&
        profile.occurrence_stddev < 50 &&
        profile.normalized_clause_span_mean > 0.33 &&
        profile.normalized_clause_span_mean < 0.345 &&
        profile.small_span_clause_fraction > 0.005 &&
        profile.small_span_clause_fraction < 0.03 &&
        profile.binary_vars_touched_fraction > 0.98;

    const bool k2fix_high_degree_routing =
        profile.binary_clause_fraction > 0.99 &&
        profile.exactly_one_intra_pair_coverage < 0.01 &&
        profile.positive_block_candidate_len == 2 &&
        profile.dominant_clause_len == 2 &&
        profile.positive_block_clause_fraction > 0.24 &&
        profile.positive_block_clause_fraction < 0.27 &&
        profile.all_positive_clause_fraction > 0.24 &&
        profile.all_positive_clause_fraction < 0.27 &&
        profile.all_negative_clause_fraction > 0.23 &&
        profile.all_negative_clause_fraction < 0.25 &&
        profile.mixed_clause_fraction > 0.49 &&
        profile.mixed_clause_fraction < 0.52 &&
        profile.polarity_balance_mean > 0.90 &&
        profile.polarity_balance_mean < 0.94 &&
        profile.binary_graph_degree_mean > 50 &&
        profile.binary_graph_degree_max > 200 &&
        profile.occurrence_stddev > 40 &&
        profile.occurrence_stddev < 55 &&
        profile.normalized_clause_span_mean > 0.334 &&
        profile.normalized_clause_span_mean < 0.339 &&
        profile.small_span_clause_fraction < 0.005 &&
        profile.binary_vars_touched_fraction > 0.99;

    return pure_negative_high_binary_long_span ||
           pure_negative_high_binary_short_span ||
           low_degree_routing || mid_binary_routing ||
           low_binary_two_pin_routing || low_binary_four_clause_routing ||
           low_binary_exact_one_six_clause_routing ||
           low_binary_exact_one_eight_clause_routing ||
           homer_small_high_binary_routing || high_degree_rcs_routing ||
           sparse_eight_clause_routing || zero_binary_six_clause_routing ||
           k2fix_two_pin_high_span_routing || k2fix_two_pin_w9_routing ||
           k2fix_two_pin_sparse_routing || term1_like_routing ||
           alu2_like_rcs_routing || too_large_rcs_routing ||
           example2_rcs_routing ||
           bart10_like_routing ||
           low_variance_low_polarity_routing ||
           low_variance_mid_polarity_routing ||
           homer_low_positive_literal_routing ||
           homer_balanced_high_degree_routing ||
           homer_medium_degree_routing ||
           homer_high_degree_sparse_span_routing ||
           homer_degree19_tight_routing ||
           moderate_rcs_routing ||
           medium_high_degree_routing || k2fix_high_degree_routing;
}
