ilo 26.5.0

ilo - the token-minimal programming language AI agents write
Documentation
use std::env;
use std::time::Instant;

#[inline(never)]
fn lev(x: i64) -> i64 {
    if x >= 5000 { return 5; }
    if x >= 3000 { return 4; }
    if x >= 1000 { return 3; }
    if x >= 500 { return 2; }
    1
}

fn bench(n: i64) -> i64 {
    let mut s: i64 = 0;
    for i in 0..n {
        let a = i * 3;
        let b = a + 1;
        let c = b * 2;
        let d = lev(c);
        s += d;
    }
    s
}

fn main() {
    let n: i64 = env::args().nth(1).and_then(|s| s.parse().ok()).unwrap_or(1000);
    for _ in 0..1000 { let _ = bench(n); }
    let iters: u128 = 10000;
    let start = Instant::now();
    let mut r = 0i64;
    for _ in 0..iters { r = bench(n); }
    let elapsed = start.elapsed().as_nanos();
    println!("result:     {}", r);
    println!("iterations: {}", iters);
    println!("total:      {:.2}ms", elapsed as f64 / 1e6);
    println!("per call:   {}ns", elapsed / iters);
}