implied-vol 2.0.0

A pure rust implementation of Peter Jäckel's implied volatility calculation
Documentation
#[cfg(feature = "cxx_bench")]
fn main() {
    println!("Running build.rs for benchmarks only...");
    cxx_build::bridge("src/cxx.rs")
        .file("source/lets_be_rational.cpp")
        .file("source/normaldistribution.cpp")
        .file("source/rationalcubic.cpp")
        .file("source/erf_cody.cpp")
        .file("source/ImpliedNormalVolatility.cpp")
        .flag("-finput-charset=UTF-8")
        .flag("-fextended-identifiers")
        .flag("-O3")
        .flag("-DNDEBUG")
        .flag("-ffp-contract=fast")
        .flag("-march=native")
        .flag("-Ofast")
        .flag("-w")
        .include("source")
        .flag_if_supported("-std=c++23")
        .compile("lets_be_rational");

    println!("cargo:rerun-if-changed=src/cxx.rs");
    println!("cargo:rerun-if-changed=source/lets_be_rational.h");
    println!("cargo:rerun-if-changed=source/lets_be_rational.cpp");
    println!("cargo:rerun-if-changed=source/erf_cody.cpp");
    println!("cargo:rerun-if-changed=source/normaldistribution.h");
    println!("cargo:rerun-if-changed=source/normaldistribution.cpp");
    println!("cargo:rerun-if-changed=source/rationalcubic.h");
    println!("cargo:rerun-if-changed=source/rationalcubic.cpp");
    println!("cargo:rerun-if-changed=source/ImpliedNormalVolatility.cpp");
}

#[cfg(not(feature = "cxx_bench"))]
fn main() {}