mod part_00;
mod part_01;
pub const MODEL_SHA256: &str = "df028ae1f4cf01ff57d54a1f335ed7eef05f18e003cafe398acbcfcec1a92e62";
pub const FEATURES: [&str; 14] = ["width_in_word_widths", "width_over_stripe", "lines_in_stripe", "words_in_stripe", "line_rank", "line_index", "words_in_line", "numeric", "bands_below_overlapped", "bands_below", "bands_other_overlapped", "share_of_stripe_lines_below", "stripes_in_table", "lines_below_overlapped_share"];
pub const THRESHOLD: f64 = 0.03_f64;
#[inline(always)]
fn go_left(value: f64, threshold: f64, default_left: bool, missing: u8) -> bool {
let value = if missing != 2 && value.is_nan() { 0.0 } else { value };
if (missing == 1 && value.abs() <= 1e-35) || (missing == 2 && value.is_nan()) {
return default_left;
}
value <= threshold
}
pub fn predict_margin(x: &[f64; 14]) -> f64 {
let acc = 0.0;
let acc = part_00::add(x, acc);
part_01::add(x, acc)
}