extern crate alloc;
include!("src/ltc/size.rs");
include!("src/ltc/fit.rs");
fn write_f32s(path: std::path::PathBuf, values: impl Iterator<Item = f32>) {
let mut bytes = Vec::new();
for v in values {
bytes.extend_from_slice(&v.to_le_bytes());
}
std::fs::write(path, bytes).expect("failed to write the generated LTC table");
}
fn main() {
println!("cargo::rerun-if-changed=src/ltc/fit.rs");
println!("cargo::rerun-if-changed=src/ltc/size.rs");
let (matrix, magnitude) = fit_table(LTC_LUT_SIZE);
let dir = std::path::PathBuf::from(
std::env::var("OUT_DIR").expect("OUT_DIR is set for build scripts"),
);
write_f32s(dir.join("ltc_matrix.bin"), matrix.into_iter().flatten());
write_f32s(
dir.join("ltc_magnitude.bin"),
magnitude.into_iter().flatten(),
);
}