diff --git a/Cargo.lock b/Cargo.lock index 45cb050..74337ef 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -225,6 +225,15 @@ dependencies = [ "wyz", ] +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + [[package]] name = "bson" version = "2.15.0" @@ -406,6 +415,15 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "cpufeatures" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" +dependencies = [ + "libc", +] + [[package]] name = "crc32fast" version = "1.5.0" @@ -482,6 +500,16 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "460fbee9c2c2f33933d720630a6a0bac33ba7053db5344fac858d4b8952d77d5" +[[package]] +name = "crypto-common" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a" +dependencies = [ + "generic-array", + "typenum", +] + [[package]] name = "data_reader" version = "0.5.0" @@ -523,6 +551,16 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + [[package]] name = "dyn-clone" version = "1.0.20" @@ -639,6 +677,16 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + [[package]] name = "generic_singleton" version = "0.5.1" @@ -1293,6 +1341,39 @@ dependencies = [ "ucd-trie", ] +[[package]] +name = "pest_derive" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "187da9a3030dbafabbbfb20cb323b976dc7b7ce91fcd84f2f74d6e31d378e2de" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49b401d98f5757ebe97a26085998d6c0eecec4995cad6ab7fc30ffdf4b052843" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2", + "quote", + "syn 2.0.109", +] + +[[package]] +name = "pest_meta" +version = "2.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72f27a2cfee9f9039c4d86faa5af122a0ac3851441a34865b8a043b46be0065a" +dependencies = [ + "pest", + "sha2", +] + [[package]] name = "plotters" version = "0.3.7" @@ -1780,6 +1861,17 @@ dependencies = [ "serde_core", ] +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + [[package]] name = "shlex" version = "1.3.0" @@ -2285,6 +2377,7 @@ dependencies = [ "ndarray 0.15.6", "num-complex 0.4.6", "pest", + "pest_derive", "polyfit-rs", "pprof", "rayon", diff --git a/Cargo.toml b/Cargo.toml index b2eb51a..4f06a41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,6 +49,7 @@ version = "3.0.0" derivative = "2.2.0" flate2 = "1.0.28" pest = "2.7.7" +pest_derive = "2.7.7" thiserror = "1.0.69" xraytsubaki = { version = "0.1.0", path = "crates/xraytsubaki" } diff --git a/crates/xraytsubaki/Cargo.toml b/crates/xraytsubaki/Cargo.toml index 6527a38..64e04a9 100644 --- a/crates/xraytsubaki/Cargo.toml +++ b/crates/xraytsubaki/Cargo.toml @@ -34,6 +34,7 @@ easyfft = { workspace = true } serde_json = { workspace = true } flate2 = { workspace = true } pest = { workspace = true } +pest_derive = { workspace = true } thiserror = { workspace = true } [features] @@ -56,3 +57,7 @@ harness = false [[bench]] name = "autobk_stage_benchmark" harness = false + +[[bench]] +name = "feff_fitting_batch_benchmark" +harness = false diff --git a/crates/xraytsubaki/README.md b/crates/xraytsubaki/README.md index 7809159..f16bb0c 100644 --- a/crates/xraytsubaki/README.md +++ b/crates/xraytsubaki/README.md @@ -13,6 +13,18 @@ Additionally, this project seeks to leverage Rust's ecosystem to create a genera - [x] Standard EXAFS analysis (find_e0, preedge postedge normalization, AUTOBK, FFT, IFFT) - [x] Parallel processing using Rayon. (For example, M1 Macbook Pro with 10 cores can process 10000 spectra in 20 seconds, which is ~x10 enhancement without parallelization. Numpy + xraylarch takes 145 seconds.) - [x] Optimization on AUTOBK. The AUTOBK process were optimized with providing an analytical Jacobian to speed up the minimization process by Leverberg-Marquardt algorithm. +- [x] FEFF85L path-based EXAFS fitting in Rust core (`xfeffdat` parsing, `path2chi`, `ff2chi`, single-dataset R-space fit with shared expression variables). +- [x] FEFF85L pure-Rust module execution workflow (`resolve_feff_commands`, `run_feff`, `run_feff_and_load_paths`) starting from a provided FEFF executable path. + +## FEFF Fitting MVP Boundaries + +- Rust core only in this release (`crates/xraytsubaki`). +- FEFF85L execution path supports deterministic module resolution (`feff8l_rdinp`, `feff8l_pot`, `feff8l_xsph`, `feff8l_pathfinder`, `feff8l_genfmt`, `feff8l_ff2x`) and output discovery. +- Existing parse-only workflows with pre-generated `feffNNNN.dat` files remain supported. +- Single-dataset R-space fitting only. +- FEFF10 parsing/execution are reserved and return typed unsupported errors in this MVP. + +See `crates/xraytsubaki/doc/feff-fitting-mvp.md` for details and FEFF10 follow-up compatibility notes. ## Future Developments diff --git a/crates/xraytsubaki/benches/feff_fitting_batch_benchmark.rs b/crates/xraytsubaki/benches/feff_fitting_batch_benchmark.rs new file mode 100644 index 0000000..b9eb1ce --- /dev/null +++ b/crates/xraytsubaki/benches/feff_fitting_batch_benchmark.rs @@ -0,0 +1,96 @@ +mod perf; + +use criterion::{black_box, criterion_group, criterion_main, Criterion, Throughput}; +use nalgebra::DVector; +use perf::FlamegraphProfiler; +use std::num::NonZeroUsize; +use xraytsubaki::xafs::fitting::{ + feffit_independent, feffpath, ff2chi, FeffBatchOptions, FeffFitDataset, FeffFlavor, + FitVariable, FitVariables, PathParamSpec, +}; + +pub const TOP_DIR: &str = env!("CARGO_MANIFEST_DIR"); + +fn fixture_dataset() -> FeffFitDataset { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path = feffpath(&pathfile, FeffFlavor::Feff85L).unwrap(); + path.s02 = PathParamSpec::Expression("amp".to_string()); + path.e0 = PathParamSpec::Expression("de0".to_string()); + path.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path.deltar = PathParamSpec::Expression("dr".to_string()); + + let k = DVector::from_iterator(140, (0..140).map(|i| 0.05 * (i as f64 + 1.0))); + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(0.9, false)); + truth.insert("de0", FitVariable::new(1.1, false)); + truth.insert("sig2", FitVariable::new(0.0031, false)); + truth.insert("dr", FitVariable::new(0.01, false)); + let synthetic = ff2chi(&[path.clone()], &truth, &k).unwrap(); + + FeffFitDataset::new() + .data(&k, &synthetic.chi) + .epsilon_k(1.0) + .add_path(path) +} + +fn initial_variables() -> FitVariables { + let mut initial = FitVariables::new(); + initial.insert("amp", FitVariable::new(0.95, true)); + initial.insert("de0", FitVariable::new(0.0, true)); + initial.insert( + "sig2", + FitVariable::new(0.002, true).with_bounds(Some(0.0), Some(0.02)), + ); + initial.insert("dr", FitVariable::new(0.0, true)); + initial +} + +fn criterion_benchmark(c: &mut Criterion) { + let template = fixture_dataset(); + let vars = initial_variables(); + let batch = vec![template; 10_000]; + + let mut group = c.benchmark_group("feff_fitting_batch"); + group.throughput(Throughput::Elements(batch.len() as u64)); + + let serial = FeffBatchOptions::sequential() + .with_chunk_size(NonZeroUsize::new(256).expect("nonzero constant")); + group.bench_function("feff_batch_independent_serial_10k", |b| { + b.iter(|| { + let out = feffit_independent(&batch, &vars, &serial); + let ok_count = out.iter().filter(|item| item.is_ok()).count(); + black_box(ok_count) + }) + }); + + let rayon = FeffBatchOptions::parallel() + .with_chunk_size(NonZeroUsize::new(256).expect("nonzero constant")); + group.bench_function("feff_batch_independent_rayon_10k", |b| { + b.iter(|| { + let out = feffit_independent(&batch, &vars, &rayon); + let ok_count = out.iter().filter(|item| item.is_ok()).count(); + black_box(ok_count) + }) + }); + + group.finish(); +} + +fn custom() -> Criterion { + let base = Criterion::default().sample_size(10); + let enable_profiler = + std::env::args().any(|arg| arg == "--profile-time" || arg.starts_with("--profile-time=")); + if enable_profiler { + base.with_profiler(FlamegraphProfiler::new(1000)) + } else { + base + } +} + +criterion_group! { + name = benches; + config = custom(); + targets = criterion_benchmark +} + +criterion_main!(benches); diff --git a/crates/xraytsubaki/doc/feff-fitting-mvp.md b/crates/xraytsubaki/doc/feff-fitting-mvp.md new file mode 100644 index 0000000..3111672 --- /dev/null +++ b/crates/xraytsubaki/doc/feff-fitting-mvp.md @@ -0,0 +1,67 @@ +# FEFF Fitting MVP (Rust Core) + +This document describes the scope and compatibility guarantees of the first FEFF fitting implementation added in `add-feff85l-xafs-fitting`. + +## MVP Scope + +Implemented now: +- Rust-core APIs in `xraytsubaki::xafs::fitting`. +- FEFF85L command discovery and module execution from a caller-provided executable path. +- FEFF85L path file parsing for `feffNNNN.dat` style files. +- FEFF path model synthesis with `path2chi` and summed `ff2chi`. +- Single-dataset nonlinear fitting in R-space with configurable transform window/range. +- Shared fit variables plus expression-bound path parameters. +- Reference fixtures and parity-oriented regression checks against xraylarch-generated data. + +Out of scope in MVP: +- Python binding surface for fitting APIs. +- Multi-dataset/global fits. +- Non-R fitspaces (`k`, `q`, wavelet). +- FEFF10 execution support. + +## Builder API and Canonical Examples + +The redesigned fitting surface adds additive builder APIs (`FeffFit`, `Param`) and +multi-dataset fitting while keeping the existing free-function flow available. + +Canonical usage examples are maintained in: +- `plans/fitting-api-redesign.md` + +Those examples define the intended ergonomic workflows: +- path-model chaining and clone-and-reuse, +- tuple shorthand via `set_inits`, +- `Param`-based parameter declarations, +- single-dataset fitting with builder chaining, +- multi-dataset global fitting with shared parameters. + +## Migration Guidance (Legacy -> Builder) + +Legacy flow remains valid: +- Build `FeffFitDataset` and `FitVariables` manually. +- Call `feffit(&dataset, &vars)`. + +Builder flow is additive: +- Build with `FeffFit::new().data(...).add_path(...).set_inits(...).fit()`. +- Use `add_dataset(...)` for global multi-dataset fitting. +- Use `params([Param::new(...), Param::fixed(...), Param::expr(...)])` for concise variable setup. + +Compatibility policy: +- Existing entrypoints and single-dataset access patterns remain supported. +- Builder/multi-dataset APIs are additive. +- Deprecation is documentation-first; no mandatory migration is introduced in this change. + +## FEFF Flavor Compatibility + +- `FeffFlavor::Feff85L`: supported in this MVP. +- `FeffFlavor::Feff10`: intentionally returns a typed unsupported error. + +This explicit dispatch behavior is intentional to keep caller contracts stable while FEFF10 parsing is implemented in a follow-up. + +## FEFF10 Follow-up Path + +The extension path is: +1. Implement FEFF10 parser normalization into the existing `FeffDat` model. +2. Keep `path2chi`, `ff2chi`, and `feffit` API signatures unchanged. +3. Add FEFF10 fixtures and parity tests beside FEFF85L fixtures. + +No breaking API changes are expected for Rust callers when FEFF10 support is added. diff --git a/crates/xraytsubaki/examples/feff_compare_export.rs b/crates/xraytsubaki/examples/feff_compare_export.rs new file mode 100644 index 0000000..9f40243 --- /dev/null +++ b/crates/xraytsubaki/examples/feff_compare_export.rs @@ -0,0 +1,522 @@ +use std::error::Error; +use std::fs; +use std::path::{Path, PathBuf}; + +use nalgebra::DVector; +use xraytsubaki::prelude::*; +use xraytsubaki::xafs::fitting::transform::apply_r_transform; + +fn fixture_path(name: &str) -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")) + .join("tests") + .join("testfiles") + .join(name) +} + +fn output_dir() -> PathBuf { + Path::new(env!("CARGO_MANIFEST_DIR")).join("../../doc/plots/feff_vs_larch_data") +} + +fn load_two_column(path: &Path) -> Result<(DVector, DVector), Box> { + let content = fs::read_to_string(path)?; + let mut x = Vec::new(); + let mut y = Vec::new(); + for line in content.lines() { + let line = line.trim(); + if line.is_empty() || line.starts_with('#') { + continue; + } + let mut parts = line.split_whitespace(); + let xv: f64 = parts.next().ok_or("missing x value in fixture")?.parse()?; + let yv: f64 = parts.next().ok_or("missing y value in fixture")?.parse()?; + x.push(xv); + y.push(yv); + } + Ok((DVector::from_vec(x), DVector::from_vec(y))) +} + +fn write_comparison_csv( + path: &Path, + k: &DVector, + model: &DVector, + larch: &DVector, +) -> Result<(), Box> { + if k.len() != model.len() || k.len() != larch.len() { + return Err("length mismatch while writing comparison csv".into()); + } + let mut out = String::from("k,model,larch,diff\n"); + for i in 0..k.len() { + let diff = model[i] - larch[i]; + out.push_str(&format!( + "{:.15e},{:.15e},{:.15e},{:.15e}\n", + k[i], model[i], larch[i], diff + )); + } + fs::write(path, out)?; + Ok(()) +} + +fn reference_transform() -> FeffFitTransform { + FeffFitTransform { + kmin: 2.0, + kmax: 14.0, + rmin: 1.0, + rmax: 3.0, + window: FTWindow::Hanning, + ..FeffFitTransform::default() + } +} + +fn write_rspace_comparison_csv( + path: &Path, + k: &DVector, + model_chi: &DVector, + larch_chi: &DVector, +) -> Result<(), Box> { + let transform = reference_transform(); + let model = apply_r_transform(k, model_chi, &transform)?; + let larch = apply_r_transform(k, larch_chi, &transform)?; + if model.r.len() != larch.r.len() || model.chir_mag.len() != larch.chir_mag.len() { + return Err("R-space transform output mismatch".into()); + } + let mut out = String::from("r,model,larch,diff\n"); + for i in 0..model.r.len() { + let x = model.r[i]; + let mv = model.chir_mag[i]; + let lv = larch.chir_mag[i]; + let diff = mv - lv; + out.push_str(&format!( + "{:.15e},{:.15e},{:.15e},{:.15e}\n", + x, mv, lv, diff + )); + } + fs::write(path, out)?; + Ok(()) +} + +fn sanitize_label(label: &str) -> String { + let mut out = String::new(); + for ch in label.chars() { + if ch.is_ascii_alphanumeric() { + out.push(ch.to_ascii_lowercase()); + } else if ch == '_' || ch == '-' { + out.push('_'); + } + } + if out.is_empty() { + "path".to_string() + } else { + out + } +} + +fn write_rspace_contrib_csv( + path: &Path, + k: &DVector, + model_chi: &DVector, + larch_chi: &DVector, + contributions: &[(String, DVector)], +) -> Result<(), Box> { + let transform = reference_transform(); + let model = apply_r_transform(k, model_chi, &transform)?; + let larch = apply_r_transform(k, larch_chi, &transform)?; + if model.r.len() != larch.r.len() || model.chir_mag.len() != larch.chir_mag.len() { + return Err("R-space transform output mismatch".into()); + } + + let mut contrib_r = Vec::with_capacity(contributions.len()); + for (label, chi) in contributions { + let out = apply_r_transform(k, chi, &transform)?; + if out.chir_mag.len() != model.r.len() { + return Err("R-space contribution length mismatch".into()); + } + contrib_r.push((label.clone(), out.chir_mag)); + } + + let mut labels = Vec::with_capacity(contrib_r.len()); + for (idx, (label, _)) in contrib_r.iter().enumerate() { + let clean = sanitize_label(label); + labels.push(format!("{clean}_{idx:02}")); + } + + let mut out = String::from("r,total_model,total_larch,diff"); + for label in &labels { + out.push_str(&format!(",{label}")); + } + out.push('\n'); + + for i in 0..model.r.len() { + out.push_str(&format!( + "{:.15e},{:.15e},{:.15e},{:.15e}", + model.r[i], + model.chir_mag[i], + larch.chir_mag[i], + model.chir_mag[i] - larch.chir_mag[i] + )); + for (_, chir_mag) in &contrib_r { + out.push_str(&format!(",{:.15e}", chir_mag[i])); + } + out.push('\n'); + } + + fs::write(path, out)?; + Ok(()) +} + +fn larch_truth_variables() -> FitVariables { + let mut vars = FitVariables::new(); + vars.insert("amp", FitVariable::new(0.92, false)); + vars.insert("de0", FitVariable::new(1.4, false)); + vars.insert("sig2", FitVariable::new(0.0031, false)); + vars.insert("dr", FitVariable::new(0.011, false)); + vars.insert("amp2", FitVariable::new(0.35, false)); + vars.insert("dr2", FitVariable::new(0.0025, false)); + vars +} + +fn export_path_builder() -> Result<(), Box> { + let base_path = feffpath( + fixture_path("feffcu01.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp") + .set_e0("de0") + .set_deltar("dr"); + let path = base_path.set_sigma2("sig2"); + + let (k, larch) = load_two_column(&fixture_path("feff_path_chi_larch_ref.txt"))?; + let model = path2chi(&path, &larch_truth_variables(), &k)?; + write_comparison_csv( + &output_dir().join("01_path_builder.csv"), + &k, + &model, + &larch, + )?; + write_rspace_comparison_csv( + &output_dir().join("01_path_builder_rspace.csv"), + &k, + &model, + &larch, + )?; + write_rspace_contrib_csv( + &output_dir().join("01_path_builder_rspace_contrib.csv"), + &k, + &model, + &larch, + &[(path.label.clone(), model.clone())], + ) +} + +fn export_multi_path_model() -> Result<(), Box> { + let path1 = feffpath( + fixture_path("feffcu01.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let path2 = feffpath( + fixture_path("feff0002.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp2") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr2"); + + let (k, larch) = load_two_column(&fixture_path("feff_ff2chi_larch_ref.txt"))?; + let out = ff2chi(&[path1, path2], &larch_truth_variables(), &k)?; + let model = out.chi.clone(); + write_comparison_csv( + &output_dir().join("02_multi_path_model.csv"), + &k, + &model, + &larch, + )?; + write_rspace_comparison_csv( + &output_dir().join("02_multi_path_model_rspace.csv"), + &k, + &model, + &larch, + )?; + write_rspace_contrib_csv( + &output_dir().join("02_multi_path_model_rspace_contrib.csv"), + &k, + &model, + &larch, + &out.path_chi, + ) +} + +fn export_single_dataset_fit() -> Result<(), Box> { + let path = feffpath( + fixture_path("feffcu01.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let (k, larch) = load_two_column(&fixture_path("feff_fit_target_larch.txt"))?; + + let result = FeffFit::new() + .data(&k, &larch) + .add_path(path) + .set_inits([("amp", 0.95), ("de0", 0.0), ("sig2", 0.002), ("dr", 0.0)]) + .set_bounds("sig2", 0.0, 0.02) + .krange(2.0, 14.0) + .rrange(1.0, 3.0) + .fit()?; + write_comparison_csv( + &output_dir().join("03_single_dataset_fit.csv"), + &k, + &result.model_chi, + &larch, + )?; + write_rspace_comparison_csv( + &output_dir().join("03_single_dataset_fit_rspace.csv"), + &k, + &result.model_chi, + &larch, + )?; + write_rspace_contrib_csv( + &output_dir().join("03_single_dataset_fit_rspace_contrib.csv"), + &k, + &result.model_chi, + &larch, + &result + .path_contributions + .iter() + .map(|p| (p.label.clone(), p.chi.clone())) + .collect::>(), + ) +} + +fn export_clone_template() -> Result<(), Box> { + let path1 = feffpath( + fixture_path("feffcu01.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let path2 = feffpath( + fixture_path("feff0002.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp2") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr2"); + + let base = FeffFit::new() + .params([ + Param::new("amp", 0.95), + Param::new("de0", 0.0), + Param::new("sig2", 0.002).bounds(0.0, 0.02), + Param::new("dr", 0.0), + Param::new("amp2", 0.2), + Param::new("dr2", 0.0), + ]) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + + let (k1, larch1) = load_two_column(&fixture_path("feff_path_chi_larch_ref.txt"))?; + let (k2, larch2) = load_two_column(&fixture_path("feff_ff2chi_larch_ref.txt"))?; + + let r1 = base + .clone() + .data(&k1, &larch1) + .add_path(path1.clone()) + .fit()?; + let r2 = base + .clone() + .data(&k2, &larch2) + .add_path(path1) + .add_path(path2) + .fit()?; + + write_comparison_csv( + &output_dir().join("04_clone_template_path.csv"), + &k1, + &r1.model_chi, + &larch1, + )?; + write_rspace_comparison_csv( + &output_dir().join("04_clone_template_path_rspace.csv"), + &k1, + &r1.model_chi, + &larch1, + )?; + write_rspace_contrib_csv( + &output_dir().join("04_clone_template_path_rspace_contrib.csv"), + &k1, + &r1.model_chi, + &larch1, + &r1.path_contributions + .iter() + .map(|p| (p.label.clone(), p.chi.clone())) + .collect::>(), + )?; + write_comparison_csv( + &output_dir().join("05_clone_template_ff2chi.csv"), + &k2, + &r2.model_chi, + &larch2, + )?; + write_rspace_comparison_csv( + &output_dir().join("05_clone_template_ff2chi_rspace.csv"), + &k2, + &r2.model_chi, + &larch2, + )?; + write_rspace_contrib_csv( + &output_dir().join("05_clone_template_ff2chi_rspace_contrib.csv"), + &k2, + &r2.model_chi, + &larch2, + &r2.path_contributions + .iter() + .map(|p| (p.label.clone(), p.chi.clone())) + .collect::>(), + ) +} + +fn export_multi_dataset() -> Result<(), Box> { + let ds1_path = feffpath( + fixture_path("feffcu01.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let ds2_path1 = feffpath( + fixture_path("feffcu01.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let ds2_path2 = feffpath( + fixture_path("feff0002.dat") + .to_str() + .ok_or("invalid path")?, + FeffFlavor::Feff85L, + )? + .set_s02("amp2") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr2"); + + let (k1, larch1) = load_two_column(&fixture_path("feff_path_chi_larch_ref.txt"))?; + let (k2, larch2) = load_two_column(&fixture_path("feff_ff2chi_larch_ref.txt"))?; + + let ds1 = FeffFitDataset::new() + .data(&k1, &larch1) + .add_path(ds1_path) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + let ds2 = FeffFitDataset::new() + .data(&k2, &larch2) + .add_path(ds2_path1) + .add_path(ds2_path2) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + + let result = FeffFit::new() + .add_dataset(ds1) + .add_dataset(ds2) + .set_inits([ + ("amp", 0.95), + ("de0", 0.0), + ("sig2", 0.002), + ("dr", 0.0), + ("amp2", 0.2), + ("dr2", 0.0), + ]) + .set_bounds("sig2", 0.0, 0.02) + .fit()?; + + write_comparison_csv( + &output_dir().join("06_multi_dataset_ds1.csv"), + &k1, + &result.datasets[0].model_chi, + &larch1, + )?; + write_rspace_comparison_csv( + &output_dir().join("06_multi_dataset_ds1_rspace.csv"), + &k1, + &result.datasets[0].model_chi, + &larch1, + )?; + write_rspace_contrib_csv( + &output_dir().join("06_multi_dataset_ds1_rspace_contrib.csv"), + &k1, + &result.datasets[0].model_chi, + &larch1, + &result.datasets[0] + .path_contributions + .iter() + .map(|p| (p.label.clone(), p.chi.clone())) + .collect::>(), + )?; + write_comparison_csv( + &output_dir().join("07_multi_dataset_ds2.csv"), + &k2, + &result.datasets[1].model_chi, + &larch2, + )?; + write_rspace_comparison_csv( + &output_dir().join("07_multi_dataset_ds2_rspace.csv"), + &k2, + &result.datasets[1].model_chi, + &larch2, + )?; + write_rspace_contrib_csv( + &output_dir().join("07_multi_dataset_ds2_rspace_contrib.csv"), + &k2, + &result.datasets[1].model_chi, + &larch2, + &result.datasets[1] + .path_contributions + .iter() + .map(|p| (p.label.clone(), p.chi.clone())) + .collect::>(), + ) +} + +fn main() -> Result<(), Box> { + fs::create_dir_all(output_dir())?; + + export_path_builder()?; + export_multi_path_model()?; + export_single_dataset_fit()?; + export_clone_template()?; + export_multi_dataset()?; + + println!( + "Wrote comparison CSV files to {}", + output_dir().canonicalize()?.display() + ); + Ok(()) +} diff --git a/crates/xraytsubaki/src/prelude.rs b/crates/xraytsubaki/src/prelude.rs index 32e6f45..e84e19d 100644 --- a/crates/xraytsubaki/src/prelude.rs +++ b/crates/xraytsubaki/src/prelude.rs @@ -2,6 +2,14 @@ pub use crate::xafs::xasgroup::XASGroup; pub use crate::xafs::xasspectrum::XASSpectrum; pub use crate::xafs::background::{AUTOBKClampScalePolicy, AUTOBKSolver, BackgroundMethod, AUTOBK}; +pub use crate::xafs::fitting::{ + feffit_independent, feffit_joint, feffpath, ff2chi, parse_feff_path_file, path2chi, + resolve_feff_commands, run_feff, run_feff_and_load_paths, DatasetResult, + FeffBatchExecutionStrategy, FeffBatchOptions, FeffDat, FeffExecutionMode, FeffFit, + FeffFitDataset, FeffFitResult, FeffFitTransform, FeffFlavor, FeffModuleCommand, FeffPathModel, + FeffResolvedCommands, FeffRunRequest, FeffRunResult, FitSpace, FitVariable, FitVariables, + FitWarning, Param, PathContribution, PathParamSpec, +}; pub use crate::xafs::io; pub use crate::xafs::lmutils::LMParameters; // pub use crate::xafs::mathutils; diff --git a/crates/xraytsubaki/src/xafs/fitting/builder.rs b/crates/xraytsubaki/src/xafs/fitting/builder.rs new file mode 100644 index 0000000..7b34499 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/builder.rs @@ -0,0 +1,509 @@ +use std::collections::BTreeMap; + +use nalgebra::DVector; + +use super::errors::FittingError; +use super::solver; +use super::types::{ + FeffFitDataset, FeffFitResult, FeffFlavor, FeffPathModel, FitVariable, FitVariables, + FitWarning, Param, PathParamSpec, +}; +use super::variables::try_extract_symbols; +use crate::xafs::xafsutils::FTWindow; + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +enum ParamRole { + S02, + Degen, + Sigma2, + E0, + Ei, + Deltar, + Third, + Fourth, + UntypedExpr, +} + +impl ParamRole { + fn default_value(self) -> f64 { + match self { + Self::S02 | Self::Degen => 1.0, + Self::Sigma2 => 0.003, + Self::E0 | Self::Ei | Self::Deltar | Self::Third | Self::Fourth | Self::UntypedExpr => { + 0.0 + } + } + } + + fn as_str(self) -> &'static str { + match self { + Self::S02 => "s02", + Self::Degen => "degen", + Self::Sigma2 => "sigma2", + Self::E0 => "e0", + Self::Ei => "ei", + Self::Deltar => "deltar", + Self::Third => "third", + Self::Fourth => "fourth", + Self::UntypedExpr => "expr", + } + } +} + +fn path_param_expr(spec: &PathParamSpec) -> Option<&str> { + match spec { + PathParamSpec::Expression(expr) => Some(expr.as_str()), + PathParamSpec::Value(_) => None, + } +} + +#[derive(Debug, Clone)] +pub struct FeffFit { + datasets: Vec, + variables: FitVariables, + flavor: FeffFlavor, + default_dataset: FeffFitDataset, + has_default: bool, +} + +impl Default for FeffFit { + fn default() -> Self { + Self { + datasets: Vec::new(), + variables: FitVariables::new(), + flavor: FeffFlavor::Feff85L, + default_dataset: FeffFitDataset::default(), + has_default: false, + } + } +} + +impl FeffFit { + pub fn new() -> Self { + Self::default() + } + + pub fn data(mut self, k: &DVector, chi: &DVector) -> Self { + self.default_dataset = self.default_dataset.data(k, chi); + self.has_default = true; + self + } + + pub fn epsilon_k(mut self, value: f64) -> Self { + self.default_dataset = self.default_dataset.epsilon_k(value); + self.has_default = true; + self + } + + pub fn add_path(mut self, path: FeffPathModel) -> Self { + self.default_dataset = self.default_dataset.add_path(path); + self.has_default = true; + self + } + + pub fn krange(mut self, kmin: f64, kmax: f64) -> Self { + self.default_dataset = self.default_dataset.krange(kmin, kmax); + self.has_default = true; + self + } + + pub fn rrange(mut self, rmin: f64, rmax: f64) -> Self { + self.default_dataset = self.default_dataset.rrange(rmin, rmax); + self.has_default = true; + self + } + + pub fn kweight(mut self, value: f64) -> Self { + self.default_dataset = self.default_dataset.kweight(value); + self.has_default = true; + self + } + + pub fn dk(mut self, value: f64) -> Self { + self.default_dataset = self.default_dataset.dk(value); + self.has_default = true; + self + } + + pub fn window(mut self, value: FTWindow) -> Self { + self.default_dataset = self.default_dataset.window(value); + self.has_default = true; + self + } + + pub fn rwindow(mut self, value: FTWindow) -> Self { + self.default_dataset = self.default_dataset.rwindow(value); + self.has_default = true; + self + } + + pub fn dr(mut self, value: f64) -> Self { + self.default_dataset = self.default_dataset.dr(value); + self.has_default = true; + self + } + + pub fn add_dataset(mut self, dataset: FeffFitDataset) -> Self { + self.datasets.push(dataset); + self + } + + pub fn set_init(mut self, name: impl Into, value: f64) -> Self { + let name = name.into(); + let entry = self + .variables + .vars + .entry(name) + .or_insert_with(|| FitVariable::new(value, true)); + entry.value = value; + entry.init_value = value; + entry.vary = true; + if entry.expr.is_some() { + entry.expr = None; + } + self + } + + pub fn set_inits(mut self, inits: I) -> Self + where + I: IntoIterator, + S: Into, + { + for (name, value) in inits { + self = self.set_init(name, value); + } + self + } + + pub fn set_bounds(mut self, name: impl Into, min: f64, max: f64) -> Self { + let name = name.into(); + let entry = self + .variables + .vars + .entry(name) + .or_insert_with(|| FitVariable::new(0.0, true)); + entry.min = Some(min); + entry.max = Some(max); + self + } + + pub fn fix(mut self, name: impl Into, value: f64) -> Self { + let name = name.into(); + let entry = self + .variables + .vars + .entry(name) + .or_insert_with(|| FitVariable::new(value, false)); + entry.value = value; + entry.init_value = value; + entry.vary = false; + entry.expr = None; + self + } + + pub fn var_expr(mut self, name: impl Into, expr: impl Into) -> Self { + let name = name.into(); + let expr = expr.into(); + let entry = self + .variables + .vars + .entry(name) + .or_insert_with(|| FitVariable::new(0.0, false)); + entry.expr = Some(expr); + entry.vary = false; + self + } + + pub fn params(mut self, params: I) -> Self + where + I: IntoIterator, + { + for param in params { + self.variables + .vars + .insert(param.name.clone(), param.to_fit_variable()); + } + self + } + + pub fn set_flavor(mut self, flavor: FeffFlavor) -> Self { + self.flavor = flavor; + self + } + + fn collect_default_dataset(&self, datasets: &mut Vec) { + let has_data = !self.default_dataset.k.is_empty() || !self.default_dataset.chi.is_empty(); + let has_paths = !self.default_dataset.paths.is_empty(); + if self.has_default && (has_data || has_paths) { + datasets.push(self.default_dataset.clone()); + } + } + + fn maybe_infer_symbols_for_expr( + expr: &str, + role: ParamRole, + inferred: &mut BTreeMap, + warnings: &mut Vec, + ) -> Result<(), FittingError> { + for symbol in try_extract_symbols(expr)? { + let default_value = role.default_value(); + if let Some((existing_role, existing_default)) = inferred.get(&symbol) { + if (*existing_default - default_value).abs() > f64::EPSILON { + warnings.push(FitWarning { + symbol: symbol.clone(), + inferred_from: existing_role.as_str().to_string(), + default_value: *existing_default, + message: format!( + "conflicting inferred defaults: '{}'={} vs '{}'={}, kept first", + existing_role.as_str(), + existing_default, + role.as_str(), + default_value + ), + }); + } + continue; + } + inferred.insert(symbol, (role, default_value)); + } + Ok(()) + } + + fn auto_discover_variables( + &self, + datasets: &[FeffFitDataset], + vars: &mut FitVariables, + warnings: &mut Vec, + ) -> Result<(), FittingError> { + let mut inferred = BTreeMap::new(); + + for dataset in datasets { + for path in &dataset.paths { + let path_roles = [ + (path_param_expr(&path.s02), ParamRole::S02), + (path_param_expr(&path.degen), ParamRole::Degen), + (path_param_expr(&path.sigma2), ParamRole::Sigma2), + (path_param_expr(&path.e0), ParamRole::E0), + (path_param_expr(&path.ei), ParamRole::Ei), + (path_param_expr(&path.deltar), ParamRole::Deltar), + (path_param_expr(&path.third), ParamRole::Third), + (path_param_expr(&path.fourth), ParamRole::Fourth), + ]; + + for (expr, role) in path_roles { + if let Some(expr) = expr { + Self::maybe_infer_symbols_for_expr(expr, role, &mut inferred, warnings)?; + } + } + } + } + + for (symbol, (role, default_value)) in inferred.iter() { + if vars.vars.contains_key(symbol) { + continue; + } + vars.insert(symbol.clone(), FitVariable::new(*default_value, true)); + warnings.push(FitWarning { + symbol: symbol.clone(), + inferred_from: role.as_str().to_string(), + default_value: *default_value, + message: "auto-created symbol with typed default".to_string(), + }); + } + + let var_exprs = vars + .vars + .iter() + .filter_map(|(name, var)| var.expr.as_ref().map(|expr| (name.clone(), expr.clone()))) + .collect::>(); + for (_name, expr) in var_exprs { + for symbol in try_extract_symbols(&expr)? { + if vars.vars.contains_key(&symbol) { + continue; + } + let default_value = ParamRole::UntypedExpr.default_value(); + vars.insert(symbol.clone(), FitVariable::new(default_value, true)); + warnings.push(FitWarning { + symbol, + inferred_from: ParamRole::UntypedExpr.as_str().to_string(), + default_value, + message: "auto-created symbol with untyped expression default".to_string(), + }); + } + } + + Ok(()) + } + + pub fn fit(&self) -> Result { + let _ = self.flavor; + let mut datasets = self.datasets.clone(); + self.collect_default_dataset(&mut datasets); + if datasets.is_empty() { + return Err(FittingError::InvalidDataset { + reason: "fit requires at least one dataset".to_string(), + }); + } + + let mut vars = self.variables.clone(); + let mut warnings = Vec::new(); + self.auto_discover_variables(&datasets, &mut vars, &mut warnings)?; + + let mut result = solver::feffit_joint(&datasets, &vars)?; + result.warnings.extend(warnings); + Ok(result) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::xafs::fitting::ff2chi; + use crate::xafs::fitting::path_model::feffpath; + use crate::xafs::fitting::types::{FeffFlavor, PathParamSpec}; + use crate::xafs::tests::TOP_DIR; + + #[test] + fn test_auto_discovery_uses_typed_defaults() { + let path = FeffPathModel::default() + .set_s02("amp") + .set_sigma2("sig2") + .set_e0("de0") + .set_deltar("dr"); + let dataset = FeffFitDataset::new() + .data(&DVector::zeros(3), &DVector::zeros(3)) + .add_path(path); + let fit = FeffFit::new().add_dataset(dataset); + + let mut vars = FitVariables::new(); + let mut warnings = Vec::new(); + fit.auto_discover_variables(&fit.datasets, &mut vars, &mut warnings) + .unwrap(); + + assert_eq!(vars.get("amp").unwrap().value, 1.0); + assert_eq!(vars.get("sig2").unwrap().value, 0.003); + assert_eq!(vars.get("de0").unwrap().value, 0.0); + assert_eq!(vars.get("dr").unwrap().value, 0.0); + assert!(!warnings.is_empty()); + } + + #[test] + fn test_auto_discovery_warns_on_conflicting_defaults() { + let path = FeffPathModel::default() + .set_s02("shared") + .set_sigma2("shared"); + let dataset = FeffFitDataset::new() + .data(&DVector::zeros(3), &DVector::zeros(3)) + .add_path(path); + let fit = FeffFit::new().add_dataset(dataset); + + let mut vars = FitVariables::new(); + let mut warnings = Vec::new(); + fit.auto_discover_variables(&fit.datasets, &mut vars, &mut warnings) + .unwrap(); + + assert_eq!(vars.get("shared").unwrap().value, 1.0); + assert!(warnings.iter().any(|w| w.message.contains("conflicting"))); + } + + #[test] + fn test_auto_discovery_untyped_expr_defaults_to_zero() { + let fit = FeffFit::new().var_expr("scale", "missing * 2"); + let mut vars = fit.variables.clone(); + let mut warnings = Vec::new(); + fit.auto_discover_variables(&[], &mut vars, &mut warnings) + .unwrap(); + + assert_eq!(vars.get("missing").unwrap().value, 0.0); + assert!(warnings + .iter() + .any(|w| w.inferred_from == ParamRole::UntypedExpr.as_str())); + } + + #[test] + fn test_builder_single_dataset_fit() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let path = feffpath(pathfile, FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + + let k = DVector::from_iterator(260, (0..260).map(|i| 0.05 * (i as f64 + 1.0))); + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(0.9, false)); + truth.insert("de0", FitVariable::new(1.1, false)); + truth.insert("sig2", FitVariable::new(0.0030, false)); + truth.insert("dr", FitVariable::new(0.01, false)); + + let synthetic = ff2chi(std::slice::from_ref(&path), &truth, &k).unwrap(); + let result = FeffFit::new() + .data(&k, &synthetic.chi) + .add_path(path) + .set_inits([("amp", 0.95), ("de0", 0.0), ("sig2", 0.002), ("dr", 0.0)]) + .set_bounds("sig2", 0.0, 0.02) + .krange(2.0, 14.0) + .rrange(1.0, 3.0) + .fit() + .unwrap(); + + assert!(result.chi_square.is_finite()); + assert_eq!(result.datasets.len(), 1); + assert!(!result.path_contributions.is_empty()); + } + + #[test] + fn test_builder_multi_dataset_fit() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path1 = feffpath(pathfile.clone(), FeffFlavor::Feff85L).unwrap(); + path1.s02 = PathParamSpec::Expression("amp".to_string()); + path1.e0 = PathParamSpec::Expression("de0".to_string()); + path1.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path1.deltar = PathParamSpec::Expression("dr".to_string()); + let path2 = path1.clone().set_sigma2("sig2_2"); + + let k1 = DVector::from_iterator(220, (0..220).map(|i| 0.05 * (i as f64 + 1.0))); + let k2 = DVector::from_iterator(240, (0..240).map(|i| 0.05 * (i as f64 + 1.0))); + + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(0.9, false)); + truth.insert("de0", FitVariable::new(1.2, false)); + truth.insert("sig2", FitVariable::new(0.003, false)); + truth.insert("sig2_2", FitVariable::new(0.004, false)); + truth.insert("dr", FitVariable::new(0.01, false)); + + let chi1 = ff2chi(std::slice::from_ref(&path1), &truth, &k1) + .unwrap() + .chi; + let chi2 = ff2chi(std::slice::from_ref(&path2), &truth, &k2) + .unwrap() + .chi; + let ds1 = FeffFitDataset::new() + .data(&k1, &chi1) + .add_path(path1) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + let ds2 = FeffFitDataset::new() + .data(&k2, &chi2) + .add_path(path2) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + + let result = FeffFit::new() + .add_dataset(ds1) + .add_dataset(ds2) + .set_inits([ + ("amp", 0.95), + ("de0", 0.0), + ("sig2", 0.002), + ("sig2_2", 0.002), + ("dr", 0.0), + ]) + .fit() + .unwrap(); + + assert!(result.chi_square.is_finite()); + assert_eq!(result.datasets.len(), 2); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/errors.rs b/crates/xraytsubaki/src/xafs/fitting/errors.rs new file mode 100644 index 0000000..a6f5df1 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/errors.rs @@ -0,0 +1,77 @@ +use thiserror::Error; + +use super::types::FeffFlavor; + +#[derive(Error, Debug, Clone)] +pub enum FittingError { + #[error("unsupported FEFF flavor for this build: {flavor:?}")] + UnsupportedFeffFlavor { flavor: FeffFlavor }, + + #[error("failed to parse FEFF path file '{path}': {reason}")] + ParseFailed { path: String, reason: String }, + + #[error("invalid FEFF path data: {reason}")] + InvalidFeffData { reason: String }, + + #[error("expression evaluation failed for '{expr}': {reason}")] + ExpressionFailed { expr: String, reason: String }, + + #[error("undefined symbol in expression: {symbol}")] + UndefinedSymbol { symbol: String }, + + #[error("cyclic variable expression dependency detected at: {symbol}")] + CyclicExpression { symbol: String }, + + #[error("invalid fit transform configuration: {reason}")] + InvalidTransform { reason: String }, + + #[error("invalid fit dataset: {reason}")] + InvalidDataset { reason: String }, + + #[error("fitting requires at least one active FEFF path")] + EmptyPaths, + + #[error("fitting requires at least one varying variable")] + NoVaryingVariables, + + #[error("nonlinear solver failed: {reason}")] + SolverFailed { reason: String }, + + #[error("invalid FEFF executable path '{path}': {reason}")] + InvalidExecutablePath { path: String, reason: String }, + + #[error("FEFF workspace path does not exist or is not a directory: '{path}'")] + WorkspaceNotFound { path: String }, + + #[error("FEFF input file was not found: '{path}'")] + FeffInputNotFound { path: String }, + + #[error("required FEFF module executable could not be resolved: {module}")] + ExecutableNotFound { module: String }, + + #[error("failed to spawn FEFF module '{module}' using '{executable}': {reason}")] + ProcessSpawnFailed { + module: String, + executable: String, + reason: String, + }, + + #[error("FEFF module '{module}' exited with non-zero status {code}")] + ProcessFailed { module: String, code: i32 }, + + #[error("FEFF module '{module}' timed out after {timeout_sec}s")] + ProcessTimedOut { module: String, timeout_sec: u64 }, + + #[error("failed to read FEFF module output for '{module}': {reason}")] + OutputReadFailed { module: String, reason: String }, + + #[error("FEFF execution produced no path output files (feffNNNN.dat) in '{workspace}'")] + NoPathOutputs { workspace: String }, + + #[error("I/O failure during {action} for '{path}': {reason}")] + IOFailed { + action: String, + path: String, + reason: String, + }, +} diff --git a/crates/xraytsubaki/src/xafs/fitting/expression.pest b/crates/xraytsubaki/src/xafs/fitting/expression.pest new file mode 100644 index 0000000..e91e95c --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/expression.pest @@ -0,0 +1,22 @@ +WHITESPACE = _{ " " | "\t" | "\r" | "\n" } + +expression = { sum } +sum = { product ~ (add_op ~ product)* } +add_op = { "+" | "-" } + +product = { power ~ (mul_op ~ power)* } +mul_op = { "*" | "/" } + +power = { unary ~ (pow_op ~ power)? } +pow_op = { "^" } + +unary = { sign* ~ primary } +sign = { "+" | "-" } + +primary = { function_call | constant | identifier | number | "(" ~ expression ~ ")" } +function_call = { identifier ~ "(" ~ expr_list? ~ ")" } +expr_list = { expression ~ ("," ~ expression)* } + +constant = { "pi" | "e" } +identifier = @{ (ASCII_ALPHA | "_") ~ (ASCII_ALPHANUMERIC | "_")* } +number = @{ (ASCII_DIGIT+ ~ ("." ~ ASCII_DIGIT*)? | "." ~ ASCII_DIGIT+) ~ (("e" | "E") ~ ("+" | "-")? ~ ASCII_DIGIT+)? } diff --git a/crates/xraytsubaki/src/xafs/fitting/expression.rs b/crates/xraytsubaki/src/xafs/fitting/expression.rs new file mode 100644 index 0000000..fa25e70 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/expression.rs @@ -0,0 +1,405 @@ +use std::collections::{HashMap, HashSet}; +use std::sync::{Mutex, OnceLock}; + +use pest::iterators::Pair; +use pest::Parser; +use pest_derive::Parser; + +use super::errors::FittingError; + +#[derive(Parser)] +#[grammar = "xafs/fitting/expression.pest"] +struct ExprGrammar; + +#[derive(Debug, Clone)] +enum UnaryOp { + Neg, +} + +#[derive(Debug, Clone)] +enum BinaryOp { + Add, + Sub, + Mul, + Div, + Pow, +} + +#[derive(Debug, Clone)] +enum Expr { + Number(f64), + Symbol(String), + Unary { + op: UnaryOp, + value: Box, + }, + Binary { + op: BinaryOp, + lhs: Box, + rhs: Box, + }, + Call { + name: String, + args: Vec, + }, +} + +static CACHE: OnceLock>> = OnceLock::new(); + +fn parse_error(expr: &str, reason: impl Into) -> FittingError { + FittingError::ExpressionFailed { + expr: expr.to_string(), + reason: reason.into(), + } +} + +fn parse_expr(expr: &str) -> Result { + let mut pairs = ExprGrammar::parse(Rule::expression, expr) + .map_err(|err| parse_error(expr, format!("parse error: {err}")))?; + let pair = pairs + .next() + .ok_or_else(|| parse_error(expr, "empty expression"))?; + build_expr(expr, pair) +} + +fn cache() -> &'static Mutex> { + CACHE.get_or_init(|| Mutex::new(HashMap::new())) +} + +fn parse_cached(expr: &str) -> Result { + let cached = cache() + .lock() + .map_err(|_| parse_error(expr, "expression cache lock poisoned"))? + .get(expr) + .cloned(); + if let Some(ast) = cached { + return Ok(ast); + } + + let parsed = parse_expr(expr)?; + cache() + .lock() + .map_err(|_| parse_error(expr, "expression cache lock poisoned"))? + .insert(expr.to_string(), parsed.clone()); + Ok(parsed) +} + +fn build_expr(source: &str, pair: Pair) -> Result { + match pair.as_rule() { + Rule::expression => { + let inner = pair + .into_inner() + .next() + .ok_or_else(|| parse_error(source, "missing expression node"))?; + build_expr(source, inner) + } + Rule::sum => build_left_assoc(source, pair, BinaryOp::Add, BinaryOp::Sub), + Rule::product => build_left_assoc(source, pair, BinaryOp::Mul, BinaryOp::Div), + Rule::power => { + let mut inner = pair.into_inner(); + let lhs = inner + .next() + .ok_or_else(|| parse_error(source, "missing power lhs"))?; + let lhs_expr = build_expr(source, lhs)?; + if let Some(op) = inner.next() { + if op.as_rule() != Rule::pow_op { + return Err(parse_error(source, "invalid power operator")); + } + let rhs = inner + .next() + .ok_or_else(|| parse_error(source, "missing power rhs"))?; + let rhs_expr = build_expr(source, rhs)?; + Ok(Expr::Binary { + op: BinaryOp::Pow, + lhs: Box::new(lhs_expr), + rhs: Box::new(rhs_expr), + }) + } else { + Ok(lhs_expr) + } + } + Rule::unary => { + let mut sign_flip = false; + let mut primary = None; + for item in pair.into_inner() { + if item.as_rule() == Rule::sign { + if item.as_str() == "-" { + sign_flip = !sign_flip; + } + } else { + primary = Some(item); + } + } + let primary = + primary.ok_or_else(|| parse_error(source, "missing primary after unary sign"))?; + let mut expr = build_expr(source, primary)?; + if sign_flip { + expr = Expr::Unary { + op: UnaryOp::Neg, + value: Box::new(expr), + }; + } + Ok(expr) + } + Rule::primary => { + let inner = pair + .into_inner() + .next() + .ok_or_else(|| parse_error(source, "missing primary expression"))?; + build_expr(source, inner) + } + Rule::function_call => { + let mut inner = pair.into_inner(); + let name = inner + .next() + .ok_or_else(|| parse_error(source, "missing function name"))? + .as_str() + .to_string(); + let args = if let Some(arglist) = inner.next() { + if arglist.as_rule() != Rule::expr_list { + return Err(parse_error(source, "invalid function arglist")); + } + arglist + .into_inner() + .filter(|arg| arg.as_rule() == Rule::expression) + .map(|arg| build_expr(source, arg)) + .collect::, _>>()? + } else { + Vec::new() + }; + Ok(Expr::Call { name, args }) + } + Rule::constant => match pair.as_str() { + "pi" => Ok(Expr::Number(std::f64::consts::PI)), + "e" => Ok(Expr::Number(std::f64::consts::E)), + other => Err(parse_error( + source, + format!("unsupported constant '{other}'"), + )), + }, + Rule::identifier => Ok(Expr::Symbol(pair.as_str().to_string())), + Rule::number => { + let parsed = pair.as_str().parse::().map_err(|_| { + parse_error( + source, + format!("invalid numeric literal '{}'", pair.as_str()), + ) + })?; + Ok(Expr::Number(parsed)) + } + _ => Err(parse_error( + source, + format!("unexpected parse rule {:?}", pair.as_rule()), + )), + } +} + +fn build_left_assoc( + source: &str, + pair: Pair, + add_variant: BinaryOp, + sub_variant: BinaryOp, +) -> Result { + let mut inner = pair.into_inner(); + let first = inner + .next() + .ok_or_else(|| parse_error(source, "missing lhs expression"))?; + let mut expr = build_expr(source, first)?; + + while let Some(op) = inner.next() { + let rhs = inner + .next() + .ok_or_else(|| parse_error(source, "missing rhs expression"))?; + let op = match op.as_str() { + "+" | "*" => add_variant.clone(), + "-" | "/" => sub_variant.clone(), + other => { + return Err(parse_error( + source, + format!("unsupported binary operator '{other}'"), + )) + } + }; + expr = Expr::Binary { + op, + lhs: Box::new(expr), + rhs: Box::new(build_expr(source, rhs)?), + }; + } + + Ok(expr) +} + +fn eval_call(expr: &str, name: &str, args: &[f64]) -> Result { + let one_arg = |f: fn(f64) -> f64| -> Result { + if args.len() != 1 { + return Err(parse_error( + expr, + format!("function '{name}' expects 1 argument, got {}", args.len()), + )); + } + Ok(f(args[0])) + }; + let two_arg = |f: fn(f64, f64) -> f64| -> Result { + if args.len() != 2 { + return Err(parse_error( + expr, + format!("function '{name}' expects 2 arguments, got {}", args.len()), + )); + } + Ok(f(args[0], args[1])) + }; + + match name { + "abs" => one_arg(f64::abs), + "exp" => one_arg(f64::exp), + "log" => one_arg(f64::ln), + "log10" => one_arg(f64::log10), + "sqrt" => one_arg(f64::sqrt), + "sin" => one_arg(f64::sin), + "cos" => one_arg(f64::cos), + "tan" => one_arg(f64::tan), + "asin" => one_arg(f64::asin), + "acos" => one_arg(f64::acos), + "atan" => one_arg(f64::atan), + "sinh" => one_arg(f64::sinh), + "cosh" => one_arg(f64::cosh), + "tanh" => one_arg(f64::tanh), + "ceil" => one_arg(f64::ceil), + "floor" => one_arg(f64::floor), + "round" => one_arg(f64::round), + "min" => two_arg(f64::min), + "max" => two_arg(f64::max), + "atan2" => two_arg(f64::atan2), + _ => Err(parse_error(expr, format!("unsupported function '{name}'"))), + } +} + +fn eval_ast(expr: &str, ast: &Expr, resolver: &mut F) -> Result +where + F: FnMut(&str) -> Result, +{ + match ast { + Expr::Number(v) => Ok(*v), + Expr::Symbol(name) => resolver(name).map_err(|err| match err { + FittingError::UndefinedSymbol { .. } | FittingError::CyclicExpression { .. } => err, + other => parse_error(expr, other.to_string()), + }), + Expr::Unary { op, value } => { + let v = eval_ast(expr, value, resolver)?; + match op { + UnaryOp::Neg => Ok(-v), + } + } + Expr::Binary { op, lhs, rhs } => { + let l = eval_ast(expr, lhs, resolver)?; + let r = eval_ast(expr, rhs, resolver)?; + match op { + BinaryOp::Add => Ok(l + r), + BinaryOp::Sub => Ok(l - r), + BinaryOp::Mul => Ok(l * r), + BinaryOp::Div => { + if r.abs() < f64::EPSILON { + return Err(parse_error(expr, "division by zero")); + } + Ok(l / r) + } + BinaryOp::Pow => Ok(l.powf(r)), + } + } + Expr::Call { name, args } => { + let evaluated = args + .iter() + .map(|arg| eval_ast(expr, arg, resolver)) + .collect::, _>>()?; + eval_call(expr, name, &evaluated) + } + } +} + +pub fn eval_expression_with(expr: &str, mut resolver: F) -> Result +where + F: FnMut(&str) -> Result, +{ + let ast = parse_cached(expr)?; + let value = eval_ast(expr, &ast, &mut resolver)?; + if !value.is_finite() { + return Err(parse_error(expr, "expression produced non-finite value")); + } + Ok(value) +} + +fn collect_symbols(ast: &Expr, out: &mut Vec, seen: &mut HashSet) { + match ast { + Expr::Number(_) => {} + Expr::Symbol(symbol) => { + if symbol == "reff" { + return; + } + if seen.insert(symbol.clone()) { + out.push(symbol.clone()); + } + } + Expr::Unary { value, .. } => collect_symbols(value, out, seen), + Expr::Binary { lhs, rhs, .. } => { + collect_symbols(lhs, out, seen); + collect_symbols(rhs, out, seen); + } + Expr::Call { args, .. } => { + for arg in args { + collect_symbols(arg, out, seen); + } + } + } +} + +pub fn try_extract_symbols(expr: &str) -> Result, FittingError> { + let ast = parse_cached(expr)?; + let mut out = Vec::new(); + let mut seen = HashSet::new(); + collect_symbols(&ast, &mut out, &mut seen); + Ok(out) +} + +pub fn extract_symbols(expr: &str) -> Vec { + try_extract_symbols(expr).unwrap_or_default() +} + +#[cfg(test)] +mod tests { + use super::*; + use std::collections::BTreeMap; + + #[test] + fn test_eval_expression_functions_and_constants() { + let symbols = BTreeMap::::new(); + let value = eval_expression_with("max(2, sqrt(4)) + sin(pi/2) + log(e)", |name| { + symbols + .get(name) + .copied() + .ok_or_else(|| FittingError::UndefinedSymbol { + symbol: name.to_string(), + }) + }) + .unwrap(); + assert!((value - 4.0).abs() < 1.0e-12); + } + + #[test] + fn test_eval_expression_right_associative_power() { + let value = eval_expression_with("2^3^2", |_| Ok(0.0)).unwrap(); + assert!((value - 512.0).abs() < 1.0e-12); + } + + #[test] + fn test_eval_expression_unknown_function() { + let err = eval_expression_with("unknown(2.0)", |_| Ok(0.0)).unwrap_err(); + assert!(matches!(err, FittingError::ExpressionFailed { .. })); + } + + #[test] + fn test_extract_symbols_excludes_locals_and_constants() { + let symbols = try_extract_symbols("amp * sqrt(reff) + log(e) + s02").unwrap(); + assert_eq!(symbols, vec!["amp".to_string(), "s02".to_string()]); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/feffdat.rs b/crates/xraytsubaki/src/xafs/fitting/feffdat.rs new file mode 100644 index 0000000..7903a79 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/feffdat.rs @@ -0,0 +1,316 @@ +use std::fs; +use std::path::Path; + +use nalgebra::DVector; + +use super::errors::FittingError; +use super::types::{FeffDat, FeffFlavor}; + +fn split_at_char_boundary_prefix(line: &str, byte_limit: usize) -> (&str, &str) { + if byte_limit >= line.len() { + return (line, ""); + } + + let split_index = line + .char_indices() + .map(|(index, _)| index) + .take_while(|index| *index <= byte_limit) + .last() + .unwrap_or(0); + line.split_at(split_index) +} + +pub fn parse_feff_path_file>( + path: P, + flavor: FeffFlavor, +) -> Result { + match flavor { + FeffFlavor::Feff85L => parse_feff85l_dat(path.as_ref()), + FeffFlavor::Feff10 => Err(FittingError::UnsupportedFeffFlavor { + flavor: FeffFlavor::Feff10, + }), + } +} + +fn parse_feff85l_dat(path: &Path) -> Result { + let content = fs::read_to_string(path).map_err(|error| FittingError::ParseFailed { + path: path.display().to_string(), + reason: error.to_string(), + })?; + + enum Mode { + Header, + Path, + Arrays, + } + + let mut mode = Mode::Header; + let mut title: Option = None; + let mut version = String::new(); + let mut shell: Option = None; + let mut absorber: Option = None; + + let mut nleg: Option = None; + let mut degen: Option = None; + let mut reff: Option = None; + let mut geometry: Vec = Vec::new(); + + let mut cols: Vec<[f64; 7]> = Vec::new(); + + for (line_number, raw_line) in content.lines().enumerate() { + let mut line = raw_line.trim(); + if line.starts_with('#') { + line = line.trim_start_matches('#').trim(); + } + if line.is_empty() { + continue; + } + + if title.is_none() { + // FEFF files traditionally contain title/version in line 1. + if line.len() > 64 { + let (title_part, version_part) = split_at_char_boundary_prefix(line, 64); + title = Some(title_part.trim().to_string()); + version = version_part.trim().to_string(); + } else { + title = Some(line.to_string()); + } + continue; + } + + if line.starts_with('k') && line.contains("real[p]@#") { + mode = Mode::Arrays; + continue; + } + + let has_path_separator = line + .char_indices() + .nth(2) + .map(|(index, _)| line[index..].contains("----")) + .unwrap_or(false); + if line.len() > 8 && has_path_separator { + mode = Mode::Path; + continue; + } + + match mode { + Mode::Header => { + if line.starts_with("Abs") && line.contains("shell") { + let words: Vec<&str> = line.split_whitespace().collect(); + if let Some(last) = words.last() { + shell = Some((*last).to_string()); + } + if words.len() >= 2 { + absorber = Some(words[0].to_string()); + } + } + } + Mode::Path => { + let words: Vec<&str> = line.split_whitespace().collect(); + if words.is_empty() { + continue; + } + + if nleg.is_none() { + if words.len() < 5 { + return Err(FittingError::ParseFailed { + path: path.display().to_string(), + reason: format!( + "line {}: expected at least 5 numeric values in path header", + line_number + 1 + ), + }); + } + let parsed = words + .iter() + .take(5) + .map(|item| { + item.parse::().map_err(|_| FittingError::ParseFailed { + path: path.display().to_string(), + reason: format!( + "line {}: invalid path header numeric value '{}'", + line_number + 1, + item + ), + }) + }) + .collect::, _>>()?; + + nleg = Some(parsed[0] as usize); + degen = Some(parsed[1]); + reff = Some(parsed[2]); + } else { + let label = words + .get(5) + .map(|value| (*value).to_string()) + .unwrap_or_else(|| format!("atom_{}", geometry.len())); + geometry.push(label); + } + } + Mode::Arrays => { + let words: Vec<&str> = line.split_whitespace().collect(); + if words.len() != 7 { + continue; + } + let values = words + .iter() + .map(|item| { + item.parse::().map_err(|_| FittingError::ParseFailed { + path: path.display().to_string(), + reason: format!( + "line {}: expected 7 floating values for array row", + line_number + 1 + ), + }) + }) + .collect::, _>>()?; + + let row: [f64; 7] = values.try_into().map_err(|_| FittingError::ParseFailed { + path: path.display().to_string(), + reason: format!( + "line {}: failed to convert parsed row to 7-column array", + line_number + 1 + ), + })?; + + if row.iter().any(|value| !value.is_finite()) { + return Err(FittingError::InvalidFeffData { + reason: format!("line {}: non-finite FEFF array value", line_number + 1), + }); + } + + cols.push(row); + } + } + } + + if cols.len() < 3 { + return Err(FittingError::InvalidFeffData { + reason: "FEFF array section must contain at least 3 rows".to_string(), + }); + } + + let nleg = nleg.ok_or_else(|| FittingError::InvalidFeffData { + reason: "missing path header (nleg/degen/reff)".to_string(), + })?; + let degen = degen.ok_or_else(|| FittingError::InvalidFeffData { + reason: "missing path degeneracy".to_string(), + })?; + let reff = reff.ok_or_else(|| FittingError::InvalidFeffData { + reason: "missing path reff".to_string(), + })?; + + if reff <= 0.0 { + return Err(FittingError::InvalidFeffData { + reason: format!("reff must be positive, got {reff}"), + }); + } + + let k = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[0])); + for index in 1..k.len() { + if k[index] < k[index - 1] { + return Err(FittingError::InvalidFeffData { + reason: format!("k grid must be monotonic: k[{index}] < k[{}]", index - 1), + }); + } + } + + let real_phc = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[1])); + let mag_feff = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[2])); + let pha_feff = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[3])); + let red_fact = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[4])); + let lam = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[5])); + let rep = DVector::from_iterator(cols.len(), cols.iter().map(|row| row[6])); + + let pha = &real_phc + &pha_feff; + let amp = mag_feff.component_mul(&red_fact); + + Ok(FeffDat { + filename: path.display().to_string(), + title: title.unwrap_or_default(), + version, + absorber, + shell, + reff, + degen, + nleg, + k, + real_phc, + mag_feff, + pha_feff, + red_fact, + lam, + rep, + pha, + amp, + geometry, + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::xafs::tests::TOP_DIR; + + #[test] + fn test_parse_feff85l_file_success() { + let path = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let parsed = parse_feff_path_file(path, FeffFlavor::Feff85L).unwrap(); + + assert!(parsed.reff > 0.0); + assert!(parsed.degen > 0.0); + assert!(parsed.nleg >= 2); + assert_eq!(parsed.k.len(), parsed.pha.len()); + assert!(parsed.k.iter().all(|value| value.is_finite())); + } + + #[test] + fn test_parse_feff10_reports_not_supported() { + let path = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let err = parse_feff_path_file(path, FeffFlavor::Feff10).unwrap_err(); + + assert!(matches!(err, FittingError::UnsupportedFeffFlavor { .. })); + } + + #[test] + fn test_parse_rejects_invalid_array_rows() { + let unique = format!( + "xfeff-invalid-{}-{}.dat", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ); + let tmp = std::env::temp_dir().join(unique); + let invalid = "Title\n# comment\n ----\n 2 12.0 2.5 1.0 0.0\nk real[p]@#\n0.0 1.0 2.0\n"; + fs::write(&tmp, invalid).unwrap(); + + let err = parse_feff_path_file(&tmp, FeffFlavor::Feff85L).unwrap_err(); + let _ = fs::remove_file(tmp); + assert!(matches!(err, FittingError::InvalidFeffData { .. })); + } + + #[test] + fn test_parse_multibyte_title_and_path_separator_without_panic() { + let unique = format!( + "xfeff-multibyte-{}-{}.dat", + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ); + let tmp = std::env::temp_dir().join(unique); + let title = format!("{} version", "あ".repeat(30)); + let content = format!( + "{title}\nあい---- path\n2 12.0 2.5 1.0 0.0\nk real[p]@#\n0.0 1.0 1.0 1.0 1.0 1.0 1.0\n1.0 1.0 1.0 1.0 1.0 1.0 1.0\n2.0 1.0 1.0 1.0 1.0 1.0 1.0\n" + ); + fs::write(&tmp, content).unwrap(); + + let parsed = parse_feff_path_file(&tmp, FeffFlavor::Feff85L).unwrap(); + let _ = fs::remove_file(tmp); + assert_eq!(parsed.k.len(), 3); + assert_eq!(parsed.nleg, 2); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/mod.rs b/crates/xraytsubaki/src/xafs/fitting/mod.rs new file mode 100644 index 0000000..9342391 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/mod.rs @@ -0,0 +1,75 @@ +pub mod builder; +pub mod errors; +pub mod expression; +pub mod feffdat; +pub mod path_model; +pub mod runner; +pub mod solver; +pub mod transform; +pub mod types; +pub mod variables; + +use nalgebra::DVector; + +pub use builder::FeffFit; +pub use errors::FittingError; +pub use path_model::FF2ChiOutput; +pub use types::{ + DatasetResult, FeffBatchExecutionStrategy, FeffBatchOptions, FeffDat, FeffExecutionMode, + FeffFitDataset, FeffFitResult, FeffFitTransform, FeffFlavor, FeffModuleCommand, FeffPathModel, + FeffResolvedCommands, FeffRunRequest, FeffRunResult, FitSpace, FitVariable, FitVariables, + FitWarning, Param, PathContribution, PathParamSpec, +}; + +use crate::xafs::{Result, XAFSError}; + +pub fn parse_feff_path_file(path: &str, flavor: FeffFlavor) -> Result { + feffdat::parse_feff_path_file(path, flavor).map_err(XAFSError::from) +} + +pub fn feffpath(path: &str, flavor: FeffFlavor) -> Result { + path_model::feffpath(path, flavor).map_err(XAFSError::from) +} + +pub fn path2chi( + path: &FeffPathModel, + vars: &FitVariables, + k: &DVector, +) -> Result> { + path_model::path2chi(path, vars, k).map_err(XAFSError::from) +} + +pub fn ff2chi( + paths: &[FeffPathModel], + vars: &FitVariables, + k: &DVector, +) -> Result { + path_model::ff2chi(paths, vars, k).map_err(XAFSError::from) +} + +pub fn feffit_joint(datasets: &[FeffFitDataset], vars: &FitVariables) -> Result { + solver::feffit_joint(datasets, vars).map_err(XAFSError::from) +} + +pub fn feffit_independent( + datasets: &[FeffFitDataset], + vars: &FitVariables, + options: &FeffBatchOptions, +) -> Vec> { + solver::feffit_independent(datasets, vars, options) +} + +pub fn resolve_feff_commands(request: &FeffRunRequest) -> Result { + runner::resolve_feff_commands(request).map_err(XAFSError::from) +} + +pub fn run_feff(request: &FeffRunRequest) -> Result { + runner::run_feff(request).map_err(XAFSError::from) +} + +pub fn run_feff_and_load_paths( + request: &FeffRunRequest, + flavor: FeffFlavor, +) -> Result> { + runner::run_feff_and_load_paths(request, flavor).map_err(XAFSError::from) +} diff --git a/crates/xraytsubaki/src/xafs/fitting/path_model.rs b/crates/xraytsubaki/src/xafs/fitting/path_model.rs new file mode 100644 index 0000000..78bc52e --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/path_model.rs @@ -0,0 +1,397 @@ +use std::collections::BTreeMap; +use std::path::Path; + +use nalgebra::DVector; +use num_complex::Complex64; + +use crate::xafs::xafsutils::constants::ETOK; + +use super::errors::FittingError; +use super::feffdat::parse_feff_path_file; +use super::types::{FeffFlavor, FeffPathModel, FitVariables}; +use super::variables::resolve_path_param; + +const SMALL_Q: f64 = 1.0e-7; + +#[derive(Debug, Clone)] +pub struct FF2ChiOutput { + pub chi: DVector, + pub path_chi: Vec<(String, DVector)>, +} + +#[derive(Debug, Clone, Copy)] +pub(crate) struct PathParams { + degen: f64, + s02: f64, + e0: f64, + ei: f64, + deltar: f64, + sigma2: f64, + third: f64, + fourth: f64, +} + +pub fn feffpath>( + path: P, + flavor: FeffFlavor, +) -> Result { + let parsed = parse_feff_path_file(path.as_ref(), flavor)?; + let label = path + .as_ref() + .file_name() + .map(|s| s.to_string_lossy().to_string()) + .unwrap_or_else(|| "path".to_string()); + Ok(FeffPathModel::from_feffdat(label, parsed)) +} + +pub fn path2chi( + path: &FeffPathModel, + vars: &FitVariables, + k: &DVector, +) -> Result, FittingError> { + let globals = vars.resolve_values()?; + let params = resolve_params(path, &globals)?; + let (_cchi, chi) = calc_path_chi(path, ¶ms, k)?; + Ok(chi) +} + +pub fn ff2chi( + paths: &[FeffPathModel], + vars: &FitVariables, + k: &DVector, +) -> Result { + if paths.is_empty() { + return Err(FittingError::EmptyPaths); + } + + let globals = vars.resolve_values()?; + let mut total = DVector::zeros(k.len()); + let mut path_chi = Vec::with_capacity(paths.len()); + + for path in paths.iter().filter(|path| path.use_path) { + let params = resolve_params(path, &globals)?; + let (_cchi, chi) = calc_path_chi(path, ¶ms, k)?; + total += χ + path_chi.push((path.label.clone(), chi)); + } + + if path_chi.is_empty() { + return Err(FittingError::EmptyPaths); + } + + Ok(FF2ChiOutput { + chi: total, + path_chi, + }) +} + +pub(crate) fn calc_path_chi( + path: &FeffPathModel, + params: &PathParams, + k: &DVector, +) -> Result<(Vec, DVector), FittingError> { + if path.feff.reff < 0.05 { + return Err(FittingError::InvalidFeffData { + reason: format!("path '{}' has invalid reff {}", path.label, path.feff.reff), + }); + } + if k.len() < 3 { + return Err(FittingError::InvalidDataset { + reason: "k grid must contain at least 3 points".to_string(), + }); + } + if let Some(index) = k.iter().position(|kv| !kv.is_finite()) { + return Err(FittingError::InvalidDataset { + reason: format!("k grid contains non-finite value at index {index}"), + }); + } + + let reff = path.feff.reff; + let q = k.map(|kv| { + let energy = kv * kv - params.e0 * ETOK; + let signed_q = energy.signum() * energy.abs().sqrt(); + if signed_q.abs() < SMALL_Q { + if signed_q.is_sign_negative() { + -SMALL_Q + } else { + SMALL_Q + } + } else { + signed_q + } + }); + + let pha = interp_linear_clamped(&path.feff.k, &path.feff.pha, &q)?; + let amp = interp_linear_clamped(&path.feff.k, &path.feff.amp, &q)?; + let rep = interp_linear_clamped(&path.feff.k, &path.feff.rep, &q)?; + let lam = interp_linear_clamped(&path.feff.k, &path.feff.lam, &q)?; + + let mut cchi: Vec = Vec::with_capacity(k.len()); + for i in 0..k.len() { + let inv_lam = if lam[i].abs() < SMALL_Q { + 1.0 / SMALL_Q + } else { + 1.0 / lam[i] + }; + + let pp = Complex64::new(rep[i], inv_lam).powi(2) + Complex64::new(0.0, params.ei * ETOK); + let p = pp.sqrt(); + + let sigma_term = params.sigma2 - pp * (params.fourth / 3.0); + let delta_term = params.deltar - 2.0 * params.sigma2 / reff - 2.0 * pp * params.third / 3.0; + let phase_inner = Complex64::new(2.0 * q[i] * reff + pha[i], 0.0) + 2.0 * p * delta_term; + + let exponent = Complex64::new(-2.0 * reff * p.im, 0.0) - 2.0 * pp * sigma_term + + Complex64::new(0.0, 1.0) * phase_inner; + + let denom_q = if q[i].abs() < SMALL_Q { SMALL_Q } else { q[i] }; + let denom_r = (reff + params.deltar).powi(2).max(SMALL_Q); + + let scale = params.degen * params.s02 * amp[i] / (denom_q * denom_r); + cchi.push(scale * exponent.exp()); + } + + if cchi.len() >= 3 { + cchi[0] = 2.0 * cchi[1] - cchi[2]; + } + + let chi = DVector::from_iterator(cchi.len(), cchi.iter().map(|value| value.im)); + Ok((cchi, chi)) +} + +pub(crate) fn resolve_params( + path: &FeffPathModel, + globals: &BTreeMap, +) -> Result { + let mut locals = BTreeMap::new(); + locals.insert("reff".to_string(), path.feff.reff); + + Ok(PathParams { + degen: resolve_path_param(&path.degen, path.feff.degen, globals, &locals)?, + s02: resolve_path_param(&path.s02, 1.0, globals, &locals)?, + e0: resolve_path_param(&path.e0, 0.0, globals, &locals)?, + ei: resolve_path_param(&path.ei, 0.0, globals, &locals)?, + deltar: resolve_path_param(&path.deltar, 0.0, globals, &locals)?, + sigma2: resolve_path_param(&path.sigma2, 0.0, globals, &locals)?, + third: resolve_path_param(&path.third, 0.0, globals, &locals)?, + fourth: resolve_path_param(&path.fourth, 0.0, globals, &locals)?, + }) +} + +fn interp_linear_clamped( + xin: &DVector, + yin: &DVector, + xout: &DVector, +) -> Result, FittingError> { + if xin.len() != yin.len() || xin.len() < 2 { + return Err(FittingError::InvalidFeffData { + reason: "interpolation requires at least 2 FEFF grid points".to_string(), + }); + } + if let Some(index) = xin.iter().position(|value| !value.is_finite()) { + return Err(FittingError::InvalidFeffData { + reason: format!("FEFF k grid contains non-finite value at index {index}"), + }); + } + if let Some(index) = yin.iter().position(|value| !value.is_finite()) { + return Err(FittingError::InvalidFeffData { + reason: format!("FEFF data contains non-finite value at index {index}"), + }); + } + if let Some(index) = xout.iter().position(|value| !value.is_finite()) { + return Err(FittingError::InvalidDataset { + reason: format!("interpolation target grid contains non-finite value at index {index}"), + }); + } + + for i in 1..xin.len() { + if xin[i] < xin[i - 1] { + return Err(FittingError::InvalidFeffData { + reason: "FEFF k grid must be monotonic for interpolation".to_string(), + }); + } + } + + let mut out = DVector::zeros(xout.len()); + let xs = xin.as_slice(); + let ys = yin.as_slice(); + + for (i, &x) in xout.iter().enumerate() { + if x <= xs[0] { + out[i] = ys[0]; + continue; + } + if x >= xs[xs.len() - 1] { + out[i] = ys[ys.len() - 1]; + continue; + } + + let idx = match xs.binary_search_by(|probe| probe.total_cmp(&x)) { + Ok(found) => found, + Err(insert) => insert, + }; + let hi = idx; + let lo = hi.saturating_sub(1); + + let x0 = xs[lo]; + let x1 = xs[hi]; + let y0 = ys[lo]; + let y1 = ys[hi]; + + let t = if (x1 - x0).abs() < f64::EPSILON { + 0.0 + } else { + (x - x0) / (x1 - x0) + }; + out[i] = y0 + t * (y1 - y0); + } + + Ok(out) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::xafs::fitting::types::{FeffFlavor, PathParamSpec}; + use crate::xafs::tests::{PARAM_LOADTXT, TOP_DIR}; + use approx::assert_abs_diff_eq; + use data_reader::reader::load_txt_f64; + + #[test] + fn test_path2chi_returns_finite_values() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path = feffpath(pathfile, FeffFlavor::Feff85L).unwrap(); + path.s02 = PathParamSpec::Expression("amp".to_string()); + path.e0 = PathParamSpec::Expression("de0".to_string()); + path.sigma2 = PathParamSpec::Expression("sig2".to_string()); + + let mut vars = FitVariables::new(); + vars.insert("amp", super::super::types::FitVariable::new(0.95, true)); + vars.insert("de0", super::super::types::FitVariable::new(1.5, true)); + vars.insert("sig2", super::super::types::FitVariable::new(0.003, true)); + + let k = DVector::from_iterator(240, (0..240).map(|i| 0.05 * (i as f64 + 1.0))); + let chi = path2chi(&path, &vars, &k).unwrap(); + + assert_eq!(chi.len(), k.len()); + assert!(chi.iter().all(|value| value.is_finite())); + } + + #[test] + fn test_path2chi_rejects_non_finite_k_grid() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let path = feffpath(pathfile, FeffFlavor::Feff85L).unwrap(); + let vars = FitVariables::new(); + + let mut k = DVector::from_iterator(240, (0..240).map(|i| 0.05 * (i as f64 + 1.0))); + k[10] = f64::NAN; + + let err = path2chi(&path, &vars, &k).unwrap_err(); + assert!(matches!(err, FittingError::InvalidDataset { .. })); + } + + #[test] + fn test_ff2chi_combines_multiple_paths() { + let pathfile1 = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let pathfile2 = format!("{TOP_DIR}/tests/testfiles/feff0002.dat"); + + let path1 = feffpath(pathfile1, FeffFlavor::Feff85L).unwrap(); + let path2 = feffpath(pathfile2, FeffFlavor::Feff85L).unwrap(); + + let vars = FitVariables::new(); + let k = DVector::from_iterator(200, (0..200).map(|i| 0.05 * (i as f64 + 1.0))); + + let out = ff2chi(&[path1, path2], &vars, &k).unwrap(); + assert_eq!(out.chi.len(), k.len()); + assert_eq!(out.path_chi.len(), 2); + } + + #[test] + fn test_path2chi_matches_larch_reference_within_tolerance() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let reference_path = format!("{TOP_DIR}/tests/testfiles/feff_path_chi_larch_ref.txt"); + + let mut path = feffpath(pathfile, FeffFlavor::Feff85L).unwrap(); + path.s02 = PathParamSpec::Expression("amp".to_string()); + path.e0 = PathParamSpec::Expression("de0".to_string()); + path.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path.deltar = PathParamSpec::Expression("dr".to_string()); + + let mut vars = FitVariables::new(); + vars.insert("amp", super::super::types::FitVariable::new(0.92, false)); + vars.insert("de0", super::super::types::FitVariable::new(1.4, false)); + vars.insert("sig2", super::super::types::FitVariable::new(0.0031, false)); + vars.insert("dr", super::super::types::FitVariable::new(0.011, false)); + + let reference = load_txt_f64(&reference_path, &PARAM_LOADTXT).unwrap(); + let k = DVector::from_vec(reference.get_col(0)); + let chi_expected = reference.get_col(1); + let chi = path2chi(&path, &vars, &k).unwrap(); + + for ((kv, actual), expected) in k.iter().zip(chi.iter()).zip(chi_expected.iter()) { + if *kv < 2.0 { + continue; + } + assert_abs_diff_eq!(actual, expected, epsilon = 3.0e-3); + } + } + + #[test] + fn test_ff2chi_matches_larch_reference_within_tolerance() { + let pathfile1 = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let pathfile2 = format!("{TOP_DIR}/tests/testfiles/feff0002.dat"); + let reference_path = format!("{TOP_DIR}/tests/testfiles/feff_ff2chi_larch_ref.txt"); + + let mut path1 = feffpath(pathfile1, FeffFlavor::Feff85L).unwrap(); + path1.s02 = PathParamSpec::Expression("amp".to_string()); + path1.e0 = PathParamSpec::Expression("de0".to_string()); + path1.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path1.deltar = PathParamSpec::Expression("dr".to_string()); + + let mut path2 = feffpath(pathfile2, FeffFlavor::Feff85L).unwrap(); + path2.s02 = PathParamSpec::Expression("amp2".to_string()); + path2.e0 = PathParamSpec::Expression("de0".to_string()); + path2.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path2.deltar = PathParamSpec::Expression("dr2".to_string()); + + let mut vars = FitVariables::new(); + vars.insert("amp", super::super::types::FitVariable::new(0.92, false)); + vars.insert("de0", super::super::types::FitVariable::new(1.4, false)); + vars.insert("sig2", super::super::types::FitVariable::new(0.0031, false)); + vars.insert("dr", super::super::types::FitVariable::new(0.011, false)); + vars.insert("amp2", super::super::types::FitVariable::new(0.35, false)); + vars.insert("dr2", super::super::types::FitVariable::new(0.0025, false)); + + let reference = load_txt_f64(&reference_path, &PARAM_LOADTXT).unwrap(); + let k = DVector::from_vec(reference.get_col(0)); + let chi_expected = reference.get_col(1); + + let out = ff2chi(&[path1, path2], &vars, &k).unwrap(); + for ((kv, actual), expected) in k.iter().zip(out.chi.iter()).zip(chi_expected.iter()) { + if *kv < 2.0 { + continue; + } + assert_abs_diff_eq!(actual, expected, epsilon = 4.0e-3); + } + } + + #[test] + fn test_interp_linear_clamped_rejects_non_finite_target_grid() { + let xin = DVector::from_vec(vec![1.0, 2.0, 3.0]); + let yin = DVector::from_vec(vec![10.0, 20.0, 30.0]); + let xout = DVector::from_vec(vec![1.5, f64::NAN]); + + let err = interp_linear_clamped(&xin, &yin, &xout).unwrap_err(); + assert!(matches!(err, FittingError::InvalidDataset { .. })); + } + + #[test] + fn test_interp_linear_clamped_rejects_non_finite_source_grid() { + let xin = DVector::from_vec(vec![1.0, f64::INFINITY, 3.0]); + let yin = DVector::from_vec(vec![10.0, 20.0, 30.0]); + let xout = DVector::from_vec(vec![1.5, 2.5]); + + let err = interp_linear_clamped(&xin, &yin, &xout).unwrap_err(); + assert!(matches!(err, FittingError::InvalidFeffData { .. })); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/runner.rs b/crates/xraytsubaki/src/xafs/fitting/runner.rs new file mode 100644 index 0000000..94acad3 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/runner.rs @@ -0,0 +1,802 @@ +use std::env; +use std::fs; +use std::io::Read; +use std::path::{Path, PathBuf}; +use std::process::{Command, ExitStatus, Stdio}; +use std::thread; +use std::time::{Duration, Instant}; + +use super::errors::FittingError; +use super::path_model::feffpath; +use super::types::{ + FeffExecutionMode, FeffFlavor, FeffModuleCommand, FeffPathModel, FeffResolvedCommands, + FeffRunRequest, FeffRunResult, +}; + +const FEFF85L_MODULES: [(&str, &str); 6] = [ + ("rdinp", "feff8l_rdinp"), + ("pot", "feff8l_pot"), + ("xsph", "feff8l_xsph"), + ("pathfinder", "feff8l_pathfinder"), + ("genfmt", "feff8l_genfmt"), + ("ff2x", "feff8l_ff2x"), +]; + +pub fn resolve_feff_commands( + request: &FeffRunRequest, +) -> Result { + let executable_path = validate_executable_path(&request.executable_path)?; + let base_dir = executable_path + .parent() + .ok_or_else(|| FittingError::InvalidExecutablePath { + path: request.executable_path.display().to_string(), + reason: "executable has no parent directory".to_string(), + })?; + + let mut resolved_modules = Vec::with_capacity(FEFF85L_MODULES.len()); + for &(module_label, module_bin) in required_modules(request.mode) { + let module_file = platform_executable_name(module_bin); + let sibling_candidate = base_dir.join(&module_file); + if is_executable_file(&sibling_candidate) { + resolved_modules.push(FeffModuleCommand { + module: module_label.to_string(), + executable: sibling_candidate, + }); + continue; + } + + if let Some(path_candidate) = lookup_in_path(&module_file) { + resolved_modules.push(FeffModuleCommand { + module: module_label.to_string(), + executable: path_candidate, + }); + continue; + } + + return Err(FittingError::ExecutableNotFound { + module: module_label.to_string(), + }); + } + + Ok(FeffResolvedCommands { + mode: request.mode, + modules: resolved_modules, + }) +} + +pub fn run_feff(request: &FeffRunRequest) -> Result { + let workspace_dir = validate_workspace_dir(&request.workspace_dir)?; + let feffinp_path = resolve_feffinp_path(request, &workspace_dir)?; + let resolved = resolve_feff_commands(request)?; + + let staged_input = stage_feff_input(&workspace_dir, &feffinp_path)?; + + let run_result = (|| { + let mut logs = Vec::with_capacity(resolved.modules.len()); + for module in &resolved.modules { + let log_path = run_single_module(module, &workspace_dir, request.timeout_sec)?; + logs.push(log_path); + } + + let path_files = discover_path_files(&workspace_dir)?; + if path_files.is_empty() { + return Err(FittingError::NoPathOutputs { + workspace: workspace_dir.display().to_string(), + }); + } + + Ok(FeffRunResult { + mode: request.mode, + workspace_dir: workspace_dir.clone(), + feffinp_path: feffinp_path.clone(), + resolved: resolved.clone(), + logs, + path_files, + }) + })(); + + let restore_result = staged_input.restore(); + match (run_result, restore_result) { + (Ok(result), Ok(())) => Ok(result), + (Err(run_err), Ok(())) => Err(run_err), + (Ok(_), Err(restore_err)) => Err(restore_err), + (Err(run_err), Err(_restore_err)) => Err(run_err), + } +} + +pub fn run_feff_and_load_paths( + request: &FeffRunRequest, + flavor: FeffFlavor, +) -> Result, FittingError> { + let result = run_feff(request)?; + load_paths_from_run_result(&result, flavor) +} + +pub fn load_paths_from_run_result( + result: &FeffRunResult, + flavor: FeffFlavor, +) -> Result, FittingError> { + result + .path_files + .iter() + .map(|path| feffpath(path, flavor)) + .collect() +} + +fn required_modules(mode: FeffExecutionMode) -> &'static [(&'static str, &'static str)] { + match mode { + FeffExecutionMode::Feff85LModules => &FEFF85L_MODULES, + } +} + +fn validate_workspace_dir(workspace_dir: &Path) -> Result { + if !workspace_dir.exists() || !workspace_dir.is_dir() { + return Err(FittingError::WorkspaceNotFound { + path: workspace_dir.display().to_string(), + }); + } + + fs::canonicalize(workspace_dir).map_err(|error| FittingError::IOFailed { + action: "canonicalize workspace".to_string(), + path: workspace_dir.display().to_string(), + reason: error.to_string(), + }) +} + +fn validate_executable_path(path: &Path) -> Result { + if path.as_os_str().is_empty() { + return Err(FittingError::InvalidExecutablePath { + path: path.display().to_string(), + reason: "path is empty".to_string(), + }); + } + + if !is_executable_file(path) { + return Err(FittingError::InvalidExecutablePath { + path: path.display().to_string(), + reason: "path does not point to an executable file".to_string(), + }); + } + + fs::canonicalize(path).map_err(|error| FittingError::InvalidExecutablePath { + path: path.display().to_string(), + reason: error.to_string(), + }) +} + +fn resolve_feffinp_path( + request: &FeffRunRequest, + workspace_dir: &Path, +) -> Result { + let feffinp = request + .feffinp + .clone() + .unwrap_or_else(|| PathBuf::from("feff.inp")); + let resolved = if feffinp.is_absolute() { + feffinp + } else { + workspace_dir.join(feffinp) + }; + + if !resolved.exists() || !resolved.is_file() { + return Err(FittingError::FeffInputNotFound { + path: resolved.display().to_string(), + }); + } + + Ok(resolved) +} + +fn run_single_module( + module: &FeffModuleCommand, + workspace_dir: &Path, + timeout_sec: Option, +) -> Result { + let mut child = Command::new(&module.executable) + .current_dir(workspace_dir) + .stdin(Stdio::null()) + .stdout(Stdio::piped()) + .stderr(Stdio::piped()) + .spawn() + .map_err(|error| FittingError::ProcessSpawnFailed { + module: module.module.clone(), + executable: module.executable.display().to_string(), + reason: error.to_string(), + })?; + + let timeout = timeout_sec.map(Duration::from_secs); + let start = Instant::now(); + let status = wait_for_exit(&mut child, start, timeout, &module.module)?; + + let stdout = read_pipe(child.stdout.take(), &module.module, "stdout")?; + let stderr = read_pipe(child.stderr.take(), &module.module, "stderr")?; + + let log_name = format!("feffrun_{}.log", module.module); + let log_path = workspace_dir.join(log_name); + write_module_log(&log_path, module, status, &stdout, &stderr)?; + + if !status.success() { + return Err(FittingError::ProcessFailed { + module: module.module.clone(), + code: status.code().unwrap_or(-1), + }); + } + + Ok(log_path) +} + +fn wait_for_exit( + child: &mut std::process::Child, + start: Instant, + timeout: Option, + module: &str, +) -> Result { + loop { + match child + .try_wait() + .map_err(|error| FittingError::ProcessSpawnFailed { + module: module.to_string(), + executable: "".to_string(), + reason: error.to_string(), + })? { + Some(status) => return Ok(status), + None => { + if let Some(limit) = timeout { + if start.elapsed() > limit { + let _ = child.kill(); + let _ = child.wait(); + return Err(FittingError::ProcessTimedOut { + module: module.to_string(), + timeout_sec: limit.as_secs(), + }); + } + } + thread::sleep(Duration::from_millis(10)); + } + } + } +} + +fn write_module_log( + log_path: &Path, + module: &FeffModuleCommand, + status: ExitStatus, + stdout: &[u8], + stderr: &[u8], +) -> Result<(), FittingError> { + let mut log = String::new(); + log.push_str(&format!( + "# module={} executable={} status={}\n", + module.module, + module.executable.display(), + status.code().unwrap_or(-1) + )); + log.push_str("\n# stdout\n"); + log.push_str(&String::from_utf8_lossy(stdout)); + log.push_str("\n# stderr\n"); + log.push_str(&String::from_utf8_lossy(stderr)); + + fs::write(log_path, log).map_err(|error| FittingError::IOFailed { + action: "write module log".to_string(), + path: log_path.display().to_string(), + reason: error.to_string(), + }) +} + +fn read_pipe( + mut pipe: Option, + module: &str, + stream_name: &str, +) -> Result, FittingError> { + let Some(mut stream) = pipe.take() else { + return Ok(Vec::new()); + }; + + let mut buf = Vec::new(); + stream + .read_to_end(&mut buf) + .map_err(|error| FittingError::OutputReadFailed { + module: module.to_string(), + reason: format!("{stream_name}: {error}"), + })?; + Ok(buf) +} + +fn discover_path_files(workspace_dir: &Path) -> Result, FittingError> { + let mut output_paths = Vec::new(); + + let entries = fs::read_dir(workspace_dir).map_err(|error| FittingError::IOFailed { + action: "read workspace directory".to_string(), + path: workspace_dir.display().to_string(), + reason: error.to_string(), + })?; + + for entry_result in entries { + let entry = entry_result.map_err(|error| FittingError::IOFailed { + action: "iterate workspace entries".to_string(), + path: workspace_dir.display().to_string(), + reason: error.to_string(), + })?; + + let path = entry.path(); + if !path.is_file() { + continue; + } + + let Some(file_name) = path.file_name().and_then(|name| name.to_str()) else { + continue; + }; + + if is_feff_path_file_name(file_name) { + output_paths.push(path); + } + } + + output_paths.sort_by(|lhs, rhs| { + lhs.file_name() + .unwrap_or_default() + .cmp(rhs.file_name().unwrap_or_default()) + }); + + Ok(output_paths) +} + +fn is_feff_path_file_name(file_name: &str) -> bool { + if !file_name.starts_with("feff") || !file_name.ends_with(".dat") { + return false; + } + + let digits = &file_name[4..file_name.len() - 4]; + !digits.is_empty() && digits.chars().all(|ch| ch.is_ascii_digit()) +} + +fn platform_executable_name(base_name: &str) -> String { + #[cfg(windows)] + { + if base_name.to_ascii_lowercase().ends_with(".exe") { + base_name.to_string() + } else { + format!("{base_name}.exe") + } + } + #[cfg(not(windows))] + { + base_name.to_string() + } +} + +fn lookup_in_path(executable_name: &str) -> Option { + let path_env = env::var_os("PATH")?; + for directory in env::split_paths(&path_env) { + let candidate = directory.join(executable_name); + if is_executable_file(&candidate) { + return Some(candidate); + } + + #[cfg(windows)] + { + if candidate.extension().is_some() { + continue; + } + let pathext = env::var_os("PATHEXT") + .unwrap_or_else(|| ".EXE;.BAT;.CMD;.COM".into()) + .to_string_lossy() + .to_string(); + for ext in pathext.split(';') { + let trimmed = ext.trim(); + if trimmed.is_empty() { + continue; + } + let ext_clean = trimmed.trim_start_matches('.').to_ascii_lowercase(); + let candidate_with_ext = directory.join(format!("{executable_name}.{ext_clean}")); + if is_executable_file(&candidate_with_ext) { + return Some(candidate_with_ext); + } + } + } + } + None +} + +fn is_executable_file(path: &Path) -> bool { + if !path.exists() || !path.is_file() { + return false; + } + + #[cfg(unix)] + { + use std::os::unix::fs::PermissionsExt; + fs::metadata(path) + .map(|meta| meta.permissions().mode() & 0o111 != 0) + .unwrap_or(false) + } + + #[cfg(not(unix))] + { + true + } +} + +struct StagedFeffInput { + staged_path: Option, + backup_path: Option, + target_path: PathBuf, +} + +impl StagedFeffInput { + fn restore(self) -> Result<(), FittingError> { + if self.staged_path.is_some() && self.target_path.exists() { + fs::remove_file(&self.target_path).map_err(|error| FittingError::IOFailed { + action: "remove staged feff.inp".to_string(), + path: self.target_path.display().to_string(), + reason: error.to_string(), + })?; + } + + if let Some(backup_path) = self.backup_path { + fs::rename(&backup_path, &self.target_path).map_err(|error| { + FittingError::IOFailed { + action: "restore original feff.inp".to_string(), + path: self.target_path.display().to_string(), + reason: error.to_string(), + } + })?; + } + + Ok(()) + } +} + +fn stage_feff_input( + workspace_dir: &Path, + feffinp_path: &Path, +) -> Result { + let target_path = workspace_dir.join("feff.inp"); + if feffinp_path == target_path { + if !target_path.exists() || !target_path.is_file() { + return Err(FittingError::FeffInputNotFound { + path: target_path.display().to_string(), + }); + } + return Ok(StagedFeffInput { + staged_path: None, + backup_path: None, + target_path, + }); + } + + let backup_path = if target_path.exists() { + let backup = workspace_dir.join(".xraytsubaki_feff_inp_backup"); + if backup.exists() { + fs::remove_file(&backup).map_err(|error| FittingError::IOFailed { + action: "clear existing feff.inp backup".to_string(), + path: backup.display().to_string(), + reason: error.to_string(), + })?; + } + fs::rename(&target_path, &backup).map_err(|error| FittingError::IOFailed { + action: "backup existing feff.inp".to_string(), + path: target_path.display().to_string(), + reason: error.to_string(), + })?; + Some(backup) + } else { + None + }; + + if let Err(error) = fs::copy(feffinp_path, &target_path) { + if let Some(backup) = backup_path.as_ref() { + let _ = fs::rename(backup, &target_path); + } + return Err(FittingError::IOFailed { + action: "stage feff input file".to_string(), + path: target_path.display().to_string(), + reason: error.to_string(), + }); + } + + Ok(StagedFeffInput { + staged_path: Some(feffinp_path.to_path_buf()), + backup_path, + target_path, + }) +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::xafs::fitting::ff2chi; + use crate::xafs::fitting::{FeffFlavor, FitVariables}; + use nalgebra::DVector; + use std::sync::{Mutex, OnceLock}; + + static ENV_LOCK: OnceLock> = OnceLock::new(); + const TOP_DIR: &str = env!("CARGO_MANIFEST_DIR"); + + struct TestDir { + path: PathBuf, + } + + impl TestDir { + fn new(prefix: &str) -> Self { + let unique = format!( + "{}-{}-{}", + prefix, + std::process::id(), + std::time::SystemTime::now() + .duration_since(std::time::UNIX_EPOCH) + .unwrap() + .as_nanos() + ); + let path = std::env::temp_dir().join(unique); + fs::create_dir_all(&path).unwrap(); + Self { path } + } + + fn join(&self, file_name: &str) -> PathBuf { + self.path.join(file_name) + } + } + + impl Drop for TestDir { + fn drop(&mut self) { + let _ = fs::remove_dir_all(&self.path); + } + } + + #[cfg(unix)] + fn write_exec(path: &Path, body: &str) { + use std::os::unix::fs::PermissionsExt; + + let script = format!("#!/bin/sh\nset -eu\n{body}\n"); + fs::write(path, script).unwrap(); + + let mut perms = fs::metadata(path).unwrap().permissions(); + perms.set_mode(0o755); + fs::set_permissions(path, perms).unwrap(); + } + + #[cfg(unix)] + fn install_mock_modules(bin_dir: &Path, ff2x_payload: &str, fail_module: Option<&str>) { + fs::create_dir_all(bin_dir).unwrap(); + + for &(label, executable_name) in FEFF85L_MODULES.iter() { + let executable_path = bin_dir.join(executable_name); + let payload = if Some(label) == fail_module { + "echo intentional failure >&2\nexit 9".to_string() + } else if label == "ff2x" { + format!( + "if [ ! -f feff.inp ]; then echo missing feff.inp >&2; exit 8; fi\n{}\necho module ff2x done", + ff2x_payload + ) + } else { + format!( + "if [ ! -f feff.inp ]; then echo missing feff.inp >&2; exit 8; fi\necho module {label} done" + ) + }; + write_exec(&executable_path, &payload); + } + } + + fn build_request(executable_path: PathBuf, workspace_dir: PathBuf) -> FeffRunRequest { + FeffRunRequest { + executable_path, + workspace_dir, + feffinp: None, + mode: FeffExecutionMode::Feff85LModules, + timeout_sec: Some(5), + } + } + + #[test] + fn test_platform_executable_name_has_expected_shape() { + let executable = platform_executable_name("feff8l_rdinp"); + + #[cfg(windows)] + assert!(executable.ends_with(".exe")); + + #[cfg(not(windows))] + assert_eq!(executable, "feff8l_rdinp"); + } + + #[test] + fn test_is_feff_path_file_name() { + assert!(is_feff_path_file_name("feff0001.dat")); + assert!(is_feff_path_file_name("feff1234.dat")); + assert!(!is_feff_path_file_name("feff.dat")); + assert!(!is_feff_path_file_name("feffABCD.dat")); + assert!(!is_feff_path_file_name("notfeff0001.dat")); + } + + #[cfg(unix)] + #[test] + fn test_resolve_commands_from_sibling_modules() { + let bin_dir = TestDir::new("xfeff-bin"); + install_mock_modules(&bin_dir.path, "", None); + + let request = build_request(bin_dir.join("feff8l_rdinp"), bin_dir.path.clone()); + let resolved = resolve_feff_commands(&request).unwrap(); + let canonical_bin_dir = fs::canonicalize(&bin_dir.path).unwrap(); + + assert_eq!(resolved.modules.len(), FEFF85L_MODULES.len()); + assert!(resolved + .modules + .iter() + .all(|module| module.executable.starts_with(&canonical_bin_dir))); + } + + #[test] + fn test_resolve_missing_executable_fails() { + let workspace = TestDir::new("xfeff-work"); + let request = build_request(workspace.join("missing-feff"), workspace.path.clone()); + + let err = resolve_feff_commands(&request).unwrap_err(); + assert!(matches!(err, FittingError::InvalidExecutablePath { .. })); + } + + #[cfg(unix)] + #[test] + fn test_resolve_falls_back_to_path() { + let _lock = ENV_LOCK.get_or_init(|| Mutex::new(())).lock().unwrap(); + let previous_path = env::var_os("PATH"); + + let primary_dir = TestDir::new("xfeff-primary"); + let fallback_dir = TestDir::new("xfeff-fallback"); + + fs::create_dir_all(&primary_dir.path).unwrap(); + write_exec( + &primary_dir.join("feff8l_rdinp"), + "if [ ! -f feff.inp ]; then :; fi\necho only primary", + ); + install_mock_modules(&fallback_dir.path, "", None); + + env::set_var("PATH", fallback_dir.path.display().to_string()); + let request = build_request(primary_dir.join("feff8l_rdinp"), primary_dir.path.clone()); + let resolved = resolve_feff_commands(&request).unwrap(); + + if let Some(path) = previous_path { + env::set_var("PATH", path); + } else { + env::remove_var("PATH"); + } + + assert_eq!(resolved.modules.len(), FEFF85L_MODULES.len()); + assert_eq!(resolved.modules[0].module, "rdinp"); + assert!(resolved + .modules + .iter() + .skip(1) + .all(|module| module.executable.starts_with(&fallback_dir.path))); + } + + #[cfg(unix)] + #[test] + fn test_resolve_errors_for_missing_module() { + let _lock = ENV_LOCK.get_or_init(|| Mutex::new(())).lock().unwrap(); + let previous_path = env::var_os("PATH"); + + let primary_dir = TestDir::new("xfeff-primary-missing"); + fs::create_dir_all(&primary_dir.path).unwrap(); + write_exec( + &primary_dir.join("feff8l_rdinp"), + "if [ ! -f feff.inp ]; then :; fi\necho only rdinp", + ); + + env::set_var("PATH", ""); + + let request = build_request(primary_dir.join("feff8l_rdinp"), primary_dir.path.clone()); + let err = resolve_feff_commands(&request).unwrap_err(); + + if let Some(path) = previous_path { + env::set_var("PATH", path); + } else { + env::remove_var("PATH"); + } + + assert!(matches!(err, FittingError::ExecutableNotFound { .. })); + } + + #[cfg(unix)] + #[test] + fn test_runner_success_discovers_sorted_outputs() { + let workspace = TestDir::new("xfeff-work-success"); + fs::write(workspace.join("feff.inp"), "TITLE\n").unwrap(); + + let bin_dir = TestDir::new("xfeff-bin-success"); + install_mock_modules( + &bin_dir.path, + "echo 'dummy' > feff0010.dat\necho 'dummy' > feff0002.dat", + None, + ); + + let request = build_request(bin_dir.join("feff8l_rdinp"), workspace.path.clone()); + let result = run_feff(&request).unwrap(); + + assert_eq!(result.logs.len(), FEFF85L_MODULES.len()); + assert_eq!(result.path_files.len(), 2); + + let names = result + .path_files + .iter() + .map(|path| path.file_name().unwrap().to_string_lossy().to_string()) + .collect::>(); + assert_eq!(names, vec!["feff0002.dat", "feff0010.dat"]); + } + + #[cfg(unix)] + #[test] + fn test_runner_missing_feffinp_fails() { + let workspace = TestDir::new("xfeff-work-missing-inp"); + let bin_dir = TestDir::new("xfeff-bin-missing-inp"); + install_mock_modules(&bin_dir.path, "", None); + + let request = build_request(bin_dir.join("feff8l_rdinp"), workspace.path.clone()); + let err = run_feff(&request).unwrap_err(); + + assert!(matches!(err, FittingError::FeffInputNotFound { .. })); + } + + #[cfg(unix)] + #[test] + fn test_runner_nonzero_exit_fails_fast() { + let workspace = TestDir::new("xfeff-work-fail"); + fs::write(workspace.join("feff.inp"), "TITLE\n").unwrap(); + + let bin_dir = TestDir::new("xfeff-bin-fail"); + install_mock_modules(&bin_dir.path, "", Some("pot")); + + let request = build_request(bin_dir.join("feff8l_rdinp"), workspace.path.clone()); + let err = run_feff(&request).unwrap_err(); + + assert!(matches!( + err, + FittingError::ProcessFailed { + module, + code: 9 + } if module == "pot" + )); + } + + #[cfg(unix)] + #[test] + fn test_runner_empty_output_set_errors() { + let workspace = TestDir::new("xfeff-work-empty"); + fs::write(workspace.join("feff.inp"), "TITLE\n").unwrap(); + + let bin_dir = TestDir::new("xfeff-bin-empty"); + install_mock_modules(&bin_dir.path, "", None); + + let request = build_request(bin_dir.join("feff8l_rdinp"), workspace.path.clone()); + let err = run_feff(&request).unwrap_err(); + + assert!(matches!(err, FittingError::NoPathOutputs { .. })); + } + + #[cfg(unix)] + #[test] + fn test_run_and_load_paths_interoperates_with_modeling() { + let workspace = TestDir::new("xfeff-work-load"); + fs::write(workspace.join("feff.inp"), "TITLE\n").unwrap(); + + let fixture1 = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let fixture2 = format!("{TOP_DIR}/tests/testfiles/feff0002.dat"); + + let bin_dir = TestDir::new("xfeff-bin-load"); + let ff2x_payload = format!( + "cat '{}' > feff0010.dat\ncat '{}' > feff0002.dat", + fixture1, fixture2 + ); + install_mock_modules(&bin_dir.path, &ff2x_payload, None); + + let request = build_request(bin_dir.join("feff8l_rdinp"), workspace.path.clone()); + let paths = run_feff_and_load_paths(&request, FeffFlavor::Feff85L).unwrap(); + + assert_eq!(paths.len(), 2); + + let k = DVector::from_iterator(120, (0..120).map(|i| 0.05 * (i as f64 + 1.0))); + let modeled = ff2chi(&paths, &FitVariables::new(), &k).unwrap(); + + assert_eq!(modeled.chi.len(), k.len()); + assert_eq!(modeled.path_chi.len(), 2); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/solver.rs b/crates/xraytsubaki/src/xafs/fitting/solver.rs new file mode 100644 index 0000000..088d7c6 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/solver.rs @@ -0,0 +1,703 @@ +use std::collections::BTreeSet; + +use levenberg_marquardt::{LeastSquaresProblem, LevenbergMarquardt}; +use nalgebra::{DMatrix, DVector, Dyn, Owned}; +use rayon::prelude::*; + +use super::errors::FittingError; +use super::path_model::ff2chi; +use super::transform::{ + apply_r_transform, compute_n_idp, residual_in_r_space, validate_transform, TransformOutput, +}; +use super::types::{ + DatasetResult, FeffBatchExecutionStrategy, FeffBatchOptions, FeffFitDataset, FeffFitResult, + FitVariables, PathContribution, PathParamSpec, +}; +use super::variables::try_extract_symbols; + +fn feffit( + dataset: &FeffFitDataset, + variables: &FitVariables, +) -> Result { + feffit_joint(std::slice::from_ref(dataset), variables) +} + +pub fn feffit_joint( + datasets: &[FeffFitDataset], + variables: &FitVariables, +) -> Result { + if datasets.is_empty() { + return Err(FittingError::InvalidDataset { + reason: "fit requires at least one dataset".to_string(), + }); + } + for dataset in datasets { + validate_dataset(dataset)?; + } + + let varying_names = variables.varying_names(); + if varying_names.is_empty() { + return Err(FittingError::NoVaryingVariables); + } + + let problem = FeffFitMultiProblem::new(datasets.to_vec(), variables.clone(), varying_names)?; + let (solved, _report) = LevenbergMarquardt::new().minimize(problem); + let residual = solved.current_residual()?; + + let mut solved_variables = solved.variables.clone(); + let chi_square = residual.dot(&residual); + let n_data = residual.len(); + let n_vary = solved.variable_names.len(); + let dof = n_data.saturating_sub(n_vary).max(1); + let reduced_chi_square = chi_square / dof as f64; + + if let Some(covar) = solved.approx_covariance() { + for (idx, name) in solved.variable_names.iter().enumerate() { + if let Some(var) = solved_variables.get_mut(name) { + let variance = covar[(idx, idx)].max(0.0) * reduced_chi_square; + var.stderr = Some(variance.sqrt()); + } + } + } + + let model_evaluations = solved.evaluate_models(&solved.variables)?; + let mut datasets_out = Vec::with_capacity(solved.datasets.len()); + + let mut global_data_norm = 0.0; + let mut global_model_diff_norm = 0.0; + let mut global_n_idp = 0.0; + + for ((dataset, data_transform), model_eval) in solved + .datasets + .iter() + .zip(solved.data_transforms.iter()) + .zip(model_evaluations.into_iter()) + { + let ds_residual = residual_in_r_space( + data_transform, + &model_eval.model_transform, + dataset.epsilon_k, + )?; + let ds_chi_square = ds_residual.dot(&ds_residual); + let ds_n_data = ds_residual.len(); + let ds_n_vary = dataset_vary_count(dataset, &solved.variables, &solved.variable_names)?; + let ds_dof = ds_n_data.saturating_sub(ds_n_vary).max(1); + let ds_reduced_chi_square = ds_chi_square / ds_dof as f64; + + let data_norm = dataset.chi.iter().map(|value| value.abs()).sum::(); + let model_diff_norm = dataset + .chi + .iter() + .zip(model_eval.model_chi.iter()) + .map(|(d, m)| (d - m).abs()) + .sum::(); + global_data_norm += data_norm; + global_model_diff_norm += model_diff_norm; + let ds_r_factor = if data_norm.abs() < f64::EPSILON { + 0.0 + } else { + model_diff_norm / data_norm + }; + + let ds_n_idp = compute_n_idp(&dataset.transform); + global_n_idp += ds_n_idp; + + let path_contributions = model_eval + .path_chi + .iter() + .filter_map(|(label, chi)| { + let transformed = apply_r_transform(&dataset.k, chi, &dataset.transform).ok()?; + Some(PathContribution { + label: label.clone(), + chi: chi.clone(), + chir_re: transformed.chir_re, + chir_im: transformed.chir_im, + chir_mag: transformed.chir_mag, + }) + }) + .collect::>(); + + datasets_out.push(DatasetResult { + n_data: ds_n_data, + chi_square: ds_chi_square, + reduced_chi_square: ds_reduced_chi_square, + r_factor: ds_r_factor, + n_idp: ds_n_idp, + k: dataset.k.clone(), + data_chi: dataset.chi.clone(), + model_chi: model_eval.model_chi, + r: model_eval.model_transform.r.clone(), + data_chir_re: data_transform.chir_re.clone(), + data_chir_im: data_transform.chir_im.clone(), + model_chir_re: model_eval.model_transform.chir_re, + model_chir_im: model_eval.model_transform.chir_im, + model_chir_mag: model_eval.model_transform.chir_mag, + path_contributions, + }); + } + + let r_factor = if global_data_norm.abs() < f64::EPSILON { + 0.0 + } else { + global_model_diff_norm / global_data_norm + }; + + let mut out = FeffFitResult { + variables: solved_variables, + n_vary, + n_data, + chi_square, + reduced_chi_square, + r_factor, + datasets: datasets_out, + n_idp: global_n_idp, + ..FeffFitResult::default() + }; + out.sync_primary_dataset_fields(); + Ok(out) +} + +fn dataset_vary_count( + dataset: &FeffFitDataset, + variables: &FitVariables, + varying_names: &[String], +) -> Result { + let varying = varying_names + .iter() + .map(String::as_str) + .collect::>(); + let mut referenced = BTreeSet::::new(); + + for path in dataset.paths.iter().filter(|path| path.use_path) { + for spec in [ + &path.degen, + &path.s02, + &path.e0, + &path.ei, + &path.deltar, + &path.sigma2, + &path.third, + &path.fourth, + ] { + if let PathParamSpec::Expression(expr) = spec { + for symbol in try_extract_symbols(expr)? { + referenced.insert(symbol); + } + } + } + } + + let mut active = BTreeSet::::new(); + let mut visiting = BTreeSet::::new(); + + fn walk_symbol( + symbol: &str, + varying: &BTreeSet<&str>, + variables: &FitVariables, + active: &mut BTreeSet, + visiting: &mut BTreeSet, + ) -> Result<(), FittingError> { + if varying.contains(symbol) { + active.insert(symbol.to_string()); + return Ok(()); + } + if !visiting.insert(symbol.to_string()) { + return Ok(()); + } + + if let Some(expr) = variables + .vars + .get(symbol) + .and_then(|variable| variable.expr.as_ref()) + { + for dependency in try_extract_symbols(expr)? { + walk_symbol(&dependency, varying, variables, active, visiting)?; + } + } + + visiting.remove(symbol); + Ok(()) + } + + for symbol in referenced { + walk_symbol(&symbol, &varying, variables, &mut active, &mut visiting)?; + } + + Ok(active.len()) +} + +pub fn feffit_independent( + datasets: &[FeffFitDataset], + variables: &FitVariables, + options: &FeffBatchOptions, +) -> Vec> { + if datasets.is_empty() { + return Vec::new(); + } + + let chunk_size = options.chunk_size.get(); + let run_parallel = || { + (0..datasets.len()) + .into_par_iter() + .with_max_len(chunk_size) + .map(|idx| feffit(&datasets[idx], variables)) + .collect::>() + }; + + match options.strategy { + FeffBatchExecutionStrategy::Sequential => datasets + .iter() + .map(|dataset| feffit(dataset, variables)) + .collect::>(), + FeffBatchExecutionStrategy::GlobalPool => run_parallel(), + FeffBatchExecutionStrategy::DedicatedPool { threads } => { + let pool = rayon::ThreadPoolBuilder::new() + .num_threads(threads.get()) + .build() + .map_err(|err| FittingError::SolverFailed { + reason: format!("failed to build rayon thread pool: {err}"), + }); + + match pool { + Ok(pool) => pool.install(run_parallel), + Err(err) => vec![Err(err); datasets.len()], + } + } + } +} + +fn validate_dataset(dataset: &FeffFitDataset) -> Result<(), FittingError> { + if dataset.k.len() != dataset.chi.len() { + return Err(FittingError::InvalidDataset { + reason: format!( + "k/chi length mismatch: k={}, chi={}", + dataset.k.len(), + dataset.chi.len() + ), + }); + } + if dataset.k.len() < 3 { + return Err(FittingError::InvalidDataset { + reason: "fit dataset requires at least 3 points".to_string(), + }); + } + for index in 0..dataset.k.len() { + if !dataset.k[index].is_finite() || !dataset.chi[index].is_finite() { + return Err(FittingError::InvalidDataset { + reason: format!("non-finite value detected at index {index}"), + }); + } + if index > 0 && dataset.k[index] < dataset.k[index - 1] { + return Err(FittingError::InvalidDataset { + reason: format!("k grid must be monotonic: k[{index}] < k[{}]", index - 1), + }); + } + } + if dataset.paths.is_empty() { + return Err(FittingError::EmptyPaths); + } + validate_transform(&dataset.transform) +} + +#[derive(Clone)] +struct ModelEvaluation { + model_chi: DVector, + path_chi: Vec<(String, DVector)>, + model_transform: TransformOutput, +} + +#[derive(Clone)] +struct FeffFitMultiProblem { + datasets: Vec, + data_transforms: Vec, + variables: FitVariables, + variable_names: Vec, + residual_len: usize, +} + +impl FeffFitMultiProblem { + fn new( + datasets: Vec, + variables: FitVariables, + variable_names: Vec, + ) -> Result { + let mut data_transforms = Vec::with_capacity(datasets.len()); + for dataset in &datasets { + data_transforms.push(apply_r_transform( + &dataset.k, + &dataset.chi, + &dataset.transform, + )?); + } + + let mut problem = Self { + datasets, + data_transforms, + variables, + variable_names, + residual_len: 0, + }; + let initial_residual = problem.current_residual()?; + problem.residual_len = initial_residual.len(); + Ok(problem) + } + + fn evaluate_dataset_model( + dataset: &FeffFitDataset, + vars: &FitVariables, + ) -> Result { + let model = ff2chi(&dataset.paths, vars, &dataset.k)?; + let model_transform = apply_r_transform(&dataset.k, &model.chi, &dataset.transform)?; + Ok(ModelEvaluation { + model_chi: model.chi, + path_chi: model.path_chi, + model_transform, + }) + } + + fn evaluate_models(&self, vars: &FitVariables) -> Result, FittingError> { + self.datasets + .iter() + .map(|dataset| Self::evaluate_dataset_model(dataset, vars)) + .collect() + } + + fn current_residual(&self) -> Result, FittingError> { + let models = self.evaluate_models(&self.variables)?; + let mut residual = Vec::new(); + for ((dataset, data_transform), model) in self + .datasets + .iter() + .zip(self.data_transforms.iter()) + .zip(models.into_iter()) + { + let ds_residual = + residual_in_r_space(data_transform, &model.model_transform, dataset.epsilon_k)?; + residual.extend(ds_residual.iter().copied()); + } + if residual.is_empty() { + return Err(FittingError::InvalidDataset { + reason: "multi-dataset residual is empty".to_string(), + }); + } + Ok(DVector::from_vec(residual)) + } + + fn residual_for_parameter_vector(&self, params: &DVector) -> DVector { + let mut vars = self.variables.clone(); + if vars + .apply_parameter_vector(&self.variable_names, params) + .is_err() + { + return DVector::from_element(self.residual_len.max(2), 1.0e12); + } + + match self.evaluate_models(&vars).and_then(|models| { + let mut residual = Vec::new(); + for ((dataset, data_transform), model) in self + .datasets + .iter() + .zip(self.data_transforms.iter()) + .zip(models.into_iter()) + { + let ds_residual = + residual_in_r_space(data_transform, &model.model_transform, dataset.epsilon_k)?; + residual.extend(ds_residual.iter().copied()); + } + Ok::<_, FittingError>(DVector::from_vec(residual)) + }) { + Ok(residual) => residual, + Err(_) => DVector::from_element(self.residual_len.max(2), 1.0e12), + } + } + + fn approx_covariance(&self) -> Option> { + let params = self.params(); + if params.is_empty() { + return None; + } + let jac = self.jacobian()?; + let jtj = jac.transpose() * jac; + jtj.try_inverse() + } +} + +impl LeastSquaresProblem for FeffFitMultiProblem { + type ParameterStorage = Owned; + type ResidualStorage = Owned; + type JacobianStorage = Owned; + + fn set_params(&mut self, params: &DVector) { + let _ = self + .variables + .apply_parameter_vector(&self.variable_names, params); + } + + fn params(&self) -> DVector { + self.variables.parameter_vector(&self.variable_names) + } + + fn residuals(&self) -> Option> { + Some( + self.current_residual() + .unwrap_or_else(|_| DVector::from_element(self.residual_len.max(2), 1.0e12)), + ) + } + + fn jacobian(&self) -> Option> { + let x = self.params(); + if x.is_empty() { + return Some(DMatrix::zeros(self.residual_len, 0)); + } + + let epsilon = f64::EPSILON.sqrt(); + let base = self.residual_for_parameter_vector(&x); + let mut jac = DMatrix::zeros(base.len(), x.len()); + + for i in 0..x.len() { + let step = (epsilon * x[i].abs().max(1.0)).max(epsilon); + if !step.is_finite() { + return None; + } + let mut xt = x.clone(); + xt[i] += step; + let fx1 = self.residual_for_parameter_vector(&xt); + jac.set_column(i, &((fx1 - &base) / step)); + } + + Some(jac) + } +} + +#[cfg(test)] +mod tests { + use super::*; + use std::num::NonZeroUsize; + + use crate::xafs::fitting::path_model::feffpath; + use crate::xafs::fitting::types::{ + FeffBatchExecutionStrategy, FeffBatchOptions, FeffFlavor, FitVariable, PathParamSpec, + }; + use crate::xafs::tests::TOP_DIR; + + #[test] + fn test_single_dataset_fit_recovers_synthetic_parameters() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path = feffpath(pathfile, FeffFlavor::Feff85L).unwrap(); + path.s02 = PathParamSpec::Expression("amp".to_string()); + path.e0 = PathParamSpec::Expression("de0".to_string()); + path.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path.deltar = PathParamSpec::Expression("dr".to_string()); + + let k = DVector::from_iterator(280, (0..280).map(|i| 0.05 * (i as f64 + 1.0))); + + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(0.88, false)); + truth.insert("de0", FitVariable::new(1.2, false)); + truth.insert("sig2", FitVariable::new(0.0032, false)); + truth.insert("dr", FitVariable::new(0.012, false)); + + let synthetic = ff2chi(&[path.clone()], &truth, &k).unwrap(); + + let dataset = FeffFitDataset { + k: k.clone(), + chi: synthetic.chi, + epsilon_k: Some(1.0), + transform: Default::default(), + paths: vec![path], + }; + + let mut initial = FitVariables::new(); + initial.insert("amp", FitVariable::new(0.95, true)); + initial.insert("de0", FitVariable::new(0.0, true)); + initial.insert( + "sig2", + FitVariable::new(0.0020, true).with_bounds(Some(0.0), Some(0.02)), + ); + initial.insert("dr", FitVariable::new(0.0, true)); + + let result = feffit(&dataset, &initial).unwrap(); + + let amp = result.variables.get("amp").unwrap().value; + let de0 = result.variables.get("de0").unwrap().value; + let sig2 = result.variables.get("sig2").unwrap().value; + let dr = result.variables.get("dr").unwrap().value; + + assert!((amp - 0.88).abs() < 0.15); + assert!((de0 - 1.2).abs() < 1.2); + assert!((sig2 - 0.0032).abs() < 0.003); + assert!((dr - 0.012).abs() < 0.02); + assert!(result.chi_square.is_finite()); + assert_eq!(result.datasets.len(), 1); + assert!(!result.path_contributions.is_empty()); + } + + #[test] + fn test_joint_dataset_fit_runs() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path1 = feffpath(pathfile.clone(), FeffFlavor::Feff85L).unwrap(); + path1.s02 = PathParamSpec::Expression("amp".to_string()); + path1.e0 = PathParamSpec::Expression("de0".to_string()); + path1.sigma2 = PathParamSpec::Expression("sig2".to_string()); + path1.deltar = PathParamSpec::Expression("dr".to_string()); + let path2 = path1.clone().set_sigma2("sig2_2"); + + let k1 = DVector::from_iterator(220, (0..220).map(|i| 0.05 * (i as f64 + 1.0))); + let k2 = DVector::from_iterator(250, (0..250).map(|i| 0.05 * (i as f64 + 1.0))); + + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(0.9, false)); + truth.insert("de0", FitVariable::new(1.2, false)); + truth.insert("sig2", FitVariable::new(0.003, false)); + truth.insert("sig2_2", FitVariable::new(0.004, false)); + truth.insert("dr", FitVariable::new(0.01, false)); + + let chi1 = ff2chi(std::slice::from_ref(&path1), &truth, &k1) + .unwrap() + .chi; + let chi2 = ff2chi(std::slice::from_ref(&path2), &truth, &k2) + .unwrap() + .chi; + + let ds1 = FeffFitDataset { + k: k1, + chi: chi1, + epsilon_k: Some(1.0), + transform: Default::default(), + paths: vec![path1], + }; + let ds2 = FeffFitDataset { + k: k2, + chi: chi2, + epsilon_k: Some(1.0), + transform: Default::default(), + paths: vec![path2], + }; + + let mut initial = FitVariables::new(); + initial.insert("amp", FitVariable::new(0.95, true)); + initial.insert("de0", FitVariable::new(0.0, true)); + initial.insert("sig2", FitVariable::new(0.0020, true)); + initial.insert("sig2_2", FitVariable::new(0.0020, true)); + initial.insert("dr", FitVariable::new(0.0, true)); + + let result = feffit_joint(&[ds1, ds2], &initial).unwrap(); + assert!(result.chi_square.is_finite()); + assert_eq!(result.datasets.len(), 2); + + // Per-dataset reduced chi-square should use dataset-local varying parameter counts. + let expected0 = result.datasets[0].chi_square + / result.datasets[0].n_data.saturating_sub(4).max(1) as f64; + let expected1 = result.datasets[1].chi_square + / result.datasets[1].n_data.saturating_sub(4).max(1) as f64; + assert!((result.datasets[0].reduced_chi_square - expected0).abs() < 1.0e-10); + assert!((result.datasets[1].reduced_chi_square - expected1).abs() < 1.0e-10); + } + + #[test] + fn test_dataset_vary_count_tracks_expression_dependencies() { + let path1 = crate::xafs::fitting::types::FeffPathModel::default() + .set_s02("amp") + .set_sigma2("sig2_eff"); + let path2 = crate::xafs::fitting::types::FeffPathModel::default().set_s02("amp2"); + + let ds1 = FeffFitDataset::new().add_path(path1); + let ds2 = FeffFitDataset::new().add_path(path2); + + let mut vars = FitVariables::new(); + vars.insert("amp", FitVariable::new(1.0, true)); + vars.insert("amp2", FitVariable::new(1.0, true)); + vars.insert("sig2", FitVariable::new(0.003, true)); + vars.insert( + "sig2_eff", + FitVariable::new(0.0, false).with_expr("sig2 * 2.0"), + ); + let varying = vec!["amp".to_string(), "amp2".to_string(), "sig2".to_string()]; + + assert_eq!(dataset_vary_count(&ds1, &vars, &varying).unwrap(), 2); + assert_eq!(dataset_vary_count(&ds2, &vars, &varying).unwrap(), 1); + } + + #[test] + fn test_batch_parallel_preserves_order() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path = feffpath(pathfile, FeffFlavor::Feff85L).unwrap(); + path.s02 = PathParamSpec::Expression("amp".to_string()); + + let k = DVector::from_iterator(180, (0..180).map(|i| 0.05 * (i as f64 + 1.0))); + + let mut initial = FitVariables::new(); + initial.insert("amp", FitVariable::new(0.95, true)); + + let datasets = [0.70, 0.80, 0.90, 1.00] + .iter() + .map(|amp| { + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(*amp, false)); + let synthetic = ff2chi(&[path.clone()], &truth, &k).unwrap(); + + FeffFitDataset::new() + .data(&k, &synthetic.chi) + .epsilon_k(1.0) + .add_path(path.clone()) + }) + .collect::>(); + + let serial = feffit_independent( + &datasets, + &initial, + &FeffBatchOptions { + strategy: FeffBatchExecutionStrategy::Sequential, + chunk_size: NonZeroUsize::new(2).expect("nonzero constant"), + }, + ); + let parallel = feffit_independent( + &datasets, + &initial, + &FeffBatchOptions::dedicated(NonZeroUsize::new(2).expect("nonzero constant")) + .with_chunk_size(NonZeroUsize::new(2).expect("nonzero constant")), + ); + + assert_eq!(serial.len(), datasets.len()); + assert_eq!(parallel.len(), datasets.len()); + + for idx in 0..datasets.len() { + let serial_result = serial[idx].as_ref().unwrap(); + let parallel_result = parallel[idx].as_ref().unwrap(); + assert!((parallel_result.data_chi[5] - datasets[idx].chi[5]).abs() < 1.0e-12); + let amp_serial = serial_result.variables.get("amp").unwrap().value; + let amp_parallel = parallel_result.variables.get("amp").unwrap().value; + assert!((amp_serial - amp_parallel).abs() < 1.0e-8); + } + } + + #[test] + fn test_independent_batch_collects_per_item_failures() { + let pathfile = format!("{TOP_DIR}/tests/testfiles/feffcu01.dat"); + let mut path = feffpath(pathfile, FeffFlavor::Feff85L).unwrap(); + path.s02 = PathParamSpec::Expression("amp".to_string()); + + let k = DVector::from_iterator(140, (0..140).map(|i| 0.05 * (i as f64 + 1.0))); + let mut truth = FitVariables::new(); + truth.insert("amp", FitVariable::new(0.9, false)); + let synthetic = ff2chi(&[path.clone()], &truth, &k).unwrap(); + + let valid = FeffFitDataset::new() + .data(&k, &synthetic.chi) + .epsilon_k(1.0) + .add_path(path); + let invalid = FeffFitDataset::new() + .data(&k, &DVector::zeros(k.len() - 1)) + .epsilon_k(1.0); + let datasets = vec![valid.clone(), invalid, valid]; + + let mut initial = FitVariables::new(); + initial.insert("amp", FitVariable::new(0.95, true)); + + let out = feffit_independent(&datasets, &initial, &FeffBatchOptions::parallel()); + assert_eq!(out.len(), datasets.len()); + assert!(out[0].is_ok()); + assert!(out[1].is_err()); + assert!(out[2].is_ok()); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/transform.rs b/crates/xraytsubaki/src/xafs/fitting/transform.rs new file mode 100644 index 0000000..a5ee6fd --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/transform.rs @@ -0,0 +1,251 @@ +use std::cmp::Ordering; + +use nalgebra::DVector; +use num_complex::Complex64; + +use crate::xafs::xrayfft::XrayFFTF; + +use super::errors::FittingError; +use super::types::{FeffFitTransform, FitSpace}; + +#[derive(Debug, Clone)] +pub struct TransformOutput { + pub r: DVector, + pub chir: Vec, + pub chir_re: DVector, + pub chir_im: DVector, + pub chir_mag: DVector, + pub mask_indices: Vec, +} + +pub fn validate_transform(transform: &FeffFitTransform) -> Result<(), FittingError> { + if transform.fitspace != FitSpace::R { + return Err(FittingError::InvalidTransform { + reason: "MVP only supports R-space fitting".to_string(), + }); + } + if transform.kmax.partial_cmp(&transform.kmin) != Some(Ordering::Greater) { + return Err(FittingError::InvalidTransform { + reason: format!( + "kmax ({}) must be larger than kmin ({})", + transform.kmax, transform.kmin + ), + }); + } + if transform.rmax.partial_cmp(&transform.rmin) != Some(Ordering::Greater) { + return Err(FittingError::InvalidTransform { + reason: format!( + "rmax ({}) must be larger than rmin ({})", + transform.rmax, transform.rmin + ), + }); + } + if transform.nfft < 16 { + return Err(FittingError::InvalidTransform { + reason: "nfft must be at least 16".to_string(), + }); + } + if transform.kweight < 0.0 { + return Err(FittingError::InvalidTransform { + reason: "kweight must be non-negative".to_string(), + }); + } + if let Some(kstep) = transform.kstep { + if kstep <= 0.0 { + return Err(FittingError::InvalidTransform { + reason: "kstep must be positive when provided".to_string(), + }); + } + } + Ok(()) +} + +pub fn apply_r_transform( + k: &DVector, + chi: &DVector, + transform: &FeffFitTransform, +) -> Result { + if k.len() != chi.len() { + return Err(FittingError::InvalidDataset { + reason: format!( + "k/chi length mismatch for transform: {} vs {}", + k.len(), + chi.len() + ), + }); + } + + let mut fft = XrayFFTF::new(); + fft.kmin = Some(transform.kmin); + fft.kmax = Some(transform.kmax); + fft.kweight = Some(transform.kweight); + fft.dk = Some(transform.dk); + fft.dk2 = transform.dk2; + fft.window = Some(transform.window); + fft.nfft = Some(transform.nfft); + fft.kstep = transform.kstep; + + fft.xftf(k, chi) + .map_err(|error| FittingError::InvalidTransform { + reason: error.to_string(), + })?; + + let r = fft + .get_r() + .cloned() + .ok_or_else(|| FittingError::InvalidTransform { + reason: "missing r grid after forward transform".to_string(), + })?; + + let chir_dft = fft + .get_chir() + .ok_or_else(|| FittingError::InvalidTransform { + reason: "missing chi(R) after forward transform".to_string(), + })?; + + let chir_raw: Vec = chir_dft + .iter() + .take(r.len()) + .map(|value| Complex64::new(value.re, value.im)) + .collect(); + + let mut chir_re = DVector::from_iterator(chir_raw.len(), chir_raw.iter().map(|value| value.re)); + let mut chir_im = DVector::from_iterator(chir_raw.len(), chir_raw.iter().map(|value| value.im)); + + let r_window = crate::xafs::xafsutils::ftwindow( + &r, + Some(transform.rmin), + Some(transform.rmax), + Some(transform.dr), + transform.dr2, + Some(transform.rwindow), + ) + .map_err(|error| FittingError::InvalidTransform { + reason: format!("failed to create R-window: {error}"), + })?; + + for i in 0..chir_re.len() { + chir_re[i] *= r_window[i]; + chir_im[i] *= r_window[i]; + } + + let chir = chir_re + .iter() + .zip(chir_im.iter()) + .map(|(re, im)| Complex64::new(*re, *im)) + .collect::>(); + let chir_mag = DVector::from_iterator(chir.len(), chir.iter().map(|value| value.norm())); + + let mask_indices = r + .iter() + .enumerate() + .filter_map(|(index, rv)| (*rv >= transform.rmin && *rv <= transform.rmax).then_some(index)) + .collect::>(); + + if mask_indices.is_empty() { + return Err(FittingError::InvalidTransform { + reason: "configured R-range selects zero points".to_string(), + }); + } + + Ok(TransformOutput { + r, + chir, + chir_re, + chir_im, + chir_mag, + mask_indices, + }) +} + +pub fn residual_in_r_space( + data: &TransformOutput, + model: &TransformOutput, + epsilon_k: Option, +) -> Result, FittingError> { + if data.r.len() != model.r.len() { + return Err(FittingError::InvalidDataset { + reason: format!( + "data/model R grids differ: {} vs {}", + data.r.len(), + model.r.len() + ), + }); + } + + let sigma = epsilon_k.unwrap_or(1.0).max(1.0e-12); + let mut residual = Vec::with_capacity(data.mask_indices.len() * 2); + + for &index in data.mask_indices.iter() { + if index >= model.chir.len() || index >= data.chir.len() { + continue; + } + let diff = data.chir[index] - model.chir[index]; + residual.push(diff.re / sigma); + residual.push(diff.im / sigma); + } + + if residual.is_empty() { + return Err(FittingError::InvalidTransform { + reason: "R-space residual is empty after masking".to_string(), + }); + } + + Ok(DVector::from_vec(residual)) +} + +pub fn compute_n_idp(transform: &FeffFitTransform) -> f64 { + 1.0 + 2.0 + * (transform.rmax - transform.rmin).max(0.0) + * (transform.kmax - transform.kmin).max(0.0) + / std::f64::consts::PI +} + +#[cfg(test)] +mod tests { + use super::*; + use crate::xafs::xafsutils::FTWindow; + + #[test] + fn test_validate_transform_rejects_invalid_ranges() { + let transform = FeffFitTransform { + kmin: 10.0, + kmax: 2.0, + ..FeffFitTransform::default() + }; + let err = validate_transform(&transform).unwrap_err(); + assert!(matches!(err, FittingError::InvalidTransform { .. })); + } + + #[test] + fn test_apply_r_transform_returns_masked_output() { + let k = DVector::from_iterator(400, (0..400).map(|i| 0.05 * (i as f64 + 1.0))); + let chi = k.map(|kv| (2.0 * kv).sin() * (-0.01 * kv * kv).exp()); + + let transform = FeffFitTransform { + kmin: 2.0, + kmax: 14.0, + window: FTWindow::Hanning, + rmin: 1.0, + rmax: 3.0, + ..FeffFitTransform::default() + }; + + let out = apply_r_transform(&k, &chi, &transform).unwrap(); + assert!(!out.mask_indices.is_empty()); + assert_eq!(out.chir.len(), out.r.len()); + } + + #[test] + fn test_compute_n_idp_positive() { + let transform = FeffFitTransform { + kmin: 2.0, + kmax: 14.0, + rmin: 1.0, + rmax: 3.0, + ..FeffFitTransform::default() + }; + let n_idp = compute_n_idp(&transform); + assert!(n_idp > 1.0); + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/types.rs b/crates/xraytsubaki/src/xafs/fitting/types.rs new file mode 100644 index 0000000..e978ba4 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/types.rs @@ -0,0 +1,787 @@ +use std::collections::BTreeMap; +use std::num::NonZeroUsize; +use std::path::PathBuf; + +use nalgebra::DVector; +use serde::{Deserialize, Serialize}; + +use crate::xafs::xafsutils::FTWindow; + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +pub enum FeffFlavor { + Feff85L, + Feff10, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] +pub enum FitSpace { + R, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +pub enum FeffExecutionMode { + #[default] + Feff85LModules, +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +pub enum FeffBatchExecutionStrategy { + Sequential, + #[default] + GlobalPool, + DedicatedPool { + threads: NonZeroUsize, + }, +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffBatchOptions { + pub strategy: FeffBatchExecutionStrategy, + pub chunk_size: NonZeroUsize, +} + +impl Default for FeffBatchOptions { + fn default() -> Self { + Self { + strategy: FeffBatchExecutionStrategy::GlobalPool, + chunk_size: NonZeroUsize::new(256).expect("nonzero constant"), + } + } +} + +impl FeffBatchOptions { + pub fn new() -> Self { + Self::default() + } + + pub fn parallel() -> Self { + Self::default() + } + + pub fn sequential() -> Self { + Self { + strategy: FeffBatchExecutionStrategy::Sequential, + ..Self::default() + } + } + + pub fn dedicated(threads: NonZeroUsize) -> Self { + Self { + strategy: FeffBatchExecutionStrategy::DedicatedPool { threads }, + ..Self::default() + } + } + + pub fn with_strategy(mut self, strategy: FeffBatchExecutionStrategy) -> Self { + self.strategy = strategy; + self + } + + pub fn with_chunk_size(mut self, chunk_size: NonZeroUsize) -> Self { + self.chunk_size = chunk_size; + self + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffRunRequest { + pub executable_path: PathBuf, + pub workspace_dir: PathBuf, + pub feffinp: Option, + pub mode: FeffExecutionMode, + pub timeout_sec: Option, +} + +impl Default for FeffRunRequest { + fn default() -> Self { + Self { + executable_path: PathBuf::new(), + workspace_dir: PathBuf::new(), + feffinp: None, + mode: FeffExecutionMode::Feff85LModules, + timeout_sec: None, + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffModuleCommand { + pub module: String, + pub executable: PathBuf, +} + +impl Default for FeffModuleCommand { + fn default() -> Self { + Self { + module: String::new(), + executable: PathBuf::new(), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffResolvedCommands { + pub mode: FeffExecutionMode, + pub modules: Vec, +} + +impl Default for FeffResolvedCommands { + fn default() -> Self { + Self { + mode: FeffExecutionMode::Feff85LModules, + modules: Vec::new(), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffRunResult { + pub mode: FeffExecutionMode, + pub workspace_dir: PathBuf, + pub feffinp_path: PathBuf, + pub resolved: FeffResolvedCommands, + pub logs: Vec, + pub path_files: Vec, +} + +impl Default for FeffRunResult { + fn default() -> Self { + Self { + mode: FeffExecutionMode::Feff85LModules, + workspace_dir: PathBuf::new(), + feffinp_path: PathBuf::new(), + resolved: FeffResolvedCommands::default(), + logs: Vec::new(), + path_files: Vec::new(), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(untagged)] +pub enum PathParamSpec { + Value(f64), + Expression(String), +} + +impl Default for PathParamSpec { + fn default() -> Self { + Self::Value(0.0) + } +} + +impl From for PathParamSpec { + fn from(value: f64) -> Self { + Self::Value(value) + } +} + +impl From<&str> for PathParamSpec { + fn from(value: &str) -> Self { + Self::Expression(value.to_string()) + } +} + +impl From for PathParamSpec { + fn from(value: String) -> Self { + Self::Expression(value) + } +} + +impl PathParamSpec { + pub fn as_expression(&self) -> Option<&str> { + match self { + Self::Expression(expr) => Some(expr.as_str()), + Self::Value(_) => None, + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FitVariable { + pub value: f64, + pub vary: bool, + pub min: Option, + pub max: Option, + pub expr: Option, + pub stderr: Option, + pub init_value: f64, +} + +impl Default for FitVariable { + fn default() -> Self { + Self { + value: 0.0, + vary: false, + min: None, + max: None, + expr: None, + stderr: None, + init_value: 0.0, + } + } +} + +impl FitVariable { + pub fn new(value: f64, vary: bool) -> Self { + Self { + value, + vary, + init_value: value, + ..Self::default() + } + } + + pub fn with_bounds(mut self, min: Option, max: Option) -> Self { + self.min = min; + self.max = max; + self + } + + pub fn with_expr>(mut self, expr: S) -> Self { + self.expr = Some(expr.into()); + self.vary = false; + self + } + + pub fn clamp(&self, value: f64) -> f64 { + let mut out = value; + if let Some(min) = self.min { + out = out.max(min); + } + if let Some(max) = self.max { + out = out.min(max); + } + out + } +} + +/// Lightweight parameter specification for the builder API. +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct Param { + pub name: String, + pub value: f64, + pub vary: bool, + pub min: Option, + pub max: Option, + pub expr: Option, +} + +impl Default for Param { + fn default() -> Self { + Self { + name: String::new(), + value: 0.0, + vary: true, + min: None, + max: None, + expr: None, + } + } +} + +impl Param { + /// Varying parameter with initial value. + pub fn new(name: impl Into, value: f64) -> Self { + Self { + name: name.into(), + value, + vary: true, + min: None, + max: None, + expr: None, + } + } + + /// Fixed parameter (vary=false). + pub fn fixed(name: impl Into, value: f64) -> Self { + Self { + name: name.into(), + value, + vary: false, + min: None, + max: None, + expr: None, + } + } + + /// Expression-derived parameter (vary=false). + pub fn expr(name: impl Into, expr: impl Into) -> Self { + Self { + name: name.into(), + value: 0.0, + vary: false, + min: None, + max: None, + expr: Some(expr.into()), + } + } + + /// Set bounds (consuming Self). + pub fn bounds(mut self, min: f64, max: f64) -> Self { + self.min = Some(min); + self.max = Some(max); + self + } + + /// Convert to FitVariable. + pub fn to_fit_variable(&self) -> FitVariable { + let mut var = FitVariable::new(self.value, self.vary).with_bounds(self.min, self.max); + if let Some(expr) = self.expr.as_ref() { + var = var.with_expr(expr.clone()); + } + var + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize, Default)] +#[serde(default)] +pub struct FitVariables { + pub vars: BTreeMap, +} + +impl FitVariables { + pub fn new() -> Self { + Self::default() + } + + pub fn insert>(&mut self, name: S, variable: FitVariable) -> &mut Self { + self.vars.insert(name.into(), variable); + self + } + + pub fn get(&self, name: &str) -> Option<&FitVariable> { + self.vars.get(name) + } + + pub fn get_mut(&mut self, name: &str) -> Option<&mut FitVariable> { + self.vars.get_mut(name) + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffDat { + pub filename: String, + pub title: String, + pub version: String, + pub absorber: Option, + pub shell: Option, + pub reff: f64, + pub degen: f64, + pub nleg: usize, + pub k: DVector, + pub real_phc: DVector, + pub mag_feff: DVector, + pub pha_feff: DVector, + pub red_fact: DVector, + pub lam: DVector, + pub rep: DVector, + pub pha: DVector, + pub amp: DVector, + pub geometry: Vec, +} + +impl Default for FeffDat { + fn default() -> Self { + Self { + filename: String::new(), + title: String::new(), + version: String::new(), + absorber: None, + shell: None, + reff: 0.0, + degen: 1.0, + nleg: 0, + k: DVector::zeros(0), + real_phc: DVector::zeros(0), + mag_feff: DVector::zeros(0), + pha_feff: DVector::zeros(0), + red_fact: DVector::zeros(0), + lam: DVector::zeros(0), + rep: DVector::zeros(0), + pha: DVector::zeros(0), + amp: DVector::zeros(0), + geometry: Vec::new(), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffPathModel { + pub label: String, + pub feff: FeffDat, + pub use_path: bool, + pub degen: PathParamSpec, + pub s02: PathParamSpec, + pub e0: PathParamSpec, + pub ei: PathParamSpec, + pub deltar: PathParamSpec, + pub sigma2: PathParamSpec, + pub third: PathParamSpec, + pub fourth: PathParamSpec, +} + +impl Default for FeffPathModel { + fn default() -> Self { + Self { + label: String::new(), + feff: FeffDat::default(), + use_path: true, + degen: PathParamSpec::Value(1.0), + s02: PathParamSpec::Value(1.0), + e0: PathParamSpec::Value(0.0), + ei: PathParamSpec::Value(0.0), + deltar: PathParamSpec::Value(0.0), + sigma2: PathParamSpec::Value(0.0), + third: PathParamSpec::Value(0.0), + fourth: PathParamSpec::Value(0.0), + } + } +} + +impl FeffPathModel { + pub fn from_feffdat>(label: S, feff: FeffDat) -> Self { + let degen = feff.degen; + Self { + label: label.into(), + degen: PathParamSpec::Value(degen), + feff, + ..Self::default() + } + } + + pub fn set_s02(mut self, spec: impl Into) -> Self { + self.s02 = spec.into(); + self + } + + pub fn set_e0(mut self, spec: impl Into) -> Self { + self.e0 = spec.into(); + self + } + + pub fn set_ei(mut self, spec: impl Into) -> Self { + self.ei = spec.into(); + self + } + + pub fn set_deltar(mut self, spec: impl Into) -> Self { + self.deltar = spec.into(); + self + } + + pub fn set_sigma2(mut self, spec: impl Into) -> Self { + self.sigma2 = spec.into(); + self + } + + pub fn set_third(mut self, spec: impl Into) -> Self { + self.third = spec.into(); + self + } + + pub fn set_fourth(mut self, spec: impl Into) -> Self { + self.fourth = spec.into(); + self + } + + pub fn set_degen(mut self, spec: impl Into) -> Self { + self.degen = spec.into(); + self + } + + pub fn set_label(mut self, label: impl Into) -> Self { + self.label = label.into(); + self + } + + pub fn set_use_path(mut self, use_path: bool) -> Self { + self.use_path = use_path; + self + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffFitTransform { + pub kmin: f64, + pub kmax: f64, + pub kweight: f64, + pub dk: f64, + pub dk2: Option, + pub window: FTWindow, + pub nfft: usize, + pub kstep: Option, + pub rmin: f64, + pub rmax: f64, + pub dr: f64, + pub dr2: Option, + pub rwindow: FTWindow, + pub fitspace: FitSpace, +} + +impl Default for FeffFitTransform { + fn default() -> Self { + Self { + kmin: 0.0, + kmax: 20.0, + kweight: 2.0, + dk: 4.0, + dk2: None, + window: FTWindow::KaiserBessel, + nfft: 2048, + kstep: Some(0.05), + rmin: 1.0, + rmax: 3.0, + dr: 0.0, + dr2: None, + rwindow: FTWindow::Hanning, + fitspace: FitSpace::R, + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffFitDataset { + pub k: DVector, + pub chi: DVector, + pub epsilon_k: Option, + pub transform: FeffFitTransform, + pub paths: Vec, +} + +impl Default for FeffFitDataset { + fn default() -> Self { + Self { + k: DVector::zeros(0), + chi: DVector::zeros(0), + epsilon_k: None, + transform: FeffFitTransform::default(), + paths: Vec::new(), + } + } +} + +impl FeffFitDataset { + pub fn new() -> Self { + Self::default() + } + + pub fn data(mut self, k: &DVector, chi: &DVector) -> Self { + self.k = k.clone(); + self.chi = chi.clone(); + self + } + + pub fn epsilon_k(mut self, value: f64) -> Self { + self.epsilon_k = Some(value); + self + } + + pub fn add_path(mut self, path: FeffPathModel) -> Self { + self.paths.push(path); + self + } + + pub fn krange(mut self, kmin: f64, kmax: f64) -> Self { + self.transform.kmin = kmin; + self.transform.kmax = kmax; + self + } + + pub fn rrange(mut self, rmin: f64, rmax: f64) -> Self { + self.transform.rmin = rmin; + self.transform.rmax = rmax; + self + } + + pub fn kweight(mut self, value: f64) -> Self { + self.transform.kweight = value; + self + } + + pub fn dk(mut self, value: f64) -> Self { + self.transform.dk = value; + self + } + + pub fn window(mut self, value: FTWindow) -> Self { + self.transform.window = value; + self + } + + pub fn rwindow(mut self, value: FTWindow) -> Self { + self.transform.rwindow = value; + self + } + + pub fn dr(mut self, value: f64) -> Self { + self.transform.dr = value; + self + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct PathContribution { + pub label: String, + pub chi: DVector, + pub chir_re: DVector, + pub chir_im: DVector, + pub chir_mag: DVector, +} + +impl Default for PathContribution { + fn default() -> Self { + Self { + label: String::new(), + chi: DVector::zeros(0), + chir_re: DVector::zeros(0), + chir_im: DVector::zeros(0), + chir_mag: DVector::zeros(0), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct DatasetResult { + pub n_data: usize, + pub chi_square: f64, + pub reduced_chi_square: f64, + pub r_factor: f64, + pub n_idp: f64, + pub k: DVector, + pub data_chi: DVector, + pub model_chi: DVector, + pub r: DVector, + pub data_chir_re: DVector, + pub data_chir_im: DVector, + pub model_chir_re: DVector, + pub model_chir_im: DVector, + pub model_chir_mag: DVector, + pub path_contributions: Vec, +} + +impl Default for DatasetResult { + fn default() -> Self { + Self { + n_data: 0, + chi_square: 0.0, + reduced_chi_square: 0.0, + r_factor: 0.0, + n_idp: 0.0, + k: DVector::zeros(0), + data_chi: DVector::zeros(0), + model_chi: DVector::zeros(0), + r: DVector::zeros(0), + data_chir_re: DVector::zeros(0), + data_chir_im: DVector::zeros(0), + model_chir_re: DVector::zeros(0), + model_chir_im: DVector::zeros(0), + model_chir_mag: DVector::zeros(0), + path_contributions: Vec::new(), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FitWarning { + pub symbol: String, + pub inferred_from: String, + pub default_value: f64, + pub message: String, +} + +impl Default for FitWarning { + fn default() -> Self { + Self { + symbol: String::new(), + inferred_from: String::new(), + default_value: 0.0, + message: String::new(), + } + } +} + +#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)] +#[serde(default)] +pub struct FeffFitResult { + pub variables: FitVariables, + pub n_vary: usize, + pub n_data: usize, + pub chi_square: f64, + pub reduced_chi_square: f64, + pub r_factor: f64, + pub k: DVector, + pub data_chi: DVector, + pub model_chi: DVector, + pub r: DVector, + pub data_chir_re: DVector, + pub data_chir_im: DVector, + pub model_chir_re: DVector, + pub model_chir_im: DVector, + pub model_chir_mag: DVector, + pub path_contributions: Vec, + pub datasets: Vec, + pub n_idp: f64, + pub warnings: Vec, +} + +impl Default for FeffFitResult { + fn default() -> Self { + Self { + variables: FitVariables::default(), + n_vary: 0, + n_data: 0, + chi_square: 0.0, + reduced_chi_square: 0.0, + r_factor: 0.0, + k: DVector::zeros(0), + data_chi: DVector::zeros(0), + model_chi: DVector::zeros(0), + r: DVector::zeros(0), + data_chir_re: DVector::zeros(0), + data_chir_im: DVector::zeros(0), + model_chir_re: DVector::zeros(0), + model_chir_im: DVector::zeros(0), + model_chir_mag: DVector::zeros(0), + path_contributions: Vec::new(), + datasets: Vec::new(), + n_idp: 0.0, + warnings: Vec::new(), + } + } +} + +impl FeffFitResult { + pub fn dataset(&self, index: usize) -> Option<&DatasetResult> { + self.datasets.get(index) + } + + pub fn sync_primary_dataset_fields(&mut self) { + if let Some(dataset) = self.datasets.first() { + self.k = dataset.k.clone(); + self.data_chi = dataset.data_chi.clone(); + self.model_chi = dataset.model_chi.clone(); + self.r = dataset.r.clone(); + self.data_chir_re = dataset.data_chir_re.clone(); + self.data_chir_im = dataset.data_chir_im.clone(); + self.model_chir_re = dataset.model_chir_re.clone(); + self.model_chir_im = dataset.model_chir_im.clone(); + self.model_chir_mag = dataset.model_chir_mag.clone(); + self.path_contributions = dataset.path_contributions.clone(); + } + } +} diff --git a/crates/xraytsubaki/src/xafs/fitting/variables.rs b/crates/xraytsubaki/src/xafs/fitting/variables.rs new file mode 100644 index 0000000..7b6f627 --- /dev/null +++ b/crates/xraytsubaki/src/xafs/fitting/variables.rs @@ -0,0 +1,225 @@ +use std::collections::{BTreeMap, HashMap, HashSet}; + +use nalgebra::DVector; + +use super::errors::FittingError; +use super::expression; +use super::types::{FitVariable, FitVariables, PathParamSpec}; + +impl FitVariables { + pub fn varying_names(&self) -> Vec { + self.vars + .iter() + .filter(|(_, var)| var.vary && var.expr.is_none()) + .map(|(name, _)| name.clone()) + .collect() + } + + pub fn parameter_vector(&self, names: &[String]) -> DVector { + DVector::from_iterator( + names.len(), + names + .iter() + .map(|name| self.vars.get(name).map(|var| var.value).unwrap_or(0.0)), + ) + } + + pub fn apply_parameter_vector( + &mut self, + names: &[String], + values: &DVector, + ) -> Result<(), FittingError> { + if names.len() != values.len() { + return Err(FittingError::InvalidDataset { + reason: format!( + "parameter vector length mismatch: names={}, values={}", + names.len(), + values.len() + ), + }); + } + for (index, name) in names.iter().enumerate() { + if let Some(var) = self.vars.get_mut(name) { + var.value = var.clamp(values[index]); + } + } + Ok(()) + } + + pub fn resolve_values(&self) -> Result, FittingError> { + let mut resolved: HashMap = HashMap::new(); + let mut visiting: HashSet = HashSet::new(); + + fn resolve_one( + name: &str, + vars: &BTreeMap, + resolved: &mut HashMap, + visiting: &mut HashSet, + ) -> Result { + if let Some(value) = resolved.get(name) { + return Ok(*value); + } + if !vars.contains_key(name) { + return Err(FittingError::UndefinedSymbol { + symbol: name.to_string(), + }); + } + if !visiting.insert(name.to_string()) { + return Err(FittingError::CyclicExpression { + symbol: name.to_string(), + }); + } + + let variable = vars.get(name).expect("checked contains_key"); + let value = if let Some(expr) = variable.expr.as_ref() { + eval_expression_with(expr, |symbol| { + if symbol == name { + return Err(FittingError::CyclicExpression { + symbol: symbol.to_string(), + }); + } + resolve_one(symbol, vars, resolved, visiting) + })? + } else { + variable.value + }; + + visiting.remove(name); + resolved.insert(name.to_string(), value); + Ok(value) + } + + for name in self.vars.keys() { + resolve_one(name, &self.vars, &mut resolved, &mut visiting)?; + } + + Ok(BTreeMap::from_iter(resolved)) + } +} + +pub fn resolve_path_param( + spec: &PathParamSpec, + _default: f64, + globals: &BTreeMap, + locals: &BTreeMap, +) -> Result { + let value = match spec { + PathParamSpec::Value(value) => Ok(*value), + PathParamSpec::Expression(expr) => eval_expression_with(expr, |symbol| { + locals + .get(symbol) + .copied() + .or_else(|| globals.get(symbol).copied()) + .ok_or_else(|| FittingError::UndefinedSymbol { + symbol: symbol.to_string(), + }) + }), + }?; + + if value.is_finite() { + return Ok(value); + } + + Err(FittingError::InvalidDataset { + reason: match spec { + PathParamSpec::Value(_) => "path parameter literal value is non-finite".to_string(), + PathParamSpec::Expression(expr) => { + format!("path parameter expression '{expr}' resolved to non-finite value") + } + }, + }) +} + +pub fn eval_expression_with(expr: &str, resolver: F) -> Result +where + F: FnMut(&str) -> Result, +{ + expression::eval_expression_with(expr, resolver) +} + +pub fn extract_symbols(expr: &str) -> Vec { + expression::extract_symbols(expr) +} + +pub fn try_extract_symbols(expr: &str) -> Result, FittingError> { + expression::try_extract_symbols(expr) +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_eval_expression_math_and_symbols() { + let mut symbols = BTreeMap::new(); + symbols.insert("a".to_string(), 2.0); + symbols.insert("b".to_string(), 3.0); + + let value = eval_expression_with("a + b*2 - (4/2)", |name| { + symbols + .get(name) + .copied() + .ok_or_else(|| FittingError::UndefinedSymbol { + symbol: name.to_string(), + }) + }) + .unwrap(); + + assert!((value - 6.0).abs() < 1.0e-12); + } + + #[test] + fn test_eval_expression_rejects_unknown_symbol() { + let err = eval_expression_with("a + z", |name| { + if name == "a" { + Ok(1.0) + } else { + Err(FittingError::UndefinedSymbol { + symbol: name.to_string(), + }) + } + }) + .unwrap_err(); + + assert!(matches!(err, FittingError::UndefinedSymbol { .. })); + } + + #[test] + fn test_fit_variables_resolve_expression_graph() { + let mut vars = FitVariables::new(); + vars.insert("amp", FitVariable::new(0.9, true)); + vars.insert("sig2", FitVariable::new(0.003, true)); + vars.insert( + "sig2_scale", + FitVariable::new(0.0, false).with_expr("sig2 * 2"), + ); + + let resolved = vars.resolve_values().unwrap(); + assert!((resolved["sig2_scale"] - 0.006).abs() < 1.0e-12); + } + + #[test] + fn test_fit_variables_detect_cycle() { + let mut vars = FitVariables::new(); + vars.insert("a", FitVariable::new(0.0, false).with_expr("b")); + vars.insert("b", FitVariable::new(0.0, false).with_expr("a")); + + let err = vars.resolve_values().unwrap_err(); + assert!(matches!(err, FittingError::CyclicExpression { .. })); + } + + #[test] + fn test_extract_symbols_excludes_reff() { + let symbols = extract_symbols("amp * sqrt(reff) + sig2"); + assert_eq!(symbols, vec!["amp".to_string(), "sig2".to_string()]); + } + + #[test] + fn test_resolve_path_param_rejects_non_finite_literal() { + let globals = BTreeMap::new(); + let locals = BTreeMap::new(); + let err = resolve_path_param(&PathParamSpec::Value(f64::NAN), 0.0, &globals, &locals) + .unwrap_err(); + assert!(matches!(err, FittingError::InvalidDataset { .. })); + } +} diff --git a/crates/xraytsubaki/src/xafs/mod.rs b/crates/xraytsubaki/src/xafs/mod.rs index 1643ab9..a3c64e7 100644 --- a/crates/xraytsubaki/src/xafs/mod.rs +++ b/crates/xraytsubaki/src/xafs/mod.rs @@ -24,6 +24,7 @@ pub mod background; pub mod background; pub mod bessel_i0; pub mod errors; +pub mod fitting; pub mod io; pub mod lmutils; #[cfg(feature = "ndarray-compat")] @@ -58,6 +59,7 @@ use xafsutils::XAFSUtils; // Re-export error types for public API pub use errors::{BackgroundError, DataError, FFTError, IOError, MathError, NormalizationError}; +pub use fitting::errors::FittingError; /// Top-level error type that aggregates all domain-specific errors. #[derive(Error, Debug, Clone)] @@ -80,6 +82,9 @@ pub enum XAFSError { #[error("mathematical operation failed: {0}")] Math(#[from] MathError), + #[error("fitting operation failed: {0}")] + Fitting(#[from] FittingError), + // Legacy error variants for backwards compatibility #[error("not enough data")] NotEnoughData, diff --git a/crates/xraytsubaki/tests/feff_builder_examples.rs b/crates/xraytsubaki/tests/feff_builder_examples.rs new file mode 100644 index 0000000..086a9ae --- /dev/null +++ b/crates/xraytsubaki/tests/feff_builder_examples.rs @@ -0,0 +1,227 @@ +use nalgebra::DVector; +use xraytsubaki::prelude::*; + +fn fixture_path(name: &str) -> String { + format!("{}/tests/testfiles/{name}", env!("CARGO_MANIFEST_DIR")) +} + +fn load_two_column(path: &str) -> (DVector, DVector) { + let content = std::fs::read_to_string(path).expect("failed to read fixture"); + let mut x = Vec::new(); + let mut y = Vec::new(); + + for line in content.lines() { + let line = line.trim(); + if line.is_empty() || line.starts_with('#') { + continue; + } + let mut parts = line.split_whitespace(); + let xv: f64 = parts.next().expect("missing x").parse().expect("invalid x"); + let yv: f64 = parts.next().expect("missing y").parse().expect("invalid y"); + x.push(xv); + y.push(yv); + } + + (DVector::from_vec(x), DVector::from_vec(y)) +} + +fn assert_chi_matches_larch( + k: &DVector, + actual: &DVector, + expected: &DVector, + epsilon: f64, +) { + assert_eq!( + actual.len(), + expected.len(), + "model/expected length mismatch" + ); + assert_eq!(k.len(), expected.len(), "k/model length mismatch"); + for i in 0..k.len() { + if k[i] < 2.0 { + continue; + } + let diff = (actual[i] - expected[i]).abs(); + assert!( + diff <= epsilon, + "k={} index={} |actual-expected|={} > {}", + k[i], + i, + diff, + epsilon + ); + } +} + +fn larch_truth_variables() -> FitVariables { + let mut vars = FitVariables::new(); + vars.insert("amp", FitVariable::new(0.92, false)); + vars.insert("de0", FitVariable::new(1.4, false)); + vars.insert("sig2", FitVariable::new(0.0031, false)); + vars.insert("dr", FitVariable::new(0.011, false)); + vars.insert("amp2", FitVariable::new(0.35, false)); + vars.insert("dr2", FitVariable::new(0.0025, false)); + vars +} + +#[test] +fn example_path_builder_matches_xraylarch_path2chi() { + let base_path = feffpath(&fixture_path("feffcu01.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_deltar("dr"); + let path = base_path.clone().set_sigma2("sig2"); + + let (k, chi_expected) = load_two_column(&fixture_path("feff_path_chi_larch_ref.txt")); + let chi = path2chi(&path, &larch_truth_variables(), &k).unwrap(); + assert_chi_matches_larch(&k, &chi, &chi_expected, 3.0e-3); +} + +#[test] +fn example_multi_path_model_matches_xraylarch_ff2chi() { + let path1 = feffpath(&fixture_path("feffcu01.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let path2 = feffpath(&fixture_path("feff0002.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp2") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr2"); + + let (k, chi_expected) = load_two_column(&fixture_path("feff_ff2chi_larch_ref.txt")); + let out = ff2chi(&[path1, path2], &larch_truth_variables(), &k).unwrap(); + assert_chi_matches_larch(&k, &out.chi, &chi_expected, 4.0e-3); +} + +#[test] +fn example_single_dataset_fit_matches_xraylarch_target_curve() { + let path = feffpath(&fixture_path("feffcu01.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let (k, chi_expected) = load_two_column(&fixture_path("feff_fit_target_larch.txt")); + + let result = FeffFit::new() + .data(&k, &chi_expected) + .add_path(path) + .set_inits([("amp", 0.95), ("de0", 0.0), ("sig2", 0.002), ("dr", 0.0)]) + .set_bounds("sig2", 0.0, 0.02) + .krange(2.0, 14.0) + .rrange(1.0, 3.0) + .fit() + .unwrap(); + + assert_eq!(result.datasets.len(), 1); + assert_chi_matches_larch(&k, &result.model_chi, &chi_expected, 6.0e-3); +} + +#[test] +fn example_clone_template_fits_xraylarch_reference_curves() { + let path1 = feffpath(&fixture_path("feffcu01.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let path2 = feffpath(&fixture_path("feff0002.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp2") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr2"); + + let base = FeffFit::new() + .params([ + Param::new("amp", 0.95), + Param::new("de0", 0.0), + Param::new("sig2", 0.002).bounds(0.0, 0.02), + Param::new("dr", 0.0), + Param::new("amp2", 0.2), + Param::new("dr2", 0.0), + ]) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + + let (k1, chi1_expected) = load_two_column(&fixture_path("feff_path_chi_larch_ref.txt")); + let (k2, chi2_expected) = load_two_column(&fixture_path("feff_ff2chi_larch_ref.txt")); + + let r1 = base + .clone() + .data(&k1, &chi1_expected) + .add_path(path1.clone()) + .fit() + .unwrap(); + let r2 = base + .clone() + .data(&k2, &chi2_expected) + .add_path(path1) + .add_path(path2) + .fit() + .unwrap(); + + assert_chi_matches_larch(&k1, &r1.model_chi, &chi1_expected, 7.0e-3); + assert_chi_matches_larch(&k2, &r2.model_chi, &chi2_expected, 7.0e-3); +} + +#[test] +fn example_multi_dataset_global_fit_matches_xraylarch_references() { + let ds1_path = feffpath(&fixture_path("feffcu01.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let ds2_path1 = feffpath(&fixture_path("feffcu01.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr"); + let ds2_path2 = feffpath(&fixture_path("feff0002.dat"), FeffFlavor::Feff85L) + .unwrap() + .set_s02("amp2") + .set_e0("de0") + .set_sigma2("sig2") + .set_deltar("dr2"); + + let (k1, chi1_expected) = load_two_column(&fixture_path("feff_path_chi_larch_ref.txt")); + let (k2, chi2_expected) = load_two_column(&fixture_path("feff_ff2chi_larch_ref.txt")); + + let ds1 = FeffFitDataset::new() + .data(&k1, &chi1_expected) + .add_path(ds1_path) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + let ds2 = FeffFitDataset::new() + .data(&k2, &chi2_expected) + .add_path(ds2_path1) + .add_path(ds2_path2) + .krange(2.0, 14.0) + .rrange(1.0, 3.0); + + let result = FeffFit::new() + .add_dataset(ds1) + .add_dataset(ds2) + .set_inits([ + ("amp", 0.95), + ("de0", 0.0), + ("sig2", 0.002), + ("dr", 0.0), + ("amp2", 0.2), + ("dr2", 0.0), + ]) + .set_bounds("sig2", 0.0, 0.02) + .fit() + .unwrap(); + + assert_eq!(result.datasets.len(), 2); + assert_chi_matches_larch(&k1, &result.datasets[0].model_chi, &chi1_expected, 8.0e-3); + assert_chi_matches_larch(&k2, &result.datasets[1].model_chi, &chi2_expected, 8.0e-3); +} diff --git a/crates/xraytsubaki/tests/pythonscript/.gitignore b/crates/xraytsubaki/tests/pythonscript/.gitignore new file mode 100644 index 0000000..a230a78 --- /dev/null +++ b/crates/xraytsubaki/tests/pythonscript/.gitignore @@ -0,0 +1,2 @@ +.venv/ +__pycache__/ diff --git a/crates/xraytsubaki/tests/pythonscript/README.md b/crates/xraytsubaki/tests/pythonscript/README.md new file mode 100644 index 0000000..b35c2e5 --- /dev/null +++ b/crates/xraytsubaki/tests/pythonscript/README.md @@ -0,0 +1,25 @@ +# Larch Fixture Generation (uv) + +This directory uses `uv` for generating xraylarch-based reference fixtures. + +## Setup dependencies + +```bash +uv lock --project crates/xraytsubaki/tests/pythonscript +``` + +## Regenerate FEFF fitting fixtures + +```bash +uv run --project crates/xraytsubaki/tests/pythonscript \ + python crates/xraytsubaki/tests/pythonscript/generate_test.py --target feff +``` + +## Regenerate all fixtures + +```bash +uv run --project crates/xraytsubaki/tests/pythonscript \ + python crates/xraytsubaki/tests/pythonscript/generate_test.py +``` + +This generates/updates files under `crates/xraytsubaki/tests/testfiles/`, including FEFF fitting references. diff --git a/crates/xraytsubaki/tests/pythonscript/generate_test.py b/crates/xraytsubaki/tests/pythonscript/generate_test.py index c93d86b..60e38ad 100644 --- a/crates/xraytsubaki/tests/pythonscript/generate_test.py +++ b/crates/xraytsubaki/tests/pythonscript/generate_test.py @@ -1,9 +1,12 @@ import os +import argparse import numpy as np from larch.math import utils from larch import Group from larch.xafs import pre_edge, preedge, xafsft, autobk, xftf, xftr +from larch.fitting import param, param_group +from larch.xafs import feffpath, path2chi, ff2chi import json current_dir = os.path.dirname(os.path.abspath(__file__)) @@ -100,18 +103,76 @@ def generate_xftf(): np.savetxt(save_filepath, np.array([group.r, group.chir_mag]).T) + +def generate_feff_fitting_refs(): + test_dir = os.path.join(current_dir, "../testfiles/") + feff_path1 = os.path.join(test_dir, "feffcu01.dat") + feff_path2 = os.path.join(test_dir, "feff0002.dat") + + k = 0.05 * (np.arange(280) + 1.0) + pars = param_group( + amp=param(0.92, vary=False), + de0=param(1.4, vary=False), + sig2=param(0.0031, vary=False), + dr=param(0.011, vary=False), + amp2=param(0.35, vary=False), + dr2=param(0.0025, vary=False), + ) + + path1 = feffpath(feff_path1, s02="amp", e0="de0", sigma2="sig2", deltar="dr") + path2chi(path1, params=pars, k=k) + np.savetxt( + os.path.join(test_dir, "feff_path_chi_larch_ref.txt"), + np.column_stack([path1.k, path1.chi]), + ) + + path2 = feffpath(feff_path2, s02="amp2", e0="de0", sigma2="sig2", deltar="dr2") + out = Group() + ff2chi([path1, path2], params=pars, k=k, group=out) + np.savetxt( + os.path.join(test_dir, "feff_ff2chi_larch_ref.txt"), + np.column_stack([k, out.chi]), + ) + + fit_target_pars = param_group( + amp=param(0.88, vary=False), + de0=param(1.2, vary=False), + sig2=param(0.0032, vary=False), + dr=param(0.012, vary=False), + ) + fit_target_path = feffpath(feff_path1, s02="amp", e0="de0", sigma2="sig2", deltar="dr") + path2chi(fit_target_path, params=fit_target_pars, k=k) + np.savetxt( + os.path.join(test_dir, "feff_fit_target_larch.txt"), + np.column_stack([k, fit_target_path.chi]), + ) + +TARGETS = { + "smooth": generate_test_smooth, + "preedge": generate_preedge, + "window": generate_window_function, + "autobk": generate_autobk, + "xftf": generate_xftf, + "feff": generate_feff_fitting_refs, +} + + if __name__ == "__main__": - - generate_test_smooth() - - generate_preedge() - - generate_window_function() - - generate_autobk() - - generate_xftf() \ No newline at end of file + parser = argparse.ArgumentParser() + parser.add_argument( + "--target", + choices=["all", *TARGETS.keys()], + default="all", + help="Select one fixture group to generate; default updates all fixture groups.", + ) + args = parser.parse_args() + + if args.target == "all": + for fn in TARGETS.values(): + fn() + else: + TARGETS[args.target]() diff --git a/crates/xraytsubaki/tests/pythonscript/pyproject.toml b/crates/xraytsubaki/tests/pythonscript/pyproject.toml new file mode 100644 index 0000000..03b0b33 --- /dev/null +++ b/crates/xraytsubaki/tests/pythonscript/pyproject.toml @@ -0,0 +1,8 @@ +[project] +name = "xraytsubaki-larch-fixtures" +version = "0.1.0" +requires-python = ">=3.11" +dependencies = [ + "numpy>=2.4.2", + "xraylarch>=2026.1.1", +] diff --git a/crates/xraytsubaki/tests/pythonscript/uv.lock b/crates/xraytsubaki/tests/pythonscript/uv.lock new file mode 100644 index 0000000..95460cd --- /dev/null +++ b/crates/xraytsubaki/tests/pythonscript/uv.lock @@ -0,0 +1,2368 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" +resolution-markers = [ + "python_full_version >= '3.14' and sys_platform == 'win32'", + "python_full_version < '3.14' and sys_platform == 'win32'", + "python_full_version >= '3.14' and sys_platform != 'win32'", + "python_full_version < '3.14' and sys_platform != 'win32'", +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "asteval" +version = "1.0.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8f/d4/c19cac7814b8ec273804ebee3c5d3c69ee2084cb75f25297cb4177a6aa85/asteval-1.0.8.tar.gz", hash = "sha256:7175134331726df0e1569f4ab5fa59266192cf1b365db0ff463c978842075cbb", size = 53989, upload-time = "2025-12-17T20:56:08.383Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/31/6cf181011dc738c33bf6ba7aea2e8e1d3c1f71b7dab1942f3054f66f6202/asteval-1.0.8-py3-none-any.whl", hash = "sha256:6c64385c6ff859a474953c124987c7ee8354d781c76509b2c598741c4d1d28e9", size = 22968, upload-time = "2025-12-17T20:56:07.457Z" }, +] + +[[package]] +name = "bibtexparser" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/44/1c/577d3ce406e88f370e80a6ebf76ae52a2866521e0b585e8ec612759894f1/bibtexparser-1.4.4.tar.gz", hash = "sha256:093b6c824f7a71d3a748867c4057b71f77c55b8dbc07efc993b781771520d8fb", size = 55594, upload-time = "2026-01-29T18:58:01.366Z" } + +[[package]] +name = "blake3" +version = "1.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions", marker = "python_full_version < '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/75/aa/abcd75e9600987a0bc6cfe9b6b2ff3f0e2cb08c170addc6e76035b5c4cb3/blake3-1.0.8.tar.gz", hash = "sha256:513cc7f0f5a7c035812604c2c852a0c1468311345573de647e310aca4ab165ba", size = 117308, upload-time = "2025-10-14T06:47:48.83Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/e1/1df74c915fde3c48940247ad64984f40f5968191d7b5230bcc7b31402e7c/blake3-1.0.8-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:9a8946cb6b1d2b2096daaaa89856f39887bce2b78503fa31b78173e3a86fa281", size = 350481, upload-time = "2025-10-14T06:45:26.625Z" }, + { url = "https://files.pythonhosted.org/packages/bb/0d/7c47ae1f5f8d60783ce6234a8b31db351fc62be243006a6276284ca3d40d/blake3-1.0.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:adccc3a139207e02bb7d7bb0715fe0b87069685aad5f3afff820b2f829467904", size = 328039, upload-time = "2025-10-14T06:45:32.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/0a/515209b0c282c360e249b89cd85350d97cfd55fadbb4df736c67b77b27a1/blake3-1.0.8-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fcfe81b3ae3fb5d2e88be0d3259603ff95f0d5ed69f655c28fdaef31e49a470", size = 371092, upload-time = "2025-10-14T06:45:34.062Z" }, + { url = "https://files.pythonhosted.org/packages/a0/33/9d342a2bf5817f006bbe947335e5d387327541ea47590854947befd01251/blake3-1.0.8-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:58ce8d45a5bb5326482de72ea1969a378634236186a970fef63058a5b7b8b435", size = 374859, upload-time = "2025-10-14T06:45:35.262Z" }, + { url = "https://files.pythonhosted.org/packages/5b/fc/ea4bef850a7ec9fbb383503fd3c56056dd9fa44e10c3bc61050ab7b2bac0/blake3-1.0.8-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:83605dbf43f581d8b7175b7f3bfe5388bad5a7c6ac175c9c11d669da31133f4b", size = 448585, upload-time = "2025-10-14T06:45:36.542Z" }, + { url = "https://files.pythonhosted.org/packages/a5/67/167a65a4c431715407d07b1b8b1367698a3ad88e7260edb85f0c5293f08a/blake3-1.0.8-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b5573b052777142b2cecc453d022c3f21aa4aba75011258410bb98f41c1a727", size = 507519, upload-time = "2025-10-14T06:45:37.814Z" }, + { url = "https://files.pythonhosted.org/packages/32/e2/0886e192d634b264c613b0fbf380745b39992b424a0effc00ef08783644e/blake3-1.0.8-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe1b02ab49bfd969ef50b9f17482a2011c77536654af21807ba5c2674e0bb2a0", size = 393645, upload-time = "2025-10-14T06:45:39.146Z" }, + { url = "https://files.pythonhosted.org/packages/fc/3b/7fb2fe615448caaa5f6632b2c7551117b38ccac747a3a5769181e9751641/blake3-1.0.8-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c7780666dc6be809b49442d6d5ce06fdbe33024a87560b58471103ec17644682", size = 387640, upload-time = "2025-10-14T06:45:40.546Z" }, + { url = "https://files.pythonhosted.org/packages/bc/8c/2bfc942c6c97cb3d20f341859343bb86ee20af723fedfc886373e606079b/blake3-1.0.8-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:af394b50c6aa0b1b957a99453d1ee440ef67cd2d1b5669c731647dc723de8a3a", size = 550316, upload-time = "2025-10-14T06:45:42.003Z" }, + { url = "https://files.pythonhosted.org/packages/7e/75/0252be37620699b79dbaa799c9b402d63142a131d16731df4ef09d135dd7/blake3-1.0.8-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c63ece266a43014cf29e772a82857cd8e90315ae3ed53e3c5204851596edd5f2", size = 554463, upload-time = "2025-10-14T06:45:43.22Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6d/d698ae2d5ddd25976fd2c11b079ca071334aecbba6414da8c9cc8e19d833/blake3-1.0.8-cp311-cp311-win32.whl", hash = "sha256:44c2815d4616fad7e2d757d121c0a11780f70ffc817547b3059b5c7e224031a7", size = 228375, upload-time = "2025-10-14T06:45:44.425Z" }, + { url = "https://files.pythonhosted.org/packages/34/d7/33b01e27dc3542dc9ec44132684506f880cd0257b04da0bf7f4b2afa41c8/blake3-1.0.8-cp311-cp311-win_amd64.whl", hash = "sha256:8f2ef8527a7a8afd99b16997d015851ccc0fe2a409082cebb980af2554e5c74c", size = 215733, upload-time = "2025-10-14T06:45:46.049Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a0/b7b6dff04012cfd6e665c09ee446f749bd8ea161b00f730fe1bdecd0f033/blake3-1.0.8-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d8da4233984d51471bd4e4366feda1d90d781e712e0a504ea54b1f2b3577557b", size = 347983, upload-time = "2025-10-14T06:45:47.214Z" }, + { url = "https://files.pythonhosted.org/packages/5b/a2/264091cac31d7ae913f1f296abc20b8da578b958ffb86100a7ce80e8bf5c/blake3-1.0.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1257be19f2d381c868a34cc822fc7f12f817ddc49681b6d1a2790bfbda1a9865", size = 325415, upload-time = "2025-10-14T06:45:48.482Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7d/85a4c0782f613de23d114a7a78fcce270f75b193b3ff3493a0de24ba104a/blake3-1.0.8-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:269f255b110840e52b6ce9db02217e39660ebad3e34ddd5bca8b8d378a77e4e1", size = 371296, upload-time = "2025-10-14T06:45:49.674Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/488475254976ed93fab57c67aa80d3b40df77f7d9db6528c9274bff53e08/blake3-1.0.8-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:66ca28a673025c40db3eba21a9cac52f559f83637efa675b3f6bd8683f0415f3", size = 374516, upload-time = "2025-10-14T06:45:51.23Z" }, + { url = "https://files.pythonhosted.org/packages/7b/21/2a1c47fedb77fb396512677ec6d46caf42ac6e9a897db77edd0a2a46f7bb/blake3-1.0.8-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcb04966537777af56c1f399b35525aa70a1225816e121ff95071c33c0f7abca", size = 447911, upload-time = "2025-10-14T06:45:52.637Z" }, + { url = "https://files.pythonhosted.org/packages/cb/7d/db0626df16029713e7e61b67314c4835e85c296d82bd907c21c6ea271da2/blake3-1.0.8-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e5b5da177d62cc4b7edf0cea08fe4dec960c9ac27f916131efa890a01f747b93", size = 505420, upload-time = "2025-10-14T06:45:54.445Z" }, + { url = "https://files.pythonhosted.org/packages/5b/55/6e737850c2d58a6d9de8a76dad2ae0f75b852a23eb4ecb07a0b165e6e436/blake3-1.0.8-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:38209b10482c97e151681ea3e91cc7141f56adbbf4820a7d701a923124b41e6a", size = 394189, upload-time = "2025-10-14T06:45:55.719Z" }, + { url = "https://files.pythonhosted.org/packages/5b/94/eafaa5cdddadc0c9c603a6a6d8339433475e1a9f60c8bb9c2eed2d8736b6/blake3-1.0.8-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:504d1399b7fb91dfe5c25722d2807990493185faa1917456455480c36867adb5", size = 388001, upload-time = "2025-10-14T06:45:57.067Z" }, + { url = "https://files.pythonhosted.org/packages/17/81/735fa00d13de7f68b25e1b9cb36ff08c6f165e688d85d8ec2cbfcdedccc5/blake3-1.0.8-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c84af132aa09abeadf9a0118c8fb26f4528f3f42c10ef8be0fcf31c478774ec4", size = 550302, upload-time = "2025-10-14T06:45:58.657Z" }, + { url = "https://files.pythonhosted.org/packages/0e/c6/d1fe8bdea4a6088bd54b5a58bc40aed89a4e784cd796af7722a06f74bae7/blake3-1.0.8-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a25db3d36b55f5ed6a86470155cc749fc9c5b91c949b8d14f48658f9d960d9ec", size = 554211, upload-time = "2025-10-14T06:46:00.269Z" }, + { url = "https://files.pythonhosted.org/packages/55/d1/ca74aa450cbe10e396e061f26f7a043891ffa1485537d6b30d3757e20995/blake3-1.0.8-cp312-cp312-win32.whl", hash = "sha256:e0fee93d5adcd44378b008c147e84f181f23715307a64f7b3db432394bbfce8b", size = 228343, upload-time = "2025-10-14T06:46:01.533Z" }, + { url = "https://files.pythonhosted.org/packages/4d/42/bbd02647169e3fbed27558555653ac2578c6f17ccacf7d1956c58ef1d214/blake3-1.0.8-cp312-cp312-win_amd64.whl", hash = "sha256:6a6eafc29e4f478d365a87d2f25782a521870c8514bb43734ac85ae9be71caf7", size = 215704, upload-time = "2025-10-14T06:46:02.79Z" }, + { url = "https://files.pythonhosted.org/packages/55/b8/11de9528c257f7f1633f957ccaff253b706838d22c5d2908e4735798ec01/blake3-1.0.8-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:46dc20976bd6c235959ef0246ec73420d1063c3da2839a9c87ca395cf1fd7943", size = 347771, upload-time = "2025-10-14T06:46:04.248Z" }, + { url = "https://files.pythonhosted.org/packages/50/26/f7668be55c909678b001ecacff11ad7016cd9b4e9c7cc87b5971d638c5a9/blake3-1.0.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d17eb6382634b3a5bc0c0e0454d5265b0becaeeadb6801ed25150b39a999d0cc", size = 325431, upload-time = "2025-10-14T06:46:06.136Z" }, + { url = "https://files.pythonhosted.org/packages/77/57/e8a85fa261894bf7ce7af928ff3408aab60287ab8d58b55d13a3f700b619/blake3-1.0.8-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:19fc6f2b7edab8acff6895fc6e38c19bd79f4c089e21153020c75dfc7397d52d", size = 370994, upload-time = "2025-10-14T06:46:07.398Z" }, + { url = "https://files.pythonhosted.org/packages/62/cd/765b76bb48b8b294fea94c9008b0d82b4cfa0fa2f3c6008d840d01a597e4/blake3-1.0.8-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4f54cff7f15d91dc78a63a2dd02a3dccdc932946f271e2adb4130e0b4cf608ba", size = 374372, upload-time = "2025-10-14T06:46:08.698Z" }, + { url = "https://files.pythonhosted.org/packages/36/7a/32084eadbb28592bb07298f0de316d2da586c62f31500a6b1339a7e7b29b/blake3-1.0.8-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e7e12a777f6b798eb8d06f875d6e108e3008bd658d274d8c676dcf98e0f10537", size = 447627, upload-time = "2025-10-14T06:46:10.002Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f4/3788a1d86e17425eea147e28d7195d7053565fc279236a9fd278c2ec495e/blake3-1.0.8-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ddfc59b0176fb31168f08d5dd536e69b1f4f13b5a0f4b0c3be1003efd47f9308", size = 507536, upload-time = "2025-10-14T06:46:11.614Z" }, + { url = "https://files.pythonhosted.org/packages/fe/01/4639cba48513b94192681b4da472cdec843d3001c5344d7051ee5eaef606/blake3-1.0.8-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a2336d5b2a801a7256da21150348f41610a6c21dae885a3acb1ebbd7333d88d8", size = 394105, upload-time = "2025-10-14T06:46:12.808Z" }, + { url = "https://files.pythonhosted.org/packages/21/ae/6e55c19c8460fada86cd1306a390a09b0c5a2e2e424f9317d2edacea439f/blake3-1.0.8-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4072196547484c95a5a09adbb952e9bb501949f03f9e2a85e7249ef85faaba8", size = 386928, upload-time = "2025-10-14T06:46:16.284Z" }, + { url = "https://files.pythonhosted.org/packages/ee/6c/05b7a5a907df1be53a8f19e7828986fc6b608a44119641ef9c0804fbef15/blake3-1.0.8-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:0eab3318ec02f8e16fe549244791ace2ada2c259332f0c77ab22cf94dfff7130", size = 550003, upload-time = "2025-10-14T06:46:17.791Z" }, + { url = "https://files.pythonhosted.org/packages/b4/03/f0ea4adfedc1717623be6460b3710fcb725ca38082c14274369803f727e1/blake3-1.0.8-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:a33b9a1fb6d1d559a8e0d04b041e99419a6bb771311c774f6ff57ed7119c70ed", size = 553857, upload-time = "2025-10-14T06:46:19.088Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6f/e5410d2e2a30c8aba8389ffc1c0061356916bf5ecd0a210344e7b69b62ab/blake3-1.0.8-cp313-cp313-win32.whl", hash = "sha256:e171b169cb7ea618e362a4dddb7a4d4c173bbc08b9ba41ea3086dd1265530d4f", size = 228315, upload-time = "2025-10-14T06:46:20.391Z" }, + { url = "https://files.pythonhosted.org/packages/79/ef/d9c297956dfecd893f29f59e7b22445aba5b47b7f6815d9ba5dcd73fcae6/blake3-1.0.8-cp313-cp313-win_amd64.whl", hash = "sha256:3168c457255b5d2a2fc356ba696996fcaff5d38284f968210d54376312107662", size = 215477, upload-time = "2025-10-14T06:46:21.542Z" }, + { url = "https://files.pythonhosted.org/packages/20/ba/eaa7723d66dd8ab762a3e85e139bb9c46167b751df6e950ad287adb8fb61/blake3-1.0.8-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:b4d672c24dc15ec617d212a338a4ca14b449829b6072d09c96c63b6e6b621aed", size = 347289, upload-time = "2025-10-14T06:46:22.772Z" }, + { url = "https://files.pythonhosted.org/packages/47/b3/6957f6ee27f0d5b8c4efdfda68a1298926a88c099f4dd89c711049d16526/blake3-1.0.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:1af0e5a29aa56d4fba904452ae784740997440afd477a15e583c38338e641f41", size = 324444, upload-time = "2025-10-14T06:46:24.729Z" }, + { url = "https://files.pythonhosted.org/packages/13/da/722cebca11238f3b24d3cefd2361c9c9ea47cfa0ad9288eeb4d1e0b7cf93/blake3-1.0.8-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef153c5860d5bf1cc71aece69b28097d2a392913eb323d6b52555c875d0439fc", size = 370441, upload-time = "2025-10-14T06:46:26.29Z" }, + { url = "https://files.pythonhosted.org/packages/2e/d5/2f7440c8e41c0af995bad3a159e042af0f4ed1994710af5b4766ca918f65/blake3-1.0.8-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e8ae3689f0c7bfa6ce6ae45cab110e4c3442125c4c23b28f1f097856de26e4d1", size = 374312, upload-time = "2025-10-14T06:46:27.451Z" }, + { url = "https://files.pythonhosted.org/packages/a6/6c/fb6a7812e60ce3e110bcbbb11f167caf3e975c589572c41e1271f35f2c41/blake3-1.0.8-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3fb83532f7456ddeb68dae1b36e1f7c52f9cb72852ac01159bbcb1a12b0f8be0", size = 447007, upload-time = "2025-10-14T06:46:29.056Z" }, + { url = "https://files.pythonhosted.org/packages/13/3b/c99b43fae5047276ea9d944077c190fc1e5f22f57528b9794e21f7adedc6/blake3-1.0.8-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ae7754c7d96e92a70a52e07c732d594cf9924d780f49fffd3a1e9235e0f5ba7", size = 507323, upload-time = "2025-10-14T06:46:30.661Z" }, + { url = "https://files.pythonhosted.org/packages/fc/bb/ba90eddd592f8c074a0694cb0a744b6bd76bfe67a14c2b490c8bdfca3119/blake3-1.0.8-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4bacaae75e98dee3b7da6c5ee3b81ee21a3352dd2477d6f1d1dbfd38cdbf158a", size = 393449, upload-time = "2025-10-14T06:46:31.805Z" }, + { url = "https://files.pythonhosted.org/packages/25/ed/58a2acd0b9e14459cdaef4344db414d4a36e329b9720921b442a454dd443/blake3-1.0.8-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9456c829601d72852d8ba0af8dae0610f7def1d59f5942efde1e2ef93e8a8b57", size = 386844, upload-time = "2025-10-14T06:46:33.195Z" }, + { url = "https://files.pythonhosted.org/packages/4a/04/fed09845b18d90862100c8e48308261e2f663aab25d3c71a6a0bdda6618b/blake3-1.0.8-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:497ef8096ec4ac1ffba9a66152cee3992337cebf8ea434331d8fd9ce5423d227", size = 549550, upload-time = "2025-10-14T06:46:35.23Z" }, + { url = "https://files.pythonhosted.org/packages/d6/65/1859fddfabc1cc72548c2269d988819aad96d854e25eae00531517925901/blake3-1.0.8-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:511133bab85ff60ed143424ce484d08c60894ff7323f685d7a6095f43f0c85c3", size = 553805, upload-time = "2025-10-14T06:46:36.532Z" }, + { url = "https://files.pythonhosted.org/packages/c1/c7/2969352017f62378e388bb07bb2191bc9a953f818dc1cd6b9dd5c24916e1/blake3-1.0.8-cp313-cp313t-win32.whl", hash = "sha256:9c9fbdacfdeb68f7ca53bb5a7a5a593ec996eaf21155ad5b08d35e6f97e60877", size = 228068, upload-time = "2025-10-14T06:46:37.826Z" }, + { url = "https://files.pythonhosted.org/packages/d8/fc/923e25ac9cadfff1cd20038bcc0854d0f98061eb6bc78e42c43615f5982d/blake3-1.0.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3cec94ed5676821cf371e9c9d25a41b4f3ebdb5724719b31b2749653b7cc1dfa", size = 215369, upload-time = "2025-10-14T06:46:39.054Z" }, + { url = "https://files.pythonhosted.org/packages/2e/2a/9f13ea01b03b1b4751a1cc2b6c1ef4b782e19433a59cf35b59cafb2a2696/blake3-1.0.8-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:2c33dac2c6112bc23f961a7ca305c7e34702c8177040eb98d0389d13a347b9e1", size = 347016, upload-time = "2025-10-14T06:46:40.318Z" }, + { url = "https://files.pythonhosted.org/packages/06/8e/8458c4285fbc5de76414f243e4e0fcab795d71a8b75324e14959aee699da/blake3-1.0.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c445eff665d21c3b3b44f864f849a2225b1164c08654beb23224a02f087b7ff1", size = 324496, upload-time = "2025-10-14T06:46:42.355Z" }, + { url = "https://files.pythonhosted.org/packages/49/fa/b913eb9cc4af708c03e01e6b88a8bb3a74833ba4ae4b16b87e2829198e06/blake3-1.0.8-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47939f04b89c5c6ff1e51e883e5efab1ea1bf01a02f4d208d216dddd63d0dd8", size = 370654, upload-time = "2025-10-14T06:46:43.907Z" }, + { url = "https://files.pythonhosted.org/packages/7f/4f/245e0800c33b99c8f2b570d9a7199b51803694913ee4897f339648502933/blake3-1.0.8-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:73e0b4fa25f6e3078526a592fb38fca85ef204fd02eced6731e1cdd9396552d4", size = 374693, upload-time = "2025-10-14T06:46:45.186Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a6/8cb182c8e482071dbdfcc6ec0048271fd48bcb78782d346119ff54993700/blake3-1.0.8-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4b0543c57eb9d6dac9d4bced63e9f7f7b546886ac04cec8da3c3d9c8f30cbbb7", size = 447673, upload-time = "2025-10-14T06:46:46.358Z" }, + { url = "https://files.pythonhosted.org/packages/06/b7/1cbbb5574d2a9436d1b15e7eb5b9d82e178adcaca71a97b0fddaca4bfe3a/blake3-1.0.8-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed972ebd553c0c25363459e9fc71a38c045d8419e365b59acd8cd791eff13981", size = 507233, upload-time = "2025-10-14T06:46:48.109Z" }, + { url = "https://files.pythonhosted.org/packages/9c/45/b55825d90af353b3e26c653bab278da9d6563afcf66736677f9397e465be/blake3-1.0.8-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3bafdec95dfffa3f6571e529644744e280337df15ddd9728f224ba70c5779b23", size = 393852, upload-time = "2025-10-14T06:46:49.511Z" }, + { url = "https://files.pythonhosted.org/packages/34/73/9058a1a457dd20491d1b37de53d6876eff125e1520d9b2dd7d0acbc88de2/blake3-1.0.8-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d78f06f3fb838b34c330e2987090376145cbe5944d8608a0c4779c779618f7b", size = 386442, upload-time = "2025-10-14T06:46:51.205Z" }, + { url = "https://files.pythonhosted.org/packages/30/6d/561d537ffc17985e276e08bf4513f1c106f1fdbef571e782604dc4e44070/blake3-1.0.8-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:dd03ff08d1b6e4fdda1cd03826f971ae8966ef6f683a8c68aa27fb21904b5aa9", size = 549929, upload-time = "2025-10-14T06:46:52.494Z" }, + { url = "https://files.pythonhosted.org/packages/03/2f/dbe20d2c57f1a67c63be4ba310bcebc707b945c902a0bde075d2a8f5cd5c/blake3-1.0.8-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:4e02a3c499e35bf51fc15b2738aca1a76410804c877bcd914752cac4f71f052a", size = 553750, upload-time = "2025-10-14T06:46:54.194Z" }, + { url = "https://files.pythonhosted.org/packages/6b/da/c6cb712663c869b2814870c2798e57289c4268c5ac5fb12d467fce244860/blake3-1.0.8-cp314-cp314-win32.whl", hash = "sha256:a585357d5d8774aad9ffc12435de457f9e35cde55e0dc8bc43ab590a6929e59f", size = 228404, upload-time = "2025-10-14T06:46:56.807Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/c7dcd8bc3094bba1c4274e432f9e77a7df703532ca000eaa550bd066b870/blake3-1.0.8-cp314-cp314-win_amd64.whl", hash = "sha256:9ab5998e2abd9754819753bc2f1cf3edf82d95402bff46aeef45ed392a5468bf", size = 215460, upload-time = "2025-10-14T06:46:58.15Z" }, + { url = "https://files.pythonhosted.org/packages/75/3c/6c8afd856c353176836daa5cc33a7989e8f54569e9d53eb1c53fc8f80c34/blake3-1.0.8-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:e2df12f295f95a804338bd300e8fad4a6f54fd49bd4d9c5893855a230b5188a8", size = 347482, upload-time = "2025-10-14T06:47:00.189Z" }, + { url = "https://files.pythonhosted.org/packages/6a/35/92cd5501ce8e1f5cabdc0c3ac62d69fdb13ff0b60b62abbb2b6d0a53a790/blake3-1.0.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:63379be58438878eeb76ebe4f0efbeaabf42b79f2cff23b6126b7991588ced67", size = 324376, upload-time = "2025-10-14T06:47:01.413Z" }, + { url = "https://files.pythonhosted.org/packages/11/33/503b37220a3e2e31917ef13722efd00055af51c5e88ae30974c733d7ece6/blake3-1.0.8-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88d527c247f9609dc1d45a08fd243e39f0d5300d54c57e048de24d4fa9240ebb", size = 370220, upload-time = "2025-10-14T06:47:02.573Z" }, + { url = "https://files.pythonhosted.org/packages/3e/df/fe817843adf59516c04d44387bd643b422a3b0400ea95c6ede6a49920737/blake3-1.0.8-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506a47897a11ebe8f3cdeb52f1365d6a2f83959e98ccb0c830f8f73277d4d358", size = 373454, upload-time = "2025-10-14T06:47:03.784Z" }, + { url = "https://files.pythonhosted.org/packages/d1/4d/90a2a623575373dfc9b683f1bad1bf017feafa5a6d65d94fb09543050740/blake3-1.0.8-cp314-cp314t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e5122a61b3b004bbbd979bdf83a3aaab432da3e2a842d7ddf1c273f2503b4884", size = 447102, upload-time = "2025-10-14T06:47:04.958Z" }, + { url = "https://files.pythonhosted.org/packages/93/ff/4e8ce314f60115c4c657b1fdbe9225b991da4f5bcc5d1c1f1d151e2f39d6/blake3-1.0.8-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0171e85d56dec1219abdae5f49a0ed12cb3f86a454c29160a64fd8a8166bba37", size = 506791, upload-time = "2025-10-14T06:47:06.82Z" }, + { url = "https://files.pythonhosted.org/packages/44/88/2963a1f18aab52bdcf35379b2b48c34bbc462320c37e76960636b8602c36/blake3-1.0.8-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:003f61e8c41dd9931edddf1cc6a1bb680fb2ac0ad15493ef4a1df9adc59ce9df", size = 393717, upload-time = "2025-10-14T06:47:09.085Z" }, + { url = "https://files.pythonhosted.org/packages/45/d1/a848ed8e8d4e236b9b16381768c9ae99d92890c24886bb4505aa9c3d2033/blake3-1.0.8-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2c3151955efb09ba58cd3e1263521e15e9e3866a40d6bd3556d86fc968e8f95", size = 386150, upload-time = "2025-10-14T06:47:10.363Z" }, + { url = "https://files.pythonhosted.org/packages/96/09/e3eb5d60f97c01de23d9f434e6e1fc117efb466eaa1f6ddbbbcb62580d6e/blake3-1.0.8-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:5eb25bca3cee2e0dd746a214784fb36be6a43640c01c55b6b4e26196e72d076c", size = 549120, upload-time = "2025-10-14T06:47:11.713Z" }, + { url = "https://files.pythonhosted.org/packages/14/ad/3d9661c710febb8957dd685fdb3e5a861aa0ac918eda3031365ce45789e2/blake3-1.0.8-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:ab4e1dea4fa857944944db78e8f20d99ee2e16b2dea5a14f514fb0607753ac83", size = 553264, upload-time = "2025-10-14T06:47:13.317Z" }, + { url = "https://files.pythonhosted.org/packages/11/55/e332a5b49edf377d0690e95951cca21a00c568f6e37315f9749efee52617/blake3-1.0.8-cp314-cp314t-win32.whl", hash = "sha256:67f1bc11bf59464ef092488c707b13dd4e872db36e25c453dfb6e0c7498df9f1", size = 228116, upload-time = "2025-10-14T06:47:14.516Z" }, + { url = "https://files.pythonhosted.org/packages/b0/5c/dbd00727a3dd165d7e0e8af40e630cd7e45d77b525a3218afaff8a87358e/blake3-1.0.8-cp314-cp314t-win_amd64.whl", hash = "sha256:421b99cdf1ff2d1bf703bc56c454f4b286fce68454dd8711abbcb5a0df90c19a", size = 215133, upload-time = "2025-10-14T06:47:16.069Z" }, +] + +[[package]] +name = "boto3" +version = "1.42.44" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1d/88/de5c2a0ce069973345f9fac81200de5b58f503e231dbd566357a5b8c9109/boto3-1.42.44.tar.gz", hash = "sha256:d5601ea520d30674c1d15791a1f98b5c055e973c775e1d9952ccc09ee5913c4e", size = 112865, upload-time = "2026-02-06T20:28:05.647Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/fb/0341da1482f7fa256d257cfba89383f6692570b741598d4e26d879b26c57/boto3-1.42.44-py3-none-any.whl", hash = "sha256:32e995b0d56e19422cff22f586f698e8924c792eb00943de9c517ff4607e4e18", size = 140604, upload-time = "2026-02-06T20:28:03.598Z" }, +] + +[[package]] +name = "botocore" +version = "1.42.44" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/29/ff/54cef2c5ff4e1c77fabc0ed68781e48eb36f33433f82bba3605e9c0e45ce/botocore-1.42.44.tar.gz", hash = "sha256:47ba27360f2afd2c2721545d8909217f7be05fdee16dd8fc0b09589535a0701c", size = 14936071, upload-time = "2026-02-06T20:27:53.654Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/9e/b45c54abfbb902ff174444a48558f97f9917143bc2e996729220f2631db1/botocore-1.42.44-py3-none-any.whl", hash = "sha256:ba406b9243a20591ee87d53abdb883d46416705cebccb639a7f1c923f9dd82df", size = 14611152, upload-time = "2026-02-06T20:27:49.565Z" }, +] + +[[package]] +name = "certifi" +version = "2026.1.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/2d/a891ca51311197f6ad14a7ef42e2399f36cf2f9bd44752b3dc4eab60fdc5/certifi-2026.1.4.tar.gz", hash = "sha256:ac726dd470482006e014ad384921ed6438c457018f4b3d204aea4281258b2120", size = 154268, upload-time = "2026-01-04T02:42:41.825Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e6/ad/3cc14f097111b4de0040c83a525973216457bbeeb63739ef1ed275c1c021/certifi-2026.1.4-py3-none-any.whl", hash = "sha256:9943707519e4add1115f44c2bc244f782c0249876bf51b6599fee1ffbedd685c", size = 152900, upload-time = "2026-01-04T02:42:40.15Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/13/69/33ddede1939fdd074bce5434295f38fae7136463422fe4fd3e0e89b98062/charset_normalizer-3.4.4.tar.gz", hash = "sha256:94537985111c35f28720e43603b8e7b43a6ecfb2ce1d3058bbe955b73404e21a", size = 129418, upload-time = "2025-10-14T04:42:32.879Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/27/c6491ff4954e58a10f69ad90aca8a1b6fe9c5d3c6f380907af3c37435b59/charset_normalizer-3.4.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6e1fcf0720908f200cd21aa4e6750a48ff6ce4afe7ff5a79a90d5ed8a08296f8", size = 206988, upload-time = "2025-10-14T04:40:33.79Z" }, + { url = "https://files.pythonhosted.org/packages/94/59/2e87300fe67ab820b5428580a53cad894272dbb97f38a7a814a2a1ac1011/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f819d5fe9234f9f82d75bdfa9aef3a3d72c4d24a6e57aeaebba32a704553aa0", size = 147324, upload-time = "2025-10-14T04:40:34.961Z" }, + { url = "https://files.pythonhosted.org/packages/07/fb/0cf61dc84b2b088391830f6274cb57c82e4da8bbc2efeac8c025edb88772/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a59cb51917aa591b1c4e6a43c132f0cdc3c76dbad6155df4e28ee626cc77a0a3", size = 142742, upload-time = "2025-10-14T04:40:36.105Z" }, + { url = "https://files.pythonhosted.org/packages/62/8b/171935adf2312cd745d290ed93cf16cf0dfe320863ab7cbeeae1dcd6535f/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8ef3c867360f88ac904fd3f5e1f902f13307af9052646963ee08ff4f131adafc", size = 160863, upload-time = "2025-10-14T04:40:37.188Z" }, + { url = "https://files.pythonhosted.org/packages/09/73/ad875b192bda14f2173bfc1bc9a55e009808484a4b256748d931b6948442/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d9e45d7faa48ee908174d8fe84854479ef838fc6a705c9315372eacbc2f02897", size = 157837, upload-time = "2025-10-14T04:40:38.435Z" }, + { url = "https://files.pythonhosted.org/packages/6d/fc/de9cce525b2c5b94b47c70a4b4fb19f871b24995c728e957ee68ab1671ea/charset_normalizer-3.4.4-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:840c25fb618a231545cbab0564a799f101b63b9901f2569faecd6b222ac72381", size = 151550, upload-time = "2025-10-14T04:40:40.053Z" }, + { url = "https://files.pythonhosted.org/packages/55/c2/43edd615fdfba8c6f2dfbd459b25a6b3b551f24ea21981e23fb768503ce1/charset_normalizer-3.4.4-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ca5862d5b3928c4940729dacc329aa9102900382fea192fc5e52eb69d6093815", size = 149162, upload-time = "2025-10-14T04:40:41.163Z" }, + { url = "https://files.pythonhosted.org/packages/03/86/bde4ad8b4d0e9429a4e82c1e8f5c659993a9a863ad62c7df05cf7b678d75/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d9c7f57c3d666a53421049053eaacdd14bbd0a528e2186fcb2e672effd053bb0", size = 150019, upload-time = "2025-10-14T04:40:42.276Z" }, + { url = "https://files.pythonhosted.org/packages/1f/86/a151eb2af293a7e7bac3a739b81072585ce36ccfb4493039f49f1d3cae8c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:277e970e750505ed74c832b4bf75dac7476262ee2a013f5574dd49075879e161", size = 143310, upload-time = "2025-10-14T04:40:43.439Z" }, + { url = "https://files.pythonhosted.org/packages/b5/fe/43dae6144a7e07b87478fdfc4dbe9efd5defb0e7ec29f5f58a55aeef7bf7/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:31fd66405eaf47bb62e8cd575dc621c56c668f27d46a61d975a249930dd5e2a4", size = 162022, upload-time = "2025-10-14T04:40:44.547Z" }, + { url = "https://files.pythonhosted.org/packages/80/e6/7aab83774f5d2bca81f42ac58d04caf44f0cc2b65fc6db2b3b2e8a05f3b3/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:0d3d8f15c07f86e9ff82319b3d9ef6f4bf907608f53fe9d92b28ea9ae3d1fd89", size = 149383, upload-time = "2025-10-14T04:40:46.018Z" }, + { url = "https://files.pythonhosted.org/packages/4f/e8/b289173b4edae05c0dde07f69f8db476a0b511eac556dfe0d6bda3c43384/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9f7fcd74d410a36883701fafa2482a6af2ff5ba96b9a620e9e0721e28ead5569", size = 159098, upload-time = "2025-10-14T04:40:47.081Z" }, + { url = "https://files.pythonhosted.org/packages/d8/df/fe699727754cae3f8478493c7f45f777b17c3ef0600e28abfec8619eb49c/charset_normalizer-3.4.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf3e58c7ec8a8bed6d66a75d7fb37b55e5015b03ceae72a8e7c74495551e224", size = 152991, upload-time = "2025-10-14T04:40:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/1a/86/584869fe4ddb6ffa3bd9f491b87a01568797fb9bd8933f557dba9771beaf/charset_normalizer-3.4.4-cp311-cp311-win32.whl", hash = "sha256:eecbc200c7fd5ddb9a7f16c7decb07b566c29fa2161a16cf67b8d068bd21690a", size = 99456, upload-time = "2025-10-14T04:40:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/65/f6/62fdd5feb60530f50f7e38b4f6a1d5203f4d16ff4f9f0952962c044e919a/charset_normalizer-3.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:5ae497466c7901d54b639cf42d5b8c1b6a4fead55215500d2f486d34db48d016", size = 106978, upload-time = "2025-10-14T04:40:50.844Z" }, + { url = "https://files.pythonhosted.org/packages/7a/9d/0710916e6c82948b3be62d9d398cb4fcf4e97b56d6a6aeccd66c4b2f2bd5/charset_normalizer-3.4.4-cp311-cp311-win_arm64.whl", hash = "sha256:65e2befcd84bc6f37095f5961e68a6f077bf44946771354a28ad434c2cce0ae1", size = 99969, upload-time = "2025-10-14T04:40:52.272Z" }, + { url = "https://files.pythonhosted.org/packages/f3/85/1637cd4af66fa687396e757dec650f28025f2a2f5a5531a3208dc0ec43f2/charset_normalizer-3.4.4-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0a98e6759f854bd25a58a73fa88833fba3b7c491169f86ce1180c948ab3fd394", size = 208425, upload-time = "2025-10-14T04:40:53.353Z" }, + { url = "https://files.pythonhosted.org/packages/9d/6a/04130023fef2a0d9c62d0bae2649b69f7b7d8d24ea5536feef50551029df/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b5b290ccc2a263e8d185130284f8501e3e36c5e02750fc6b6bdeb2e9e96f1e25", size = 148162, upload-time = "2025-10-14T04:40:54.558Z" }, + { url = "https://files.pythonhosted.org/packages/78/29/62328d79aa60da22c9e0b9a66539feae06ca0f5a4171ac4f7dc285b83688/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74bb723680f9f7a6234dcf67aea57e708ec1fbdf5699fb91dfd6f511b0a320ef", size = 144558, upload-time = "2025-10-14T04:40:55.677Z" }, + { url = "https://files.pythonhosted.org/packages/86/bb/b32194a4bf15b88403537c2e120b817c61cd4ecffa9b6876e941c3ee38fe/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f1e34719c6ed0b92f418c7c780480b26b5d9c50349e9a9af7d76bf757530350d", size = 161497, upload-time = "2025-10-14T04:40:57.217Z" }, + { url = "https://files.pythonhosted.org/packages/19/89/a54c82b253d5b9b111dc74aca196ba5ccfcca8242d0fb64146d4d3183ff1/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:2437418e20515acec67d86e12bf70056a33abdacb5cb1655042f6538d6b085a8", size = 159240, upload-time = "2025-10-14T04:40:58.358Z" }, + { url = "https://files.pythonhosted.org/packages/c0/10/d20b513afe03acc89ec33948320a5544d31f21b05368436d580dec4e234d/charset_normalizer-3.4.4-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11d694519d7f29d6cd09f6ac70028dba10f92f6cdd059096db198c283794ac86", size = 153471, upload-time = "2025-10-14T04:40:59.468Z" }, + { url = "https://files.pythonhosted.org/packages/61/fa/fbf177b55bdd727010f9c0a3c49eefa1d10f960e5f09d1d887bf93c2e698/charset_normalizer-3.4.4-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:ac1c4a689edcc530fc9d9aa11f5774b9e2f33f9a0c6a57864e90908f5208d30a", size = 150864, upload-time = "2025-10-14T04:41:00.623Z" }, + { url = "https://files.pythonhosted.org/packages/05/12/9fbc6a4d39c0198adeebbde20b619790e9236557ca59fc40e0e3cebe6f40/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:21d142cc6c0ec30d2efee5068ca36c128a30b0f2c53c1c07bd78cb6bc1d3be5f", size = 150647, upload-time = "2025-10-14T04:41:01.754Z" }, + { url = "https://files.pythonhosted.org/packages/ad/1f/6a9a593d52e3e8c5d2b167daf8c6b968808efb57ef4c210acb907c365bc4/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:5dbe56a36425d26d6cfb40ce79c314a2e4dd6211d51d6d2191c00bed34f354cc", size = 145110, upload-time = "2025-10-14T04:41:03.231Z" }, + { url = "https://files.pythonhosted.org/packages/30/42/9a52c609e72471b0fc54386dc63c3781a387bb4fe61c20231a4ebcd58bdd/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:5bfbb1b9acf3334612667b61bd3002196fe2a1eb4dd74d247e0f2a4d50ec9bbf", size = 162839, upload-time = "2025-10-14T04:41:04.715Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5b/c0682bbf9f11597073052628ddd38344a3d673fda35a36773f7d19344b23/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:d055ec1e26e441f6187acf818b73564e6e6282709e9bcb5b63f5b23068356a15", size = 150667, upload-time = "2025-10-14T04:41:05.827Z" }, + { url = "https://files.pythonhosted.org/packages/e4/24/a41afeab6f990cf2daf6cb8c67419b63b48cf518e4f56022230840c9bfb2/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:af2d8c67d8e573d6de5bc30cdb27e9b95e49115cd9baad5ddbd1a6207aaa82a9", size = 160535, upload-time = "2025-10-14T04:41:06.938Z" }, + { url = "https://files.pythonhosted.org/packages/2a/e5/6a4ce77ed243c4a50a1fecca6aaaab419628c818a49434be428fe24c9957/charset_normalizer-3.4.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:780236ac706e66881f3b7f2f32dfe90507a09e67d1d454c762cf642e6e1586e0", size = 154816, upload-time = "2025-10-14T04:41:08.101Z" }, + { url = "https://files.pythonhosted.org/packages/a8/ef/89297262b8092b312d29cdb2517cb1237e51db8ecef2e9af5edbe7b683b1/charset_normalizer-3.4.4-cp312-cp312-win32.whl", hash = "sha256:5833d2c39d8896e4e19b689ffc198f08ea58116bee26dea51e362ecc7cd3ed26", size = 99694, upload-time = "2025-10-14T04:41:09.23Z" }, + { url = "https://files.pythonhosted.org/packages/3d/2d/1e5ed9dd3b3803994c155cd9aacb60c82c331bad84daf75bcb9c91b3295e/charset_normalizer-3.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:a79cfe37875f822425b89a82333404539ae63dbdddf97f84dcbc3d339aae9525", size = 107131, upload-time = "2025-10-14T04:41:10.467Z" }, + { url = "https://files.pythonhosted.org/packages/d0/d9/0ed4c7098a861482a7b6a95603edce4c0d9db2311af23da1fb2b75ec26fc/charset_normalizer-3.4.4-cp312-cp312-win_arm64.whl", hash = "sha256:376bec83a63b8021bb5c8ea75e21c4ccb86e7e45ca4eb81146091b56599b80c3", size = 100390, upload-time = "2025-10-14T04:41:11.915Z" }, + { url = "https://files.pythonhosted.org/packages/97/45/4b3a1239bbacd321068ea6e7ac28875b03ab8bc0aa0966452db17cd36714/charset_normalizer-3.4.4-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e1f185f86a6f3403aa2420e815904c67b2f9ebc443f045edd0de921108345794", size = 208091, upload-time = "2025-10-14T04:41:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/7d/62/73a6d7450829655a35bb88a88fca7d736f9882a27eacdca2c6d505b57e2e/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b39f987ae8ccdf0d2642338faf2abb1862340facc796048b604ef14919e55ed", size = 147936, upload-time = "2025-10-14T04:41:14.461Z" }, + { url = "https://files.pythonhosted.org/packages/89/c5/adb8c8b3d6625bef6d88b251bbb0d95f8205831b987631ab0c8bb5d937c2/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3162d5d8ce1bb98dd51af660f2121c55d0fa541b46dff7bb9b9f86ea1d87de72", size = 144180, upload-time = "2025-10-14T04:41:15.588Z" }, + { url = "https://files.pythonhosted.org/packages/91/ed/9706e4070682d1cc219050b6048bfd293ccf67b3d4f5a4f39207453d4b99/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:81d5eb2a312700f4ecaa977a8235b634ce853200e828fbadf3a9c50bab278328", size = 161346, upload-time = "2025-10-14T04:41:16.738Z" }, + { url = "https://files.pythonhosted.org/packages/d5/0d/031f0d95e4972901a2f6f09ef055751805ff541511dc1252ba3ca1f80cf5/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5bd2293095d766545ec1a8f612559f6b40abc0eb18bb2f5d1171872d34036ede", size = 158874, upload-time = "2025-10-14T04:41:17.923Z" }, + { url = "https://files.pythonhosted.org/packages/f5/83/6ab5883f57c9c801ce5e5677242328aa45592be8a00644310a008d04f922/charset_normalizer-3.4.4-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8a8b89589086a25749f471e6a900d3f662d1d3b6e2e59dcecf787b1cc3a1894", size = 153076, upload-time = "2025-10-14T04:41:19.106Z" }, + { url = "https://files.pythonhosted.org/packages/75/1e/5ff781ddf5260e387d6419959ee89ef13878229732732ee73cdae01800f2/charset_normalizer-3.4.4-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc7637e2f80d8530ee4a78e878bce464f70087ce73cf7c1caf142416923b98f1", size = 150601, upload-time = "2025-10-14T04:41:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/d7/57/71be810965493d3510a6ca79b90c19e48696fb1ff964da319334b12677f0/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f8bf04158c6b607d747e93949aa60618b61312fe647a6369f88ce2ff16043490", size = 150376, upload-time = "2025-10-14T04:41:21.398Z" }, + { url = "https://files.pythonhosted.org/packages/e5/d5/c3d057a78c181d007014feb7e9f2e65905a6c4ef182c0ddf0de2924edd65/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:554af85e960429cf30784dd47447d5125aaa3b99a6f0683589dbd27e2f45da44", size = 144825, upload-time = "2025-10-14T04:41:22.583Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8c/d0406294828d4976f275ffbe66f00266c4b3136b7506941d87c00cab5272/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:74018750915ee7ad843a774364e13a3db91682f26142baddf775342c3f5b1133", size = 162583, upload-time = "2025-10-14T04:41:23.754Z" }, + { url = "https://files.pythonhosted.org/packages/d7/24/e2aa1f18c8f15c4c0e932d9287b8609dd30ad56dbe41d926bd846e22fb8d/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c0463276121fdee9c49b98908b3a89c39be45d86d1dbaa22957e38f6321d4ce3", size = 150366, upload-time = "2025-10-14T04:41:25.27Z" }, + { url = "https://files.pythonhosted.org/packages/e4/5b/1e6160c7739aad1e2df054300cc618b06bf784a7a164b0f238360721ab86/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:362d61fd13843997c1c446760ef36f240cf81d3ebf74ac62652aebaf7838561e", size = 160300, upload-time = "2025-10-14T04:41:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/7a/10/f882167cd207fbdd743e55534d5d9620e095089d176d55cb22d5322f2afd/charset_normalizer-3.4.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9a26f18905b8dd5d685d6d07b0cdf98a79f3c7a918906af7cc143ea2e164c8bc", size = 154465, upload-time = "2025-10-14T04:41:28.322Z" }, + { url = "https://files.pythonhosted.org/packages/89/66/c7a9e1b7429be72123441bfdbaf2bc13faab3f90b933f664db506dea5915/charset_normalizer-3.4.4-cp313-cp313-win32.whl", hash = "sha256:9b35f4c90079ff2e2edc5b26c0c77925e5d2d255c42c74fdb70fb49b172726ac", size = 99404, upload-time = "2025-10-14T04:41:29.95Z" }, + { url = "https://files.pythonhosted.org/packages/c4/26/b9924fa27db384bdcd97ab83b4f0a8058d96ad9626ead570674d5e737d90/charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl", hash = "sha256:b435cba5f4f750aa6c0a0d92c541fb79f69a387c91e61f1795227e4ed9cece14", size = 107092, upload-time = "2025-10-14T04:41:31.188Z" }, + { url = "https://files.pythonhosted.org/packages/af/8f/3ed4bfa0c0c72a7ca17f0380cd9e4dd842b09f664e780c13cff1dcf2ef1b/charset_normalizer-3.4.4-cp313-cp313-win_arm64.whl", hash = "sha256:542d2cee80be6f80247095cc36c418f7bddd14f4a6de45af91dfad36d817bba2", size = 100408, upload-time = "2025-10-14T04:41:32.624Z" }, + { url = "https://files.pythonhosted.org/packages/2a/35/7051599bd493e62411d6ede36fd5af83a38f37c4767b92884df7301db25d/charset_normalizer-3.4.4-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:da3326d9e65ef63a817ecbcc0df6e94463713b754fe293eaa03da99befb9a5bd", size = 207746, upload-time = "2025-10-14T04:41:33.773Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/97c8d48ef10d6cd4fcead2415523221624bf58bcf68a802721a6bc807c8f/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8af65f14dc14a79b924524b1e7fffe304517b2bff5a58bf64f30b98bbc5079eb", size = 147889, upload-time = "2025-10-14T04:41:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/10/bf/979224a919a1b606c82bd2c5fa49b5c6d5727aa47b4312bb27b1734f53cd/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:74664978bb272435107de04e36db5a9735e78232b85b77d45cfb38f758efd33e", size = 143641, upload-time = "2025-10-14T04:41:36.116Z" }, + { url = "https://files.pythonhosted.org/packages/ba/33/0ad65587441fc730dc7bd90e9716b30b4702dc7b617e6ba4997dc8651495/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:752944c7ffbfdd10c074dc58ec2d5a8a4cd9493b314d367c14d24c17684ddd14", size = 160779, upload-time = "2025-10-14T04:41:37.229Z" }, + { url = "https://files.pythonhosted.org/packages/67/ed/331d6b249259ee71ddea93f6f2f0a56cfebd46938bde6fcc6f7b9a3d0e09/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d1f13550535ad8cff21b8d757a3257963e951d96e20ec82ab44bc64aeb62a191", size = 159035, upload-time = "2025-10-14T04:41:38.368Z" }, + { url = "https://files.pythonhosted.org/packages/67/ff/f6b948ca32e4f2a4576aa129d8bed61f2e0543bf9f5f2b7fc3758ed005c9/charset_normalizer-3.4.4-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ecaae4149d99b1c9e7b88bb03e3221956f68fd6d50be2ef061b2381b61d20838", size = 152542, upload-time = "2025-10-14T04:41:39.862Z" }, + { url = "https://files.pythonhosted.org/packages/16/85/276033dcbcc369eb176594de22728541a925b2632f9716428c851b149e83/charset_normalizer-3.4.4-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cb6254dc36b47a990e59e1068afacdcd02958bdcce30bb50cc1700a8b9d624a6", size = 149524, upload-time = "2025-10-14T04:41:41.319Z" }, + { url = "https://files.pythonhosted.org/packages/9e/f2/6a2a1f722b6aba37050e626530a46a68f74e63683947a8acff92569f979a/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c8ae8a0f02f57a6e61203a31428fa1d677cbe50c93622b4149d5c0f319c1d19e", size = 150395, upload-time = "2025-10-14T04:41:42.539Z" }, + { url = "https://files.pythonhosted.org/packages/60/bb/2186cb2f2bbaea6338cad15ce23a67f9b0672929744381e28b0592676824/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:47cc91b2f4dd2833fddaedd2893006b0106129d4b94fdb6af1f4ce5a9965577c", size = 143680, upload-time = "2025-10-14T04:41:43.661Z" }, + { url = "https://files.pythonhosted.org/packages/7d/a5/bf6f13b772fbb2a90360eb620d52ed8f796f3c5caee8398c3b2eb7b1c60d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:82004af6c302b5d3ab2cfc4cc5f29db16123b1a8417f2e25f9066f91d4411090", size = 162045, upload-time = "2025-10-14T04:41:44.821Z" }, + { url = "https://files.pythonhosted.org/packages/df/c5/d1be898bf0dc3ef9030c3825e5d3b83f2c528d207d246cbabe245966808d/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:2b7d8f6c26245217bd2ad053761201e9f9680f8ce52f0fcd8d0755aeae5b2152", size = 149687, upload-time = "2025-10-14T04:41:46.442Z" }, + { url = "https://files.pythonhosted.org/packages/a5/42/90c1f7b9341eef50c8a1cb3f098ac43b0508413f33affd762855f67a410e/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:799a7a5e4fb2d5898c60b640fd4981d6a25f1c11790935a44ce38c54e985f828", size = 160014, upload-time = "2025-10-14T04:41:47.631Z" }, + { url = "https://files.pythonhosted.org/packages/76/be/4d3ee471e8145d12795ab655ece37baed0929462a86e72372fd25859047c/charset_normalizer-3.4.4-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99ae2cffebb06e6c22bdc25801d7b30f503cc87dbd283479e7b606f70aff57ec", size = 154044, upload-time = "2025-10-14T04:41:48.81Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6f/8f7af07237c34a1defe7defc565a9bc1807762f672c0fde711a4b22bf9c0/charset_normalizer-3.4.4-cp314-cp314-win32.whl", hash = "sha256:f9d332f8c2a2fcbffe1378594431458ddbef721c1769d78e2cbc06280d8155f9", size = 99940, upload-time = "2025-10-14T04:41:49.946Z" }, + { url = "https://files.pythonhosted.org/packages/4b/51/8ade005e5ca5b0d80fb4aff72a3775b325bdc3d27408c8113811a7cbe640/charset_normalizer-3.4.4-cp314-cp314-win_amd64.whl", hash = "sha256:8a6562c3700cce886c5be75ade4a5db4214fda19fede41d9792d100288d8f94c", size = 107104, upload-time = "2025-10-14T04:41:51.051Z" }, + { url = "https://files.pythonhosted.org/packages/da/5f/6b8f83a55bb8278772c5ae54a577f3099025f9ade59d0136ac24a0df4bde/charset_normalizer-3.4.4-cp314-cp314-win_arm64.whl", hash = "sha256:de00632ca48df9daf77a2c65a484531649261ec9f25489917f09e455cb09ddb2", size = 100743, upload-time = "2025-10-14T04:41:52.122Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4c/925909008ed5a988ccbb72dcc897407e5d6d3bd72410d69e051fc0c14647/charset_normalizer-3.4.4-py3-none-any.whl", hash = "sha256:7a32c560861a02ff789ad905a2fe94e3f840803362c84fecf1851cb4cf3dc37f", size = 53402, upload-time = "2025-10-14T04:42:31.76Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "contourpy" +version = "1.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/58/01/1253e6698a07380cd31a736d248a3f2a50a7c88779a1813da27503cadc2a/contourpy-1.3.3.tar.gz", hash = "sha256:083e12155b210502d0bca491432bb04d56dc3432f95a979b429f2848c3dbe880", size = 13466174, upload-time = "2025-07-26T12:03:12.549Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/91/2e/c4390a31919d8a78b90e8ecf87cd4b4c4f05a5b48d05ec17db8e5404c6f4/contourpy-1.3.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:709a48ef9a690e1343202916450bc48b9e51c049b089c7f79a267b46cffcdaa1", size = 288773, upload-time = "2025-07-26T12:01:02.277Z" }, + { url = "https://files.pythonhosted.org/packages/0d/44/c4b0b6095fef4dc9c420e041799591e3b63e9619e3044f7f4f6c21c0ab24/contourpy-1.3.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:23416f38bfd74d5d28ab8429cc4d63fa67d5068bd711a85edb1c3fb0c3e2f381", size = 270149, upload-time = "2025-07-26T12:01:04.072Z" }, + { url = "https://files.pythonhosted.org/packages/30/2e/dd4ced42fefac8470661d7cb7e264808425e6c5d56d175291e93890cce09/contourpy-1.3.3-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:929ddf8c4c7f348e4c0a5a3a714b5c8542ffaa8c22954862a46ca1813b667ee7", size = 329222, upload-time = "2025-07-26T12:01:05.688Z" }, + { url = "https://files.pythonhosted.org/packages/f2/74/cc6ec2548e3d276c71389ea4802a774b7aa3558223b7bade3f25787fafc2/contourpy-1.3.3-cp311-cp311-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9e999574eddae35f1312c2b4b717b7885d4edd6cb46700e04f7f02db454e67c1", size = 377234, upload-time = "2025-07-26T12:01:07.054Z" }, + { url = "https://files.pythonhosted.org/packages/03/b3/64ef723029f917410f75c09da54254c5f9ea90ef89b143ccadb09df14c15/contourpy-1.3.3-cp311-cp311-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:0bf67e0e3f482cb69779dd3061b534eb35ac9b17f163d851e2a547d56dba0a3a", size = 380555, upload-time = "2025-07-26T12:01:08.801Z" }, + { url = "https://files.pythonhosted.org/packages/5f/4b/6157f24ca425b89fe2eb7e7be642375711ab671135be21e6faa100f7448c/contourpy-1.3.3-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:51e79c1f7470158e838808d4a996fa9bac72c498e93d8ebe5119bc1e6becb0db", size = 355238, upload-time = "2025-07-26T12:01:10.319Z" }, + { url = "https://files.pythonhosted.org/packages/98/56/f914f0dd678480708a04cfd2206e7c382533249bc5001eb9f58aa693e200/contourpy-1.3.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:598c3aaece21c503615fd59c92a3598b428b2f01bfb4b8ca9c4edeecc2438620", size = 1326218, upload-time = "2025-07-26T12:01:12.659Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d7/4a972334a0c971acd5172389671113ae82aa7527073980c38d5868ff1161/contourpy-1.3.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:322ab1c99b008dad206d406bb61d014cf0174df491ae9d9d0fac6a6fda4f977f", size = 1392867, upload-time = "2025-07-26T12:01:15.533Z" }, + { url = "https://files.pythonhosted.org/packages/75/3e/f2cc6cd56dc8cff46b1a56232eabc6feea52720083ea71ab15523daab796/contourpy-1.3.3-cp311-cp311-win32.whl", hash = "sha256:fd907ae12cd483cd83e414b12941c632a969171bf90fc937d0c9f268a31cafff", size = 183677, upload-time = "2025-07-26T12:01:17.088Z" }, + { url = "https://files.pythonhosted.org/packages/98/4b/9bd370b004b5c9d8045c6c33cf65bae018b27aca550a3f657cdc99acdbd8/contourpy-1.3.3-cp311-cp311-win_amd64.whl", hash = "sha256:3519428f6be58431c56581f1694ba8e50626f2dd550af225f82fb5f5814d2a42", size = 225234, upload-time = "2025-07-26T12:01:18.256Z" }, + { url = "https://files.pythonhosted.org/packages/d9/b6/71771e02c2e004450c12b1120a5f488cad2e4d5b590b1af8bad060360fe4/contourpy-1.3.3-cp311-cp311-win_arm64.whl", hash = "sha256:15ff10bfada4bf92ec8b31c62bf7c1834c244019b4a33095a68000d7075df470", size = 193123, upload-time = "2025-07-26T12:01:19.848Z" }, + { url = "https://files.pythonhosted.org/packages/be/45/adfee365d9ea3d853550b2e735f9d66366701c65db7855cd07621732ccfc/contourpy-1.3.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b08a32ea2f8e42cf1d4be3169a98dd4be32bafe4f22b6c4cb4ba810fa9e5d2cb", size = 293419, upload-time = "2025-07-26T12:01:21.16Z" }, + { url = "https://files.pythonhosted.org/packages/53/3e/405b59cfa13021a56bba395a6b3aca8cec012b45bf177b0eaf7a202cde2c/contourpy-1.3.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:556dba8fb6f5d8742f2923fe9457dbdd51e1049c4a43fd3986a0b14a1d815fc6", size = 273979, upload-time = "2025-07-26T12:01:22.448Z" }, + { url = "https://files.pythonhosted.org/packages/d4/1c/a12359b9b2ca3a845e8f7f9ac08bdf776114eb931392fcad91743e2ea17b/contourpy-1.3.3-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92d9abc807cf7d0e047b95ca5d957cf4792fcd04e920ca70d48add15c1a90ea7", size = 332653, upload-time = "2025-07-26T12:01:24.155Z" }, + { url = "https://files.pythonhosted.org/packages/63/12/897aeebfb475b7748ea67b61e045accdfcf0d971f8a588b67108ed7f5512/contourpy-1.3.3-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2e8faa0ed68cb29af51edd8e24798bb661eac3bd9f65420c1887b6ca89987c8", size = 379536, upload-time = "2025-07-26T12:01:25.91Z" }, + { url = "https://files.pythonhosted.org/packages/43/8a/a8c584b82deb248930ce069e71576fc09bd7174bbd35183b7943fb1064fd/contourpy-1.3.3-cp312-cp312-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:626d60935cf668e70a5ce6ff184fd713e9683fb458898e4249b63be9e28286ea", size = 384397, upload-time = "2025-07-26T12:01:27.152Z" }, + { url = "https://files.pythonhosted.org/packages/cc/8f/ec6289987824b29529d0dfda0d74a07cec60e54b9c92f3c9da4c0ac732de/contourpy-1.3.3-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4d00e655fcef08aba35ec9610536bfe90267d7ab5ba944f7032549c55a146da1", size = 362601, upload-time = "2025-07-26T12:01:28.808Z" }, + { url = "https://files.pythonhosted.org/packages/05/0a/a3fe3be3ee2dceb3e615ebb4df97ae6f3828aa915d3e10549ce016302bd1/contourpy-1.3.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:451e71b5a7d597379ef572de31eeb909a87246974d960049a9848c3bc6c41bf7", size = 1331288, upload-time = "2025-07-26T12:01:31.198Z" }, + { url = "https://files.pythonhosted.org/packages/33/1d/acad9bd4e97f13f3e2b18a3977fe1b4a37ecf3d38d815333980c6c72e963/contourpy-1.3.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:459c1f020cd59fcfe6650180678a9993932d80d44ccde1fa1868977438f0b411", size = 1403386, upload-time = "2025-07-26T12:01:33.947Z" }, + { url = "https://files.pythonhosted.org/packages/cf/8f/5847f44a7fddf859704217a99a23a4f6417b10e5ab1256a179264561540e/contourpy-1.3.3-cp312-cp312-win32.whl", hash = "sha256:023b44101dfe49d7d53932be418477dba359649246075c996866106da069af69", size = 185018, upload-time = "2025-07-26T12:01:35.64Z" }, + { url = "https://files.pythonhosted.org/packages/19/e8/6026ed58a64563186a9ee3f29f41261fd1828f527dd93d33b60feca63352/contourpy-1.3.3-cp312-cp312-win_amd64.whl", hash = "sha256:8153b8bfc11e1e4d75bcb0bff1db232f9e10b274e0929de9d608027e0d34ff8b", size = 226567, upload-time = "2025-07-26T12:01:36.804Z" }, + { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, + { url = "https://files.pythonhosted.org/packages/68/35/0167aad910bbdb9599272bd96d01a9ec6852f36b9455cf2ca67bd4cc2d23/contourpy-1.3.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:177fb367556747a686509d6fef71d221a4b198a3905fe824430e5ea0fda54eb5", size = 293257, upload-time = "2025-07-26T12:01:39.367Z" }, + { url = "https://files.pythonhosted.org/packages/96/e4/7adcd9c8362745b2210728f209bfbcf7d91ba868a2c5f40d8b58f54c509b/contourpy-1.3.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d002b6f00d73d69333dac9d0b8d5e84d9724ff9ef044fd63c5986e62b7c9e1b1", size = 274034, upload-time = "2025-07-26T12:01:40.645Z" }, + { url = "https://files.pythonhosted.org/packages/73/23/90e31ceeed1de63058a02cb04b12f2de4b40e3bef5e082a7c18d9c8ae281/contourpy-1.3.3-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:348ac1f5d4f1d66d3322420f01d42e43122f43616e0f194fc1c9f5d830c5b286", size = 334672, upload-time = "2025-07-26T12:01:41.942Z" }, + { url = "https://files.pythonhosted.org/packages/ed/93/b43d8acbe67392e659e1d984700e79eb67e2acb2bd7f62012b583a7f1b55/contourpy-1.3.3-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:655456777ff65c2c548b7c454af9c6f33f16c8884f11083244b5819cc214f1b5", size = 381234, upload-time = "2025-07-26T12:01:43.499Z" }, + { url = "https://files.pythonhosted.org/packages/46/3b/bec82a3ea06f66711520f75a40c8fc0b113b2a75edb36aa633eb11c4f50f/contourpy-1.3.3-cp313-cp313-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:644a6853d15b2512d67881586bd03f462c7ab755db95f16f14d7e238f2852c67", size = 385169, upload-time = "2025-07-26T12:01:45.219Z" }, + { url = "https://files.pythonhosted.org/packages/4b/32/e0f13a1c5b0f8572d0ec6ae2f6c677b7991fafd95da523159c19eff0696a/contourpy-1.3.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4debd64f124ca62069f313a9cb86656ff087786016d76927ae2cf37846b006c9", size = 362859, upload-time = "2025-07-26T12:01:46.519Z" }, + { url = "https://files.pythonhosted.org/packages/33/71/e2a7945b7de4e58af42d708a219f3b2f4cff7386e6b6ab0a0fa0033c49a9/contourpy-1.3.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a15459b0f4615b00bbd1e91f1b9e19b7e63aea7483d03d804186f278c0af2659", size = 1332062, upload-time = "2025-07-26T12:01:48.964Z" }, + { url = "https://files.pythonhosted.org/packages/12/fc/4e87ac754220ccc0e807284f88e943d6d43b43843614f0a8afa469801db0/contourpy-1.3.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:ca0fdcd73925568ca027e0b17ab07aad764be4706d0a925b89227e447d9737b7", size = 1403932, upload-time = "2025-07-26T12:01:51.979Z" }, + { url = "https://files.pythonhosted.org/packages/a6/2e/adc197a37443f934594112222ac1aa7dc9a98faf9c3842884df9a9d8751d/contourpy-1.3.3-cp313-cp313-win32.whl", hash = "sha256:b20c7c9a3bf701366556e1b1984ed2d0cedf999903c51311417cf5f591d8c78d", size = 185024, upload-time = "2025-07-26T12:01:53.245Z" }, + { url = "https://files.pythonhosted.org/packages/18/0b/0098c214843213759692cc638fce7de5c289200a830e5035d1791d7a2338/contourpy-1.3.3-cp313-cp313-win_amd64.whl", hash = "sha256:1cadd8b8969f060ba45ed7c1b714fe69185812ab43bd6b86a9123fe8f99c3263", size = 226578, upload-time = "2025-07-26T12:01:54.422Z" }, + { url = "https://files.pythonhosted.org/packages/8a/9a/2f6024a0c5995243cd63afdeb3651c984f0d2bc727fd98066d40e141ad73/contourpy-1.3.3-cp313-cp313-win_arm64.whl", hash = "sha256:fd914713266421b7536de2bfa8181aa8c699432b6763a0ea64195ebe28bff6a9", size = 193524, upload-time = "2025-07-26T12:01:55.73Z" }, + { url = "https://files.pythonhosted.org/packages/c0/b3/f8a1a86bd3298513f500e5b1f5fd92b69896449f6cab6a146a5d52715479/contourpy-1.3.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:88df9880d507169449d434c293467418b9f6cbe82edd19284aa0409e7fdb933d", size = 306730, upload-time = "2025-07-26T12:01:57.051Z" }, + { url = "https://files.pythonhosted.org/packages/3f/11/4780db94ae62fc0c2053909b65dc3246bd7cecfc4f8a20d957ad43aa4ad8/contourpy-1.3.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:d06bb1f751ba5d417047db62bca3c8fde202b8c11fb50742ab3ab962c81e8216", size = 287897, upload-time = "2025-07-26T12:01:58.663Z" }, + { url = "https://files.pythonhosted.org/packages/ae/15/e59f5f3ffdd6f3d4daa3e47114c53daabcb18574a26c21f03dc9e4e42ff0/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4e6b05a45525357e382909a4c1600444e2a45b4795163d3b22669285591c1ae", size = 326751, upload-time = "2025-07-26T12:02:00.343Z" }, + { url = "https://files.pythonhosted.org/packages/0f/81/03b45cfad088e4770b1dcf72ea78d3802d04200009fb364d18a493857210/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab3074b48c4e2cf1a960e6bbeb7f04566bf36b1861d5c9d4d8ac04b82e38ba20", size = 375486, upload-time = "2025-07-26T12:02:02.128Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ba/49923366492ffbdd4486e970d421b289a670ae8cf539c1ea9a09822b371a/contourpy-1.3.3-cp313-cp313t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:6c3d53c796f8647d6deb1abe867daeb66dcc8a97e8455efa729516b997b8ed99", size = 388106, upload-time = "2025-07-26T12:02:03.615Z" }, + { url = "https://files.pythonhosted.org/packages/9f/52/5b00ea89525f8f143651f9f03a0df371d3cbd2fccd21ca9b768c7a6500c2/contourpy-1.3.3-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50ed930df7289ff2a8d7afeb9603f8289e5704755c7e5c3bbd929c90c817164b", size = 352548, upload-time = "2025-07-26T12:02:05.165Z" }, + { url = "https://files.pythonhosted.org/packages/32/1d/a209ec1a3a3452d490f6b14dd92e72280c99ae3d1e73da74f8277d4ee08f/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:4feffb6537d64b84877da813a5c30f1422ea5739566abf0bd18065ac040e120a", size = 1322297, upload-time = "2025-07-26T12:02:07.379Z" }, + { url = "https://files.pythonhosted.org/packages/bc/9e/46f0e8ebdd884ca0e8877e46a3f4e633f6c9c8c4f3f6e72be3fe075994aa/contourpy-1.3.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:2b7e9480ffe2b0cd2e787e4df64270e3a0440d9db8dc823312e2c940c167df7e", size = 1391023, upload-time = "2025-07-26T12:02:10.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/70/f308384a3ae9cd2209e0849f33c913f658d3326900d0ff5d378d6a1422d2/contourpy-1.3.3-cp313-cp313t-win32.whl", hash = "sha256:283edd842a01e3dcd435b1c5116798d661378d83d36d337b8dde1d16a5fc9ba3", size = 196157, upload-time = "2025-07-26T12:02:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/880f890a6663b84d9e34a6f88cded89d78f0091e0045a284427cb6b18521/contourpy-1.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:87acf5963fc2b34825e5b6b048f40e3635dd547f590b04d2ab317c2619ef7ae8", size = 240570, upload-time = "2025-07-26T12:02:12.754Z" }, + { url = "https://files.pythonhosted.org/packages/80/99/2adc7d8ffead633234817ef8e9a87115c8a11927a94478f6bb3d3f4d4f7d/contourpy-1.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:3c30273eb2a55024ff31ba7d052dde990d7d8e5450f4bbb6e913558b3d6c2301", size = 199713, upload-time = "2025-07-26T12:02:14.4Z" }, + { url = "https://files.pythonhosted.org/packages/72/8b/4546f3ab60f78c514ffb7d01a0bd743f90de36f0019d1be84d0a708a580a/contourpy-1.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fde6c716d51c04b1c25d0b90364d0be954624a0ee9d60e23e850e8d48353d07a", size = 292189, upload-time = "2025-07-26T12:02:16.095Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e1/3542a9cb596cadd76fcef413f19c79216e002623158befe6daa03dbfa88c/contourpy-1.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:cbedb772ed74ff5be440fa8eee9bd49f64f6e3fc09436d9c7d8f1c287b121d77", size = 273251, upload-time = "2025-07-26T12:02:17.524Z" }, + { url = "https://files.pythonhosted.org/packages/b1/71/f93e1e9471d189f79d0ce2497007731c1e6bf9ef6d1d61b911430c3db4e5/contourpy-1.3.3-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:22e9b1bd7a9b1d652cd77388465dc358dafcd2e217d35552424aa4f996f524f5", size = 335810, upload-time = "2025-07-26T12:02:18.9Z" }, + { url = "https://files.pythonhosted.org/packages/91/f9/e35f4c1c93f9275d4e38681a80506b5510e9327350c51f8d4a5a724d178c/contourpy-1.3.3-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a22738912262aa3e254e4f3cb079a95a67132fc5a063890e224393596902f5a4", size = 382871, upload-time = "2025-07-26T12:02:20.418Z" }, + { url = "https://files.pythonhosted.org/packages/b5/71/47b512f936f66a0a900d81c396a7e60d73419868fba959c61efed7a8ab46/contourpy-1.3.3-cp314-cp314-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:afe5a512f31ee6bd7d0dda52ec9864c984ca3d66664444f2d72e0dc4eb832e36", size = 386264, upload-time = "2025-07-26T12:02:21.916Z" }, + { url = "https://files.pythonhosted.org/packages/04/5f/9ff93450ba96b09c7c2b3f81c94de31c89f92292f1380261bd7195bea4ea/contourpy-1.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f64836de09927cba6f79dcd00fdd7d5329f3fccc633468507079c829ca4db4e3", size = 363819, upload-time = "2025-07-26T12:02:23.759Z" }, + { url = "https://files.pythonhosted.org/packages/3e/a6/0b185d4cc480ee494945cde102cb0149ae830b5fa17bf855b95f2e70ad13/contourpy-1.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:1fd43c3be4c8e5fd6e4f2baeae35ae18176cf2e5cced681cca908addf1cdd53b", size = 1333650, upload-time = "2025-07-26T12:02:26.181Z" }, + { url = "https://files.pythonhosted.org/packages/43/d7/afdc95580ca56f30fbcd3060250f66cedbde69b4547028863abd8aa3b47e/contourpy-1.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:6afc576f7b33cf00996e5c1102dc2a8f7cc89e39c0b55df93a0b78c1bd992b36", size = 1404833, upload-time = "2025-07-26T12:02:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/e2/e2/366af18a6d386f41132a48f033cbd2102e9b0cf6345d35ff0826cd984566/contourpy-1.3.3-cp314-cp314-win32.whl", hash = "sha256:66c8a43a4f7b8df8b71ee1840e4211a3c8d93b214b213f590e18a1beca458f7d", size = 189692, upload-time = "2025-07-26T12:02:30.128Z" }, + { url = "https://files.pythonhosted.org/packages/7d/c2/57f54b03d0f22d4044b8afb9ca0e184f8b1afd57b4f735c2fa70883dc601/contourpy-1.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:cf9022ef053f2694e31d630feaacb21ea24224be1c3ad0520b13d844274614fd", size = 232424, upload-time = "2025-07-26T12:02:31.395Z" }, + { url = "https://files.pythonhosted.org/packages/18/79/a9416650df9b525737ab521aa181ccc42d56016d2123ddcb7b58e926a42c/contourpy-1.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:95b181891b4c71de4bb404c6621e7e2390745f887f2a026b2d99e92c17892339", size = 198300, upload-time = "2025-07-26T12:02:32.956Z" }, + { url = "https://files.pythonhosted.org/packages/1f/42/38c159a7d0f2b7b9c04c64ab317042bb6952b713ba875c1681529a2932fe/contourpy-1.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:33c82d0138c0a062380332c861387650c82e4cf1747aaa6938b9b6516762e772", size = 306769, upload-time = "2025-07-26T12:02:34.2Z" }, + { url = "https://files.pythonhosted.org/packages/c3/6c/26a8205f24bca10974e77460de68d3d7c63e282e23782f1239f226fcae6f/contourpy-1.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ea37e7b45949df430fe649e5de8351c423430046a2af20b1c1961cae3afcda77", size = 287892, upload-time = "2025-07-26T12:02:35.807Z" }, + { url = "https://files.pythonhosted.org/packages/66/06/8a475c8ab718ebfd7925661747dbb3c3ee9c82ac834ccb3570be49d129f4/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d304906ecc71672e9c89e87c4675dc5c2645e1f4269a5063b99b0bb29f232d13", size = 326748, upload-time = "2025-07-26T12:02:37.193Z" }, + { url = "https://files.pythonhosted.org/packages/b4/a3/c5ca9f010a44c223f098fccd8b158bb1cb287378a31ac141f04730dc49be/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ca658cd1a680a5c9ea96dc61cdbae1e85c8f25849843aa799dfd3cb370ad4fbe", size = 375554, upload-time = "2025-07-26T12:02:38.894Z" }, + { url = "https://files.pythonhosted.org/packages/80/5b/68bd33ae63fac658a4145088c1e894405e07584a316738710b636c6d0333/contourpy-1.3.3-cp314-cp314t-manylinux_2_26_s390x.manylinux_2_28_s390x.whl", hash = "sha256:ab2fd90904c503739a75b7c8c5c01160130ba67944a7b77bbf36ef8054576e7f", size = 388118, upload-time = "2025-07-26T12:02:40.642Z" }, + { url = "https://files.pythonhosted.org/packages/40/52/4c285a6435940ae25d7410a6c36bda5145839bc3f0beb20c707cda18b9d2/contourpy-1.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b7301b89040075c30e5768810bc96a8e8d78085b47d8be6e4c3f5a0b4ed478a0", size = 352555, upload-time = "2025-07-26T12:02:42.25Z" }, + { url = "https://files.pythonhosted.org/packages/24/ee/3e81e1dd174f5c7fefe50e85d0892de05ca4e26ef1c9a59c2a57e43b865a/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2a2a8b627d5cc6b7c41a4beff6c5ad5eb848c88255fda4a8745f7e901b32d8e4", size = 1322295, upload-time = "2025-07-26T12:02:44.668Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b2/6d913d4d04e14379de429057cd169e5e00f6c2af3bb13e1710bcbdb5da12/contourpy-1.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:fd6ec6be509c787f1caf6b247f0b1ca598bef13f4ddeaa126b7658215529ba0f", size = 1391027, upload-time = "2025-07-26T12:02:47.09Z" }, + { url = "https://files.pythonhosted.org/packages/93/8a/68a4ec5c55a2971213d29a9374913f7e9f18581945a7a31d1a39b5d2dfe5/contourpy-1.3.3-cp314-cp314t-win32.whl", hash = "sha256:e74a9a0f5e3fff48fb5a7f2fd2b9b70a3fe014a67522f79b7cca4c0c7e43c9ae", size = 202428, upload-time = "2025-07-26T12:02:48.691Z" }, + { url = "https://files.pythonhosted.org/packages/fa/96/fd9f641ffedc4fa3ace923af73b9d07e869496c9cc7a459103e6e978992f/contourpy-1.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:13b68d6a62db8eafaebb8039218921399baf6e47bf85006fd8529f2a08ef33fc", size = 250331, upload-time = "2025-07-26T12:02:50.137Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8c/469afb6465b853afff216f9528ffda78a915ff880ed58813ba4faf4ba0b6/contourpy-1.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:b7448cb5a725bb1e35ce88771b86fba35ef418952474492cf7c764059933ff8b", size = 203831, upload-time = "2025-07-26T12:02:51.449Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/8dcfe16f0107943fa92388c23f6e05cff0ba58058c4c95b00280d4c75a14/contourpy-1.3.3-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cd5dfcaeb10f7b7f9dc8941717c6c2ade08f587be2226222c12b25f0483ed497", size = 278809, upload-time = "2025-07-26T12:02:52.74Z" }, + { url = "https://files.pythonhosted.org/packages/85/a9/8b37ef4f7dafeb335daee3c8254645ef5725be4d9c6aa70b50ec46ef2f7e/contourpy-1.3.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:0c1fc238306b35f246d61a1d416a627348b5cf0648648a031e14bb8705fcdfe8", size = 261593, upload-time = "2025-07-26T12:02:54.037Z" }, + { url = "https://files.pythonhosted.org/packages/0a/59/ebfb8c677c75605cc27f7122c90313fd2f375ff3c8d19a1694bda74aaa63/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:70f9aad7de812d6541d29d2bbf8feb22ff7e1c299523db288004e3157ff4674e", size = 302202, upload-time = "2025-07-26T12:02:55.947Z" }, + { url = "https://files.pythonhosted.org/packages/3c/37/21972a15834d90bfbfb009b9d004779bd5a07a0ec0234e5ba8f64d5736f4/contourpy-1.3.3-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5ed3657edf08512fc3fe81b510e35c2012fbd3081d2e26160f27ca28affec989", size = 329207, upload-time = "2025-07-26T12:02:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/58/bd257695f39d05594ca4ad60df5bcb7e32247f9951fd09a9b8edb82d1daa/contourpy-1.3.3-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:3d1a3799d62d45c18bafd41c5fa05120b96a28079f2393af559b843d1a966a77", size = 225315, upload-time = "2025-07-26T12:02:58.801Z" }, +] + +[[package]] +name = "cycler" +version = "0.12.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a9/95/a3dbbb5028f35eafb79008e7522a75244477d2838f38cbb722248dabc2a8/cycler-0.12.1.tar.gz", hash = "sha256:88bb128f02ba341da8ef447245a9e138fae777f6a23943da4540077d3601eb1c", size = 7615, upload-time = "2023-10-07T05:32:18.335Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl", hash = "sha256:85cef7cff222d8644161529808465972e51340599459b8ac3ccbac5a854e0d30", size = 8321, upload-time = "2023-10-07T05:32:16.783Z" }, +] + +[[package]] +name = "dill" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz", hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa", size = 187315, upload-time = "2026-01-19T02:36:56.85Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl", hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", size = 120019, upload-time = "2026-01-19T02:36:55.663Z" }, +] + +[[package]] +name = "emmet-core" +version = "0.86.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blake3" }, + { name = "monty" }, + { name = "pybtex" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pymatgen" }, + { name = "pymatgen-io-validation" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/07/9979ae29d4b2bc643e870aca427a546ea2e8cf3819cdfe39179e2e983b5e/emmet_core-0.86.3.tar.gz", hash = "sha256:f3b30560f4461db7073e846c7c484713176b7fc01d1450ddb01451979ed5fb9c", size = 308021, upload-time = "2026-01-30T18:11:55.934Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c6/c7/a2b98de578ec870cd40d6c4b944465daeda48062f2ee086a0ee429fcde5c/emmet_core-0.86.3-py3-none-any.whl", hash = "sha256:00689d9102f1621d8889a50707a55e8cfcf16467ec74789350d36daa9e2c7884", size = 308806, upload-time = "2026-01-30T18:11:53.039Z" }, +] + +[[package]] +name = "fabio" +version = "2025.10.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, + { name = "hdf5plugin" }, + { name = "lxml" }, + { name = "numpy" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/26/de/1e20900502b8a04b095fa44affc368ecffbad800dfce34f4e47a4910e2ef/fabio-2025.10.0.tar.gz", hash = "sha256:c19763bcfa02a78a507f3d914b564a8997c88a6aa7b4f87f9db4ce7fa397d256", size = 907037, upload-time = "2025-10-29T15:39:00.195Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/71/63/6423124a02b0c38c619b48f13bf87bb60b75733c3cbe4ff513fafe51ecba/fabio-2025.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:44aa4b724ac5d3fa861afaf43f634501caaa52063b68a6e023829c563d2d8645", size = 1021057, upload-time = "2025-10-29T15:38:05.032Z" }, + { url = "https://files.pythonhosted.org/packages/b2/a8/9e7dbb35e1e2f0b10a5a8c0cff5f11e229d822f1996b0bf50b6e87a14e9f/fabio-2025.10.0-cp311-cp311-macosx_11_0_x86_64.whl", hash = "sha256:0d492c3d4353d2900c2bcf30744f32331c81071283a1ede8b8c1f775f874e0d4", size = 1079562, upload-time = "2025-10-29T15:38:06.608Z" }, + { url = "https://files.pythonhosted.org/packages/94/54/3590c90b8d7f500d6f8ae17fec703fe11419fdb1139ab23bce91d91014e5/fabio-2025.10.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:602da1ca8df271e13d6a321e753bde05f3dd38acf41b6e5e5d5b075df17cc815", size = 1279948, upload-time = "2025-10-29T15:38:09.287Z" }, + { url = "https://files.pythonhosted.org/packages/90/c5/a07b2822081f8550095e720118ead5b9cde52f75b499e1a4e17c87824066/fabio-2025.10.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:61fb5183f491c6ad3b89ea23bdb1d3488f4093b292753b1485fe809db9d1aedf", size = 1417613, upload-time = "2025-10-29T15:38:10.758Z" }, + { url = "https://files.pythonhosted.org/packages/17/fa/3859496b47674865d5669175a9e4457c8bc5801704da531101cb79570741/fabio-2025.10.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:be0811e015fe5fe4e5f9b9b0a42223ab07998cb8ab288f80dc04bc2475f8cee2", size = 1329892, upload-time = "2025-10-29T15:38:12.559Z" }, + { url = "https://files.pythonhosted.org/packages/a8/d0/7a4bd8d6486ce0ce119b6eec4e15f07e36f66b244dad0f10004c8c737735/fabio-2025.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82b4f5576da95a8ccb05f42a35a2e8e646d26ae440a66e25c30bc7c568e5b269", size = 1218586, upload-time = "2025-10-29T15:38:14.009Z" }, + { url = "https://files.pythonhosted.org/packages/73/7b/0cf465181832d2169572c884a9803f913f964d2e09336cf12221f3cf6f57/fabio-2025.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17ed28a5938836dcee78a905952f6b9d4cde9020674fe416ac5ba0bb7d80942a", size = 1292785, upload-time = "2025-10-29T15:38:15.506Z" }, + { url = "https://files.pythonhosted.org/packages/de/02/fa52f926cd2bb56bc25291be4b3c66daa13163cd7fa04c304e8fd863798d/fabio-2025.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:0ebd2ca5337bf45215afa1509b53c047055086098ef6a314190bd5088c62b37e", size = 1335509, upload-time = "2025-10-29T15:38:17.196Z" }, + { url = "https://files.pythonhosted.org/packages/07/ce/83b588f9345c86db2ea4cf4bf7dca139c8c49b84d101bbe630f83a171d6b/fabio-2025.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:994ab2adbdcae777d74500ffab36ff3324a756b90baf611cf078429a142d0e2f", size = 1016834, upload-time = "2025-10-29T15:38:18.53Z" }, + { url = "https://files.pythonhosted.org/packages/b8/97/aafdfb70d82be7b6dabbb85586c6f41b73227c71585d8470fb1d51c2503f/fabio-2025.10.0-cp312-cp312-macosx_11_0_x86_64.whl", hash = "sha256:52128420ea2c5603adc16401c039e0c0a6c28bd5c4e8f8dccf9a2ecb52af4d3a", size = 1080636, upload-time = "2025-10-29T15:38:19.948Z" }, + { url = "https://files.pythonhosted.org/packages/ad/33/4bd2a28621b4657711bdaf244b2e5d330b25a0bcc86f9688e3ec0c76e659/fabio-2025.10.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2c52436ad4dc80acbcee8d4d97bedcd21a5e15d3630f0fdcce7c503e95611499", size = 1256578, upload-time = "2025-10-29T15:38:21.342Z" }, + { url = "https://files.pythonhosted.org/packages/75/38/1bd19a30174dcadcb78c31cf629868ae1576c1f12f7ffed552cf70f99bc9/fabio-2025.10.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4a2136afe60bb770c822bf44ddd37e22fdd0333d5f01e0ee30d9231e17a4340a", size = 1367295, upload-time = "2025-10-29T15:38:23.191Z" }, + { url = "https://files.pythonhosted.org/packages/3b/90/87c30193cf3bb8fd4b5ec5c1dcb65cc295209157de19bf1bbbdf3298d85a/fabio-2025.10.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7865d42e9e1d804d2331631b61c6c0b2990ad763bf4434636bfd4b327cc43640", size = 1292806, upload-time = "2025-10-29T15:38:25.381Z" }, + { url = "https://files.pythonhosted.org/packages/a9/e7/2d8b8f3ee76c97a0828132c0d686ec6fc53994376d0be1524570bb3f2674/fabio-2025.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d4eb2906efa401a9b18f6ebab7e170e8aea96524fe1dcb5bdb61c0643601b8e", size = 1173223, upload-time = "2025-10-29T15:38:27.037Z" }, + { url = "https://files.pythonhosted.org/packages/11/94/b25b355deb0009e000ab241e3ebf3012922190677b92bd406ed8e35f319c/fabio-2025.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3f4227832896fbe612182210913e7075cbac95f4b4d31da7dd52f665fc09d618", size = 1261591, upload-time = "2025-10-29T15:38:28.859Z" }, + { url = "https://files.pythonhosted.org/packages/e7/80/5142bd3046749b2c637436c35f303ad01a85fd4303a0e906a71c4409a085/fabio-2025.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:ec78dafac82704f5c2ba46356fc11cf84306375e2600738427eba86f66949007", size = 1322897, upload-time = "2025-10-29T15:38:30.379Z" }, + { url = "https://files.pythonhosted.org/packages/1d/b5/f5a6bd0979823525682b2fcc281a6cc3241d24e8dde548d2b0217b7f63e7/fabio-2025.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a9abf462a5f6bece4baeafe55131a244d7c2e4062ec7696a8ee8b33882db4236", size = 1011585, upload-time = "2025-10-29T15:38:32.123Z" }, + { url = "https://files.pythonhosted.org/packages/3b/25/0ae6c5e926b5a84fb084133d0635dbe937f93d963f0ac565c9e5b13e9e66/fabio-2025.10.0-cp313-cp313-macosx_11_0_x86_64.whl", hash = "sha256:539f01831c80efc759e37685fed1f52ad5d665030402c30ef4c53ec3f3bc887e", size = 1074540, upload-time = "2025-10-29T15:38:33.508Z" }, + { url = "https://files.pythonhosted.org/packages/c8/26/5ad12294add55d4311cd25c70acf15014e53709ca1b099e43dd31b24103b/fabio-2025.10.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edfdbcd06ddee14a71bf141b73c9117a37bf73f0910b89b1bb8aa1df38b9490", size = 1242895, upload-time = "2025-10-29T15:38:35.356Z" }, + { url = "https://files.pythonhosted.org/packages/eb/3c/ae90d7f4499430670e69520931d99c9661d98aaccfbf63ff7a89816f5eef/fabio-2025.10.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ab0432675a1cb42af28bc2fafea4f9c8433247ae81043a510a3c137623624f5a", size = 1354690, upload-time = "2025-10-29T15:38:37.31Z" }, + { url = "https://files.pythonhosted.org/packages/00/1c/3197e50a98df530bfc61c592449a1575642bb9903df5c286e39aec794778/fabio-2025.10.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb6ba775ba07945ff147c6bc552fecfa80bca633e0a45de590ee1efd92088099", size = 1292588, upload-time = "2025-10-29T15:38:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/49/eb/bbd940158c57ded120b1edc291d5592f1888b9e8c691e68a1814e95e4cf8/fabio-2025.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:136ec116345d5cbdb7fdb07a933a0613054d04a0f9c57144d18da7cbecf0c561", size = 1171332, upload-time = "2025-10-29T15:38:42.289Z" }, + { url = "https://files.pythonhosted.org/packages/43/9d/d5df7723dcc376f628f86c96fc7422272c8056710e321d27a4e87094b390/fabio-2025.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e03d6b9745d71ea476b586baa06bdf177ab14902ca99d6aade234e9d461def6", size = 1255134, upload-time = "2025-10-29T15:38:43.75Z" }, + { url = "https://files.pythonhosted.org/packages/10/9a/506e645f2b116f0a5fa1735fafac8bf832e25941d5314e44d2dae8762310/fabio-2025.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:53436e907776d6bba7e0128b8984969268ae26b41bb817cb012c38d8583529c5", size = 1320074, upload-time = "2025-10-29T15:38:45.44Z" }, + { url = "https://files.pythonhosted.org/packages/7a/7b/a3576e2dfe79ced39c25a6e05859f163b50ef9cebe7a82be5259b816e0eb/fabio-2025.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1fa95b7cc27ddea38f3af06509dab68a01f03f5db5bd91ce032f61c012fd9b2e", size = 1015034, upload-time = "2025-10-29T15:38:46.75Z" }, + { url = "https://files.pythonhosted.org/packages/24/5c/f2e823498621e18c556adf479df8640bd134ca50adc1cc22a7d1d3084b34/fabio-2025.10.0-cp314-cp314-macosx_11_0_x86_64.whl", hash = "sha256:a04e1ee0c3122916a1a88867ea59a8d01dca38912c2b1f75318809d3dd2b86b2", size = 1075175, upload-time = "2025-10-29T15:38:52.206Z" }, + { url = "https://files.pythonhosted.org/packages/56/a7/534ba416cbbcb199800821d800fdf7d4804f3cf80298f87164d539782d19/fabio-2025.10.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d7f187772acfcf74b501328b64b0755b0788dff59b143f58fd2cb1cdbdd1396d", size = 1267110, upload-time = "2025-10-29T15:38:54.051Z" }, + { url = "https://files.pythonhosted.org/packages/0c/35/891502025d003ef3d64499206840ed69eca16ea106f94a88384360ae7bda/fabio-2025.10.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9abd3d30b6fb5a2cd9cdd18945f20d0e0db858ff0ceb07e41e20a67da6a2f52b", size = 1364147, upload-time = "2025-10-29T15:38:55.763Z" }, + { url = "https://files.pythonhosted.org/packages/7a/0a/d39ab66fb8be334524dc29b18f08b64ba2efe3190f8997d7266d748afd1f/fabio-2025.10.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e96fc52f9e1e795b0ba82de848e6cbe19e711b58d45d78b0a69ff2a4c29dba77", size = 1298652, upload-time = "2025-10-29T15:38:57.15Z" }, + { url = "https://files.pythonhosted.org/packages/6e/b7/973ac208818b5864375318af6658ab9d647f1c561aed053db366acf54bb2/fabio-2025.10.0-cp314-cp314-win_amd64.whl", hash = "sha256:c2134ecfb24e67393f47913f3c41a427d0a9bc5af9130fe23c61eb04c7400a0e", size = 1347184, upload-time = "2025-10-29T15:38:58.71Z" }, +] + +[[package]] +name = "fonttools" +version = "4.61.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/ca/cf17b88a8df95691275a3d77dc0a5ad9907f328ae53acbe6795da1b2f5ed/fonttools-4.61.1.tar.gz", hash = "sha256:6675329885c44657f826ef01d9e4fb33b9158e9d93c537d84ad8399539bc6f69", size = 3565756, upload-time = "2025-12-12T17:31:24.246Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/12/bf9f4eaa2fad039356cc627587e30ed008c03f1cebd3034376b5ee8d1d44/fonttools-4.61.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:c6604b735bb12fef8e0efd5578c9fb5d3d8532d5001ea13a19cddf295673ee09", size = 2852213, upload-time = "2025-12-12T17:29:46.675Z" }, + { url = "https://files.pythonhosted.org/packages/ac/49/4138d1acb6261499bedde1c07f8c2605d1d8f9d77a151e5507fd3ef084b6/fonttools-4.61.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ce02f38a754f207f2f06557523cd39a06438ba3aafc0639c477ac409fc64e37", size = 2401689, upload-time = "2025-12-12T17:29:48.769Z" }, + { url = "https://files.pythonhosted.org/packages/e5/fe/e6ce0fe20a40e03aef906af60aa87668696f9e4802fa283627d0b5ed777f/fonttools-4.61.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:77efb033d8d7ff233385f30c62c7c79271c8885d5c9657d967ede124671bbdfb", size = 5058809, upload-time = "2025-12-12T17:29:51.701Z" }, + { url = "https://files.pythonhosted.org/packages/79/61/1ca198af22f7dd22c17ab86e9024ed3c06299cfdb08170640e9996d501a0/fonttools-4.61.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:75c1a6dfac6abd407634420c93864a1e274ebc1c7531346d9254c0d8f6ca00f9", size = 5036039, upload-time = "2025-12-12T17:29:53.659Z" }, + { url = "https://files.pythonhosted.org/packages/99/cc/fa1801e408586b5fce4da9f5455af8d770f4fc57391cd5da7256bb364d38/fonttools-4.61.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0de30bfe7745c0d1ffa2b0b7048fb7123ad0d71107e10ee090fa0b16b9452e87", size = 5034714, upload-time = "2025-12-12T17:29:55.592Z" }, + { url = "https://files.pythonhosted.org/packages/bf/aa/b7aeafe65adb1b0a925f8f25725e09f078c635bc22754f3fecb7456955b0/fonttools-4.61.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:58b0ee0ab5b1fc9921eccfe11d1435added19d6494dde14e323f25ad2bc30c56", size = 5158648, upload-time = "2025-12-12T17:29:57.861Z" }, + { url = "https://files.pythonhosted.org/packages/99/f9/08ea7a38663328881384c6e7777bbefc46fd7d282adfd87a7d2b84ec9d50/fonttools-4.61.1-cp311-cp311-win32.whl", hash = "sha256:f79b168428351d11e10c5aeb61a74e1851ec221081299f4cf56036a95431c43a", size = 2280681, upload-time = "2025-12-12T17:29:59.943Z" }, + { url = "https://files.pythonhosted.org/packages/07/ad/37dd1ae5fa6e01612a1fbb954f0927681f282925a86e86198ccd7b15d515/fonttools-4.61.1-cp311-cp311-win_amd64.whl", hash = "sha256:fe2efccb324948a11dd09d22136fe2ac8a97d6c1347cf0b58a911dcd529f66b7", size = 2331951, upload-time = "2025-12-12T17:30:02.254Z" }, + { url = "https://files.pythonhosted.org/packages/6f/16/7decaa24a1bd3a70c607b2e29f0adc6159f36a7e40eaba59846414765fd4/fonttools-4.61.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f3cb4a569029b9f291f88aafc927dd53683757e640081ca8c412781ea144565e", size = 2851593, upload-time = "2025-12-12T17:30:04.225Z" }, + { url = "https://files.pythonhosted.org/packages/94/98/3c4cb97c64713a8cf499b3245c3bf9a2b8fd16a3e375feff2aed78f96259/fonttools-4.61.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:41a7170d042e8c0024703ed13b71893519a1a6d6e18e933e3ec7507a2c26a4b2", size = 2400231, upload-time = "2025-12-12T17:30:06.47Z" }, + { url = "https://files.pythonhosted.org/packages/b7/37/82dbef0f6342eb01f54bca073ac1498433d6ce71e50c3c3282b655733b31/fonttools-4.61.1-cp312-cp312-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:10d88e55330e092940584774ee5e8a6971b01fc2f4d3466a1d6c158230880796", size = 4954103, upload-time = "2025-12-12T17:30:08.432Z" }, + { url = "https://files.pythonhosted.org/packages/6c/44/f3aeac0fa98e7ad527f479e161aca6c3a1e47bb6996b053d45226fe37bf2/fonttools-4.61.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:15acc09befd16a0fb8a8f62bc147e1a82817542d72184acca9ce6e0aeda9fa6d", size = 5004295, upload-time = "2025-12-12T17:30:10.56Z" }, + { url = "https://files.pythonhosted.org/packages/14/e8/7424ced75473983b964d09f6747fa09f054a6d656f60e9ac9324cf40c743/fonttools-4.61.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e6bcdf33aec38d16508ce61fd81838f24c83c90a1d1b8c68982857038673d6b8", size = 4944109, upload-time = "2025-12-12T17:30:12.874Z" }, + { url = "https://files.pythonhosted.org/packages/c8/8b/6391b257fa3d0b553d73e778f953a2f0154292a7a7a085e2374b111e5410/fonttools-4.61.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5fade934607a523614726119164ff621e8c30e8fa1ffffbbd358662056ba69f0", size = 5093598, upload-time = "2025-12-12T17:30:15.79Z" }, + { url = "https://files.pythonhosted.org/packages/d9/71/fd2ea96cdc512d92da5678a1c98c267ddd4d8c5130b76d0f7a80f9a9fde8/fonttools-4.61.1-cp312-cp312-win32.whl", hash = "sha256:75da8f28eff26defba42c52986de97b22106cb8f26515b7c22443ebc9c2d3261", size = 2269060, upload-time = "2025-12-12T17:30:18.058Z" }, + { url = "https://files.pythonhosted.org/packages/80/3b/a3e81b71aed5a688e89dfe0e2694b26b78c7d7f39a5ffd8a7d75f54a12a8/fonttools-4.61.1-cp312-cp312-win_amd64.whl", hash = "sha256:497c31ce314219888c0e2fce5ad9178ca83fe5230b01a5006726cdf3ac9f24d9", size = 2319078, upload-time = "2025-12-12T17:30:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/4b/cf/00ba28b0990982530addb8dc3e9e6f2fa9cb5c20df2abdda7baa755e8fe1/fonttools-4.61.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8c56c488ab471628ff3bfa80964372fc13504ece601e0d97a78ee74126b2045c", size = 2846454, upload-time = "2025-12-12T17:30:24.938Z" }, + { url = "https://files.pythonhosted.org/packages/5a/ca/468c9a8446a2103ae645d14fee3f610567b7042aba85031c1c65e3ef7471/fonttools-4.61.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc492779501fa723b04d0ab1f5be046797fee17d27700476edc7ee9ae535a61e", size = 2398191, upload-time = "2025-12-12T17:30:27.343Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4b/d67eedaed19def5967fade3297fed8161b25ba94699efc124b14fb68cdbc/fonttools-4.61.1-cp313-cp313-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:64102ca87e84261419c3747a0d20f396eb024bdbeb04c2bfb37e2891f5fadcb5", size = 4928410, upload-time = "2025-12-12T17:30:29.771Z" }, + { url = "https://files.pythonhosted.org/packages/b0/8d/6fb3494dfe61a46258cd93d979cf4725ded4eb46c2a4ca35e4490d84daea/fonttools-4.61.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c1b526c8d3f615a7b1867f38a9410849c8f4aef078535742198e942fba0e9bd", size = 4984460, upload-time = "2025-12-12T17:30:32.073Z" }, + { url = "https://files.pythonhosted.org/packages/f7/f1/a47f1d30b3dc00d75e7af762652d4cbc3dff5c2697a0dbd5203c81afd9c3/fonttools-4.61.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:41ed4b5ec103bd306bb68f81dc166e77409e5209443e5773cb4ed837bcc9b0d3", size = 4925800, upload-time = "2025-12-12T17:30:34.339Z" }, + { url = "https://files.pythonhosted.org/packages/a7/01/e6ae64a0981076e8a66906fab01539799546181e32a37a0257b77e4aa88b/fonttools-4.61.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b501c862d4901792adaec7c25b1ecc749e2662543f68bb194c42ba18d6eec98d", size = 5067859, upload-time = "2025-12-12T17:30:36.593Z" }, + { url = "https://files.pythonhosted.org/packages/73/aa/28e40b8d6809a9b5075350a86779163f074d2b617c15d22343fce81918db/fonttools-4.61.1-cp313-cp313-win32.whl", hash = "sha256:4d7092bb38c53bbc78e9255a59158b150bcdc115a1e3b3ce0b5f267dc35dd63c", size = 2267821, upload-time = "2025-12-12T17:30:38.478Z" }, + { url = "https://files.pythonhosted.org/packages/1a/59/453c06d1d83dc0951b69ef692d6b9f1846680342927df54e9a1ca91c6f90/fonttools-4.61.1-cp313-cp313-win_amd64.whl", hash = "sha256:21e7c8d76f62ab13c9472ccf74515ca5b9a761d1bde3265152a6dc58700d895b", size = 2318169, upload-time = "2025-12-12T17:30:40.951Z" }, + { url = "https://files.pythonhosted.org/packages/32/8f/4e7bf82c0cbb738d3c2206c920ca34ca74ef9dabde779030145d28665104/fonttools-4.61.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:fff4f534200a04b4a36e7ae3cb74493afe807b517a09e99cb4faa89a34ed6ecd", size = 2846094, upload-time = "2025-12-12T17:30:43.511Z" }, + { url = "https://files.pythonhosted.org/packages/71/09/d44e45d0a4f3a651f23a1e9d42de43bc643cce2971b19e784cc67d823676/fonttools-4.61.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d9203500f7c63545b4ce3799319fe4d9feb1a1b89b28d3cb5abd11b9dd64147e", size = 2396589, upload-time = "2025-12-12T17:30:45.681Z" }, + { url = "https://files.pythonhosted.org/packages/89/18/58c64cafcf8eb677a99ef593121f719e6dcbdb7d1c594ae5a10d4997ca8a/fonttools-4.61.1-cp314-cp314-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fa646ecec9528bef693415c79a86e733c70a4965dd938e9a226b0fc64c9d2e6c", size = 4877892, upload-time = "2025-12-12T17:30:47.709Z" }, + { url = "https://files.pythonhosted.org/packages/8a/ec/9e6b38c7ba1e09eb51db849d5450f4c05b7e78481f662c3b79dbde6f3d04/fonttools-4.61.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:11f35ad7805edba3aac1a3710d104592df59f4b957e30108ae0ba6c10b11dd75", size = 4972884, upload-time = "2025-12-12T17:30:49.656Z" }, + { url = "https://files.pythonhosted.org/packages/5e/87/b5339da8e0256734ba0dbbf5b6cdebb1dd79b01dc8c270989b7bcd465541/fonttools-4.61.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b931ae8f62db78861b0ff1ac017851764602288575d65b8e8ff1963fed419063", size = 4924405, upload-time = "2025-12-12T17:30:51.735Z" }, + { url = "https://files.pythonhosted.org/packages/0b/47/e3409f1e1e69c073a3a6fd8cb886eb18c0bae0ee13db2c8d5e7f8495e8b7/fonttools-4.61.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b148b56f5de675ee16d45e769e69f87623a4944f7443850bf9a9376e628a89d2", size = 5035553, upload-time = "2025-12-12T17:30:54.823Z" }, + { url = "https://files.pythonhosted.org/packages/bf/b6/1f6600161b1073a984294c6c031e1a56ebf95b6164249eecf30012bb2e38/fonttools-4.61.1-cp314-cp314-win32.whl", hash = "sha256:9b666a475a65f4e839d3d10473fad6d47e0a9db14a2f4a224029c5bfde58ad2c", size = 2271915, upload-time = "2025-12-12T17:30:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/52/7b/91e7b01e37cc8eb0e1f770d08305b3655e4f002fc160fb82b3390eabacf5/fonttools-4.61.1-cp314-cp314-win_amd64.whl", hash = "sha256:4f5686e1fe5fce75d82d93c47a438a25bf0d1319d2843a926f741140b2b16e0c", size = 2323487, upload-time = "2025-12-12T17:30:59.804Z" }, + { url = "https://files.pythonhosted.org/packages/39/5c/908ad78e46c61c3e3ed70c3b58ff82ab48437faf84ec84f109592cabbd9f/fonttools-4.61.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:e76ce097e3c57c4bcb67c5aa24a0ecdbd9f74ea9219997a707a4061fbe2707aa", size = 2929571, upload-time = "2025-12-12T17:31:02.574Z" }, + { url = "https://files.pythonhosted.org/packages/bd/41/975804132c6dea64cdbfbaa59f3518a21c137a10cccf962805b301ac6ab2/fonttools-4.61.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:9cfef3ab326780c04d6646f68d4b4742aae222e8b8ea1d627c74e38afcbc9d91", size = 2435317, upload-time = "2025-12-12T17:31:04.974Z" }, + { url = "https://files.pythonhosted.org/packages/b0/5a/aef2a0a8daf1ebaae4cfd83f84186d4a72ee08fd6a8451289fcd03ffa8a4/fonttools-4.61.1-cp314-cp314t-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a75c301f96db737e1c5ed5fd7d77d9c34466de16095a266509e13da09751bd19", size = 4882124, upload-time = "2025-12-12T17:31:07.456Z" }, + { url = "https://files.pythonhosted.org/packages/80/33/d6db3485b645b81cea538c9d1c9219d5805f0877fda18777add4671c5240/fonttools-4.61.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:91669ccac46bbc1d09e9273546181919064e8df73488ea087dcac3e2968df9ba", size = 5100391, upload-time = "2025-12-12T17:31:09.732Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d6/675ba631454043c75fcf76f0ca5463eac8eb0666ea1d7badae5fea001155/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c33ab3ca9d3ccd581d58e989d67554e42d8d4ded94ab3ade3508455fe70e65f7", size = 4978800, upload-time = "2025-12-12T17:31:11.681Z" }, + { url = "https://files.pythonhosted.org/packages/7f/33/d3ec753d547a8d2bdaedd390d4a814e8d5b45a093d558f025c6b990b554c/fonttools-4.61.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:664c5a68ec406f6b1547946683008576ef8b38275608e1cee6c061828171c118", size = 5006426, upload-time = "2025-12-12T17:31:13.764Z" }, + { url = "https://files.pythonhosted.org/packages/b4/40/cc11f378b561a67bea850ab50063366a0d1dd3f6d0a30ce0f874b0ad5664/fonttools-4.61.1-cp314-cp314t-win32.whl", hash = "sha256:aed04cabe26f30c1647ef0e8fbb207516fd40fe9472e9439695f5c6998e60ac5", size = 2335377, upload-time = "2025-12-12T17:31:16.49Z" }, + { url = "https://files.pythonhosted.org/packages/e4/ff/c9a2b66b39f8628531ea58b320d66d951267c98c6a38684daa8f50fb02f8/fonttools-4.61.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2180f14c141d2f0f3da43f3a81bc8aa4684860f6b0e6f9e165a4831f24e6a23b", size = 2400613, upload-time = "2025-12-12T17:31:18.769Z" }, + { url = "https://files.pythonhosted.org/packages/c7/4e/ce75a57ff3aebf6fc1f4e9d508b8e5810618a33d900ad6c19eb30b290b97/fonttools-4.61.1-py3-none-any.whl", hash = "sha256:17d2bf5d541add43822bcf0c43d7d847b160c9bb01d15d5007d84e2217aaa371", size = 1148996, upload-time = "2025-12-12T17:31:21.03Z" }, +] + +[[package]] +name = "greenlet" +version = "3.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8a/99/1cd3411c56a410994669062bd73dd58270c00cc074cac15f385a1fd91f8a/greenlet-3.3.1.tar.gz", hash = "sha256:41848f3230b58c08bb43dee542e74a2a2e34d3c59dc3076cec9151aeeedcae98", size = 184690, upload-time = "2026-01-23T15:31:02.076Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/e8/2e1462c8fdbe0f210feb5ac7ad2d9029af8be3bf45bd9fa39765f821642f/greenlet-3.3.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5fd23b9bc6d37b563211c6abbb1b3cab27db385a4449af5c32e932f93017080c", size = 274974, upload-time = "2026-01-23T15:31:02.891Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a8/530a401419a6b302af59f67aaf0b9ba1015855ea7e56c036b5928793c5bd/greenlet-3.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f51496a0bfbaa9d74d36a52d2580d1ef5ed4fdfcff0a73730abfbbbe1403dd", size = 577175, upload-time = "2026-01-23T16:00:56.213Z" }, + { url = "https://files.pythonhosted.org/packages/8e/89/7e812bb9c05e1aaef9b597ac1d0962b9021d2c6269354966451e885c4e6b/greenlet-3.3.1-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb0feb07fe6e6a74615ee62a880007d976cf739b6669cce95daa7373d4fc69c5", size = 590401, upload-time = "2026-01-23T16:05:26.365Z" }, + { url = "https://files.pythonhosted.org/packages/5c/ae/8d472e1f5ac5efe55c563f3eabb38c98a44b832602e12910750a7c025802/greenlet-3.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39eda9ba259cc9801da05351eaa8576e9aa83eb9411e8f0c299e05d712a210f2", size = 590272, upload-time = "2026-01-23T15:32:49.411Z" }, + { url = "https://files.pythonhosted.org/packages/a8/51/0fde34bebfcadc833550717eade64e35ec8738e6b097d5d248274a01258b/greenlet-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e2e7e882f83149f0a71ac822ebf156d902e7a5d22c9045e3e0d1daf59cee2cc9", size = 1550729, upload-time = "2026-01-23T16:04:20.867Z" }, + { url = "https://files.pythonhosted.org/packages/16/c9/2fb47bee83b25b119d5a35d580807bb8b92480a54b68fef009a02945629f/greenlet-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80aa4d79eb5564f2e0a6144fcc744b5a37c56c4a92d60920720e99210d88db0f", size = 1615552, upload-time = "2026-01-23T15:33:45.743Z" }, + { url = "https://files.pythonhosted.org/packages/1f/54/dcf9f737b96606f82f8dd05becfb8d238db0633dd7397d542a296fe9cad3/greenlet-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:32e4ca9777c5addcbf42ff3915d99030d8e00173a56f80001fb3875998fe410b", size = 226462, upload-time = "2026-01-23T15:36:50.422Z" }, + { url = "https://files.pythonhosted.org/packages/91/37/61e1015cf944ddd2337447d8e97fb423ac9bc21f9963fb5f206b53d65649/greenlet-3.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:da19609432f353fed186cc1b85e9440db93d489f198b4bdf42ae19cc9d9ac9b4", size = 225715, upload-time = "2026-01-23T15:33:17.298Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" }, + { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" }, + { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" }, + { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" }, + { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" }, + { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" }, + { url = "https://files.pythonhosted.org/packages/34/2f/5e0e41f33c69655300a5e54aeb637cf8ff57f1786a3aba374eacc0228c1d/greenlet-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cc98b9c4e4870fa983436afa999d4eb16b12872fab7071423d5262fa7120d57a", size = 227156, upload-time = "2026-01-23T15:34:34.808Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ab/717c58343cf02c5265b531384b248787e04d8160b8afe53d9eec053d7b44/greenlet-3.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:bfb2d1763d777de5ee495c85309460f6fd8146e50ec9d0ae0183dbf6f0a829d1", size = 226403, upload-time = "2026-01-23T15:31:39.372Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ab/d26750f2b7242c2b90ea2ad71de70cfcd73a948a49513188a0fc0d6fc15a/greenlet-3.3.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:7ab327905cabb0622adca5971e488064e35115430cec2c35a50fd36e72a315b3", size = 275205, upload-time = "2026-01-23T15:30:24.556Z" }, + { url = "https://files.pythonhosted.org/packages/10/d3/be7d19e8fad7c5a78eeefb2d896a08cd4643e1e90c605c4be3b46264998f/greenlet-3.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65be2f026ca6a176f88fb935ee23c18333ccea97048076aef4db1ef5bc0713ac", size = 599284, upload-time = "2026-01-23T16:00:58.584Z" }, + { url = "https://files.pythonhosted.org/packages/ae/21/fe703aaa056fdb0f17e5afd4b5c80195bbdab701208918938bd15b00d39b/greenlet-3.3.1-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7a3ae05b3d225b4155bda56b072ceb09d05e974bc74be6c3fc15463cf69f33fd", size = 610274, upload-time = "2026-01-23T16:05:29.312Z" }, + { url = "https://files.pythonhosted.org/packages/cb/86/5c6ab23bb3c28c21ed6bebad006515cfe08b04613eb105ca0041fecca852/greenlet-3.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6423481193bbbe871313de5fd06a082f2649e7ce6e08015d2a76c1e9186ca5b3", size = 612904, upload-time = "2026-01-23T15:32:52.317Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f3/7949994264e22639e40718c2daf6f6df5169bf48fb038c008a489ec53a50/greenlet-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33a956fe78bbbda82bfc95e128d61129b32d66bcf0a20a1f0c08aa4839ffa951", size = 1567316, upload-time = "2026-01-23T16:04:23.316Z" }, + { url = "https://files.pythonhosted.org/packages/8d/6e/d73c94d13b6465e9f7cd6231c68abde838bb22408596c05d9059830b7872/greenlet-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b065d3284be43728dd280f6f9a13990b56470b81be20375a207cdc814a983f2", size = 1636549, upload-time = "2026-01-23T15:33:48.643Z" }, + { url = "https://files.pythonhosted.org/packages/5e/b3/c9c23a6478b3bcc91f979ce4ca50879e4d0b2bd7b9a53d8ecded719b92e2/greenlet-3.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:27289986f4e5b0edec7b5a91063c109f0276abb09a7e9bdab08437525977c946", size = 227042, upload-time = "2026-01-23T15:33:58.216Z" }, + { url = "https://files.pythonhosted.org/packages/90/e7/824beda656097edee36ab15809fd063447b200cc03a7f6a24c34d520bc88/greenlet-3.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:2f080e028001c5273e0b42690eaf359aeef9cb1389da0f171ea51a5dc3c7608d", size = 226294, upload-time = "2026-01-23T15:30:52.73Z" }, + { url = "https://files.pythonhosted.org/packages/ae/fb/011c7c717213182caf78084a9bea51c8590b0afda98001f69d9f853a495b/greenlet-3.3.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bd59acd8529b372775cd0fcbc5f420ae20681c5b045ce25bd453ed8455ab99b5", size = 275737, upload-time = "2026-01-23T15:32:16.889Z" }, + { url = "https://files.pythonhosted.org/packages/41/2e/a3a417d620363fdbb08a48b1dd582956a46a61bf8fd27ee8164f9dfe87c2/greenlet-3.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b31c05dd84ef6871dd47120386aed35323c944d86c3d91a17c4b8d23df62f15b", size = 646422, upload-time = "2026-01-23T16:01:00.354Z" }, + { url = "https://files.pythonhosted.org/packages/b4/09/c6c4a0db47defafd2d6bab8ddfe47ad19963b4e30f5bed84d75328059f8c/greenlet-3.3.1-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:02925a0bfffc41e542c70aa14c7eda3593e4d7e274bfcccca1827e6c0875902e", size = 658219, upload-time = "2026-01-23T16:05:30.956Z" }, + { url = "https://files.pythonhosted.org/packages/80/38/9d42d60dffb04b45f03dbab9430898352dba277758640751dc5cc316c521/greenlet-3.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34a729e2e4e4ffe9ae2408d5ecaf12f944853f40ad724929b7585bca808a9d6f", size = 660237, upload-time = "2026-01-23T15:32:53.967Z" }, + { url = "https://files.pythonhosted.org/packages/96/61/373c30b7197f9e756e4c81ae90a8d55dc3598c17673f91f4d31c3c689c3f/greenlet-3.3.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:aec9ab04e82918e623415947921dea15851b152b822661cce3f8e4393c3df683", size = 1615261, upload-time = "2026-01-23T16:04:25.066Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d3/ca534310343f5945316f9451e953dcd89b36fe7a19de652a1dc5a0eeef3f/greenlet-3.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71c767cf281a80d02b6c1bdc41c9468e1f5a494fb11bc8688c360524e273d7b1", size = 1683719, upload-time = "2026-01-23T15:33:50.61Z" }, + { url = "https://files.pythonhosted.org/packages/52/cb/c21a3fd5d2c9c8b622e7bede6d6d00e00551a5ee474ea6d831b5f567a8b4/greenlet-3.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:96aff77af063b607f2489473484e39a0bbae730f2ea90c9e5606c9b73c44174a", size = 228125, upload-time = "2026-01-23T15:32:45.265Z" }, + { url = "https://files.pythonhosted.org/packages/6a/8e/8a2db6d11491837af1de64b8aff23707c6e85241be13c60ed399a72e2ef8/greenlet-3.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:b066e8b50e28b503f604fa538adc764a638b38cf8e81e025011d26e8a627fa79", size = 227519, upload-time = "2026-01-23T15:31:47.284Z" }, + { url = "https://files.pythonhosted.org/packages/28/24/cbbec49bacdcc9ec652a81d3efef7b59f326697e7edf6ed775a5e08e54c2/greenlet-3.3.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3e63252943c921b90abb035ebe9de832c436401d9c45f262d80e2d06cc659242", size = 282706, upload-time = "2026-01-23T15:33:05.525Z" }, + { url = "https://files.pythonhosted.org/packages/86/2e/4f2b9323c144c4fe8842a4e0d92121465485c3c2c5b9e9b30a52e80f523f/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:76e39058e68eb125de10c92524573924e827927df5d3891fbc97bd55764a8774", size = 651209, upload-time = "2026-01-23T16:01:01.517Z" }, + { url = "https://files.pythonhosted.org/packages/d9/87/50ca60e515f5bb55a2fbc5f0c9b5b156de7d2fc51a0a69abc9d23914a237/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9f9d5e7a9310b7a2f416dd13d2e3fd8b42d803968ea580b7c0f322ccb389b97", size = 654300, upload-time = "2026-01-23T16:05:32.199Z" }, + { url = "https://files.pythonhosted.org/packages/1d/94/74310866dfa2b73dd08659a3d18762f83985ad3281901ba0ee9a815194fb/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92497c78adf3ac703b57f1e3813c2d874f27f71a178f9ea5887855da413cd6d2", size = 653842, upload-time = "2026-01-23T15:32:55.671Z" }, + { url = "https://files.pythonhosted.org/packages/97/43/8bf0ffa3d498eeee4c58c212a3905dd6146c01c8dc0b0a046481ca29b18c/greenlet-3.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ed6b402bc74d6557a705e197d47f9063733091ed6357b3de33619d8a8d93ac53", size = 1614917, upload-time = "2026-01-23T16:04:26.276Z" }, + { url = "https://files.pythonhosted.org/packages/89/90/a3be7a5f378fc6e84abe4dcfb2ba32b07786861172e502388b4c90000d1b/greenlet-3.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:59913f1e5ada20fde795ba906916aea25d442abcc0593fba7e26c92b7ad76249", size = 1676092, upload-time = "2026-01-23T15:33:52.176Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2b/98c7f93e6db9977aaee07eb1e51ca63bd5f779b900d362791d3252e60558/greenlet-3.3.1-cp314-cp314t-win_amd64.whl", hash = "sha256:301860987846c24cb8964bdec0e31a96ad4a2a801b41b4ef40963c1b44f33451", size = 233181, upload-time = "2026-01-23T15:33:00.29Z" }, +] + +[[package]] +name = "h5py" +version = "3.15.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/6a/0d79de0b025aa85dc8864de8e97659c94cf3d23148394a954dc5ca52f8c8/h5py-3.15.1.tar.gz", hash = "sha256:c86e3ed45c4473564de55aa83b6fc9e5ead86578773dfbd93047380042e26b69", size = 426236, upload-time = "2025-10-16T10:35:27.404Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/fd/8349b48b15b47768042cff06ad6e1c229f0a4bd89225bf6b6894fea27e6d/h5py-3.15.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5aaa330bcbf2830150c50897ea5dcbed30b5b6d56897289846ac5b9e529ec243", size = 3434135, upload-time = "2025-10-16T10:33:47.954Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b0/1c628e26a0b95858f54aba17e1599e7f6cd241727596cc2580b72cb0a9bf/h5py-3.15.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c970fb80001fffabb0109eaf95116c8e7c0d3ca2de854e0901e8a04c1f098509", size = 2870958, upload-time = "2025-10-16T10:33:50.907Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e3/c255cafc9b85e6ea04e2ad1bba1416baa1d7f57fc98a214be1144087690c/h5py-3.15.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:80e5bb5b9508d5d9da09f81fd00abbb3f85da8143e56b1585d59bc8ceb1dba8b", size = 4504770, upload-time = "2025-10-16T10:33:54.357Z" }, + { url = "https://files.pythonhosted.org/packages/8b/23/4ab1108e87851ccc69694b03b817d92e142966a6c4abd99e17db77f2c066/h5py-3.15.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5b849ba619a066196169763c33f9f0f02e381156d61c03e000bb0100f9950faf", size = 4700329, upload-time = "2025-10-16T10:33:57.616Z" }, + { url = "https://files.pythonhosted.org/packages/a4/e4/932a3a8516e4e475b90969bf250b1924dbe3612a02b897e426613aed68f4/h5py-3.15.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e7f6c841efd4e6e5b7e82222eaf90819927b6d256ab0f3aca29675601f654f3c", size = 4152456, upload-time = "2025-10-16T10:34:00.843Z" }, + { url = "https://files.pythonhosted.org/packages/2a/0a/f74d589883b13737021b2049ac796328f188dbb60c2ed35b101f5b95a3fc/h5py-3.15.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ca8a3a22458956ee7b40d8e39c9a9dc01f82933e4c030c964f8b875592f4d831", size = 4617295, upload-time = "2025-10-16T10:34:04.154Z" }, + { url = "https://files.pythonhosted.org/packages/23/95/499b4e56452ef8b6c95a271af0dde08dac4ddb70515a75f346d4f400579b/h5py-3.15.1-cp311-cp311-win_amd64.whl", hash = "sha256:550e51131376889656feec4aff2170efc054a7fe79eb1da3bb92e1625d1ac878", size = 2882129, upload-time = "2025-10-16T10:34:06.886Z" }, + { url = "https://files.pythonhosted.org/packages/ce/bb/cfcc70b8a42222ba3ad4478bcef1791181ea908e2adbd7d53c66395edad5/h5py-3.15.1-cp311-cp311-win_arm64.whl", hash = "sha256:b39239947cb36a819147fc19e86b618dcb0953d1cd969f5ed71fc0de60392427", size = 2477121, upload-time = "2025-10-16T10:34:09.579Z" }, + { url = "https://files.pythonhosted.org/packages/62/b8/c0d9aa013ecfa8b7057946c080c0c07f6fa41e231d2e9bd306a2f8110bdc/h5py-3.15.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:316dd0f119734f324ca7ed10b5627a2de4ea42cc4dfbcedbee026aaa361c238c", size = 3399089, upload-time = "2025-10-16T10:34:12.135Z" }, + { url = "https://files.pythonhosted.org/packages/a4/5e/3c6f6e0430813c7aefe784d00c6711166f46225f5d229546eb53032c3707/h5py-3.15.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b51469890e58e85d5242e43aab29f5e9c7e526b951caab354f3ded4ac88e7b76", size = 2847803, upload-time = "2025-10-16T10:34:14.564Z" }, + { url = "https://files.pythonhosted.org/packages/00/69/ba36273b888a4a48d78f9268d2aee05787e4438557450a8442946ab8f3ec/h5py-3.15.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a33bfd5dfcea037196f7778534b1ff7e36a7f40a89e648c8f2967292eb6898e", size = 4914884, upload-time = "2025-10-16T10:34:18.452Z" }, + { url = "https://files.pythonhosted.org/packages/3a/30/d1c94066343a98bb2cea40120873193a4fed68c4ad7f8935c11caf74c681/h5py-3.15.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:25c8843fec43b2cc368aa15afa1cdf83fc5e17b1c4e10cd3771ef6c39b72e5ce", size = 5109965, upload-time = "2025-10-16T10:34:21.853Z" }, + { url = "https://files.pythonhosted.org/packages/81/3d/d28172116eafc3bc9f5991b3cb3fd2c8a95f5984f50880adfdf991de9087/h5py-3.15.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a308fd8681a864c04423c0324527237a0484e2611e3441f8089fd00ed56a8171", size = 4561870, upload-time = "2025-10-16T10:34:26.69Z" }, + { url = "https://files.pythonhosted.org/packages/a5/83/393a7226024238b0f51965a7156004eaae1fcf84aa4bfecf7e582676271b/h5py-3.15.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:f4a016df3f4a8a14d573b496e4d1964deb380e26031fc85fb40e417e9131888a", size = 5037161, upload-time = "2025-10-16T10:34:30.383Z" }, + { url = "https://files.pythonhosted.org/packages/cf/51/329e7436bf87ca6b0fe06dd0a3795c34bebe4ed8d6c44450a20565d57832/h5py-3.15.1-cp312-cp312-win_amd64.whl", hash = "sha256:59b25cf02411bf12e14f803fef0b80886444c7fe21a5ad17c6a28d3f08098a1e", size = 2874165, upload-time = "2025-10-16T10:34:33.461Z" }, + { url = "https://files.pythonhosted.org/packages/09/a8/2d02b10a66747c54446e932171dd89b8b4126c0111b440e6bc05a7c852ec/h5py-3.15.1-cp312-cp312-win_arm64.whl", hash = "sha256:61d5a58a9851e01ee61c932bbbb1c98fe20aba0a5674776600fb9a361c0aa652", size = 2458214, upload-time = "2025-10-16T10:34:35.733Z" }, + { url = "https://files.pythonhosted.org/packages/88/b3/40207e0192415cbff7ea1d37b9f24b33f6d38a5a2f5d18a678de78f967ae/h5py-3.15.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:c8440fd8bee9500c235ecb7aa1917a0389a2adb80c209fa1cc485bd70e0d94a5", size = 3376511, upload-time = "2025-10-16T10:34:38.596Z" }, + { url = "https://files.pythonhosted.org/packages/31/96/ba99a003c763998035b0de4c299598125df5fc6c9ccf834f152ddd60e0fb/h5py-3.15.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ab2219dbc6fcdb6932f76b548e2b16f34a1f52b7666e998157a4dfc02e2c4123", size = 2826143, upload-time = "2025-10-16T10:34:41.342Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c2/fc6375d07ea3962df7afad7d863fe4bde18bb88530678c20d4c90c18de1d/h5py-3.15.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8cb02c3a96255149ed3ac811eeea25b655d959c6dd5ce702c9a95ff11859eb5", size = 4908316, upload-time = "2025-10-16T10:34:44.619Z" }, + { url = "https://files.pythonhosted.org/packages/d9/69/4402ea66272dacc10b298cca18ed73e1c0791ff2ae9ed218d3859f9698ac/h5py-3.15.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:121b2b7a4c1915d63737483b7bff14ef253020f617c2fb2811f67a4bed9ac5e8", size = 5103710, upload-time = "2025-10-16T10:34:48.639Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f6/11f1e2432d57d71322c02a97a5567829a75f223a8c821764a0e71a65cde8/h5py-3.15.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:59b0d63b318bf3cc06687def2b45afd75926bbc006f7b8cd2b1a231299fc8599", size = 4556042, upload-time = "2025-10-16T10:34:51.841Z" }, + { url = "https://files.pythonhosted.org/packages/18/88/3eda3ef16bfe7a7dbc3d8d6836bbaa7986feb5ff091395e140dc13927bcc/h5py-3.15.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e02fe77a03f652500d8bff288cbf3675f742fc0411f5a628fa37116507dc7cc0", size = 5030639, upload-time = "2025-10-16T10:34:55.257Z" }, + { url = "https://files.pythonhosted.org/packages/e5/ea/fbb258a98863f99befb10ed727152b4ae659f322e1d9c0576f8a62754e81/h5py-3.15.1-cp313-cp313-win_amd64.whl", hash = "sha256:dea78b092fd80a083563ed79a3171258d4a4d307492e7cf8b2313d464c82ba52", size = 2864363, upload-time = "2025-10-16T10:34:58.099Z" }, + { url = "https://files.pythonhosted.org/packages/5d/c9/35021cc9cd2b2915a7da3026e3d77a05bed1144a414ff840953b33937fb9/h5py-3.15.1-cp313-cp313-win_arm64.whl", hash = "sha256:c256254a8a81e2bddc0d376e23e2a6d2dc8a1e8a2261835ed8c1281a0744cd97", size = 2449570, upload-time = "2025-10-16T10:35:00.473Z" }, + { url = "https://files.pythonhosted.org/packages/a0/2c/926eba1514e4d2e47d0e9eb16c784e717d8b066398ccfca9b283917b1bfb/h5py-3.15.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:5f4fb0567eb8517c3ecd6b3c02c4f4e9da220c8932604960fd04e24ee1254763", size = 3380368, upload-time = "2025-10-16T10:35:03.117Z" }, + { url = "https://files.pythonhosted.org/packages/65/4b/d715ed454d3baa5f6ae1d30b7eca4c7a1c1084f6a2edead9e801a1541d62/h5py-3.15.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:954e480433e82d3872503104f9b285d369048c3a788b2b1a00e53d1c47c98dd2", size = 2833793, upload-time = "2025-10-16T10:35:05.623Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d4/ef386c28e4579314610a8bffebbee3b69295b0237bc967340b7c653c6c10/h5py-3.15.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fd125c131889ebbef0849f4a0e29cf363b48aba42f228d08b4079913b576bb3a", size = 4903199, upload-time = "2025-10-16T10:35:08.972Z" }, + { url = "https://files.pythonhosted.org/packages/33/5d/65c619e195e0b5e54ea5a95c1bb600c8ff8715e0d09676e4cce56d89f492/h5py-3.15.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:28a20e1a4082a479b3d7db2169f3a5034af010b90842e75ebbf2e9e49eb4183e", size = 5097224, upload-time = "2025-10-16T10:35:12.808Z" }, + { url = "https://files.pythonhosted.org/packages/30/30/5273218400bf2da01609e1292f562c94b461fcb73c7a9e27fdadd43abc0a/h5py-3.15.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa8df5267f545b4946df8ca0d93d23382191018e4cda2deda4c2cedf9a010e13", size = 4551207, upload-time = "2025-10-16T10:35:16.24Z" }, + { url = "https://files.pythonhosted.org/packages/d3/39/a7ef948ddf4d1c556b0b2b9559534777bccc318543b3f5a1efdf6b556c9c/h5py-3.15.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:99d374a21f7321a4c6ab327c4ab23bd925ad69821aeb53a1e75dd809d19f67fa", size = 5025426, upload-time = "2025-10-16T10:35:19.831Z" }, + { url = "https://files.pythonhosted.org/packages/b6/d8/7368679b8df6925b8415f9dcc9ab1dab01ddc384d2b2c24aac9191bd9ceb/h5py-3.15.1-cp314-cp314-win_amd64.whl", hash = "sha256:9c73d1d7cdb97d5b17ae385153472ce118bed607e43be11e9a9deefaa54e0734", size = 2865704, upload-time = "2025-10-16T10:35:22.658Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b7/4a806f85d62c20157e62e58e03b27513dc9c55499768530acc4f4c5ce4be/h5py-3.15.1-cp314-cp314-win_arm64.whl", hash = "sha256:a6d8c5a05a76aca9a494b4c53ce8a9c29023b7f64f625c6ce1841e92a362ccdf", size = 2465544, upload-time = "2025-10-16T10:35:25.695Z" }, +] + +[[package]] +name = "hdf5plugin" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "h5py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/4f/9130151e3aa475b3e4e9a611bf608107fe5c72d277d74c4cf36f164b7c81/hdf5plugin-6.0.0.tar.gz", hash = "sha256:847ed9e96b451367a110f0ba64a3b260d38d64bbf3f25751858d3b56e094cfe0", size = 66372085, upload-time = "2025-10-08T18:16:28.423Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/13/15017f6210bfea843316d62f0f121e364e17bb129444ed803a256a213036/hdf5plugin-6.0.0-py3-none-macosx_10_13_universal2.whl", hash = "sha256:a59fbd5d4290a8a5334d82ccb4c6b9bfc7aaf586de7fedb88762e8601bc05fd4", size = 13339413, upload-time = "2025-10-08T18:16:10.656Z" }, + { url = "https://files.pythonhosted.org/packages/40/bf/d1f3765fb879820d7331e30e860b684f5b78d3ec17324e8f54130cbe560b/hdf5plugin-6.0.0-py3-none-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d301f4b9295872bacf277c70628d4c5e965ee47db762d8fde2d4849f201b9897", size = 42858563, upload-time = "2025-10-08T18:16:14.106Z" }, + { url = "https://files.pythonhosted.org/packages/0a/67/37d0b84fbbf26bf0d6a99a8f98bcd82bb6d437dc8cabee259fb3d7506ec7/hdf5plugin-6.0.0-py3-none-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:78b082ea355fe46bf5b396024de1fb662a1aaf9a5e11861ad61a5a2a6316d59d", size = 45126124, upload-time = "2025-10-08T18:16:17.992Z" }, + { url = "https://files.pythonhosted.org/packages/ed/2f/1046d464ad1db29a4f6c70ba4e19b39baa8a6542c719eaa4e765108f07f1/hdf5plugin-6.0.0-py3-none-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:79e0524d18ddc41c0cf2e1bb2e529d4e154c286f6a1bd85f3d44019d2a17574a", size = 44857273, upload-time = "2025-10-08T18:16:22.007Z" }, + { url = "https://files.pythonhosted.org/packages/61/b3/75478bdfee85533777de4204373f563aa7a1074355300743c3aedc33cac5/hdf5plugin-6.0.0-py3-none-win_amd64.whl", hash = "sha256:99866f90be1ceac5519e6e038669564be326c233618d59ba1f38c9dd8c32099e", size = 3379316, upload-time = "2025-10-08T18:16:25.007Z" }, +] + +[[package]] +name = "idna" +version = "3.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6f/6d/0703ccc57f3a7233505399edb88de3cbd678da106337b9fcde432b65ed60/idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902", size = 194582, upload-time = "2025-10-12T14:55:20.501Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0e/61/66938bbb5fc52dbdf84594873d5b51fb1f7c7794e9c0f5bd885f30bc507b/idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea", size = 71008, upload-time = "2025-10-12T14:55:18.883Z" }, +] + +[[package]] +name = "imageio" +version = "2.37.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/6f/606be632e37bf8d05b253e8626c2291d74c691ddc7bcdf7d6aaf33b32f6a/imageio-2.37.2.tar.gz", hash = "sha256:0212ef2727ac9caa5ca4b2c75ae89454312f440a756fcfc8ef1993e718f50f8a", size = 389600, upload-time = "2025-11-04T14:29:39.898Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/fe/301e0936b79bcab4cacc7548bf2853fc28dced0a578bab1f7ef53c9aa75b/imageio-2.37.2-py3-none-any.whl", hash = "sha256:ad9adfb20335d718c03de457358ed69f141021a333c40a53e57273d8a5bd0b9b", size = 317646, upload-time = "2025-11-04T14:29:37.948Z" }, +] + +[[package]] +name = "jmespath" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d", size = 27377, upload-time = "2026-01-22T16:35:26.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64", size = 20419, upload-time = "2026-01-22T16:35:24.919Z" }, +] + +[[package]] +name = "joblib" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/41/f2/d34e8b3a08a9cc79a50b2208a93dce981fe615b64d5a4d4abee421d898df/joblib-1.5.3.tar.gz", hash = "sha256:8561a3269e6801106863fd0d6d84bb737be9e7631e33aaed3fb9ce5953688da3", size = 331603, upload-time = "2025-12-15T08:41:46.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7b/91/984aca2ec129e2757d1e4e3c81c3fcda9d0f85b74670a094cc443d9ee949/joblib-1.5.3-py3-none-any.whl", hash = "sha256:5fc3c5039fc5ca8c0276333a188bbd59d6b7ab37fe6632daa76bc7f9ec18e713", size = 309071, upload-time = "2025-12-15T08:41:44.973Z" }, +] + +[[package]] +name = "kiwisolver" +version = "1.4.9" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/3c/85844f1b0feb11ee581ac23fe5fce65cd049a200c1446708cc1b7f922875/kiwisolver-1.4.9.tar.gz", hash = "sha256:c3b22c26c6fd6811b0ae8363b95ca8ce4ea3c202d3d0975b2914310ceb1bcc4d", size = 97564, upload-time = "2025-08-10T21:27:49.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/ab/c80b0d5a9d8a1a65f4f815f2afff9798b12c3b9f31f1d304dd233dd920e2/kiwisolver-1.4.9-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:eb14a5da6dc7642b0f3a18f13654847cd8b7a2550e2645a5bda677862b03ba16", size = 124167, upload-time = "2025-08-10T21:25:53.403Z" }, + { url = "https://files.pythonhosted.org/packages/a0/c0/27fe1a68a39cf62472a300e2879ffc13c0538546c359b86f149cc19f6ac3/kiwisolver-1.4.9-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:39a219e1c81ae3b103643d2aedb90f1ef22650deb266ff12a19e7773f3e5f089", size = 66579, upload-time = "2025-08-10T21:25:54.79Z" }, + { url = "https://files.pythonhosted.org/packages/31/a2/a12a503ac1fd4943c50f9822678e8015a790a13b5490354c68afb8489814/kiwisolver-1.4.9-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2405a7d98604b87f3fc28b1716783534b1b4b8510d8142adca34ee0bc3c87543", size = 65309, upload-time = "2025-08-10T21:25:55.76Z" }, + { url = "https://files.pythonhosted.org/packages/66/e1/e533435c0be77c3f64040d68d7a657771194a63c279f55573188161e81ca/kiwisolver-1.4.9-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:dc1ae486f9abcef254b5618dfb4113dd49f94c68e3e027d03cf0143f3f772b61", size = 1435596, upload-time = "2025-08-10T21:25:56.861Z" }, + { url = "https://files.pythonhosted.org/packages/67/1e/51b73c7347f9aabdc7215aa79e8b15299097dc2f8e67dee2b095faca9cb0/kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a1f570ce4d62d718dce3f179ee78dac3b545ac16c0c04bb363b7607a949c0d1", size = 1246548, upload-time = "2025-08-10T21:25:58.246Z" }, + { url = "https://files.pythonhosted.org/packages/21/aa/72a1c5d1e430294f2d32adb9542719cfb441b5da368d09d268c7757af46c/kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb27e7b78d716c591e88e0a09a2139c6577865d7f2e152488c2cc6257f460872", size = 1263618, upload-time = "2025-08-10T21:25:59.857Z" }, + { url = "https://files.pythonhosted.org/packages/a3/af/db1509a9e79dbf4c260ce0cfa3903ea8945f6240e9e59d1e4deb731b1a40/kiwisolver-1.4.9-cp311-cp311-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:15163165efc2f627eb9687ea5f3a28137217d217ac4024893d753f46bce9de26", size = 1317437, upload-time = "2025-08-10T21:26:01.105Z" }, + { url = "https://files.pythonhosted.org/packages/e0/f2/3ea5ee5d52abacdd12013a94130436e19969fa183faa1e7c7fbc89e9a42f/kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:bdee92c56a71d2b24c33a7d4c2856bd6419d017e08caa7802d2963870e315028", size = 2195742, upload-time = "2025-08-10T21:26:02.675Z" }, + { url = "https://files.pythonhosted.org/packages/6f/9b/1efdd3013c2d9a2566aa6a337e9923a00590c516add9a1e89a768a3eb2fc/kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:412f287c55a6f54b0650bd9b6dce5aceddb95864a1a90c87af16979d37c89771", size = 2290810, upload-time = "2025-08-10T21:26:04.009Z" }, + { url = "https://files.pythonhosted.org/packages/fb/e5/cfdc36109ae4e67361f9bc5b41323648cb24a01b9ade18784657e022e65f/kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2c93f00dcba2eea70af2be5f11a830a742fe6b579a1d4e00f47760ef13be247a", size = 2461579, upload-time = "2025-08-10T21:26:05.317Z" }, + { url = "https://files.pythonhosted.org/packages/62/86/b589e5e86c7610842213994cdea5add00960076bef4ae290c5fa68589cac/kiwisolver-1.4.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f117e1a089d9411663a3207ba874f31be9ac8eaa5b533787024dc07aeb74f464", size = 2268071, upload-time = "2025-08-10T21:26:06.686Z" }, + { url = "https://files.pythonhosted.org/packages/3b/c6/f8df8509fd1eee6c622febe54384a96cfaf4d43bf2ccec7a0cc17e4715c9/kiwisolver-1.4.9-cp311-cp311-win_amd64.whl", hash = "sha256:be6a04e6c79819c9a8c2373317d19a96048e5a3f90bec587787e86a1153883c2", size = 73840, upload-time = "2025-08-10T21:26:07.94Z" }, + { url = "https://files.pythonhosted.org/packages/e2/2d/16e0581daafd147bc11ac53f032a2b45eabac897f42a338d0a13c1e5c436/kiwisolver-1.4.9-cp311-cp311-win_arm64.whl", hash = "sha256:0ae37737256ba2de764ddc12aed4956460277f00c4996d51a197e72f62f5eec7", size = 65159, upload-time = "2025-08-10T21:26:09.048Z" }, + { url = "https://files.pythonhosted.org/packages/86/c9/13573a747838aeb1c76e3267620daa054f4152444d1f3d1a2324b78255b5/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:ac5a486ac389dddcc5bef4f365b6ae3ffff2c433324fb38dd35e3fab7c957999", size = 123686, upload-time = "2025-08-10T21:26:10.034Z" }, + { url = "https://files.pythonhosted.org/packages/51/ea/2ecf727927f103ffd1739271ca19c424d0e65ea473fbaeea1c014aea93f6/kiwisolver-1.4.9-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f2ba92255faa7309d06fe44c3a4a97efe1c8d640c2a79a5ef728b685762a6fd2", size = 66460, upload-time = "2025-08-10T21:26:11.083Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5a/51f5464373ce2aeb5194508298a508b6f21d3867f499556263c64c621914/kiwisolver-1.4.9-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4a2899935e724dd1074cb568ce7ac0dce28b2cd6ab539c8e001a8578eb106d14", size = 64952, upload-time = "2025-08-10T21:26:12.058Z" }, + { url = "https://files.pythonhosted.org/packages/70/90/6d240beb0f24b74371762873e9b7f499f1e02166a2d9c5801f4dbf8fa12e/kiwisolver-1.4.9-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f6008a4919fdbc0b0097089f67a1eb55d950ed7e90ce2cc3e640abadd2757a04", size = 1474756, upload-time = "2025-08-10T21:26:13.096Z" }, + { url = "https://files.pythonhosted.org/packages/12/42/f36816eaf465220f683fb711efdd1bbf7a7005a2473d0e4ed421389bd26c/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:67bb8b474b4181770f926f7b7d2f8c0248cbcb78b660fdd41a47054b28d2a752", size = 1276404, upload-time = "2025-08-10T21:26:14.457Z" }, + { url = "https://files.pythonhosted.org/packages/2e/64/bc2de94800adc830c476dce44e9b40fd0809cddeef1fde9fcf0f73da301f/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2327a4a30d3ee07d2fbe2e7933e8a37c591663b96ce42a00bc67461a87d7df77", size = 1294410, upload-time = "2025-08-10T21:26:15.73Z" }, + { url = "https://files.pythonhosted.org/packages/5f/42/2dc82330a70aa8e55b6d395b11018045e58d0bb00834502bf11509f79091/kiwisolver-1.4.9-cp312-cp312-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7a08b491ec91b1d5053ac177afe5290adacf1f0f6307d771ccac5de30592d198", size = 1343631, upload-time = "2025-08-10T21:26:17.045Z" }, + { url = "https://files.pythonhosted.org/packages/22/fd/f4c67a6ed1aab149ec5a8a401c323cee7a1cbe364381bb6c9c0d564e0e20/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d8fc5c867c22b828001b6a38d2eaeb88160bf5783c6cb4a5e440efc981ce286d", size = 2224963, upload-time = "2025-08-10T21:26:18.737Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/76720bd4cb3713314677d9ec94dcc21ced3f1baf4830adde5bb9b2430a5f/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:3b3115b2581ea35bb6d1f24a4c90af37e5d9b49dcff267eeed14c3893c5b86ab", size = 2321295, upload-time = "2025-08-10T21:26:20.11Z" }, + { url = "https://files.pythonhosted.org/packages/80/19/d3ec0d9ab711242f56ae0dc2fc5d70e298bb4a1f9dfab44c027668c673a1/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:858e4c22fb075920b96a291928cb7dea5644e94c0ee4fcd5af7e865655e4ccf2", size = 2487987, upload-time = "2025-08-10T21:26:21.49Z" }, + { url = "https://files.pythonhosted.org/packages/39/e9/61e4813b2c97e86b6fdbd4dd824bf72d28bcd8d4849b8084a357bc0dd64d/kiwisolver-1.4.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ed0fecd28cc62c54b262e3736f8bb2512d8dcfdc2bcf08be5f47f96bf405b145", size = 2291817, upload-time = "2025-08-10T21:26:22.812Z" }, + { url = "https://files.pythonhosted.org/packages/a0/41/85d82b0291db7504da3c2defe35c9a8a5c9803a730f297bd823d11d5fb77/kiwisolver-1.4.9-cp312-cp312-win_amd64.whl", hash = "sha256:f68208a520c3d86ea51acf688a3e3002615a7f0238002cccc17affecc86a8a54", size = 73895, upload-time = "2025-08-10T21:26:24.37Z" }, + { url = "https://files.pythonhosted.org/packages/e2/92/5f3068cf15ee5cb624a0c7596e67e2a0bb2adee33f71c379054a491d07da/kiwisolver-1.4.9-cp312-cp312-win_arm64.whl", hash = "sha256:2c1a4f57df73965f3f14df20b80ee29e6a7930a57d2d9e8491a25f676e197c60", size = 64992, upload-time = "2025-08-10T21:26:25.732Z" }, + { url = "https://files.pythonhosted.org/packages/31/c1/c2686cda909742ab66c7388e9a1a8521a59eb89f8bcfbee28fc980d07e24/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a5d0432ccf1c7ab14f9949eec60c5d1f924f17c037e9f8b33352fa05799359b8", size = 123681, upload-time = "2025-08-10T21:26:26.725Z" }, + { url = "https://files.pythonhosted.org/packages/ca/f0/f44f50c9f5b1a1860261092e3bc91ecdc9acda848a8b8c6abfda4a24dd5c/kiwisolver-1.4.9-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efb3a45b35622bb6c16dbfab491a8f5a391fe0e9d45ef32f4df85658232ca0e2", size = 66464, upload-time = "2025-08-10T21:26:27.733Z" }, + { url = "https://files.pythonhosted.org/packages/2d/7a/9d90a151f558e29c3936b8a47ac770235f436f2120aca41a6d5f3d62ae8d/kiwisolver-1.4.9-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:1a12cf6398e8a0a001a059747a1cbf24705e18fe413bc22de7b3d15c67cffe3f", size = 64961, upload-time = "2025-08-10T21:26:28.729Z" }, + { url = "https://files.pythonhosted.org/packages/e9/e9/f218a2cb3a9ffbe324ca29a9e399fa2d2866d7f348ec3a88df87fc248fc5/kiwisolver-1.4.9-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b67e6efbf68e077dd71d1a6b37e43e1a99d0bff1a3d51867d45ee8908b931098", size = 1474607, upload-time = "2025-08-10T21:26:29.798Z" }, + { url = "https://files.pythonhosted.org/packages/d9/28/aac26d4c882f14de59041636292bc838db8961373825df23b8eeb807e198/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5656aa670507437af0207645273ccdfee4f14bacd7f7c67a4306d0dcaeaf6eed", size = 1276546, upload-time = "2025-08-10T21:26:31.401Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ad/8bfc1c93d4cc565e5069162f610ba2f48ff39b7de4b5b8d93f69f30c4bed/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:bfc08add558155345129c7803b3671cf195e6a56e7a12f3dde7c57d9b417f525", size = 1294482, upload-time = "2025-08-10T21:26:32.721Z" }, + { url = "https://files.pythonhosted.org/packages/da/f1/6aca55ff798901d8ce403206d00e033191f63d82dd708a186e0ed2067e9c/kiwisolver-1.4.9-cp313-cp313-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:40092754720b174e6ccf9e845d0d8c7d8e12c3d71e7fc35f55f3813e96376f78", size = 1343720, upload-time = "2025-08-10T21:26:34.032Z" }, + { url = "https://files.pythonhosted.org/packages/d1/91/eed031876c595c81d90d0f6fc681ece250e14bf6998c3d7c419466b523b7/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:497d05f29a1300d14e02e6441cf0f5ee81c1ff5a304b0d9fb77423974684e08b", size = 2224907, upload-time = "2025-08-10T21:26:35.824Z" }, + { url = "https://files.pythonhosted.org/packages/e9/ec/4d1925f2e49617b9cca9c34bfa11adefad49d00db038e692a559454dfb2e/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:bdd1a81a1860476eb41ac4bc1e07b3f07259e6d55bbf739b79c8aaedcf512799", size = 2321334, upload-time = "2025-08-10T21:26:37.534Z" }, + { url = "https://files.pythonhosted.org/packages/43/cb/450cd4499356f68802750c6ddc18647b8ea01ffa28f50d20598e0befe6e9/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e6b93f13371d341afee3be9f7c5964e3fe61d5fa30f6a30eb49856935dfe4fc3", size = 2488313, upload-time = "2025-08-10T21:26:39.191Z" }, + { url = "https://files.pythonhosted.org/packages/71/67/fc76242bd99f885651128a5d4fa6083e5524694b7c88b489b1b55fdc491d/kiwisolver-1.4.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d75aa530ccfaa593da12834b86a0724f58bff12706659baa9227c2ccaa06264c", size = 2291970, upload-time = "2025-08-10T21:26:40.828Z" }, + { url = "https://files.pythonhosted.org/packages/75/bd/f1a5d894000941739f2ae1b65a32892349423ad49c2e6d0771d0bad3fae4/kiwisolver-1.4.9-cp313-cp313-win_amd64.whl", hash = "sha256:dd0a578400839256df88c16abddf9ba14813ec5f21362e1fe65022e00c883d4d", size = 73894, upload-time = "2025-08-10T21:26:42.33Z" }, + { url = "https://files.pythonhosted.org/packages/95/38/dce480814d25b99a391abbddadc78f7c117c6da34be68ca8b02d5848b424/kiwisolver-1.4.9-cp313-cp313-win_arm64.whl", hash = "sha256:d4188e73af84ca82468f09cadc5ac4db578109e52acb4518d8154698d3a87ca2", size = 64995, upload-time = "2025-08-10T21:26:43.889Z" }, + { url = "https://files.pythonhosted.org/packages/e2/37/7d218ce5d92dadc5ebdd9070d903e0c7cf7edfe03f179433ac4d13ce659c/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:5a0f2724dfd4e3b3ac5a82436a8e6fd16baa7d507117e4279b660fe8ca38a3a1", size = 126510, upload-time = "2025-08-10T21:26:44.915Z" }, + { url = "https://files.pythonhosted.org/packages/23/b0/e85a2b48233daef4b648fb657ebbb6f8367696a2d9548a00b4ee0eb67803/kiwisolver-1.4.9-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:1b11d6a633e4ed84fc0ddafd4ebfd8ea49b3f25082c04ad12b8315c11d504dc1", size = 67903, upload-time = "2025-08-10T21:26:45.934Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/f2425bc0113ad7de24da6bb4dae1343476e95e1d738be7c04d31a5d037fd/kiwisolver-1.4.9-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61874cdb0a36016354853593cffc38e56fc9ca5aa97d2c05d3dcf6922cd55a11", size = 66402, upload-time = "2025-08-10T21:26:47.101Z" }, + { url = "https://files.pythonhosted.org/packages/98/d8/594657886df9f34c4177cc353cc28ca7e6e5eb562d37ccc233bff43bbe2a/kiwisolver-1.4.9-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:60c439763a969a6af93b4881db0eed8fadf93ee98e18cbc35bc8da868d0c4f0c", size = 1582135, upload-time = "2025-08-10T21:26:48.665Z" }, + { url = "https://files.pythonhosted.org/packages/5c/c6/38a115b7170f8b306fc929e166340c24958347308ea3012c2b44e7e295db/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92a2f997387a1b79a75e7803aa7ded2cfbe2823852ccf1ba3bcf613b62ae3197", size = 1389409, upload-time = "2025-08-10T21:26:50.335Z" }, + { url = "https://files.pythonhosted.org/packages/bf/3b/e04883dace81f24a568bcee6eb3001da4ba05114afa622ec9b6fafdc1f5e/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a31d512c812daea6d8b3be3b2bfcbeb091dbb09177706569bcfc6240dcf8b41c", size = 1401763, upload-time = "2025-08-10T21:26:51.867Z" }, + { url = "https://files.pythonhosted.org/packages/9f/80/20ace48e33408947af49d7d15c341eaee69e4e0304aab4b7660e234d6288/kiwisolver-1.4.9-cp313-cp313t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:52a15b0f35dad39862d376df10c5230155243a2c1a436e39eb55623ccbd68185", size = 1453643, upload-time = "2025-08-10T21:26:53.592Z" }, + { url = "https://files.pythonhosted.org/packages/64/31/6ce4380a4cd1f515bdda976a1e90e547ccd47b67a1546d63884463c92ca9/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a30fd6fdef1430fd9e1ba7b3398b5ee4e2887783917a687d86ba69985fb08748", size = 2330818, upload-time = "2025-08-10T21:26:55.051Z" }, + { url = "https://files.pythonhosted.org/packages/fa/e9/3f3fcba3bcc7432c795b82646306e822f3fd74df0ee81f0fa067a1f95668/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cc9617b46837c6468197b5945e196ee9ca43057bb7d9d1ae688101e4e1dddf64", size = 2419963, upload-time = "2025-08-10T21:26:56.421Z" }, + { url = "https://files.pythonhosted.org/packages/99/43/7320c50e4133575c66e9f7dadead35ab22d7c012a3b09bb35647792b2a6d/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:0ab74e19f6a2b027ea4f845a78827969af45ce790e6cb3e1ebab71bdf9f215ff", size = 2594639, upload-time = "2025-08-10T21:26:57.882Z" }, + { url = "https://files.pythonhosted.org/packages/65/d6/17ae4a270d4a987ef8a385b906d2bdfc9fce502d6dc0d3aea865b47f548c/kiwisolver-1.4.9-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dba5ee5d3981160c28d5490f0d1b7ed730c22470ff7f6cc26cfcfaacb9896a07", size = 2391741, upload-time = "2025-08-10T21:26:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/2a/8f/8f6f491d595a9e5912971f3f863d81baddccc8a4d0c3749d6a0dd9ffc9df/kiwisolver-1.4.9-cp313-cp313t-win_arm64.whl", hash = "sha256:0749fd8f4218ad2e851e11cc4dc05c7cbc0cbc4267bdfdb31782e65aace4ee9c", size = 68646, upload-time = "2025-08-10T21:27:00.52Z" }, + { url = "https://files.pythonhosted.org/packages/6b/32/6cc0fbc9c54d06c2969faa9c1d29f5751a2e51809dd55c69055e62d9b426/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:9928fe1eb816d11ae170885a74d074f57af3a0d65777ca47e9aeb854a1fba386", size = 123806, upload-time = "2025-08-10T21:27:01.537Z" }, + { url = "https://files.pythonhosted.org/packages/b2/dd/2bfb1d4a4823d92e8cbb420fe024b8d2167f72079b3bb941207c42570bdf/kiwisolver-1.4.9-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d0005b053977e7b43388ddec89fa567f43d4f6d5c2c0affe57de5ebf290dc552", size = 66605, upload-time = "2025-08-10T21:27:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/00aafdb4e4509c2ca6064646cba9cd4b37933898f426756adb2cb92ebbed/kiwisolver-1.4.9-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2635d352d67458b66fd0667c14cb1d4145e9560d503219034a18a87e971ce4f3", size = 64925, upload-time = "2025-08-10T21:27:04.339Z" }, + { url = "https://files.pythonhosted.org/packages/43/dc/51acc6791aa14e5cb6d8a2e28cefb0dc2886d8862795449d021334c0df20/kiwisolver-1.4.9-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:767c23ad1c58c9e827b649a9ab7809fd5fd9db266a9cf02b0e926ddc2c680d58", size = 1472414, upload-time = "2025-08-10T21:27:05.437Z" }, + { url = "https://files.pythonhosted.org/packages/3d/bb/93fa64a81db304ac8a246f834d5094fae4b13baf53c839d6bb6e81177129/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72d0eb9fba308b8311685c2268cf7d0a0639a6cd027d8128659f72bdd8a024b4", size = 1281272, upload-time = "2025-08-10T21:27:07.063Z" }, + { url = "https://files.pythonhosted.org/packages/70/e6/6df102916960fb8d05069d4bd92d6d9a8202d5a3e2444494e7cd50f65b7a/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f68e4f3eeca8fb22cc3d731f9715a13b652795ef657a13df1ad0c7dc0e9731df", size = 1298578, upload-time = "2025-08-10T21:27:08.452Z" }, + { url = "https://files.pythonhosted.org/packages/7c/47/e142aaa612f5343736b087864dbaebc53ea8831453fb47e7521fa8658f30/kiwisolver-1.4.9-cp314-cp314-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d84cd4061ae292d8ac367b2c3fa3aad11cb8625a95d135fe93f286f914f3f5a6", size = 1345607, upload-time = "2025-08-10T21:27:10.125Z" }, + { url = "https://files.pythonhosted.org/packages/54/89/d641a746194a0f4d1a3670fb900d0dbaa786fb98341056814bc3f058fa52/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a60ea74330b91bd22a29638940d115df9dc00af5035a9a2a6ad9399ffb4ceca5", size = 2230150, upload-time = "2025-08-10T21:27:11.484Z" }, + { url = "https://files.pythonhosted.org/packages/aa/6b/5ee1207198febdf16ac11f78c5ae40861b809cbe0e6d2a8d5b0b3044b199/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:ce6a3a4e106cf35c2d9c4fa17c05ce0b180db622736845d4315519397a77beaf", size = 2325979, upload-time = "2025-08-10T21:27:12.917Z" }, + { url = "https://files.pythonhosted.org/packages/fc/ff/b269eefd90f4ae14dcc74973d5a0f6d28d3b9bb1afd8c0340513afe6b39a/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:77937e5e2a38a7b48eef0585114fe7930346993a88060d0bf886086d2aa49ef5", size = 2491456, upload-time = "2025-08-10T21:27:14.353Z" }, + { url = "https://files.pythonhosted.org/packages/fc/d4/10303190bd4d30de547534601e259a4fbf014eed94aae3e5521129215086/kiwisolver-1.4.9-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:24c175051354f4a28c5d6a31c93906dc653e2bf234e8a4bbfb964892078898ce", size = 2294621, upload-time = "2025-08-10T21:27:15.808Z" }, + { url = "https://files.pythonhosted.org/packages/28/e0/a9a90416fce5c0be25742729c2ea52105d62eda6c4be4d803c2a7be1fa50/kiwisolver-1.4.9-cp314-cp314-win_amd64.whl", hash = "sha256:0763515d4df10edf6d06a3c19734e2566368980d21ebec439f33f9eb936c07b7", size = 75417, upload-time = "2025-08-10T21:27:17.436Z" }, + { url = "https://files.pythonhosted.org/packages/1f/10/6949958215b7a9a264299a7db195564e87900f709db9245e4ebdd3c70779/kiwisolver-1.4.9-cp314-cp314-win_arm64.whl", hash = "sha256:0e4e2bf29574a6a7b7f6cb5fa69293b9f96c928949ac4a53ba3f525dffb87f9c", size = 66582, upload-time = "2025-08-10T21:27:18.436Z" }, + { url = "https://files.pythonhosted.org/packages/ec/79/60e53067903d3bc5469b369fe0dfc6b3482e2133e85dae9daa9527535991/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d976bbb382b202f71c67f77b0ac11244021cfa3f7dfd9e562eefcea2df711548", size = 126514, upload-time = "2025-08-10T21:27:19.465Z" }, + { url = "https://files.pythonhosted.org/packages/25/d1/4843d3e8d46b072c12a38c97c57fab4608d36e13fe47d47ee96b4d61ba6f/kiwisolver-1.4.9-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:2489e4e5d7ef9a1c300a5e0196e43d9c739f066ef23270607d45aba368b91f2d", size = 67905, upload-time = "2025-08-10T21:27:20.51Z" }, + { url = "https://files.pythonhosted.org/packages/8c/ae/29ffcbd239aea8b93108de1278271ae764dfc0d803a5693914975f200596/kiwisolver-1.4.9-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e2ea9f7ab7fbf18fffb1b5434ce7c69a07582f7acc7717720f1d69f3e806f90c", size = 66399, upload-time = "2025-08-10T21:27:21.496Z" }, + { url = "https://files.pythonhosted.org/packages/a1/ae/d7ba902aa604152c2ceba5d352d7b62106bedbccc8e95c3934d94472bfa3/kiwisolver-1.4.9-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:b34e51affded8faee0dfdb705416153819d8ea9250bbbf7ea1b249bdeb5f1122", size = 1582197, upload-time = "2025-08-10T21:27:22.604Z" }, + { url = "https://files.pythonhosted.org/packages/f2/41/27c70d427eddb8bc7e4f16420a20fefc6f480312122a59a959fdfe0445ad/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d8aacd3d4b33b772542b2e01beb50187536967b514b00003bdda7589722d2a64", size = 1390125, upload-time = "2025-08-10T21:27:24.036Z" }, + { url = "https://files.pythonhosted.org/packages/41/42/b3799a12bafc76d962ad69083f8b43b12bf4fe78b097b12e105d75c9b8f1/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7cf974dd4e35fa315563ac99d6287a1024e4dc2077b8a7d7cd3d2fb65d283134", size = 1402612, upload-time = "2025-08-10T21:27:25.773Z" }, + { url = "https://files.pythonhosted.org/packages/d2/b5/a210ea073ea1cfaca1bb5c55a62307d8252f531beb364e18aa1e0888b5a0/kiwisolver-1.4.9-cp314-cp314t-manylinux_2_24_s390x.manylinux_2_28_s390x.whl", hash = "sha256:85bd218b5ecfbee8c8a82e121802dcb519a86044c9c3b2e4aef02fa05c6da370", size = 1453990, upload-time = "2025-08-10T21:27:27.089Z" }, + { url = "https://files.pythonhosted.org/packages/5f/ce/a829eb8c033e977d7ea03ed32fb3c1781b4fa0433fbadfff29e39c676f32/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0856e241c2d3df4efef7c04a1e46b1936b6120c9bcf36dd216e3acd84bc4fb21", size = 2331601, upload-time = "2025-08-10T21:27:29.343Z" }, + { url = "https://files.pythonhosted.org/packages/e0/4b/b5e97eb142eb9cd0072dacfcdcd31b1c66dc7352b0f7c7255d339c0edf00/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:9af39d6551f97d31a4deebeac6f45b156f9755ddc59c07b402c148f5dbb6482a", size = 2422041, upload-time = "2025-08-10T21:27:30.754Z" }, + { url = "https://files.pythonhosted.org/packages/40/be/8eb4cd53e1b85ba4edc3a9321666f12b83113a178845593307a3e7891f44/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:bb4ae2b57fc1d8cbd1cf7b1d9913803681ffa903e7488012be5b76dedf49297f", size = 2594897, upload-time = "2025-08-10T21:27:32.803Z" }, + { url = "https://files.pythonhosted.org/packages/99/dd/841e9a66c4715477ea0abc78da039832fbb09dac5c35c58dc4c41a407b8a/kiwisolver-1.4.9-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:aedff62918805fb62d43a4aa2ecd4482c380dc76cd31bd7c8878588a61bd0369", size = 2391835, upload-time = "2025-08-10T21:27:34.23Z" }, + { url = "https://files.pythonhosted.org/packages/0c/28/4b2e5c47a0da96896fdfdb006340ade064afa1e63675d01ea5ac222b6d52/kiwisolver-1.4.9-cp314-cp314t-win_amd64.whl", hash = "sha256:1fa333e8b2ce4d9660f2cda9c0e1b6bafcfb2457a9d259faa82289e73ec24891", size = 79988, upload-time = "2025-08-10T21:27:35.587Z" }, + { url = "https://files.pythonhosted.org/packages/80/be/3578e8afd18c88cdf9cb4cffde75a96d2be38c5a903f1ed0ceec061bd09e/kiwisolver-1.4.9-cp314-cp314t-win_arm64.whl", hash = "sha256:4a48a2ce79d65d363597ef7b567ce3d14d68783d2b2263d98db3d9477805ba32", size = 70260, upload-time = "2025-08-10T21:27:36.606Z" }, + { url = "https://files.pythonhosted.org/packages/a3/0f/36d89194b5a32c054ce93e586d4049b6c2c22887b0eb229c61c68afd3078/kiwisolver-1.4.9-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:720e05574713db64c356e86732c0f3c5252818d05f9df320f0ad8380641acea5", size = 60104, upload-time = "2025-08-10T21:27:43.287Z" }, + { url = "https://files.pythonhosted.org/packages/52/ba/4ed75f59e4658fd21fe7dde1fee0ac397c678ec3befba3fe6482d987af87/kiwisolver-1.4.9-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:17680d737d5335b552994a2008fab4c851bcd7de33094a82067ef3a576ff02fa", size = 58592, upload-time = "2025-08-10T21:27:44.314Z" }, + { url = "https://files.pythonhosted.org/packages/33/01/a8ea7c5ea32a9b45ceeaee051a04c8ed4320f5add3c51bfa20879b765b70/kiwisolver-1.4.9-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:85b5352f94e490c028926ea567fc569c52ec79ce131dadb968d3853e809518c2", size = 80281, upload-time = "2025-08-10T21:27:45.369Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/dbd2ecdce306f1d07a1aaf324817ee993aab7aee9db47ceac757deabafbe/kiwisolver-1.4.9-pp311-pypy311_pp73-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:464415881e4801295659462c49461a24fb107c140de781d55518c4b80cb6790f", size = 78009, upload-time = "2025-08-10T21:27:46.376Z" }, + { url = "https://files.pythonhosted.org/packages/da/e9/0d4add7873a73e462aeb45c036a2dead2562b825aa46ba326727b3f31016/kiwisolver-1.4.9-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:fb940820c63a9590d31d88b815e7a3aa5915cad3ce735ab45f0c730b39547de1", size = 73929, upload-time = "2025-08-10T21:27:48.236Z" }, +] + +[[package]] +name = "larixite" +version = "2025.5.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "emmet-core" }, + { name = "mp-api" }, + { name = "pymatgen" }, + { name = "sqlalchemy" }, + { name = "xraydb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/54/61/772fe247fb162a5f27425e9850961073c7d0c65070961212c55e67e56f9c/larixite-2025.5.1.tar.gz", hash = "sha256:69c159ed24568a65dc3968766721a36cdbc261ea124e367d67f1fb785b4cabf5", size = 3829489, upload-time = "2025-09-05T03:24:19.856Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/71/c38a1e0aa04bbd35a53799b5bf0accb95a2e896f704c6d4d8d45b29c2c0a/larixite-2025.5.1-py3-none-any.whl", hash = "sha256:29fcd7179e16624f4a6f0fe5459a4b094bb00ca012e974ab1eb1806c1c877173", size = 3842313, upload-time = "2025-09-05T03:24:18.1Z" }, +] + +[[package]] +name = "latexcodec" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/27/dd/4270b2c5e2ee49316c3859e62293bd2ea8e382339d63ab7bbe9f39c0ec3b/latexcodec-3.0.1.tar.gz", hash = "sha256:e78a6911cd72f9dec35031c6ec23584de6842bfbc4610a9678868d14cdfb0357", size = 31222, upload-time = "2025-06-17T18:47:34.051Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b5/40/23569737873cc9637fd488606347e9dd92b9fa37ba4fcda1f98ee5219a97/latexcodec-3.0.1-py3-none-any.whl", hash = "sha256:a9eb8200bff693f0437a69581f7579eb6bca25c4193515c09900ce76451e452e", size = 18532, upload-time = "2025-06-17T18:47:30.726Z" }, +] + +[[package]] +name = "lazy-loader" +version = "0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6f/6b/c875b30a1ba490860c93da4cabf479e03f584eba06fe5963f6f6644653d8/lazy_loader-0.4.tar.gz", hash = "sha256:47c75182589b91a4e1a85a136c074285a5ad4d9f39c63e0d7fb76391c4574cd1", size = 15431, upload-time = "2024-04-05T13:03:12.261Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/83/60/d497a310bde3f01cb805196ac61b7ad6dc5dcf8dce66634dc34364b20b4f/lazy_loader-0.4-py3-none-any.whl", hash = "sha256:342aa8e14d543a154047afb4ba8ef17f5563baad3fc610d7b15b213b0f119efc", size = 12097, upload-time = "2024-04-05T13:03:10.514Z" }, +] + +[[package]] +name = "lmfit" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asteval" }, + { name = "dill" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "uncertainties" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5a/e5/a35942aed2de95e228728c34609b51fe3ec9182398eac50d288eef313aa2/lmfit-1.3.4.tar.gz", hash = "sha256:3c22c28c43f717f6c5b4a3bd81e893a2149739c26a592c046f2e33c23cfbe497", size = 630720, upload-time = "2025-07-19T20:09:01.876Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/7e/7b91c89a4cf0f543a83be978657afb20c86af6d725253e319589dcc4ce52/lmfit-1.3.4-py3-none-any.whl", hash = "sha256:afce1593b42324d37ae2908249b0c55445e2f4c1a0474ff706a8e2f7b5d949fa", size = 97662, upload-time = "2025-07-19T20:09:00.32Z" }, +] + +[[package]] +name = "lxml" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/88/262177de60548e5a2bfc46ad28232c9e9cbde697bd94132aeb80364675cb/lxml-6.0.2.tar.gz", hash = "sha256:cd79f3367bd74b317dda655dc8fcfa304d9eb6e4fb06b7168c5cf27f96e0cd62", size = 4073426, upload-time = "2025-09-22T04:04:59.287Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/77/d5/becbe1e2569b474a23f0c672ead8a29ac50b2dc1d5b9de184831bda8d14c/lxml-6.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:13e35cbc684aadf05d8711a5d1b5857c92e5e580efa9a0d2be197199c8def607", size = 8634365, upload-time = "2025-09-22T04:00:45.672Z" }, + { url = "https://files.pythonhosted.org/packages/28/66/1ced58f12e804644426b85d0bb8a4478ca77bc1761455da310505f1a3526/lxml-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3b1675e096e17c6fe9c0e8c81434f5736c0739ff9ac6123c87c2d452f48fc938", size = 4650793, upload-time = "2025-09-22T04:00:47.783Z" }, + { url = "https://files.pythonhosted.org/packages/11/84/549098ffea39dfd167e3f174b4ce983d0eed61f9d8d25b7bf2a57c3247fc/lxml-6.0.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8ac6e5811ae2870953390452e3476694196f98d447573234592d30488147404d", size = 4944362, upload-time = "2025-09-22T04:00:49.845Z" }, + { url = "https://files.pythonhosted.org/packages/ac/bd/f207f16abf9749d2037453d56b643a7471d8fde855a231a12d1e095c4f01/lxml-6.0.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5aa0fc67ae19d7a64c3fe725dc9a1bb11f80e01f78289d05c6f62545affec438", size = 5083152, upload-time = "2025-09-22T04:00:51.709Z" }, + { url = "https://files.pythonhosted.org/packages/15/ae/bd813e87d8941d52ad5b65071b1affb48da01c4ed3c9c99e40abb266fbff/lxml-6.0.2-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:de496365750cc472b4e7902a485d3f152ecf57bd3ba03ddd5578ed8ceb4c5964", size = 5023539, upload-time = "2025-09-22T04:00:53.593Z" }, + { url = "https://files.pythonhosted.org/packages/02/cd/9bfef16bd1d874fbe0cb51afb00329540f30a3283beb9f0780adbb7eec03/lxml-6.0.2-cp311-cp311-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:200069a593c5e40b8f6fc0d84d86d970ba43138c3e68619ffa234bc9bb806a4d", size = 5344853, upload-time = "2025-09-22T04:00:55.524Z" }, + { url = "https://files.pythonhosted.org/packages/b8/89/ea8f91594bc5dbb879734d35a6f2b0ad50605d7fb419de2b63d4211765cc/lxml-6.0.2-cp311-cp311-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7d2de809c2ee3b888b59f995625385f74629707c9355e0ff856445cdcae682b7", size = 5225133, upload-time = "2025-09-22T04:00:57.269Z" }, + { url = "https://files.pythonhosted.org/packages/b9/37/9c735274f5dbec726b2db99b98a43950395ba3d4a1043083dba2ad814170/lxml-6.0.2-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:b2c3da8d93cf5db60e8858c17684c47d01fee6405e554fb55018dd85fc23b178", size = 4677944, upload-time = "2025-09-22T04:00:59.052Z" }, + { url = "https://files.pythonhosted.org/packages/20/28/7dfe1ba3475d8bfca3878365075abe002e05d40dfaaeb7ec01b4c587d533/lxml-6.0.2-cp311-cp311-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:442de7530296ef5e188373a1ea5789a46ce90c4847e597856570439621d9c553", size = 5284535, upload-time = "2025-09-22T04:01:01.335Z" }, + { url = "https://files.pythonhosted.org/packages/e7/cf/5f14bc0de763498fc29510e3532bf2b4b3a1c1d5d0dff2e900c16ba021ef/lxml-6.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2593c77efde7bfea7f6389f1ab249b15ed4aa5bc5cb5131faa3b843c429fbedb", size = 5067343, upload-time = "2025-09-22T04:01:03.13Z" }, + { url = "https://files.pythonhosted.org/packages/1c/b0/bb8275ab5472f32b28cfbbcc6db7c9d092482d3439ca279d8d6fa02f7025/lxml-6.0.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:3e3cb08855967a20f553ff32d147e14329b3ae70ced6edc2f282b94afbc74b2a", size = 4725419, upload-time = "2025-09-22T04:01:05.013Z" }, + { url = "https://files.pythonhosted.org/packages/25/4c/7c222753bc72edca3b99dbadba1b064209bc8ed4ad448af990e60dcce462/lxml-6.0.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:2ed6c667fcbb8c19c6791bbf40b7268ef8ddf5a96940ba9404b9f9a304832f6c", size = 5275008, upload-time = "2025-09-22T04:01:07.327Z" }, + { url = "https://files.pythonhosted.org/packages/6c/8c/478a0dc6b6ed661451379447cdbec77c05741a75736d97e5b2b729687828/lxml-6.0.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:b8f18914faec94132e5b91e69d76a5c1d7b0c73e2489ea8929c4aaa10b76bbf7", size = 5248906, upload-time = "2025-09-22T04:01:09.452Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d9/5be3a6ab2784cdf9accb0703b65e1b64fcdd9311c9f007630c7db0cfcce1/lxml-6.0.2-cp311-cp311-win32.whl", hash = "sha256:6605c604e6daa9e0d7f0a2137bdc47a2e93b59c60a65466353e37f8272f47c46", size = 3610357, upload-time = "2025-09-22T04:01:11.102Z" }, + { url = "https://files.pythonhosted.org/packages/e2/7d/ca6fb13349b473d5732fb0ee3eec8f6c80fc0688e76b7d79c1008481bf1f/lxml-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e5867f2651016a3afd8dd2c8238baa66f1e2802f44bc17e236f547ace6647078", size = 4036583, upload-time = "2025-09-22T04:01:12.766Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/51363b5ecd3eab46563645f3a2c3836a2fc67d01a1b87c5017040f39f567/lxml-6.0.2-cp311-cp311-win_arm64.whl", hash = "sha256:4197fb2534ee05fd3e7afaab5d8bfd6c2e186f65ea7f9cd6a82809c887bd1285", size = 3680591, upload-time = "2025-09-22T04:01:14.874Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c8/8ff2bc6b920c84355146cd1ab7d181bc543b89241cfb1ebee824a7c81457/lxml-6.0.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a59f5448ba2ceccd06995c95ea59a7674a10de0810f2ce90c9006f3cbc044456", size = 8661887, upload-time = "2025-09-22T04:01:17.265Z" }, + { url = "https://files.pythonhosted.org/packages/37/6f/9aae1008083bb501ef63284220ce81638332f9ccbfa53765b2b7502203cf/lxml-6.0.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e8113639f3296706fbac34a30813929e29247718e88173ad849f57ca59754924", size = 4667818, upload-time = "2025-09-22T04:01:19.688Z" }, + { url = "https://files.pythonhosted.org/packages/f1/ca/31fb37f99f37f1536c133476674c10b577e409c0a624384147653e38baf2/lxml-6.0.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:a8bef9b9825fa8bc816a6e641bb67219489229ebc648be422af695f6e7a4fa7f", size = 4950807, upload-time = "2025-09-22T04:01:21.487Z" }, + { url = "https://files.pythonhosted.org/packages/da/87/f6cb9442e4bada8aab5ae7e1046264f62fdbeaa6e3f6211b93f4c0dd97f1/lxml-6.0.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:65ea18d710fd14e0186c2f973dc60bb52039a275f82d3c44a0e42b43440ea534", size = 5109179, upload-time = "2025-09-22T04:01:23.32Z" }, + { url = "https://files.pythonhosted.org/packages/c8/20/a7760713e65888db79bbae4f6146a6ae5c04e4a204a3c48896c408cd6ed2/lxml-6.0.2-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c371aa98126a0d4c739ca93ceffa0fd7a5d732e3ac66a46e74339acd4d334564", size = 5023044, upload-time = "2025-09-22T04:01:25.118Z" }, + { url = "https://files.pythonhosted.org/packages/a2/b0/7e64e0460fcb36471899f75831509098f3fd7cd02a3833ac517433cb4f8f/lxml-6.0.2-cp312-cp312-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:700efd30c0fa1a3581d80a748157397559396090a51d306ea59a70020223d16f", size = 5359685, upload-time = "2025-09-22T04:01:27.398Z" }, + { url = "https://files.pythonhosted.org/packages/b9/e1/e5df362e9ca4e2f48ed6411bd4b3a0ae737cc842e96877f5bf9428055ab4/lxml-6.0.2-cp312-cp312-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c33e66d44fe60e72397b487ee92e01da0d09ba2d66df8eae42d77b6d06e5eba0", size = 5654127, upload-time = "2025-09-22T04:01:29.629Z" }, + { url = "https://files.pythonhosted.org/packages/c6/d1/232b3309a02d60f11e71857778bfcd4acbdb86c07db8260caf7d008b08f8/lxml-6.0.2-cp312-cp312-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90a345bbeaf9d0587a3aaffb7006aa39ccb6ff0e96a57286c0cb2fd1520ea192", size = 5253958, upload-time = "2025-09-22T04:01:31.535Z" }, + { url = "https://files.pythonhosted.org/packages/35/35/d955a070994725c4f7d80583a96cab9c107c57a125b20bb5f708fe941011/lxml-6.0.2-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:064fdadaf7a21af3ed1dcaa106b854077fbeada827c18f72aec9346847cd65d0", size = 4711541, upload-time = "2025-09-22T04:01:33.801Z" }, + { url = "https://files.pythonhosted.org/packages/1e/be/667d17363b38a78c4bd63cfd4b4632029fd68d2c2dc81f25ce9eb5224dd5/lxml-6.0.2-cp312-cp312-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:fbc74f42c3525ac4ffa4b89cbdd00057b6196bcefe8bce794abd42d33a018092", size = 5267426, upload-time = "2025-09-22T04:01:35.639Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/62c70aa4a1c26569bc958c9ca86af2bb4e1f614e8c04fb2989833874f7ae/lxml-6.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ddff43f702905a4e32bc24f3f2e2edfe0f8fde3277d481bffb709a4cced7a1f", size = 5064917, upload-time = "2025-09-22T04:01:37.448Z" }, + { url = "https://files.pythonhosted.org/packages/bd/55/6ceddaca353ebd0f1908ef712c597f8570cc9c58130dbb89903198e441fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:6da5185951d72e6f5352166e3da7b0dc27aa70bd1090b0eb3f7f7212b53f1bb8", size = 4788795, upload-time = "2025-09-22T04:01:39.165Z" }, + { url = "https://files.pythonhosted.org/packages/cf/e8/fd63e15da5e3fd4c2146f8bbb3c14e94ab850589beab88e547b2dbce22e1/lxml-6.0.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:57a86e1ebb4020a38d295c04fc79603c7899e0df71588043eb218722dabc087f", size = 5676759, upload-time = "2025-09-22T04:01:41.506Z" }, + { url = "https://files.pythonhosted.org/packages/76/47/b3ec58dc5c374697f5ba37412cd2728f427d056315d124dd4b61da381877/lxml-6.0.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:2047d8234fe735ab77802ce5f2297e410ff40f5238aec569ad7c8e163d7b19a6", size = 5255666, upload-time = "2025-09-22T04:01:43.363Z" }, + { url = "https://files.pythonhosted.org/packages/19/93/03ba725df4c3d72afd9596eef4a37a837ce8e4806010569bedfcd2cb68fd/lxml-6.0.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6f91fd2b2ea15a6800c8e24418c0775a1694eefc011392da73bc6cef2623b322", size = 5277989, upload-time = "2025-09-22T04:01:45.215Z" }, + { url = "https://files.pythonhosted.org/packages/c6/80/c06de80bfce881d0ad738576f243911fccf992687ae09fd80b734712b39c/lxml-6.0.2-cp312-cp312-win32.whl", hash = "sha256:3ae2ce7d6fedfb3414a2b6c5e20b249c4c607f72cb8d2bb7cc9c6ec7c6f4e849", size = 3611456, upload-time = "2025-09-22T04:01:48.243Z" }, + { url = "https://files.pythonhosted.org/packages/f7/d7/0cdfb6c3e30893463fb3d1e52bc5f5f99684a03c29a0b6b605cfae879cd5/lxml-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:72c87e5ee4e58a8354fb9c7c84cbf95a1c8236c127a5d1b7683f04bed8361e1f", size = 4011793, upload-time = "2025-09-22T04:01:50.042Z" }, + { url = "https://files.pythonhosted.org/packages/ea/7b/93c73c67db235931527301ed3785f849c78991e2e34f3fd9a6663ffda4c5/lxml-6.0.2-cp312-cp312-win_arm64.whl", hash = "sha256:61cb10eeb95570153e0c0e554f58df92ecf5109f75eacad4a95baa709e26c3d6", size = 3672836, upload-time = "2025-09-22T04:01:52.145Z" }, + { url = "https://files.pythonhosted.org/packages/53/fd/4e8f0540608977aea078bf6d79f128e0e2c2bba8af1acf775c30baa70460/lxml-6.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:9b33d21594afab46f37ae58dfadd06636f154923c4e8a4d754b0127554eb2e77", size = 8648494, upload-time = "2025-09-22T04:01:54.242Z" }, + { url = "https://files.pythonhosted.org/packages/5d/f4/2a94a3d3dfd6c6b433501b8d470a1960a20ecce93245cf2db1706adf6c19/lxml-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6c8963287d7a4c5c9a432ff487c52e9c5618667179c18a204bdedb27310f022f", size = 4661146, upload-time = "2025-09-22T04:01:56.282Z" }, + { url = "https://files.pythonhosted.org/packages/25/2e/4efa677fa6b322013035d38016f6ae859d06cac67437ca7dc708a6af7028/lxml-6.0.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1941354d92699fb5ffe6ed7b32f9649e43c2feb4b97205f75866f7d21aa91452", size = 4946932, upload-time = "2025-09-22T04:01:58.989Z" }, + { url = "https://files.pythonhosted.org/packages/ce/0f/526e78a6d38d109fdbaa5049c62e1d32fdd70c75fb61c4eadf3045d3d124/lxml-6.0.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bb2f6ca0ae2d983ded09357b84af659c954722bbf04dea98030064996d156048", size = 5100060, upload-time = "2025-09-22T04:02:00.812Z" }, + { url = "https://files.pythonhosted.org/packages/81/76/99de58d81fa702cc0ea7edae4f4640416c2062813a00ff24bd70ac1d9c9b/lxml-6.0.2-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb2a12d704f180a902d7fa778c6d71f36ceb7b0d317f34cdc76a5d05aa1dd1df", size = 5019000, upload-time = "2025-09-22T04:02:02.671Z" }, + { url = "https://files.pythonhosted.org/packages/b5/35/9e57d25482bc9a9882cb0037fdb9cc18f4b79d85df94fa9d2a89562f1d25/lxml-6.0.2-cp313-cp313-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:6ec0e3f745021bfed19c456647f0298d60a24c9ff86d9d051f52b509663feeb1", size = 5348496, upload-time = "2025-09-22T04:02:04.904Z" }, + { url = "https://files.pythonhosted.org/packages/a6/8e/cb99bd0b83ccc3e8f0f528e9aa1f7a9965dfec08c617070c5db8d63a87ce/lxml-6.0.2-cp313-cp313-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:846ae9a12d54e368933b9759052d6206a9e8b250291109c48e350c1f1f49d916", size = 5643779, upload-time = "2025-09-22T04:02:06.689Z" }, + { url = "https://files.pythonhosted.org/packages/d0/34/9e591954939276bb679b73773836c6684c22e56d05980e31d52a9a8deb18/lxml-6.0.2-cp313-cp313-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ef9266d2aa545d7374938fb5c484531ef5a2ec7f2d573e62f8ce722c735685fd", size = 5244072, upload-time = "2025-09-22T04:02:08.587Z" }, + { url = "https://files.pythonhosted.org/packages/8d/27/b29ff065f9aaca443ee377aff699714fcbffb371b4fce5ac4ca759e436d5/lxml-6.0.2-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:4077b7c79f31755df33b795dc12119cb557a0106bfdab0d2c2d97bd3cf3dffa6", size = 4718675, upload-time = "2025-09-22T04:02:10.783Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/f756f9c2cd27caa1a6ef8c32ae47aadea697f5c2c6d07b0dae133c244fbe/lxml-6.0.2-cp313-cp313-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a7c5d5e5f1081955358533be077166ee97ed2571d6a66bdba6ec2f609a715d1a", size = 5255171, upload-time = "2025-09-22T04:02:12.631Z" }, + { url = "https://files.pythonhosted.org/packages/61/46/bb85ea42d2cb1bd8395484fd72f38e3389611aa496ac7772da9205bbda0e/lxml-6.0.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:8f8d0cbd0674ee89863a523e6994ac25fd5be9c8486acfc3e5ccea679bad2679", size = 5057175, upload-time = "2025-09-22T04:02:14.718Z" }, + { url = "https://files.pythonhosted.org/packages/95/0c/443fc476dcc8e41577f0af70458c50fe299a97bb6b7505bb1ae09aa7f9ac/lxml-6.0.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:2cbcbf6d6e924c28f04a43f3b6f6e272312a090f269eff68a2982e13e5d57659", size = 4785688, upload-time = "2025-09-22T04:02:16.957Z" }, + { url = "https://files.pythonhosted.org/packages/48/78/6ef0b359d45bb9697bc5a626e1992fa5d27aa3f8004b137b2314793b50a0/lxml-6.0.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:dfb874cfa53340009af6bdd7e54ebc0d21012a60a4e65d927c2e477112e63484", size = 5660655, upload-time = "2025-09-22T04:02:18.815Z" }, + { url = "https://files.pythonhosted.org/packages/ff/ea/e1d33808f386bc1339d08c0dcada6e4712d4ed8e93fcad5f057070b7988a/lxml-6.0.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:fb8dae0b6b8b7f9e96c26fdd8121522ce5de9bb5538010870bd538683d30e9a2", size = 5247695, upload-time = "2025-09-22T04:02:20.593Z" }, + { url = "https://files.pythonhosted.org/packages/4f/47/eba75dfd8183673725255247a603b4ad606f4ae657b60c6c145b381697da/lxml-6.0.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:358d9adae670b63e95bc59747c72f4dc97c9ec58881d4627fe0120da0f90d314", size = 5269841, upload-time = "2025-09-22T04:02:22.489Z" }, + { url = "https://files.pythonhosted.org/packages/76/04/5c5e2b8577bc936e219becb2e98cdb1aca14a4921a12995b9d0c523502ae/lxml-6.0.2-cp313-cp313-win32.whl", hash = "sha256:e8cd2415f372e7e5a789d743d133ae474290a90b9023197fd78f32e2dc6873e2", size = 3610700, upload-time = "2025-09-22T04:02:24.465Z" }, + { url = "https://files.pythonhosted.org/packages/fe/0a/4643ccc6bb8b143e9f9640aa54e38255f9d3b45feb2cbe7ae2ca47e8782e/lxml-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:b30d46379644fbfc3ab81f8f82ae4de55179414651f110a1514f0b1f8f6cb2d7", size = 4010347, upload-time = "2025-09-22T04:02:26.286Z" }, + { url = "https://files.pythonhosted.org/packages/31/ef/dcf1d29c3f530577f61e5fe2f1bd72929acf779953668a8a47a479ae6f26/lxml-6.0.2-cp313-cp313-win_arm64.whl", hash = "sha256:13dcecc9946dca97b11b7c40d29fba63b55ab4170d3c0cf8c0c164343b9bfdcf", size = 3671248, upload-time = "2025-09-22T04:02:27.918Z" }, + { url = "https://files.pythonhosted.org/packages/03/15/d4a377b385ab693ce97b472fe0c77c2b16ec79590e688b3ccc71fba19884/lxml-6.0.2-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:b0c732aa23de8f8aec23f4b580d1e52905ef468afb4abeafd3fec77042abb6fe", size = 8659801, upload-time = "2025-09-22T04:02:30.113Z" }, + { url = "https://files.pythonhosted.org/packages/c8/e8/c128e37589463668794d503afaeb003987373c5f94d667124ffd8078bbd9/lxml-6.0.2-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:4468e3b83e10e0317a89a33d28f7aeba1caa4d1a6fd457d115dd4ffe90c5931d", size = 4659403, upload-time = "2025-09-22T04:02:32.119Z" }, + { url = "https://files.pythonhosted.org/packages/00/ce/74903904339decdf7da7847bb5741fc98a5451b42fc419a86c0c13d26fe2/lxml-6.0.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:abd44571493973bad4598a3be7e1d807ed45aa2adaf7ab92ab7c62609569b17d", size = 4966974, upload-time = "2025-09-22T04:02:34.155Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d3/131dec79ce61c5567fecf82515bd9bc36395df42501b50f7f7f3bd065df0/lxml-6.0.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:370cd78d5855cfbffd57c422851f7d3864e6ae72d0da615fca4dad8c45d375a5", size = 5102953, upload-time = "2025-09-22T04:02:36.054Z" }, + { url = "https://files.pythonhosted.org/packages/3a/ea/a43ba9bb750d4ffdd885f2cd333572f5bb900cd2408b67fdda07e85978a0/lxml-6.0.2-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:901e3b4219fa04ef766885fb40fa516a71662a4c61b80c94d25336b4934b71c0", size = 5055054, upload-time = "2025-09-22T04:02:38.154Z" }, + { url = "https://files.pythonhosted.org/packages/60/23/6885b451636ae286c34628f70a7ed1fcc759f8d9ad382d132e1c8d3d9bfd/lxml-6.0.2-cp314-cp314-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:a4bf42d2e4cf52c28cc1812d62426b9503cdb0c87a6de81442626aa7d69707ba", size = 5352421, upload-time = "2025-09-22T04:02:40.413Z" }, + { url = "https://files.pythonhosted.org/packages/48/5b/fc2ddfc94ddbe3eebb8e9af6e3fd65e2feba4967f6a4e9683875c394c2d8/lxml-6.0.2-cp314-cp314-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b2c7fdaa4d7c3d886a42534adec7cfac73860b89b4e5298752f60aa5984641a0", size = 5673684, upload-time = "2025-09-22T04:02:42.288Z" }, + { url = "https://files.pythonhosted.org/packages/29/9c/47293c58cc91769130fbf85531280e8cc7868f7fbb6d92f4670071b9cb3e/lxml-6.0.2-cp314-cp314-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:98a5e1660dc7de2200b00d53fa00bcd3c35a3608c305d45a7bbcaf29fa16e83d", size = 5252463, upload-time = "2025-09-22T04:02:44.165Z" }, + { url = "https://files.pythonhosted.org/packages/9b/da/ba6eceb830c762b48e711ded880d7e3e89fc6c7323e587c36540b6b23c6b/lxml-6.0.2-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:dc051506c30b609238d79eda75ee9cab3e520570ec8219844a72a46020901e37", size = 4698437, upload-time = "2025-09-22T04:02:46.524Z" }, + { url = "https://files.pythonhosted.org/packages/a5/24/7be3f82cb7990b89118d944b619e53c656c97dc89c28cfb143fdb7cd6f4d/lxml-6.0.2-cp314-cp314-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8799481bbdd212470d17513a54d568f44416db01250f49449647b5ab5b5dccb9", size = 5269890, upload-time = "2025-09-22T04:02:48.812Z" }, + { url = "https://files.pythonhosted.org/packages/1b/bd/dcfb9ea1e16c665efd7538fc5d5c34071276ce9220e234217682e7d2c4a5/lxml-6.0.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:9261bb77c2dab42f3ecd9103951aeca2c40277701eb7e912c545c1b16e0e4917", size = 5097185, upload-time = "2025-09-22T04:02:50.746Z" }, + { url = "https://files.pythonhosted.org/packages/21/04/a60b0ff9314736316f28316b694bccbbabe100f8483ad83852d77fc7468e/lxml-6.0.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:65ac4a01aba353cfa6d5725b95d7aed6356ddc0a3cd734de00124d285b04b64f", size = 4745895, upload-time = "2025-09-22T04:02:52.968Z" }, + { url = "https://files.pythonhosted.org/packages/d6/bd/7d54bd1846e5a310d9c715921c5faa71cf5c0853372adf78aee70c8d7aa2/lxml-6.0.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:b22a07cbb82fea98f8a2fd814f3d1811ff9ed76d0fc6abc84eb21527596e7cc8", size = 5695246, upload-time = "2025-09-22T04:02:54.798Z" }, + { url = "https://files.pythonhosted.org/packages/fd/32/5643d6ab947bc371da21323acb2a6e603cedbe71cb4c99c8254289ab6f4e/lxml-6.0.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:d759cdd7f3e055d6bc8d9bec3ad905227b2e4c785dc16c372eb5b5e83123f48a", size = 5260797, upload-time = "2025-09-22T04:02:57.058Z" }, + { url = "https://files.pythonhosted.org/packages/33/da/34c1ec4cff1eea7d0b4cd44af8411806ed943141804ac9c5d565302afb78/lxml-6.0.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:945da35a48d193d27c188037a05fec5492937f66fb1958c24fc761fb9d40d43c", size = 5277404, upload-time = "2025-09-22T04:02:58.966Z" }, + { url = "https://files.pythonhosted.org/packages/82/57/4eca3e31e54dc89e2c3507e1cd411074a17565fa5ffc437c4ae0a00d439e/lxml-6.0.2-cp314-cp314-win32.whl", hash = "sha256:be3aaa60da67e6153eb15715cc2e19091af5dc75faef8b8a585aea372507384b", size = 3670072, upload-time = "2025-09-22T04:03:38.05Z" }, + { url = "https://files.pythonhosted.org/packages/e3/e0/c96cf13eccd20c9421ba910304dae0f619724dcf1702864fd59dd386404d/lxml-6.0.2-cp314-cp314-win_amd64.whl", hash = "sha256:fa25afbadead523f7001caf0c2382afd272c315a033a7b06336da2637d92d6ed", size = 4080617, upload-time = "2025-09-22T04:03:39.835Z" }, + { url = "https://files.pythonhosted.org/packages/d5/5d/b3f03e22b3d38d6f188ef044900a9b29b2fe0aebb94625ce9fe244011d34/lxml-6.0.2-cp314-cp314-win_arm64.whl", hash = "sha256:063eccf89df5b24e361b123e257e437f9e9878f425ee9aae3144c77faf6da6d8", size = 3754930, upload-time = "2025-09-22T04:03:41.565Z" }, + { url = "https://files.pythonhosted.org/packages/5e/5c/42c2c4c03554580708fc738d13414801f340c04c3eff90d8d2d227145275/lxml-6.0.2-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:6162a86d86893d63084faaf4ff937b3daea233e3682fb4474db07395794fa80d", size = 8910380, upload-time = "2025-09-22T04:03:01.645Z" }, + { url = "https://files.pythonhosted.org/packages/bf/4f/12df843e3e10d18d468a7557058f8d3733e8b6e12401f30b1ef29360740f/lxml-6.0.2-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:414aaa94e974e23a3e92e7ca5b97d10c0cf37b6481f50911032c69eeb3991bba", size = 4775632, upload-time = "2025-09-22T04:03:03.814Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0c/9dc31e6c2d0d418483cbcb469d1f5a582a1cd00a1f4081953d44051f3c50/lxml-6.0.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:48461bd21625458dd01e14e2c38dd0aea69addc3c4f960c30d9f59d7f93be601", size = 4975171, upload-time = "2025-09-22T04:03:05.651Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2b/9b870c6ca24c841bdd887504808f0417aa9d8d564114689266f19ddf29c8/lxml-6.0.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:25fcc59afc57d527cfc78a58f40ab4c9b8fd096a9a3f964d2781ffb6eb33f4ed", size = 5110109, upload-time = "2025-09-22T04:03:07.452Z" }, + { url = "https://files.pythonhosted.org/packages/bf/0c/4f5f2a4dd319a178912751564471355d9019e220c20d7db3fb8307ed8582/lxml-6.0.2-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5179c60288204e6ddde3f774a93350177e08876eaf3ab78aa3a3649d43eb7d37", size = 5041061, upload-time = "2025-09-22T04:03:09.297Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/554eed290365267671fe001a20d72d14f468ae4e6acef1e179b039436967/lxml-6.0.2-cp314-cp314t-manylinux_2_26_i686.manylinux_2_28_i686.whl", hash = "sha256:967aab75434de148ec80597b75062d8123cadf2943fb4281f385141e18b21338", size = 5306233, upload-time = "2025-09-22T04:03:11.651Z" }, + { url = "https://files.pythonhosted.org/packages/7a/31/1d748aa275e71802ad9722df32a7a35034246b42c0ecdd8235412c3396ef/lxml-6.0.2-cp314-cp314t-manylinux_2_26_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d100fcc8930d697c6561156c6810ab4a508fb264c8b6779e6e61e2ed5e7558f9", size = 5604739, upload-time = "2025-09-22T04:03:13.592Z" }, + { url = "https://files.pythonhosted.org/packages/8f/41/2c11916bcac09ed561adccacceaedd2bf0e0b25b297ea92aab99fd03d0fa/lxml-6.0.2-cp314-cp314t-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ca59e7e13e5981175b8b3e4ab84d7da57993eeff53c07764dcebda0d0e64ecd", size = 5225119, upload-time = "2025-09-22T04:03:15.408Z" }, + { url = "https://files.pythonhosted.org/packages/99/05/4e5c2873d8f17aa018e6afde417c80cc5d0c33be4854cce3ef5670c49367/lxml-6.0.2-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:957448ac63a42e2e49531b9d6c0fa449a1970dbc32467aaad46f11545be9af1d", size = 4633665, upload-time = "2025-09-22T04:03:17.262Z" }, + { url = "https://files.pythonhosted.org/packages/0f/c9/dcc2da1bebd6275cdc723b515f93edf548b82f36a5458cca3578bc899332/lxml-6.0.2-cp314-cp314t-manylinux_2_38_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b7fc49c37f1786284b12af63152fe1d0990722497e2d5817acfe7a877522f9a9", size = 5234997, upload-time = "2025-09-22T04:03:19.14Z" }, + { url = "https://files.pythonhosted.org/packages/9c/e2/5172e4e7468afca64a37b81dba152fc5d90e30f9c83c7c3213d6a02a5ce4/lxml-6.0.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e19e0643cc936a22e837f79d01a550678da8377d7d801a14487c10c34ee49c7e", size = 5090957, upload-time = "2025-09-22T04:03:21.436Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b3/15461fd3e5cd4ddcb7938b87fc20b14ab113b92312fc97afe65cd7c85de1/lxml-6.0.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:1db01e5cf14345628e0cbe71067204db658e2fb8e51e7f33631f5f4735fefd8d", size = 4764372, upload-time = "2025-09-22T04:03:23.27Z" }, + { url = "https://files.pythonhosted.org/packages/05/33/f310b987c8bf9e61c4dd8e8035c416bd3230098f5e3cfa69fc4232de7059/lxml-6.0.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:875c6b5ab39ad5291588aed6925fac99d0097af0dd62f33c7b43736043d4a2ec", size = 5634653, upload-time = "2025-09-22T04:03:25.767Z" }, + { url = "https://files.pythonhosted.org/packages/70/ff/51c80e75e0bc9382158133bdcf4e339b5886c6ee2418b5199b3f1a61ed6d/lxml-6.0.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:cdcbed9ad19da81c480dfd6dd161886db6096083c9938ead313d94b30aadf272", size = 5233795, upload-time = "2025-09-22T04:03:27.62Z" }, + { url = "https://files.pythonhosted.org/packages/56/4d/4856e897df0d588789dd844dbed9d91782c4ef0b327f96ce53c807e13128/lxml-6.0.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:80dadc234ebc532e09be1975ff538d154a7fa61ea5031c03d25178855544728f", size = 5257023, upload-time = "2025-09-22T04:03:30.056Z" }, + { url = "https://files.pythonhosted.org/packages/0f/85/86766dfebfa87bea0ab78e9ff7a4b4b45225df4b4d3b8cc3c03c5cd68464/lxml-6.0.2-cp314-cp314t-win32.whl", hash = "sha256:da08e7bb297b04e893d91087df19638dc7a6bb858a954b0cc2b9f5053c922312", size = 3911420, upload-time = "2025-09-22T04:03:32.198Z" }, + { url = "https://files.pythonhosted.org/packages/fe/1a/b248b355834c8e32614650b8008c69ffeb0ceb149c793961dd8c0b991bb3/lxml-6.0.2-cp314-cp314t-win_amd64.whl", hash = "sha256:252a22982dca42f6155125ac76d3432e548a7625d56f5a273ee78a5057216eca", size = 4406837, upload-time = "2025-09-22T04:03:34.027Z" }, + { url = "https://files.pythonhosted.org/packages/92/aa/df863bcc39c5e0946263454aba394de8a9084dbaff8ad143846b0d844739/lxml-6.0.2-cp314-cp314t-win_arm64.whl", hash = "sha256:bb4c1847b303835d89d785a18801a883436cdfd5dc3d62947f9c49e24f0f5a2c", size = 3822205, upload-time = "2025-09-22T04:03:36.249Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/29d08bc103a62c0eba8016e7ed5aeebbf1e4312e83b0b1648dd203b0e87d/lxml-6.0.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:1c06035eafa8404b5cf475bb37a9f6088b0aca288d4ccc9d69389750d5543700", size = 3949829, upload-time = "2025-09-22T04:04:45.608Z" }, + { url = "https://files.pythonhosted.org/packages/12/b3/52ab9a3b31e5ab8238da241baa19eec44d2ab426532441ee607165aebb52/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:c7d13103045de1bdd6fe5d61802565f1a3537d70cd3abf596aa0af62761921ee", size = 4226277, upload-time = "2025-09-22T04:04:47.754Z" }, + { url = "https://files.pythonhosted.org/packages/a0/33/1eaf780c1baad88224611df13b1c2a9dfa460b526cacfe769103ff50d845/lxml-6.0.2-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0a3c150a95fbe5ac91de323aa756219ef9cf7fde5a3f00e2281e30f33fa5fa4f", size = 4330433, upload-time = "2025-09-22T04:04:49.907Z" }, + { url = "https://files.pythonhosted.org/packages/7a/c1/27428a2ff348e994ab4f8777d3a0ad510b6b92d37718e5887d2da99952a2/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:60fa43be34f78bebb27812ed90f1925ec99560b0fa1decdb7d12b84d857d31e9", size = 4272119, upload-time = "2025-09-22T04:04:51.801Z" }, + { url = "https://files.pythonhosted.org/packages/f0/d0/3020fa12bcec4ab62f97aab026d57c2f0cfd480a558758d9ca233bb6a79d/lxml-6.0.2-pp311-pypy311_pp73-manylinux_2_26_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:21c73b476d3cfe836be731225ec3421fa2f048d84f6df6a8e70433dff1376d5a", size = 4417314, upload-time = "2025-09-22T04:04:55.024Z" }, + { url = "https://files.pythonhosted.org/packages/6c/77/d7f491cbc05303ac6801651aabeb262d43f319288c1ea96c66b1d2692ff3/lxml-6.0.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:27220da5be049e936c3aca06f174e8827ca6445a4353a1995584311487fc4e3e", size = 3518768, upload-time = "2025-09-22T04:04:57.097Z" }, +] + +[[package]] +name = "matplotlib" +version = "3.10.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "contourpy" }, + { name = "cycler" }, + { name = "fonttools" }, + { name = "kiwisolver" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pyparsing" }, + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/76/d3c6e3a13fe484ebe7718d14e269c9569c4eb0020a968a327acb3b9a8fe6/matplotlib-3.10.8.tar.gz", hash = "sha256:2299372c19d56bcd35cf05a2738308758d32b9eaed2371898d8f5bd33f084aa3", size = 34806269, upload-time = "2025-12-10T22:56:51.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/86/de7e3a1cdcfc941483af70609edc06b83e7c8a0e0dc9ac325200a3f4d220/matplotlib-3.10.8-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:6be43b667360fef5c754dda5d25a32e6307a03c204f3c0fc5468b78fa87b4160", size = 8251215, upload-time = "2025-12-10T22:55:16.175Z" }, + { url = "https://files.pythonhosted.org/packages/fd/14/baad3222f424b19ce6ad243c71de1ad9ec6b2e4eb1e458a48fdc6d120401/matplotlib-3.10.8-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2b336e2d91a3d7006864e0990c83b216fcdca64b5a6484912902cef87313d78", size = 8139625, upload-time = "2025-12-10T22:55:17.712Z" }, + { url = "https://files.pythonhosted.org/packages/8f/a0/7024215e95d456de5883e6732e708d8187d9753a21d32f8ddb3befc0c445/matplotlib-3.10.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:efb30e3baaea72ce5928e32bab719ab4770099079d66726a62b11b1ef7273be4", size = 8712614, upload-time = "2025-12-10T22:55:20.8Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f4/b8347351da9a5b3f41e26cf547252d861f685c6867d179a7c9d60ad50189/matplotlib-3.10.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d56a1efd5bfd61486c8bc968fa18734464556f0fb8e51690f4ac25d85cbbbbc2", size = 9540997, upload-time = "2025-12-10T22:55:23.258Z" }, + { url = "https://files.pythonhosted.org/packages/9e/c0/c7b914e297efe0bc36917bf216b2acb91044b91e930e878ae12981e461e5/matplotlib-3.10.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:238b7ce5717600615c895050239ec955d91f321c209dd110db988500558e70d6", size = 9596825, upload-time = "2025-12-10T22:55:25.217Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d3/a4bbc01c237ab710a1f22b4da72f4ff6d77eb4c7735ea9811a94ae239067/matplotlib-3.10.8-cp311-cp311-win_amd64.whl", hash = "sha256:18821ace09c763ec93aef5eeff087ee493a24051936d7b9ebcad9662f66501f9", size = 8135090, upload-time = "2025-12-10T22:55:27.162Z" }, + { url = "https://files.pythonhosted.org/packages/89/dd/a0b6588f102beab33ca6f5218b31725216577b2a24172f327eaf6417d5c9/matplotlib-3.10.8-cp311-cp311-win_arm64.whl", hash = "sha256:bab485bcf8b1c7d2060b4fcb6fc368a9e6f4cd754c9c2fea281f4be21df394a2", size = 8012377, upload-time = "2025-12-10T22:55:29.185Z" }, + { url = "https://files.pythonhosted.org/packages/9e/67/f997cdcbb514012eb0d10cd2b4b332667997fb5ebe26b8d41d04962fa0e6/matplotlib-3.10.8-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:64fcc24778ca0404ce0cb7b6b77ae1f4c7231cdd60e6778f999ee05cbd581b9a", size = 8260453, upload-time = "2025-12-10T22:55:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/7e/65/07d5f5c7f7c994f12c768708bd2e17a4f01a2b0f44a1c9eccad872433e2e/matplotlib-3.10.8-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b9a5ca4ac220a0cdd1ba6bcba3608547117d30468fefce49bb26f55c1a3d5c58", size = 8148321, upload-time = "2025-12-10T22:55:33.265Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f3/c5195b1ae57ef85339fd7285dfb603b22c8b4e79114bae5f4f0fcf688677/matplotlib-3.10.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3ab4aabc72de4ff77b3ec33a6d78a68227bf1123465887f9905ba79184a1cc04", size = 8716944, upload-time = "2025-12-10T22:55:34.922Z" }, + { url = "https://files.pythonhosted.org/packages/00/f9/7638f5cc82ec8a7aa005de48622eecc3ed7c9854b96ba15bd76b7fd27574/matplotlib-3.10.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24d50994d8c5816ddc35411e50a86ab05f575e2530c02752e02538122613371f", size = 9550099, upload-time = "2025-12-10T22:55:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/78cd5920d35b29fd2a0fe894de8adf672ff52939d2e9b43cb83cd5ce1bc7/matplotlib-3.10.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:99eefd13c0dc3b3c1b4d561c1169e65fe47aab7b8158754d7c084088e2329466", size = 9613040, upload-time = "2025-12-10T22:55:38.715Z" }, + { url = "https://files.pythonhosted.org/packages/30/4e/c10f171b6e2f44d9e3a2b96efa38b1677439d79c99357600a62cc1e9594e/matplotlib-3.10.8-cp312-cp312-win_amd64.whl", hash = "sha256:dd80ecb295460a5d9d260df63c43f4afbdd832d725a531f008dad1664f458adf", size = 8142717, upload-time = "2025-12-10T22:55:41.103Z" }, + { url = "https://files.pythonhosted.org/packages/f1/76/934db220026b5fef85f45d51a738b91dea7d70207581063cd9bd8fafcf74/matplotlib-3.10.8-cp312-cp312-win_arm64.whl", hash = "sha256:3c624e43ed56313651bc18a47f838b60d7b8032ed348911c54906b130b20071b", size = 8012751, upload-time = "2025-12-10T22:55:42.684Z" }, + { url = "https://files.pythonhosted.org/packages/3d/b9/15fd5541ef4f5b9a17eefd379356cf12175fe577424e7b1d80676516031a/matplotlib-3.10.8-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f2e409836d7f5ac2f1c013110a4d50b9f7edc26328c108915f9075d7d7a91b6", size = 8261076, upload-time = "2025-12-10T22:55:44.648Z" }, + { url = "https://files.pythonhosted.org/packages/8d/a0/2ba3473c1b66b9c74dc7107c67e9008cb1782edbe896d4c899d39ae9cf78/matplotlib-3.10.8-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:56271f3dac49a88d7fca5060f004d9d22b865f743a12a23b1e937a0be4818ee1", size = 8148794, upload-time = "2025-12-10T22:55:46.252Z" }, + { url = "https://files.pythonhosted.org/packages/75/97/a471f1c3eb1fd6f6c24a31a5858f443891d5127e63a7788678d14e249aea/matplotlib-3.10.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:a0a7f52498f72f13d4a25ea70f35f4cb60642b466cbb0a9be951b5bc3f45a486", size = 8718474, upload-time = "2025-12-10T22:55:47.864Z" }, + { url = "https://files.pythonhosted.org/packages/01/be/cd478f4b66f48256f42927d0acbcd63a26a893136456cd079c0cc24fbabf/matplotlib-3.10.8-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:646d95230efb9ca614a7a594d4fcacde0ac61d25e37dd51710b36477594963ce", size = 9549637, upload-time = "2025-12-10T22:55:50.048Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/8dc289776eae5109e268c4fb92baf870678dc048a25d4ac903683b86d5bf/matplotlib-3.10.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f89c151aab2e2e23cb3fe0acad1e8b82841fd265379c4cecd0f3fcb34c15e0f6", size = 9613678, upload-time = "2025-12-10T22:55:52.21Z" }, + { url = "https://files.pythonhosted.org/packages/64/40/37612487cc8a437d4dd261b32ca21fe2d79510fe74af74e1f42becb1bdb8/matplotlib-3.10.8-cp313-cp313-win_amd64.whl", hash = "sha256:e8ea3e2d4066083e264e75c829078f9e149fa119d27e19acd503de65e0b13149", size = 8142686, upload-time = "2025-12-10T22:55:54.253Z" }, + { url = "https://files.pythonhosted.org/packages/66/52/8d8a8730e968185514680c2a6625943f70269509c3dcfc0dcf7d75928cb8/matplotlib-3.10.8-cp313-cp313-win_arm64.whl", hash = "sha256:c108a1d6fa78a50646029cb6d49808ff0fc1330fda87fa6f6250c6b5369b6645", size = 8012917, upload-time = "2025-12-10T22:55:56.268Z" }, + { url = "https://files.pythonhosted.org/packages/b5/27/51fe26e1062f298af5ef66343d8ef460e090a27fea73036c76c35821df04/matplotlib-3.10.8-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ad3d9833a64cf48cc4300f2b406c3d0f4f4724a91c0bd5640678a6ba7c102077", size = 8305679, upload-time = "2025-12-10T22:55:57.856Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1e/4de865bc591ac8e3062e835f42dd7fe7a93168d519557837f0e37513f629/matplotlib-3.10.8-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:eb3823f11823deade26ce3b9f40dcb4a213da7a670013929f31d5f5ed1055b22", size = 8198336, upload-time = "2025-12-10T22:55:59.371Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cb/2f7b6e75fb4dce87ef91f60cac4f6e34f4c145ab036a22318ec837971300/matplotlib-3.10.8-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d9050fee89a89ed57b4fb2c1bfac9a3d0c57a0d55aed95949eedbc42070fea39", size = 8731653, upload-time = "2025-12-10T22:56:01.032Z" }, + { url = "https://files.pythonhosted.org/packages/46/b3/bd9c57d6ba670a37ab31fb87ec3e8691b947134b201f881665b28cc039ff/matplotlib-3.10.8-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b44d07310e404ba95f8c25aa5536f154c0a8ec473303535949e52eb71d0a1565", size = 9561356, upload-time = "2025-12-10T22:56:02.95Z" }, + { url = "https://files.pythonhosted.org/packages/c0/3d/8b94a481456dfc9dfe6e39e93b5ab376e50998cddfd23f4ae3b431708f16/matplotlib-3.10.8-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0a33deb84c15ede243aead39f77e990469fff93ad1521163305095b77b72ce4a", size = 9614000, upload-time = "2025-12-10T22:56:05.411Z" }, + { url = "https://files.pythonhosted.org/packages/bd/cd/bc06149fe5585ba800b189a6a654a75f1f127e8aab02fd2be10df7fa500c/matplotlib-3.10.8-cp313-cp313t-win_amd64.whl", hash = "sha256:3a48a78d2786784cc2413e57397981fb45c79e968d99656706018d6e62e57958", size = 8220043, upload-time = "2025-12-10T22:56:07.551Z" }, + { url = "https://files.pythonhosted.org/packages/e3/de/b22cf255abec916562cc04eef457c13e58a1990048de0c0c3604d082355e/matplotlib-3.10.8-cp313-cp313t-win_arm64.whl", hash = "sha256:15d30132718972c2c074cd14638c7f4592bd98719e2308bccea40e0538bc0cb5", size = 8062075, upload-time = "2025-12-10T22:56:09.178Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/9c0ff7a2f11615e516c3b058e1e6e8f9614ddeca53faca06da267c48345d/matplotlib-3.10.8-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:b53285e65d4fa4c86399979e956235deb900be5baa7fc1218ea67fbfaeaadd6f", size = 8262481, upload-time = "2025-12-10T22:56:10.885Z" }, + { url = "https://files.pythonhosted.org/packages/6f/ca/e8ae28649fcdf039fda5ef554b40a95f50592a3c47e6f7270c9561c12b07/matplotlib-3.10.8-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:32f8dce744be5569bebe789e46727946041199030db8aeb2954d26013a0eb26b", size = 8151473, upload-time = "2025-12-10T22:56:12.377Z" }, + { url = "https://files.pythonhosted.org/packages/f1/6f/009d129ae70b75e88cbe7e503a12a4c0670e08ed748a902c2568909e9eb5/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4cf267add95b1c88300d96ca837833d4112756045364f5c734a2276038dae27d", size = 9553896, upload-time = "2025-12-10T22:56:14.432Z" }, + { url = "https://files.pythonhosted.org/packages/f5/26/4221a741eb97967bc1fd5e4c52b9aa5a91b2f4ec05b59f6def4d820f9df9/matplotlib-3.10.8-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2cf5bd12cecf46908f286d7838b2abc6c91cda506c0445b8223a7c19a00df008", size = 9824193, upload-time = "2025-12-10T22:56:16.29Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f3/3abf75f38605772cf48a9daf5821cd4f563472f38b4b828c6fba6fa6d06e/matplotlib-3.10.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:41703cc95688f2516b480f7f339d8851a6035f18e100ee6a32bc0b8536a12a9c", size = 9615444, upload-time = "2025-12-10T22:56:18.155Z" }, + { url = "https://files.pythonhosted.org/packages/93/a5/de89ac80f10b8dc615807ee1133cd99ac74082581196d4d9590bea10690d/matplotlib-3.10.8-cp314-cp314-win_amd64.whl", hash = "sha256:83d282364ea9f3e52363da262ce32a09dfe241e4080dcedda3c0db059d3c1f11", size = 8272719, upload-time = "2025-12-10T22:56:20.366Z" }, + { url = "https://files.pythonhosted.org/packages/69/ce/b006495c19ccc0a137b48083168a37bd056392dee02f87dba0472f2797fe/matplotlib-3.10.8-cp314-cp314-win_arm64.whl", hash = "sha256:2c1998e92cd5999e295a731bcb2911c75f597d937341f3030cc24ef2733d78a8", size = 8144205, upload-time = "2025-12-10T22:56:22.239Z" }, + { url = "https://files.pythonhosted.org/packages/68/d9/b31116a3a855bd313c6fcdb7226926d59b041f26061c6c5b1be66a08c826/matplotlib-3.10.8-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:b5a2b97dbdc7d4f353ebf343744f1d1f1cca8aa8bfddb4262fcf4306c3761d50", size = 8305785, upload-time = "2025-12-10T22:56:24.218Z" }, + { url = "https://files.pythonhosted.org/packages/1e/90/6effe8103f0272685767ba5f094f453784057072f49b393e3ea178fe70a5/matplotlib-3.10.8-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:3f5c3e4da343bba819f0234186b9004faba952cc420fbc522dc4e103c1985908", size = 8198361, upload-time = "2025-12-10T22:56:26.787Z" }, + { url = "https://files.pythonhosted.org/packages/d7/65/a73188711bea603615fc0baecca1061429ac16940e2385433cc778a9d8e7/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5f62550b9a30afde8c1c3ae450e5eb547d579dd69b25c2fc7a1c67f934c1717a", size = 9561357, upload-time = "2025-12-10T22:56:28.953Z" }, + { url = "https://files.pythonhosted.org/packages/f4/3d/b5c5d5d5be8ce63292567f0e2c43dde9953d3ed86ac2de0a72e93c8f07a1/matplotlib-3.10.8-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:495672de149445ec1b772ff2c9ede9b769e3cb4f0d0aa7fa730d7f59e2d4e1c1", size = 9823610, upload-time = "2025-12-10T22:56:31.455Z" }, + { url = "https://files.pythonhosted.org/packages/4d/4b/e7beb6bbd49f6bae727a12b270a2654d13c397576d25bd6786e47033300f/matplotlib-3.10.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:595ba4d8fe983b88f0eec8c26a241e16d6376fe1979086232f481f8f3f67494c", size = 9614011, upload-time = "2025-12-10T22:56:33.85Z" }, + { url = "https://files.pythonhosted.org/packages/7c/e6/76f2813d31f032e65f6f797e3f2f6e4aab95b65015924b1c51370395c28a/matplotlib-3.10.8-cp314-cp314t-win_amd64.whl", hash = "sha256:25d380fe8b1dc32cf8f0b1b448470a77afb195438bafdf1d858bfb876f3edf7b", size = 8362801, upload-time = "2025-12-10T22:56:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/5d/49/d651878698a0b67f23aa28e17f45a6d6dd3d3f933fa29087fa4ce5947b5a/matplotlib-3.10.8-cp314-cp314t-win_arm64.whl", hash = "sha256:113bb52413ea508ce954a02c10ffd0d565f9c3bc7f2eddc27dfe1731e71c7b5f", size = 8192560, upload-time = "2025-12-10T22:56:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/04/30/3afaa31c757f34b7725ab9d2ba8b48b5e89c2019c003e7d0ead143aabc5a/matplotlib-3.10.8-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:6da7c2ce169267d0d066adcf63758f0604aa6c3eebf67458930f9d9b79ad1db1", size = 8249198, upload-time = "2025-12-10T22:56:45.584Z" }, + { url = "https://files.pythonhosted.org/packages/48/2f/6334aec331f57485a642a7c8be03cb286f29111ae71c46c38b363230063c/matplotlib-3.10.8-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:9153c3292705be9f9c64498a8872118540c3f4123d1a1c840172edf262c8be4a", size = 8136817, upload-time = "2025-12-10T22:56:47.339Z" }, + { url = "https://files.pythonhosted.org/packages/73/e4/6d6f14b2a759c622f191b2d67e9075a3f56aaccb3be4bb9bb6890030d0a0/matplotlib-3.10.8-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1ae029229a57cd1e8fe542485f27e7ca7b23aa9e8944ddb4985d0bc444f1eca2", size = 8713867, upload-time = "2025-12-10T22:56:48.954Z" }, +] + +[[package]] +name = "monty" +version = "2025.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "ruamel-yaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/54/a1b2b4c9b16ebc5ea72cf22b1a6bb7ceaa79187fbf22a404c9677c8f90dd/monty-2025.3.3.tar.gz", hash = "sha256:16c1eb54b2372e765c2f3f14cff01cc76ab55c3cc12b27d49962fb8072310ae0", size = 85592, upload-time = "2025-03-03T21:12:44.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/eb/df/b3a36544734be3ac0eacf11bcfb8609464dd07d8bad0dff6e46109c68002/monty-2025.3.3-py3-none-any.whl", hash = "sha256:5eadb6d748c007bc63c34eceb2d80faff18f3996121d261dbceeea22adc58775", size = 51925, upload-time = "2025-03-03T21:12:42.598Z" }, +] + +[[package]] +name = "mp-api" +version = "0.46.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "boto3" }, + { name = "emmet-core" }, + { name = "monty" }, + { name = "orjson" }, + { name = "pymatgen" }, + { name = "requests" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7d/ac/05b01988f1a45203fa494bcdbbd8528d5e4eb8b6968bf2427b2b14819142/mp_api-0.46.0.tar.gz", hash = "sha256:045588cfdcd1c3b68a3611b971e29a8f5be05d0cfd6776db702dc67fb90cf2c1", size = 113171, upload-time = "2026-01-30T19:29:48.848Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/da/d1/c360e357d177489f13f9fb46daa586a83e927e4d3d254c3aa87c17088012/mp_api-0.46.0-py3-none-any.whl", hash = "sha256:7aa01f7864f5f81e97a829e5643bc98bb88b5e4e4ea9b6b0bd43f0745ce38ad5", size = 119380, upload-time = "2026-01-30T19:29:46.925Z" }, +] + +[[package]] +name = "mpmath" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e0/47/dd32fa426cc72114383ac549964eecb20ecfd886d1e5ccf5340b55b02f57/mpmath-1.3.0.tar.gz", hash = "sha256:7a28eb2a9774d00c7bc92411c19a89209d5da7c4c9a9e227be8330a23a25b91f", size = 508106, upload-time = "2023-03-07T16:47:11.061Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/e3/7d92a15f894aa0c9c4b49b8ee9ac9850d6e63b03c9c32c0367a13ae62209/mpmath-1.3.0-py3-none-any.whl", hash = "sha256:a0b2b9fe80bbcd81a6647ff13108738cfb482d481d826cc0e02f5b35e5c88d2c", size = 536198, upload-time = "2023-03-07T16:47:09.197Z" }, +] + +[[package]] +name = "narwhals" +version = "2.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fc/6f/713be67779028d482c6e0f2dde5bc430021b2578a4808c1c9f6d7ad48257/narwhals-2.16.0.tar.gz", hash = "sha256:155bb45132b370941ba0396d123cf9ed192bf25f39c4cea726f2da422ca4e145", size = 618268, upload-time = "2026-02-02T10:31:00.545Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/cc/7cb74758e6df95e0c4e1253f203b6dd7f348bf2f29cf89e9210a2416d535/narwhals-2.16.0-py3-none-any.whl", hash = "sha256:846f1fd7093ac69d63526e50732033e86c30ea0026a44d9b23991010c7d1485d", size = 443951, upload-time = "2026-02-02T10:30:58.635Z" }, +] + +[[package]] +name = "networkx" +version = "3.6.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6a/51/63fe664f3908c97be9d2e4f1158eb633317598cfa6e1fc14af5383f17512/networkx-3.6.1.tar.gz", hash = "sha256:26b7c357accc0c8cde558ad486283728b65b6a95d85ee1cd66bafab4c8168509", size = 2517025, upload-time = "2025-12-08T17:02:39.908Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c9/b2622292ea83fbb4ec318f5b9ab867d0a28ab43c5717bb85b0a5f6b3b0a4/networkx-3.6.1-py3-none-any.whl", hash = "sha256:d47fbf302e7d9cbbb9e2555a0d267983d2aa476bac30e90dfbe5669bd57f3762", size = 2068504, upload-time = "2025-12-08T17:02:38.159Z" }, +] + +[[package]] +name = "numdifftools" +version = "0.9.42" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/17/94/7c83677dddc78f93230f4c8a6a5faa06c92699a76eb019386a3aed8a9762/numdifftools-0.9.42.tar.gz", hash = "sha256:866675171f293c4bf2f1e1c5bf9b88a07d5396903e3b3e7fcc3879e2a01cfbc1", size = 79612, upload-time = "2025-12-11T12:06:10.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/60/60/c7504633e9fe53dc823db5d83dc15651c595cf35d668781832b4d2748272/numdifftools-0.9.42-py3-none-any.whl", hash = "sha256:22f926b8de24aa44f740bc26744a74555c1c80413068b1dee2edb3c3d10566f6", size = 94252, upload-time = "2025-12-11T12:06:09.322Z" }, +] + +[[package]] +name = "numexpr" +version = "2.14.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/2f/fdba158c9dbe5caca9c3eca3eaffffb251f2fb8674bf8e2d0aed5f38d319/numexpr-2.14.1.tar.gz", hash = "sha256:4be00b1086c7b7a5c32e31558122b7b80243fe098579b170967da83f3152b48b", size = 119400, upload-time = "2025-10-13T16:17:27.351Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/67999bdd1ed1f938d38f3fedd4969632f2f197b090e50505f7cc1fa82510/numexpr-2.14.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2d03fcb4644a12f70a14d74006f72662824da5b6128bf1bcd10cc3ed80e64c34", size = 163195, upload-time = "2025-10-13T16:16:31.212Z" }, + { url = "https://files.pythonhosted.org/packages/25/95/d64f680ea1fc56d165457287e0851d6708800f9fcea346fc1b9957942ee6/numexpr-2.14.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2773ee1133f77009a1fc2f34fe236f3d9823779f5f75450e183137d49f00499f", size = 152088, upload-time = "2025-10-13T16:16:33.186Z" }, + { url = "https://files.pythonhosted.org/packages/0e/7f/3bae417cb13ae08afd86d08bb0301c32440fe0cae4e6262b530e0819aeda/numexpr-2.14.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ebe4980f9494b9f94d10d2e526edc29e72516698d3bf95670ba79415492212a4", size = 451126, upload-time = "2025-10-13T16:13:22.248Z" }, + { url = "https://files.pythonhosted.org/packages/4c/1a/edbe839109518364ac0bd9e918cf874c755bb2c128040e920f198c494263/numexpr-2.14.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2a381e5e919a745c9503bcefffc1c7f98c972c04ec58fc8e999ed1a929e01ba6", size = 442012, upload-time = "2025-10-13T16:14:51.416Z" }, + { url = "https://files.pythonhosted.org/packages/66/b1/be4ce99bff769a5003baddac103f34681997b31d4640d5a75c0e8ed59c78/numexpr-2.14.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d08856cfc1b440eb1caaa60515235369654321995dd68eb9377577392020f6cb", size = 1415975, upload-time = "2025-10-13T16:13:26.088Z" }, + { url = "https://files.pythonhosted.org/packages/e7/33/b33b8fdc032a05d9ebb44a51bfcd4b92c178a2572cd3e6c1b03d8a4b45b2/numexpr-2.14.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:03130afa04edf83a7b590d207444f05a00363c9b9ea5d81c0f53b1ea13fad55a", size = 1464683, upload-time = "2025-10-13T16:14:58.87Z" }, + { url = "https://files.pythonhosted.org/packages/d0/b2/ddcf0ac6cf0a1d605e5aecd4281507fd79a9628a67896795ab2e975de5df/numexpr-2.14.1-cp311-cp311-win32.whl", hash = "sha256:db78fa0c9fcbaded3ae7453faf060bd7a18b0dc10299d7fcd02d9362be1213ed", size = 166838, upload-time = "2025-10-13T16:17:06.765Z" }, + { url = "https://files.pythonhosted.org/packages/64/72/4ca9bd97b2eb6dce9f5e70a3b6acec1a93e1fb9b079cb4cba2cdfbbf295d/numexpr-2.14.1-cp311-cp311-win_amd64.whl", hash = "sha256:e9b2f957798c67a2428be96b04bce85439bed05efe78eb78e4c2ca43737578e7", size = 160069, upload-time = "2025-10-13T16:17:08.752Z" }, + { url = "https://files.pythonhosted.org/packages/9d/20/c473fc04a371f5e2f8c5749e04505c13e7a8ede27c09e9f099b2ad6f43d6/numexpr-2.14.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:91ebae0ab18c799b0e6b8c5a8d11e1fa3848eb4011271d99848b297468a39430", size = 162790, upload-time = "2025-10-13T16:16:34.903Z" }, + { url = "https://files.pythonhosted.org/packages/45/93/b6760dd1904c2a498e5f43d1bb436f59383c3ddea3815f1461dfaa259373/numexpr-2.14.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:47041f2f7b9e69498fb311af672ba914a60e6e6d804011caacb17d66f639e659", size = 152196, upload-time = "2025-10-13T16:16:36.593Z" }, + { url = "https://files.pythonhosted.org/packages/72/94/cc921e35593b820521e464cbbeaf8212bbdb07f16dc79fe283168df38195/numexpr-2.14.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d686dfb2c1382d9e6e0ee0b7647f943c1886dba3adbf606c625479f35f1956c1", size = 452468, upload-time = "2025-10-13T16:13:29.531Z" }, + { url = "https://files.pythonhosted.org/packages/d9/43/560e9ba23c02c904b5934496486d061bcb14cd3ebba2e3cf0e2dccb6c22b/numexpr-2.14.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:eee6d4fbbbc368e6cdd0772734d6249128d957b3b8ad47a100789009f4de7083", size = 443631, upload-time = "2025-10-13T16:15:02.473Z" }, + { url = "https://files.pythonhosted.org/packages/7b/6c/78f83b6219f61c2c22d71ab6e6c2d4e5d7381334c6c29b77204e59edb039/numexpr-2.14.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3a2839efa25f3c8d4133252ea7342d8f81226c7c4dda81f97a57e090b9d87a48", size = 1417670, upload-time = "2025-10-13T16:13:33.464Z" }, + { url = "https://files.pythonhosted.org/packages/0e/bb/1ccc9dcaf46281568ce769888bf16294c40e98a5158e4b16c241de31d0d3/numexpr-2.14.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9f9137f1351b310436662b5dc6f4082a245efa8950c3b0d9008028df92fefb9b", size = 1466212, upload-time = "2025-10-13T16:15:12.828Z" }, + { url = "https://files.pythonhosted.org/packages/31/9f/203d82b9e39dadd91d64bca55b3c8ca432e981b822468dcef41a4418626b/numexpr-2.14.1-cp312-cp312-win32.whl", hash = "sha256:36f8d5c1bd1355df93b43d766790f9046cccfc1e32b7c6163f75bcde682cda07", size = 166996, upload-time = "2025-10-13T16:17:10.369Z" }, + { url = "https://files.pythonhosted.org/packages/1f/67/ffe750b5452eb66de788c34e7d21ec6d886abb4d7c43ad1dc88ceb3d998f/numexpr-2.14.1-cp312-cp312-win_amd64.whl", hash = "sha256:fdd886f4b7dbaf167633ee396478f0d0aa58ea2f9e7ccc3c6431019623e8d68f", size = 160187, upload-time = "2025-10-13T16:17:11.974Z" }, + { url = "https://files.pythonhosted.org/packages/73/b4/9f6d637fd79df42be1be29ee7ba1f050fab63b7182cb922a0e08adc12320/numexpr-2.14.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:09078ba73cffe94745abfbcc2d81ab8b4b4e9d7bfbbde6cac2ee5dbf38eee222", size = 162794, upload-time = "2025-10-13T16:16:38.291Z" }, + { url = "https://files.pythonhosted.org/packages/35/ae/d58558d8043de0c49f385ea2fa789e3cfe4d436c96be80200c5292f45f15/numexpr-2.14.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:dce0b5a0447baa7b44bc218ec2d7dcd175b8eee6083605293349c0c1d9b82fb6", size = 152203, upload-time = "2025-10-13T16:16:39.907Z" }, + { url = "https://files.pythonhosted.org/packages/13/65/72b065f9c75baf8f474fd5d2b768350935989d4917db1c6c75b866d4067c/numexpr-2.14.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:06855053de7a3a8425429bd996e8ae3c50b57637ad3e757e0fa0602a7874be30", size = 455860, upload-time = "2025-10-13T16:13:35.811Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f9/c9457652dfe28e2eb898372da2fe786c6db81af9540c0f853ee04a0699cc/numexpr-2.14.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:05f9366d23a2e991fd5a8b5e61a17558f028ba86158a4552f8f239b005cdf83c", size = 446574, upload-time = "2025-10-13T16:15:17.367Z" }, + { url = "https://files.pythonhosted.org/packages/b6/99/8d3879c4d67d3db5560cf2de65ce1778b80b75f6fa415eb5c3e7bd37ba27/numexpr-2.14.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c5f1b1605695778896534dfc6e130d54a65cd52be7ed2cd0cfee3981fd676bf5", size = 1417306, upload-time = "2025-10-13T16:13:42.813Z" }, + { url = "https://files.pythonhosted.org/packages/ea/05/6bddac9f18598ba94281e27a6943093f7d0976544b0cb5d92272c64719bd/numexpr-2.14.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a4ba71db47ea99c659d88ee6233fa77b6dc83392f1d324e0c90ddf617ae3f421", size = 1466145, upload-time = "2025-10-13T16:15:27.464Z" }, + { url = "https://files.pythonhosted.org/packages/24/5d/cbeb67aca0c5a76ead13df7e8bd8dd5e0d49145f90da697ba1d9f07005b0/numexpr-2.14.1-cp313-cp313-win32.whl", hash = "sha256:638dce8320f4a1483d5ca4fda69f60a70ed7e66be6e68bc23fb9f1a6b78a9e3b", size = 166996, upload-time = "2025-10-13T16:17:13.803Z" }, + { url = "https://files.pythonhosted.org/packages/cc/23/9281bceaeb282cead95f0aa5f7f222ffc895670ea689cc1398355f6e3001/numexpr-2.14.1-cp313-cp313-win_amd64.whl", hash = "sha256:9fdcd4735121658a313f878fd31136d1bfc6a5b913219e7274e9fca9f8dac3bb", size = 160189, upload-time = "2025-10-13T16:17:15.417Z" }, + { url = "https://files.pythonhosted.org/packages/f3/76/7aac965fd93a56803cbe502aee2adcad667253ae34b0badf6c5af7908b6c/numexpr-2.14.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:557887ad7f5d3c2a40fd7310e50597045a68e66b20a77b3f44d7bc7608523b4b", size = 163524, upload-time = "2025-10-13T16:16:42.213Z" }, + { url = "https://files.pythonhosted.org/packages/58/65/79d592d5e63fbfab3b59a60c386853d9186a44a3fa3c87ba26bdc25b6195/numexpr-2.14.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:af111c8fe6fc55d15e4c7cab11920fc50740d913636d486545b080192cd0ad73", size = 152919, upload-time = "2025-10-13T16:16:44.229Z" }, + { url = "https://files.pythonhosted.org/packages/84/78/3c8335f713d4aeb99fa758d7c62f0be1482d4947ce5b508e2052bb7aeee9/numexpr-2.14.1-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33265294376e7e2ae4d264d75b798a915d2acf37b9dd2b9405e8b04f84d05cfc", size = 465972, upload-time = "2025-10-13T16:13:45.061Z" }, + { url = "https://files.pythonhosted.org/packages/35/81/9ee5f69b811e8f18746c12d6f71848617684edd3161927f95eee7a305631/numexpr-2.14.1-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:83647d846d3eeeb9a9255311236135286728b398d0d41d35dedb532dca807fe9", size = 456953, upload-time = "2025-10-13T16:15:31.186Z" }, + { url = "https://files.pythonhosted.org/packages/6d/39/9b8bc6e294d85cbb54a634e47b833e9f3276a8bdf7ce92aa808718a0212d/numexpr-2.14.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:6e575fd3ad41ddf3355d0c7ef6bd0168619dc1779a98fe46693cad5e95d25e6e", size = 1426199, upload-time = "2025-10-13T16:13:48.231Z" }, + { url = "https://files.pythonhosted.org/packages/1e/ce/0d4fcd31ab49319740d934fba1734d7dad13aa485532ca754e555ca16c8b/numexpr-2.14.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:67ea4771029ce818573b1998f5ca416bd255156feea017841b86176a938f7d19", size = 1474214, upload-time = "2025-10-13T16:15:38.893Z" }, + { url = "https://files.pythonhosted.org/packages/b7/47/b2a93cbdb3ba4e009728ad1b9ef1550e2655ea2c86958ebaf03b9615f275/numexpr-2.14.1-cp313-cp313t-win32.whl", hash = "sha256:15015d47d3d1487072d58c0e7682ef2eb608321e14099c39d52e2dd689483611", size = 167676, upload-time = "2025-10-13T16:17:17.351Z" }, + { url = "https://files.pythonhosted.org/packages/86/99/ee3accc589ed032eea68e12172515ed96a5568534c213ad109e1f4411df1/numexpr-2.14.1-cp313-cp313t-win_amd64.whl", hash = "sha256:94c711f6d8f17dfb4606842b403699603aa591ab9f6bf23038b488ea9cfb0f09", size = 161096, upload-time = "2025-10-13T16:17:19.174Z" }, + { url = "https://files.pythonhosted.org/packages/ac/36/9db78dfbfdfa1f8bf0872993f1a334cdd8fca5a5b6567e47dcb128bcb7c2/numexpr-2.14.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ede79f7ff06629f599081de644546ce7324f1581c09b0ac174da88a470d39c21", size = 162848, upload-time = "2025-10-13T16:16:46.216Z" }, + { url = "https://files.pythonhosted.org/packages/13/c1/a5c78ae637402c5550e2e0ba175275d2515d432ec28af0cdc23c9b476e65/numexpr-2.14.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:2eac7a5a2f70b3768c67056445d1ceb4ecd9b853c8eda9563823b551aeaa5082", size = 152270, upload-time = "2025-10-13T16:16:47.92Z" }, + { url = "https://files.pythonhosted.org/packages/9a/ed/aabd8678077848dd9a751c5558c2057839f5a09e2a176d8dfcd0850ee00e/numexpr-2.14.1-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5aedf38d4c0c19d3cecfe0334c3f4099fb496f54c146223d30fa930084bc8574", size = 455918, upload-time = "2025-10-13T16:13:50.338Z" }, + { url = "https://files.pythonhosted.org/packages/88/e1/3db65117f02cdefb0e5e4c440daf1c30beb45051b7f47aded25b7f4f2f34/numexpr-2.14.1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439ec4d57b853792ebe5456e3160312281c3a7071ecac5532ded3278ede614de", size = 446512, upload-time = "2025-10-13T16:15:42.313Z" }, + { url = "https://files.pythonhosted.org/packages/9a/fb/7ceb9ee55b5f67e4a3e4d73d5af4c7e37e3c9f37f54bee90361b64b17e3f/numexpr-2.14.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e23b87f744e04e302d82ac5e2189ae20a533566aec76a46885376e20b0645bf8", size = 1417845, upload-time = "2025-10-13T16:13:53.836Z" }, + { url = "https://files.pythonhosted.org/packages/45/2d/9b5764d0eafbbb2889288f80de773791358acf6fad1a55767538d8b79599/numexpr-2.14.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:44f84e0e5af219dbb62a081606156420815890e041b87252fbcea5df55214c4c", size = 1466211, upload-time = "2025-10-13T16:15:48.985Z" }, + { url = "https://files.pythonhosted.org/packages/5d/21/204db708eccd71aa8bc55bcad55bc0fc6c5a4e01ad78e14ee5714a749386/numexpr-2.14.1-cp314-cp314-win32.whl", hash = "sha256:1f1a5e817c534539351aa75d26088e9e1e0ef1b3a6ab484047618a652ccc4fc3", size = 168835, upload-time = "2025-10-13T16:17:20.82Z" }, + { url = "https://files.pythonhosted.org/packages/4f/3e/d83e9401a1c3449a124f7d4b3fb44084798e0d30f7c11e60712d9b94cf11/numexpr-2.14.1-cp314-cp314-win_amd64.whl", hash = "sha256:587c41509bc373dfb1fe6086ba55a73147297247bedb6d588cda69169fc412f2", size = 162608, upload-time = "2025-10-13T16:17:22.228Z" }, + { url = "https://files.pythonhosted.org/packages/7f/d6/ec947806bb57836d6379a8c8a253c2aeaa602b12fef2336bfd2462bb4ed5/numexpr-2.14.1-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:ec368819502b64f190c3f71be14a304780b5935c42aae5bf22c27cc2cbba70b5", size = 163525, upload-time = "2025-10-13T16:16:50.133Z" }, + { url = "https://files.pythonhosted.org/packages/0d/77/048f30dcf661a3d52963a88c29b52b6d5ce996d38e9313a56a922451c1e0/numexpr-2.14.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7e87f6d203ac57239de32261c941e9748f9309cbc0da6295eabd0c438b920d3a", size = 152917, upload-time = "2025-10-13T16:16:52.055Z" }, + { url = "https://files.pythonhosted.org/packages/9e/d3/956a13e628d722d649fbf2fded615134a308c082e122a48bad0e90a99ce9/numexpr-2.14.1-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dd72d8c2a165fe45ea7650b16eb8cc1792a94a722022006bb97c86fe51fd2091", size = 466242, upload-time = "2025-10-13T16:13:55.795Z" }, + { url = "https://files.pythonhosted.org/packages/d6/dd/abe848678d82486940892f2cacf39e82eec790e8930d4d713d3f9191063b/numexpr-2.14.1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:70d80fcb418a54ca208e9a38e58ddc425c07f66485176b261d9a67c7f2864f73", size = 457149, upload-time = "2025-10-13T16:15:52.036Z" }, + { url = "https://files.pythonhosted.org/packages/fd/bb/797b583b5fb9da5700a5708ca6eb4f889c94d81abb28de4d642c0f4b3258/numexpr-2.14.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:edea2f20c2040df8b54ee8ca8ebda63de9545b2112872466118e9df4d0ae99f3", size = 1426493, upload-time = "2025-10-13T16:13:59.244Z" }, + { url = "https://files.pythonhosted.org/packages/77/c4/0519ab028fdc35e3e7ee700def7f2b4631b175cd9e1202bd7966c1695c33/numexpr-2.14.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:790447be6879a6c51b9545f79612d24c9ea0a41d537a84e15e6a8ddef0b6268e", size = 1474413, upload-time = "2025-10-13T16:15:59.211Z" }, + { url = "https://files.pythonhosted.org/packages/d4/4a/33044878c8f4a75213cfe9c11d4c02058bb710a7a063fe14f362e8de1077/numexpr-2.14.1-cp314-cp314t-win32.whl", hash = "sha256:538961096c2300ea44240209181e31fae82759d26b51713b589332b9f2a4117e", size = 169502, upload-time = "2025-10-13T16:17:23.829Z" }, + { url = "https://files.pythonhosted.org/packages/41/a2/5a1a2c72528b429337f49911b18c302ecd36eeab00f409147e1aa4ae4519/numexpr-2.14.1-cp314-cp314t-win_amd64.whl", hash = "sha256:a40b350cd45b4446076fa11843fa32bbe07024747aeddf6d467290bf9011b392", size = 163589, upload-time = "2025-10-13T16:17:25.696Z" }, +] + +[[package]] +name = "numpy" +version = "2.4.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/fd/0005efbd0af48e55eb3c7208af93f2862d4b1a56cd78e84309a2d959208d/numpy-2.4.2.tar.gz", hash = "sha256:659a6107e31a83c4e33f763942275fd278b21d095094044eb35569e86a21ddae", size = 20723651, upload-time = "2026-01-31T23:13:10.135Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/44/71852273146957899753e69986246d6a176061ea183407e95418c2aa4d9a/numpy-2.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:e7e88598032542bd49af7c4747541422884219056c268823ef6e5e89851c8825", size = 16955478, upload-time = "2026-01-31T23:10:25.623Z" }, + { url = "https://files.pythonhosted.org/packages/74/41/5d17d4058bd0cd96bcbd4d9ff0fb2e21f52702aab9a72e4a594efa18692f/numpy-2.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7edc794af8b36ca37ef5fcb5e0d128c7e0595c7b96a2318d1badb6fcd8ee86b1", size = 14965467, upload-time = "2026-01-31T23:10:28.186Z" }, + { url = "https://files.pythonhosted.org/packages/49/48/fb1ce8136c19452ed15f033f8aee91d5defe515094e330ce368a0647846f/numpy-2.4.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6e9f61981ace1360e42737e2bae58b27bf28a1b27e781721047d84bd754d32e7", size = 5475172, upload-time = "2026-01-31T23:10:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/40/a9/3feb49f17bbd1300dd2570432961f5c8a4ffeff1db6f02c7273bd020a4c9/numpy-2.4.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:cb7bbb88aa74908950d979eeaa24dbdf1a865e3c7e45ff0121d8f70387b55f73", size = 6805145, upload-time = "2026-01-31T23:10:32.352Z" }, + { url = "https://files.pythonhosted.org/packages/3f/39/fdf35cbd6d6e2fcad42fcf85ac04a85a0d0fbfbf34b30721c98d602fd70a/numpy-2.4.2-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4f069069931240b3fc703f1e23df63443dbd6390614c8c44a87d96cd0ec81eb1", size = 15966084, upload-time = "2026-01-31T23:10:34.502Z" }, + { url = "https://files.pythonhosted.org/packages/1b/46/6fa4ea94f1ddf969b2ee941290cca6f1bfac92b53c76ae5f44afe17ceb69/numpy-2.4.2-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c02ef4401a506fb60b411467ad501e1429a3487abca4664871d9ae0b46c8ba32", size = 16899477, upload-time = "2026-01-31T23:10:37.075Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/2a424e162b1a14a5bd860a464ab4e07513916a64ab1683fae262f735ccd2/numpy-2.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2653de5c24910e49c2b106499803124dde62a5a1fe0eedeaecf4309a5f639390", size = 17323429, upload-time = "2026-01-31T23:10:39.704Z" }, + { url = "https://files.pythonhosted.org/packages/ce/a2/73014149ff250628df72c58204822ac01d768697913881aacf839ff78680/numpy-2.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1ae241bbfc6ae276f94a170b14785e561cb5e7f626b6688cf076af4110887413", size = 18635109, upload-time = "2026-01-31T23:10:41.924Z" }, + { url = "https://files.pythonhosted.org/packages/6c/0c/73e8be2f1accd56df74abc1c5e18527822067dced5ec0861b5bb882c2ce0/numpy-2.4.2-cp311-cp311-win32.whl", hash = "sha256:df1b10187212b198dd45fa943d8985a3c8cf854aed4923796e0e019e113a1bda", size = 6237915, upload-time = "2026-01-31T23:10:45.26Z" }, + { url = "https://files.pythonhosted.org/packages/76/ae/e0265e0163cf127c24c3969d29f1c4c64551a1e375d95a13d32eab25d364/numpy-2.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:b9c618d56a29c9cb1c4da979e9899be7578d2e0b3c24d52079c166324c9e8695", size = 12607972, upload-time = "2026-01-31T23:10:47.021Z" }, + { url = "https://files.pythonhosted.org/packages/29/a5/c43029af9b8014d6ea157f192652c50042e8911f4300f8f6ed3336bf437f/numpy-2.4.2-cp311-cp311-win_arm64.whl", hash = "sha256:47c5a6ed21d9452b10227e5e8a0e1c22979811cad7dcc19d8e3e2fb8fa03f1a3", size = 10485763, upload-time = "2026-01-31T23:10:50.087Z" }, + { url = "https://files.pythonhosted.org/packages/51/6e/6f394c9c77668153e14d4da83bcc247beb5952f6ead7699a1a2992613bea/numpy-2.4.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:21982668592194c609de53ba4933a7471880ccbaadcc52352694a59ecc860b3a", size = 16667963, upload-time = "2026-01-31T23:10:52.147Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f8/55483431f2b2fd015ae6ed4fe62288823ce908437ed49db5a03d15151678/numpy-2.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40397bda92382fcec844066efb11f13e1c9a3e2a8e8f318fb72ed8b6db9f60f1", size = 14693571, upload-time = "2026-01-31T23:10:54.789Z" }, + { url = "https://files.pythonhosted.org/packages/2f/20/18026832b1845cdc82248208dd929ca14c9d8f2bac391f67440707fff27c/numpy-2.4.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:b3a24467af63c67829bfaa61eecf18d5432d4f11992688537be59ecd6ad32f5e", size = 5203469, upload-time = "2026-01-31T23:10:57.343Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/2eb97c8a77daaba34eaa3fa7241a14ac5f51c46a6bd5911361b644c4a1e2/numpy-2.4.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:805cc8de9fd6e7a22da5aed858e0ab16be5a4db6c873dde1d7451c541553aa27", size = 6550820, upload-time = "2026-01-31T23:10:59.429Z" }, + { url = "https://files.pythonhosted.org/packages/b1/91/b97fdfd12dc75b02c44e26c6638241cc004d4079a0321a69c62f51470c4c/numpy-2.4.2-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d82351358ffbcdcd7b686b90742a9b86632d6c1c051016484fa0b326a0a1548", size = 15663067, upload-time = "2026-01-31T23:11:01.291Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c6/a18e59f3f0b8071cc85cbc8d80cd02d68aa9710170b2553a117203d46936/numpy-2.4.2-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e35d3e0144137d9fdae62912e869136164534d64a169f86438bc9561b6ad49f", size = 16619782, upload-time = "2026-01-31T23:11:03.669Z" }, + { url = "https://files.pythonhosted.org/packages/b7/83/9751502164601a79e18847309f5ceec0b1446d7b6aa12305759b72cf98b2/numpy-2.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:adb6ed2ad29b9e15321d167d152ee909ec73395901b70936f029c3bc6d7f4460", size = 17013128, upload-time = "2026-01-31T23:11:05.913Z" }, + { url = "https://files.pythonhosted.org/packages/61/c4/c4066322256ec740acc1c8923a10047818691d2f8aec254798f3dd90f5f2/numpy-2.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8906e71fd8afcb76580404e2a950caef2685df3d2a57fe82a86ac8d33cc007ba", size = 18345324, upload-time = "2026-01-31T23:11:08.248Z" }, + { url = "https://files.pythonhosted.org/packages/ab/af/6157aa6da728fa4525a755bfad486ae7e3f76d4c1864138003eb84328497/numpy-2.4.2-cp312-cp312-win32.whl", hash = "sha256:ec055f6dae239a6299cace477b479cca2fc125c5675482daf1dd886933a1076f", size = 5960282, upload-time = "2026-01-31T23:11:10.497Z" }, + { url = "https://files.pythonhosted.org/packages/92/0f/7ceaaeaacb40567071e94dbf2c9480c0ae453d5bb4f52bea3892c39dc83c/numpy-2.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:209fae046e62d0ce6435fcfe3b1a10537e858249b3d9b05829e2a05218296a85", size = 12314210, upload-time = "2026-01-31T23:11:12.176Z" }, + { url = "https://files.pythonhosted.org/packages/2f/a3/56c5c604fae6dd40fa2ed3040d005fca97e91bd320d232ac9931d77ba13c/numpy-2.4.2-cp312-cp312-win_arm64.whl", hash = "sha256:fbde1b0c6e81d56f5dccd95dd4a711d9b95df1ae4009a60887e56b27e8d903fa", size = 10220171, upload-time = "2026-01-31T23:11:14.684Z" }, + { url = "https://files.pythonhosted.org/packages/a1/22/815b9fe25d1d7ae7d492152adbc7226d3eff731dffc38fe970589fcaaa38/numpy-2.4.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:25f2059807faea4b077a2b6837391b5d830864b3543627f381821c646f31a63c", size = 16663696, upload-time = "2026-01-31T23:11:17.516Z" }, + { url = "https://files.pythonhosted.org/packages/09/f0/817d03a03f93ba9c6c8993de509277d84e69f9453601915e4a69554102a1/numpy-2.4.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bd3a7a9f5847d2fb8c2c6d1c862fa109c31a9abeca1a3c2bd5a64572955b2979", size = 14688322, upload-time = "2026-01-31T23:11:19.883Z" }, + { url = "https://files.pythonhosted.org/packages/da/b4/f805ab79293c728b9a99438775ce51885fd4f31b76178767cfc718701a39/numpy-2.4.2-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8e4549f8a3c6d13d55041925e912bfd834285ef1dd64d6bc7d542583355e2e98", size = 5198157, upload-time = "2026-01-31T23:11:22.375Z" }, + { url = "https://files.pythonhosted.org/packages/74/09/826e4289844eccdcd64aac27d13b0fd3f32039915dd5b9ba01baae1f436c/numpy-2.4.2-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:aea4f66ff44dfddf8c2cffd66ba6538c5ec67d389285292fe428cb2c738c8aef", size = 6546330, upload-time = "2026-01-31T23:11:23.958Z" }, + { url = "https://files.pythonhosted.org/packages/19/fb/cbfdbfa3057a10aea5422c558ac57538e6acc87ec1669e666d32ac198da7/numpy-2.4.2-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c3cd545784805de05aafe1dde61752ea49a359ccba9760c1e5d1c88a93bbf2b7", size = 15660968, upload-time = "2026-01-31T23:11:25.713Z" }, + { url = "https://files.pythonhosted.org/packages/04/dc/46066ce18d01645541f0186877377b9371b8fa8017fa8262002b4ef22612/numpy-2.4.2-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0d9b7c93578baafcbc5f0b83eaf17b79d345c6f36917ba0c67f45226911d499", size = 16607311, upload-time = "2026-01-31T23:11:28.117Z" }, + { url = "https://files.pythonhosted.org/packages/14/d9/4b5adfc39a43fa6bf918c6d544bc60c05236cc2f6339847fc5b35e6cb5b0/numpy-2.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f74f0f7779cc7ae07d1810aab8ac6b1464c3eafb9e283a40da7309d5e6e48fbb", size = 17012850, upload-time = "2026-01-31T23:11:30.888Z" }, + { url = "https://files.pythonhosted.org/packages/b7/20/adb6e6adde6d0130046e6fdfb7675cc62bc2f6b7b02239a09eb58435753d/numpy-2.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c7ac672d699bf36275c035e16b65539931347d68b70667d28984c9fb34e07fa7", size = 18334210, upload-time = "2026-01-31T23:11:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/78/0e/0a73b3dff26803a8c02baa76398015ea2a5434d9b8265a7898a6028c1591/numpy-2.4.2-cp313-cp313-win32.whl", hash = "sha256:8e9afaeb0beff068b4d9cd20d322ba0ee1cecfb0b08db145e4ab4dd44a6b5110", size = 5958199, upload-time = "2026-01-31T23:11:35.385Z" }, + { url = "https://files.pythonhosted.org/packages/43/bc/6352f343522fcb2c04dbaf94cb30cca6fd32c1a750c06ad6231b4293708c/numpy-2.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:7df2de1e4fba69a51c06c28f5a3de36731eb9639feb8e1cf7e4a7b0daf4cf622", size = 12310848, upload-time = "2026-01-31T23:11:38.001Z" }, + { url = "https://files.pythonhosted.org/packages/6e/8d/6da186483e308da5da1cc6918ce913dcfe14ffde98e710bfeff2a6158d4e/numpy-2.4.2-cp313-cp313-win_arm64.whl", hash = "sha256:0fece1d1f0a89c16b03442eae5c56dc0be0c7883b5d388e0c03f53019a4bfd71", size = 10221082, upload-time = "2026-01-31T23:11:40.392Z" }, + { url = "https://files.pythonhosted.org/packages/25/a1/9510aa43555b44781968935c7548a8926274f815de42ad3997e9e83680dd/numpy-2.4.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5633c0da313330fd20c484c78cdd3f9b175b55e1a766c4a174230c6b70ad8262", size = 14815866, upload-time = "2026-01-31T23:11:42.495Z" }, + { url = "https://files.pythonhosted.org/packages/36/30/6bbb5e76631a5ae46e7923dd16ca9d3f1c93cfa8d4ed79a129814a9d8db3/numpy-2.4.2-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:d9f64d786b3b1dd742c946c42d15b07497ed14af1a1f3ce840cce27daa0ce913", size = 5325631, upload-time = "2026-01-31T23:11:44.7Z" }, + { url = "https://files.pythonhosted.org/packages/46/00/3a490938800c1923b567b3a15cd17896e68052e2145d8662aaf3e1ffc58f/numpy-2.4.2-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:b21041e8cb6a1eb5312dd1d2f80a94d91efffb7a06b70597d44f1bd2dfc315ab", size = 6646254, upload-time = "2026-01-31T23:11:46.341Z" }, + { url = "https://files.pythonhosted.org/packages/d3/e9/fac0890149898a9b609caa5af7455a948b544746e4b8fe7c212c8edd71f8/numpy-2.4.2-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:00ab83c56211a1d7c07c25e3217ea6695e50a3e2f255053686b081dc0b091a82", size = 15720138, upload-time = "2026-01-31T23:11:48.082Z" }, + { url = "https://files.pythonhosted.org/packages/ea/5c/08887c54e68e1e28df53709f1893ce92932cc6f01f7c3d4dc952f61ffd4e/numpy-2.4.2-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2fb882da679409066b4603579619341c6d6898fc83a8995199d5249f986e8e8f", size = 16655398, upload-time = "2026-01-31T23:11:50.293Z" }, + { url = "https://files.pythonhosted.org/packages/4d/89/253db0fa0e66e9129c745e4ef25631dc37d5f1314dad2b53e907b8538e6d/numpy-2.4.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66cb9422236317f9d44b67b4d18f44efe6e9c7f8794ac0462978513359461554", size = 17079064, upload-time = "2026-01-31T23:11:52.927Z" }, + { url = "https://files.pythonhosted.org/packages/2a/d5/cbade46ce97c59c6c3da525e8d95b7abe8a42974a1dc5c1d489c10433e88/numpy-2.4.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0f01dcf33e73d80bd8dc0f20a71303abbafa26a19e23f6b68d1aa9990af90257", size = 18379680, upload-time = "2026-01-31T23:11:55.22Z" }, + { url = "https://files.pythonhosted.org/packages/40/62/48f99ae172a4b63d981babe683685030e8a3df4f246c893ea5c6ef99f018/numpy-2.4.2-cp313-cp313t-win32.whl", hash = "sha256:52b913ec40ff7ae845687b0b34d8d93b60cb66dcee06996dd5c99f2fc9328657", size = 6082433, upload-time = "2026-01-31T23:11:58.096Z" }, + { url = "https://files.pythonhosted.org/packages/07/38/e054a61cfe48ad9f1ed0d188e78b7e26859d0b60ef21cd9de4897cdb5326/numpy-2.4.2-cp313-cp313t-win_amd64.whl", hash = "sha256:5eea80d908b2c1f91486eb95b3fb6fab187e569ec9752ab7d9333d2e66bf2d6b", size = 12451181, upload-time = "2026-01-31T23:11:59.782Z" }, + { url = "https://files.pythonhosted.org/packages/6e/a4/a05c3a6418575e185dd84d0b9680b6bb2e2dc3e4202f036b7b4e22d6e9dc/numpy-2.4.2-cp313-cp313t-win_arm64.whl", hash = "sha256:fd49860271d52127d61197bb50b64f58454e9f578cb4b2c001a6de8b1f50b0b1", size = 10290756, upload-time = "2026-01-31T23:12:02.438Z" }, + { url = "https://files.pythonhosted.org/packages/18/88/b7df6050bf18fdcfb7046286c6535cabbdd2064a3440fca3f069d319c16e/numpy-2.4.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:444be170853f1f9d528428eceb55f12918e4fda5d8805480f36a002f1415e09b", size = 16663092, upload-time = "2026-01-31T23:12:04.521Z" }, + { url = "https://files.pythonhosted.org/packages/25/7a/1fee4329abc705a469a4afe6e69b1ef7e915117747886327104a8493a955/numpy-2.4.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d1240d50adff70c2a88217698ca844723068533f3f5c5fa6ee2e3220e3bdb000", size = 14698770, upload-time = "2026-01-31T23:12:06.96Z" }, + { url = "https://files.pythonhosted.org/packages/fb/0b/f9e49ba6c923678ad5bc38181c08ac5e53b7a5754dbca8e581aa1a56b1ff/numpy-2.4.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:7cdde6de52fb6664b00b056341265441192d1291c130e99183ec0d4b110ff8b1", size = 5208562, upload-time = "2026-01-31T23:12:09.632Z" }, + { url = "https://files.pythonhosted.org/packages/7d/12/d7de8f6f53f9bb76997e5e4c069eda2051e3fe134e9181671c4391677bb2/numpy-2.4.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:cda077c2e5b780200b6b3e09d0b42205a3d1c68f30c6dceb90401c13bff8fe74", size = 6543710, upload-time = "2026-01-31T23:12:11.969Z" }, + { url = "https://files.pythonhosted.org/packages/09/63/c66418c2e0268a31a4cf8a8b512685748200f8e8e8ec6c507ce14e773529/numpy-2.4.2-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d30291931c915b2ab5717c2974bb95ee891a1cf22ebc16a8006bd59cd210d40a", size = 15677205, upload-time = "2026-01-31T23:12:14.33Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6c/7f237821c9642fb2a04d2f1e88b4295677144ca93285fd76eff3bcba858d/numpy-2.4.2-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bba37bc29d4d85761deed3954a1bc62be7cf462b9510b51d367b769a8c8df325", size = 16611738, upload-time = "2026-01-31T23:12:16.525Z" }, + { url = "https://files.pythonhosted.org/packages/c2/a7/39c4cdda9f019b609b5c473899d87abff092fc908cfe4d1ecb2fcff453b0/numpy-2.4.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:b2f0073ed0868db1dcd86e052d37279eef185b9c8db5bf61f30f46adac63c909", size = 17028888, upload-time = "2026-01-31T23:12:19.306Z" }, + { url = "https://files.pythonhosted.org/packages/da/b3/e84bb64bdfea967cc10950d71090ec2d84b49bc691df0025dddb7c26e8e3/numpy-2.4.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:7f54844851cdb630ceb623dcec4db3240d1ac13d4990532446761baede94996a", size = 18339556, upload-time = "2026-01-31T23:12:21.816Z" }, + { url = "https://files.pythonhosted.org/packages/88/f5/954a291bc1192a27081706862ac62bb5920fbecfbaa302f64682aa90beed/numpy-2.4.2-cp314-cp314-win32.whl", hash = "sha256:12e26134a0331d8dbd9351620f037ec470b7c75929cb8a1537f6bfe411152a1a", size = 6006899, upload-time = "2026-01-31T23:12:24.14Z" }, + { url = "https://files.pythonhosted.org/packages/05/cb/eff72a91b2efdd1bc98b3b8759f6a1654aa87612fc86e3d87d6fe4f948c4/numpy-2.4.2-cp314-cp314-win_amd64.whl", hash = "sha256:068cdb2d0d644cdb45670810894f6a0600797a69c05f1ac478e8d31670b8ee75", size = 12443072, upload-time = "2026-01-31T23:12:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/37/75/62726948db36a56428fce4ba80a115716dc4fad6a3a4352487f8bb950966/numpy-2.4.2-cp314-cp314-win_arm64.whl", hash = "sha256:6ed0be1ee58eef41231a5c943d7d1375f093142702d5723ca2eb07db9b934b05", size = 10494886, upload-time = "2026-01-31T23:12:28.488Z" }, + { url = "https://files.pythonhosted.org/packages/36/2f/ee93744f1e0661dc267e4b21940870cabfae187c092e1433b77b09b50ac4/numpy-2.4.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:98f16a80e917003a12c0580f97b5f875853ebc33e2eaa4bccfc8201ac6869308", size = 14818567, upload-time = "2026-01-31T23:12:30.709Z" }, + { url = "https://files.pythonhosted.org/packages/a7/24/6535212add7d76ff938d8bdc654f53f88d35cddedf807a599e180dcb8e66/numpy-2.4.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:20abd069b9cda45874498b245c8015b18ace6de8546bf50dfa8cea1696ed06ef", size = 5328372, upload-time = "2026-01-31T23:12:32.962Z" }, + { url = "https://files.pythonhosted.org/packages/5e/9d/c48f0a035725f925634bf6b8994253b43f2047f6778a54147d7e213bc5a7/numpy-2.4.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:e98c97502435b53741540a5717a6749ac2ada901056c7db951d33e11c885cc7d", size = 6649306, upload-time = "2026-01-31T23:12:34.797Z" }, + { url = "https://files.pythonhosted.org/packages/81/05/7c73a9574cd4a53a25907bad38b59ac83919c0ddc8234ec157f344d57d9a/numpy-2.4.2-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:da6cad4e82cb893db4b69105c604d805e0c3ce11501a55b5e9f9083b47d2ffe8", size = 15722394, upload-time = "2026-01-31T23:12:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/35/fa/4de10089f21fc7d18442c4a767ab156b25c2a6eaf187c0db6d9ecdaeb43f/numpy-2.4.2-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e4424677ce4b47fe73c8b5556d876571f7c6945d264201180db2dc34f676ab5", size = 16653343, upload-time = "2026-01-31T23:12:39.188Z" }, + { url = "https://files.pythonhosted.org/packages/b8/f9/d33e4ffc857f3763a57aa85650f2e82486832d7492280ac21ba9efda80da/numpy-2.4.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2b8f157c8a6f20eb657e240f8985cc135598b2b46985c5bccbde7616dc9c6b1e", size = 17078045, upload-time = "2026-01-31T23:12:42.041Z" }, + { url = "https://files.pythonhosted.org/packages/c8/b8/54bdb43b6225badbea6389fa038c4ef868c44f5890f95dd530a218706da3/numpy-2.4.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5daf6f3914a733336dab21a05cdec343144600e964d2fcdabaac0c0269874b2a", size = 18380024, upload-time = "2026-01-31T23:12:44.331Z" }, + { url = "https://files.pythonhosted.org/packages/a5/55/6e1a61ded7af8df04016d81b5b02daa59f2ea9252ee0397cb9f631efe9e5/numpy-2.4.2-cp314-cp314t-win32.whl", hash = "sha256:8c50dd1fc8826f5b26a5ee4d77ca55d88a895f4e4819c7ecc2a9f5905047a443", size = 6153937, upload-time = "2026-01-31T23:12:47.229Z" }, + { url = "https://files.pythonhosted.org/packages/45/aa/fa6118d1ed6d776b0983f3ceac9b1a5558e80df9365b1c3aa6d42bf9eee4/numpy-2.4.2-cp314-cp314t-win_amd64.whl", hash = "sha256:fcf92bee92742edd401ba41135185866f7026c502617f422eb432cfeca4fe236", size = 12631844, upload-time = "2026-01-31T23:12:48.997Z" }, + { url = "https://files.pythonhosted.org/packages/32/0a/2ec5deea6dcd158f254a7b372fb09cfba5719419c8d66343bab35237b3fb/numpy-2.4.2-cp314-cp314t-win_arm64.whl", hash = "sha256:1f92f53998a17265194018d1cc321b2e96e900ca52d54c7c77837b71b9465181", size = 10565379, upload-time = "2026-01-31T23:12:51.345Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f8/50e14d36d915ef64d8f8bc4a087fc8264d82c785eda6711f80ab7e620335/numpy-2.4.2-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:89f7268c009bc492f506abd6f5265defa7cb3f7487dc21d357c3d290add45082", size = 16833179, upload-time = "2026-01-31T23:12:53.5Z" }, + { url = "https://files.pythonhosted.org/packages/17/17/809b5cad63812058a8189e91a1e2d55a5a18fd04611dbad244e8aeae465c/numpy-2.4.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6dee3bb76aa4009d5a912180bf5b2de012532998d094acee25d9cb8dee3e44a", size = 14889755, upload-time = "2026-01-31T23:12:55.933Z" }, + { url = "https://files.pythonhosted.org/packages/3e/ea/181b9bcf7627fc8371720316c24db888dcb9829b1c0270abf3d288b2e29b/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_arm64.whl", hash = "sha256:cd2bd2bbed13e213d6b55dc1d035a4f91748a7d3edc9480c13898b0353708920", size = 5399500, upload-time = "2026-01-31T23:12:58.671Z" }, + { url = "https://files.pythonhosted.org/packages/33/9f/413adf3fc955541ff5536b78fcf0754680b3c6d95103230252a2c9408d23/numpy-2.4.2-pp311-pypy311_pp73-macosx_14_0_x86_64.whl", hash = "sha256:cf28c0c1d4c4bf00f509fa7eb02c58d7caf221b50b467bcb0d9bbf1584d5c821", size = 6714252, upload-time = "2026-01-31T23:13:00.518Z" }, + { url = "https://files.pythonhosted.org/packages/91/da/643aad274e29ccbdf42ecd94dafe524b81c87bcb56b83872d54827f10543/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e04ae107ac591763a47398bb45b568fc38f02dbc4aa44c063f67a131f99346cb", size = 15797142, upload-time = "2026-01-31T23:13:02.219Z" }, + { url = "https://files.pythonhosted.org/packages/66/27/965b8525e9cb5dc16481b30a1b3c21e50c7ebf6e9dbd48d0c4d0d5089c7e/numpy-2.4.2-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:602f65afdef699cda27ec0b9224ae5dc43e328f4c24c689deaf77133dbee74d0", size = 16727979, upload-time = "2026-01-31T23:13:04.62Z" }, + { url = "https://files.pythonhosted.org/packages/de/e5/b7d20451657664b07986c2f6e3be564433f5dcaf3482d68eaecd79afaf03/numpy-2.4.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be71bf1edb48ebbbf7f6337b5bfd2f895d1902f6335a5830b20141fc126ffba0", size = 12502577, upload-time = "2026-01-31T23:13:07.08Z" }, +] + +[[package]] +name = "orjson" +version = "3.11.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/45/b268004f745ede84e5798b48ee12b05129d19235d0e15267aa57dcdb400b/orjson-3.11.7.tar.gz", hash = "sha256:9b1a67243945819ce55d24a30b59d6a168e86220452d2c96f4d1f093e71c0c49", size = 6144992, upload-time = "2026-02-02T15:38:49.29Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/02/da6cb01fc6087048d7f61522c327edf4250f1683a58a839fdcc435746dd5/orjson-3.11.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:9487abc2c2086e7c8eb9a211d2ce8855bae0e92586279d0d27b341d5ad76c85c", size = 228664, upload-time = "2026-02-02T15:37:25.542Z" }, + { url = "https://files.pythonhosted.org/packages/c1/c2/5885e7a5881dba9a9af51bc564e8967225a642b3e03d089289a35054e749/orjson-3.11.7-cp311-cp311-macosx_15_0_arm64.whl", hash = "sha256:79cacb0b52f6004caf92405a7e1f11e6e2de8bdf9019e4f76b44ba045125cd6b", size = 125344, upload-time = "2026-02-02T15:37:26.92Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1d/4e7688de0a92d1caf600dfd5fb70b4c5bfff51dfa61ac555072ef2d0d32a/orjson-3.11.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c2e85fe4698b6a56d5e2ebf7ae87544d668eb6bde1ad1226c13f44663f20ec9e", size = 128404, upload-time = "2026-02-02T15:37:28.108Z" }, + { url = "https://files.pythonhosted.org/packages/2f/b2/ec04b74ae03a125db7bd69cffd014b227b7f341e3261bf75b5eb88a1aa92/orjson-3.11.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8d14b71c0b12963fe8a62aac87119f1afdf4cb88a400f61ca5ae581449efcb5", size = 123677, upload-time = "2026-02-02T15:37:30.287Z" }, + { url = "https://files.pythonhosted.org/packages/4c/69/f95bdf960605f08f827f6e3291fe243d8aa9c5c9ff017a8d7232209184c3/orjson-3.11.7-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91c81ef070c8f3220054115e1ef468b1c9ce8497b4e526cb9f68ab4dc0a7ac62", size = 128950, upload-time = "2026-02-02T15:37:31.595Z" }, + { url = "https://files.pythonhosted.org/packages/a4/1b/de59c57bae1d148ef298852abd31909ac3089cff370dfd4cd84cc99cbc42/orjson-3.11.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:411ebaf34d735e25e358a6d9e7978954a9c9d58cfb47bc6683cdc3964cd2f910", size = 141756, upload-time = "2026-02-02T15:37:32.985Z" }, + { url = "https://files.pythonhosted.org/packages/ee/9e/9decc59f4499f695f65c650f6cfa6cd4c37a3fbe8fa235a0a3614cb54386/orjson-3.11.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a16bcd08ab0bcdfc7e8801d9c4a9cc17e58418e4d48ddc6ded4e9e4b1a94062b", size = 130812, upload-time = "2026-02-02T15:37:34.204Z" }, + { url = "https://files.pythonhosted.org/packages/28/e6/59f932bcabd1eac44e334fe8e3281a92eacfcb450586e1f4bde0423728d8/orjson-3.11.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c0b51672e466fd7e56230ffbae7f1639e18d0ce023351fb75da21b71bc2c960", size = 133444, upload-time = "2026-02-02T15:37:35.446Z" }, + { url = "https://files.pythonhosted.org/packages/f1/36/b0f05c0eaa7ca30bc965e37e6a2956b0d67adb87a9872942d3568da846ae/orjson-3.11.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:136dcd6a2e796dfd9ffca9fc027d778567b0b7c9968d092842d3c323cef88aa8", size = 138609, upload-time = "2026-02-02T15:37:36.657Z" }, + { url = "https://files.pythonhosted.org/packages/b8/03/58ec7d302b8d86944c60c7b4b82975d5161fcce4c9bc8c6cb1d6741b6115/orjson-3.11.7-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:7ba61079379b0ae29e117db13bda5f28d939766e410d321ec1624afc6a0b0504", size = 408918, upload-time = "2026-02-02T15:37:38.076Z" }, + { url = "https://files.pythonhosted.org/packages/06/3a/868d65ef9a8b99be723bd510de491349618abd9f62c826cf206d962db295/orjson-3.11.7-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0527a4510c300e3b406591b0ba69b5dc50031895b0a93743526a3fc45f59d26e", size = 143998, upload-time = "2026-02-02T15:37:39.706Z" }, + { url = "https://files.pythonhosted.org/packages/5b/c7/1e18e1c83afe3349f4f6dc9e14910f0ae5f82eac756d1412ea4018938535/orjson-3.11.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a709e881723c9b18acddcfb8ba357322491ad553e277cf467e1e7e20e2d90561", size = 134802, upload-time = "2026-02-02T15:37:41.002Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0b/ccb7ee1a65b37e8eeb8b267dc953561d72370e85185e459616d4345bab34/orjson-3.11.7-cp311-cp311-win32.whl", hash = "sha256:c43b8b5bab288b6b90dac410cca7e986a4fa747a2e8f94615aea407da706980d", size = 127828, upload-time = "2026-02-02T15:37:42.241Z" }, + { url = "https://files.pythonhosted.org/packages/af/9e/55c776dffda3f381e0f07d010a4f5f3902bf48eaba1bb7684d301acd4924/orjson-3.11.7-cp311-cp311-win_amd64.whl", hash = "sha256:6543001328aa857187f905308a028935864aefe9968af3848401b6fe80dbb471", size = 124941, upload-time = "2026-02-02T15:37:43.444Z" }, + { url = "https://files.pythonhosted.org/packages/aa/8e/424a620fa7d263b880162505fb107ef5e0afaa765b5b06a88312ac291560/orjson-3.11.7-cp311-cp311-win_arm64.whl", hash = "sha256:1ee5cc7160a821dfe14f130bc8e63e7611051f964b463d9e2a3a573204446a4d", size = 126245, upload-time = "2026-02-02T15:37:45.18Z" }, + { url = "https://files.pythonhosted.org/packages/80/bf/76f4f1665f6983385938f0e2a5d7efa12a58171b8456c252f3bae8a4cf75/orjson-3.11.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:bd03ea7606833655048dab1a00734a2875e3e86c276e1d772b2a02556f0d895f", size = 228545, upload-time = "2026-02-02T15:37:46.376Z" }, + { url = "https://files.pythonhosted.org/packages/79/53/6c72c002cb13b5a978a068add59b25a8bdf2800ac1c9c8ecdb26d6d97064/orjson-3.11.7-cp312-cp312-macosx_15_0_arm64.whl", hash = "sha256:89e440ebc74ce8ab5c7bc4ce6757b4a6b1041becb127df818f6997b5c71aa60b", size = 125224, upload-time = "2026-02-02T15:37:47.697Z" }, + { url = "https://files.pythonhosted.org/packages/2c/83/10e48852865e5dd151bdfe652c06f7da484578ed02c5fca938e3632cb0b8/orjson-3.11.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5ede977b5fe5ac91b1dffc0a517ca4542d2ec8a6a4ff7b2652d94f640796342a", size = 128154, upload-time = "2026-02-02T15:37:48.954Z" }, + { url = "https://files.pythonhosted.org/packages/6e/52/a66e22a2b9abaa374b4a081d410edab6d1e30024707b87eab7c734afe28d/orjson-3.11.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b7b1dae39230a393df353827c855a5f176271c23434cfd2db74e0e424e693e10", size = 123548, upload-time = "2026-02-02T15:37:50.187Z" }, + { url = "https://files.pythonhosted.org/packages/de/38/605d371417021359f4910c496f764c48ceb8997605f8c25bf1dfe58c0ebe/orjson-3.11.7-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed46f17096e28fb28d2975834836a639af7278aa87c84f68ab08fbe5b8bd75fa", size = 129000, upload-time = "2026-02-02T15:37:51.426Z" }, + { url = "https://files.pythonhosted.org/packages/44/98/af32e842b0ffd2335c89714d48ca4e3917b42f5d6ee5537832e069a4b3ac/orjson-3.11.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3726be79e36e526e3d9c1aceaadbfb4a04ee80a72ab47b3f3c17fefb9812e7b8", size = 141686, upload-time = "2026-02-02T15:37:52.607Z" }, + { url = "https://files.pythonhosted.org/packages/96/0b/fc793858dfa54be6feee940c1463370ece34b3c39c1ca0aa3845f5ba9892/orjson-3.11.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0724e265bc548af1dedebd9cb3d24b4e1c1e685a343be43e87ba922a5c5fff2f", size = 130812, upload-time = "2026-02-02T15:37:53.944Z" }, + { url = "https://files.pythonhosted.org/packages/dc/91/98a52415059db3f374757d0b7f0f16e3b5cd5976c90d1c2b56acaea039e6/orjson-3.11.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e7745312efa9e11c17fbd3cb3097262d079da26930ae9ae7ba28fb738367cbad", size = 133440, upload-time = "2026-02-02T15:37:55.615Z" }, + { url = "https://files.pythonhosted.org/packages/dc/b6/cb540117bda61791f46381f8c26c8f93e802892830a6055748d3bb1925ab/orjson-3.11.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f904c24bdeabd4298f7a977ef14ca2a022ca921ed670b92ecd16ab6f3d01f867", size = 138386, upload-time = "2026-02-02T15:37:56.814Z" }, + { url = "https://files.pythonhosted.org/packages/63/1a/50a3201c334a7f17c231eee5f841342190723794e3b06293f26e7cf87d31/orjson-3.11.7-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b9fc4d0f81f394689e0814617aadc4f2ea0e8025f38c226cbf22d3b5ddbf025d", size = 408853, upload-time = "2026-02-02T15:37:58.291Z" }, + { url = "https://files.pythonhosted.org/packages/87/cd/8de1c67d0be44fdc22701e5989c0d015a2adf391498ad42c4dc589cd3013/orjson-3.11.7-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:849e38203e5be40b776ed2718e587faf204d184fc9a008ae441f9442320c0cab", size = 144130, upload-time = "2026-02-02T15:38:00.163Z" }, + { url = "https://files.pythonhosted.org/packages/0f/fe/d605d700c35dd55f51710d159fc54516a280923cd1b7e47508982fbb387d/orjson-3.11.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:4682d1db3bcebd2b64757e0ddf9e87ae5f00d29d16c5cdf3a62f561d08cc3dd2", size = 134818, upload-time = "2026-02-02T15:38:01.507Z" }, + { url = "https://files.pythonhosted.org/packages/e4/e4/15ecc67edb3ddb3e2f46ae04475f2d294e8b60c1825fbe28a428b93b3fbd/orjson-3.11.7-cp312-cp312-win32.whl", hash = "sha256:f4f7c956b5215d949a1f65334cf9d7612dde38f20a95f2315deef167def91a6f", size = 127923, upload-time = "2026-02-02T15:38:02.75Z" }, + { url = "https://files.pythonhosted.org/packages/34/70/2e0855361f76198a3965273048c8e50a9695d88cd75811a5b46444895845/orjson-3.11.7-cp312-cp312-win_amd64.whl", hash = "sha256:bf742e149121dc5648ba0a08ea0871e87b660467ef168a3a5e53bc1fbd64bb74", size = 125007, upload-time = "2026-02-02T15:38:04.032Z" }, + { url = "https://files.pythonhosted.org/packages/68/40/c2051bd19fc467610fed469dc29e43ac65891571138f476834ca192bc290/orjson-3.11.7-cp312-cp312-win_arm64.whl", hash = "sha256:26c3b9132f783b7d7903bf1efb095fed8d4a3a85ec0d334ee8beff3d7a4749d5", size = 126089, upload-time = "2026-02-02T15:38:05.297Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/6e0e52cac5aab51d7b6dcd257e855e1dec1c2060f6b28566c509b4665f62/orjson-3.11.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1d98b30cc1313d52d4af17d9c3d307b08389752ec5f2e5febdfada70b0f8c733", size = 228390, upload-time = "2026-02-02T15:38:06.8Z" }, + { url = "https://files.pythonhosted.org/packages/a5/29/a77f48d2fc8a05bbc529e5ff481fb43d914f9e383ea2469d4f3d51df3d00/orjson-3.11.7-cp313-cp313-macosx_15_0_arm64.whl", hash = "sha256:d897e81f8d0cbd2abb82226d1860ad2e1ab3ff16d7b08c96ca00df9d45409ef4", size = 125189, upload-time = "2026-02-02T15:38:08.181Z" }, + { url = "https://files.pythonhosted.org/packages/89/25/0a16e0729a0e6a1504f9d1a13cdd365f030068aab64cec6958396b9969d7/orjson-3.11.7-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:814be4b49b228cfc0b3c565acf642dd7d13538f966e3ccde61f4f55be3e20785", size = 128106, upload-time = "2026-02-02T15:38:09.41Z" }, + { url = "https://files.pythonhosted.org/packages/66/da/a2e505469d60666a05ab373f1a6322eb671cb2ba3a0ccfc7d4bc97196787/orjson-3.11.7-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d06e5c5fed5caedd2e540d62e5b1c25e8c82431b9e577c33537e5fa4aa909539", size = 123363, upload-time = "2026-02-02T15:38:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/23/bf/ed73f88396ea35c71b38961734ea4a4746f7ca0768bf28fd551d37e48dd0/orjson-3.11.7-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:31c80ce534ac4ea3739c5ee751270646cbc46e45aea7576a38ffec040b4029a1", size = 129007, upload-time = "2026-02-02T15:38:12.138Z" }, + { url = "https://files.pythonhosted.org/packages/73/3c/b05d80716f0225fc9008fbf8ab22841dcc268a626aa550561743714ce3bf/orjson-3.11.7-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f50979824bde13d32b4320eedd513431c921102796d86be3eee0b58e58a3ecd1", size = 141667, upload-time = "2026-02-02T15:38:13.398Z" }, + { url = "https://files.pythonhosted.org/packages/61/e8/0be9b0addd9bf86abfc938e97441dcd0375d494594b1c8ad10fe57479617/orjson-3.11.7-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e54f3808e2b6b945078c41aa8d9b5834b28c50843846e97807e5adb75fa9705", size = 130832, upload-time = "2026-02-02T15:38:14.698Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ec/c68e3b9021a31d9ec15a94931db1410136af862955854ed5dd7e7e4f5bff/orjson-3.11.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a12b80df61aab7b98b490fe9e4879925ba666fccdfcd175252ce4d9035865ace", size = 133373, upload-time = "2026-02-02T15:38:16.109Z" }, + { url = "https://files.pythonhosted.org/packages/d2/45/f3466739aaafa570cc8e77c6dbb853c48bf56e3b43738020e2661e08b0ac/orjson-3.11.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:996b65230271f1a97026fd0e6a753f51fbc0c335d2ad0c6201f711b0da32693b", size = 138307, upload-time = "2026-02-02T15:38:17.453Z" }, + { url = "https://files.pythonhosted.org/packages/e1/84/9f7f02288da1ffb31405c1be07657afd1eecbcb4b64ee2817b6fe0f785fa/orjson-3.11.7-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:ab49d4b2a6a1d415ddb9f37a21e02e0d5dbfe10b7870b21bf779fc21e9156157", size = 408695, upload-time = "2026-02-02T15:38:18.831Z" }, + { url = "https://files.pythonhosted.org/packages/18/07/9dd2f0c0104f1a0295ffbe912bc8d63307a539b900dd9e2c48ef7810d971/orjson-3.11.7-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:390a1dce0c055ddf8adb6aa94a73b45a4a7d7177b5c584b8d1c1947f2ba60fb3", size = 144099, upload-time = "2026-02-02T15:38:20.28Z" }, + { url = "https://files.pythonhosted.org/packages/a5/66/857a8e4a3292e1f7b1b202883bcdeb43a91566cf59a93f97c53b44bd6801/orjson-3.11.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1eb80451a9c351a71dfaf5b7ccc13ad065405217726b59fdbeadbcc544f9d223", size = 134806, upload-time = "2026-02-02T15:38:22.186Z" }, + { url = "https://files.pythonhosted.org/packages/0a/5b/6ebcf3defc1aab3a338ca777214966851e92efb1f30dc7fc8285216e6d1b/orjson-3.11.7-cp313-cp313-win32.whl", hash = "sha256:7477aa6a6ec6139c5cb1cc7b214643592169a5494d200397c7fc95d740d5fcf3", size = 127914, upload-time = "2026-02-02T15:38:23.511Z" }, + { url = "https://files.pythonhosted.org/packages/00/04/c6f72daca5092e3117840a1b1e88dfc809cc1470cf0734890d0366b684a1/orjson-3.11.7-cp313-cp313-win_amd64.whl", hash = "sha256:b9f95dcdea9d4f805daa9ddf02617a89e484c6985fa03055459f90e87d7a0757", size = 124986, upload-time = "2026-02-02T15:38:24.836Z" }, + { url = "https://files.pythonhosted.org/packages/03/ba/077a0f6f1085d6b806937246860fafbd5b17f3919c70ee3f3d8d9c713f38/orjson-3.11.7-cp313-cp313-win_arm64.whl", hash = "sha256:800988273a014a0541483dc81021247d7eacb0c845a9d1a34a422bc718f41539", size = 126045, upload-time = "2026-02-02T15:38:26.216Z" }, + { url = "https://files.pythonhosted.org/packages/e9/1e/745565dca749813db9a093c5ebc4bac1a9475c64d54b95654336ac3ed961/orjson-3.11.7-cp314-cp314-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:de0a37f21d0d364954ad5de1970491d7fbd0fb1ef7417d4d56a36dc01ba0c0a0", size = 228391, upload-time = "2026-02-02T15:38:27.757Z" }, + { url = "https://files.pythonhosted.org/packages/46/19/e40f6225da4d3aa0c8dc6e5219c5e87c2063a560fe0d72a88deb59776794/orjson-3.11.7-cp314-cp314-macosx_15_0_arm64.whl", hash = "sha256:c2428d358d85e8da9d37cba18b8c4047c55222007a84f97156a5b22028dfbfc0", size = 125188, upload-time = "2026-02-02T15:38:29.241Z" }, + { url = "https://files.pythonhosted.org/packages/9d/7e/c4de2babef2c0817fd1f048fd176aa48c37bec8aef53d2fa932983032cce/orjson-3.11.7-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c4bc6c6ac52cdaa267552544c73e486fecbd710b7ac09bc024d5a78555a22f6", size = 128097, upload-time = "2026-02-02T15:38:30.618Z" }, + { url = "https://files.pythonhosted.org/packages/eb/74/233d360632bafd2197f217eee7fb9c9d0229eac0c18128aee5b35b0014fe/orjson-3.11.7-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd0d68edd7dfca1b2eca9361a44ac9f24b078de3481003159929a0573f21a6bf", size = 123364, upload-time = "2026-02-02T15:38:32.363Z" }, + { url = "https://files.pythonhosted.org/packages/79/51/af79504981dd31efe20a9e360eb49c15f06df2b40e7f25a0a52d9ae888e8/orjson-3.11.7-cp314-cp314-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:623ad1b9548ef63886319c16fa317848e465a21513b31a6ad7b57443c3e0dcf5", size = 129076, upload-time = "2026-02-02T15:38:33.68Z" }, + { url = "https://files.pythonhosted.org/packages/67/e2/da898eb68b72304f8de05ca6715870d09d603ee98d30a27e8a9629abc64b/orjson-3.11.7-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6e776b998ac37c0396093d10290e60283f59cfe0fc3fccbd0ccc4bd04dd19892", size = 141705, upload-time = "2026-02-02T15:38:34.989Z" }, + { url = "https://files.pythonhosted.org/packages/c5/89/15364d92acb3d903b029e28d834edb8780c2b97404cbf7929aa6b9abdb24/orjson-3.11.7-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:652c6c3af76716f4a9c290371ba2e390ede06f6603edb277b481daf37f6f464e", size = 130855, upload-time = "2026-02-02T15:38:36.379Z" }, + { url = "https://files.pythonhosted.org/packages/c2/8b/ecdad52d0b38d4b8f514be603e69ccd5eacf4e7241f972e37e79792212ec/orjson-3.11.7-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a56df3239294ea5964adf074c54bcc4f0ccd21636049a2cf3ca9cf03b5d03cf1", size = 133386, upload-time = "2026-02-02T15:38:37.704Z" }, + { url = "https://files.pythonhosted.org/packages/b9/0e/45e1dcf10e17d0924b7c9162f87ec7b4ca79e28a0548acf6a71788d3e108/orjson-3.11.7-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:bda117c4148e81f746655d5a3239ae9bd00cb7bc3ca178b5fc5a5997e9744183", size = 138295, upload-time = "2026-02-02T15:38:39.096Z" }, + { url = "https://files.pythonhosted.org/packages/63/d7/4d2e8b03561257af0450f2845b91fbd111d7e526ccdf737267108075e0ba/orjson-3.11.7-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:23d6c20517a97a9daf1d48b580fcdc6f0516c6f4b5038823426033690b4d2650", size = 408720, upload-time = "2026-02-02T15:38:40.634Z" }, + { url = "https://files.pythonhosted.org/packages/78/cf/d45343518282108b29c12a65892445fc51f9319dc3c552ceb51bb5905ed2/orjson-3.11.7-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:8ff206156006da5b847c9304b6308a01e8cdbc8cce824e2779a5ba71c3def141", size = 144152, upload-time = "2026-02-02T15:38:42.262Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3a/d6001f51a7275aacd342e77b735c71fa04125a3f93c36fee4526bc8c654e/orjson-3.11.7-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:962d046ee1765f74a1da723f4b33e3b228fe3a48bd307acce5021dfefe0e29b2", size = 134814, upload-time = "2026-02-02T15:38:43.627Z" }, + { url = "https://files.pythonhosted.org/packages/1d/d3/f19b47ce16820cc2c480f7f1723e17f6d411b3a295c60c8ad3aa9ff1c96a/orjson-3.11.7-cp314-cp314-win32.whl", hash = "sha256:89e13dd3f89f1c38a9c9eba5fbf7cdc2d1feca82f5f290864b4b7a6aac704576", size = 127997, upload-time = "2026-02-02T15:38:45.06Z" }, + { url = "https://files.pythonhosted.org/packages/12/df/172771902943af54bf661a8d102bdf2e7f932127968080632bda6054b62c/orjson-3.11.7-cp314-cp314-win_amd64.whl", hash = "sha256:845c3e0d8ded9c9271cd79596b9b552448b885b97110f628fb687aee2eed11c1", size = 124985, upload-time = "2026-02-02T15:38:46.388Z" }, + { url = "https://files.pythonhosted.org/packages/6f/1c/f2a8d8a1b17514660a614ce5f7aac74b934e69f5abc2700cc7ced882a009/orjson-3.11.7-cp314-cp314-win_arm64.whl", hash = "sha256:4a2e9c5be347b937a2e0203866f12bba36082e89b402ddb9e927d5822e43088d", size = 126038, upload-time = "2026-02-02T15:38:47.703Z" }, +] + +[[package]] +name = "packaging" +version = "26.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/65/ee/299d360cdc32edc7d2cf530f3accf79c4fca01e96ffc950d8a52213bd8e4/packaging-26.0.tar.gz", hash = "sha256:00243ae351a257117b6a241061796684b084ed1c516a08c48a3f7e147a9d80b4", size = 143416, upload-time = "2026-01-21T20:50:39.064Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/b9/c538f279a4e237a006a2c98387d081e9eb060d203d8ed34467cc0f0b9b53/packaging-26.0-py3-none-any.whl", hash = "sha256:b36f1fef9334a5588b4166f8bcd26a14e521f2b55e6b9de3aaa80d3ff7a37529", size = 74366, upload-time = "2026-01-21T20:50:37.788Z" }, +] + +[[package]] +name = "palettable" +version = "3.3.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/dc/3d/a5854d60850485bff12f28abfe0e17f503e866763bed61aed4990b604530/palettable-3.3.3.tar.gz", hash = "sha256:094dd7d9a5fc1cca4854773e5c1fc6a315b33bd5b3a8f47064928facaf0490a8", size = 106639, upload-time = "2023-04-19T23:13:35.864Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/f7/3367feadd4ab56783b0971c9b7edfbdd68e0c70ce877949a5dd2117ed4a0/palettable-3.3.3-py2.py3-none-any.whl", hash = "sha256:74e9e7d7fe5a9be065e02397558ed1777b2df0b793a6f4ce1a5ee74f74fb0caa", size = 332251, upload-time = "2023-04-19T23:13:33.996Z" }, +] + +[[package]] +name = "pandas" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "python-dateutil" }, + { name = "tzdata", marker = "sys_platform == 'emscripten' or sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/da/b1dc0481ab8d55d0f46e343cfe67d4551a0e14fcee52bd38ca1bd73258d8/pandas-3.0.0.tar.gz", hash = "sha256:0facf7e87d38f721f0af46fe70d97373a37701b1c09f7ed7aeeb292ade5c050f", size = 4633005, upload-time = "2026-01-21T15:52:04.726Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/46/1e/b184654a856e75e975a6ee95d6577b51c271cd92cb2b020c9378f53e0032/pandas-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d64ce01eb9cdca96a15266aa679ae50212ec52757c79204dbc7701a222401850", size = 10313247, upload-time = "2026-01-21T15:50:15.775Z" }, + { url = "https://files.pythonhosted.org/packages/dd/5e/e04a547ad0f0183bf151fd7c7a477468e3b85ff2ad231c566389e6cc9587/pandas-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:613e13426069793aa1ec53bdcc3b86e8d32071daea138bbcf4fa959c9cdaa2e2", size = 9913131, upload-time = "2026-01-21T15:50:18.611Z" }, + { url = "https://files.pythonhosted.org/packages/a2/93/bb77bfa9fc2aba9f7204db807d5d3fb69832ed2854c60ba91b4c65ba9219/pandas-3.0.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0192fee1f1a8e743b464a6607858ee4b071deb0b118eb143d71c2a1d170996d5", size = 10741925, upload-time = "2026-01-21T15:50:21.058Z" }, + { url = "https://files.pythonhosted.org/packages/62/fb/89319812eb1d714bfc04b7f177895caeba8ab4a37ef6712db75ed786e2e0/pandas-3.0.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f0b853319dec8d5e0c8b875374c078ef17f2269986a78168d9bd57e49bf650ae", size = 11245979, upload-time = "2026-01-21T15:50:23.413Z" }, + { url = "https://files.pythonhosted.org/packages/a9/63/684120486f541fc88da3862ed31165b3b3e12b6a1c7b93be4597bc84e26c/pandas-3.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:707a9a877a876c326ae2cb640fbdc4ef63b0a7b9e2ef55c6df9942dcee8e2af9", size = 11756337, upload-time = "2026-01-21T15:50:25.932Z" }, + { url = "https://files.pythonhosted.org/packages/39/92/7eb0ad232312b59aec61550c3c81ad0743898d10af5df7f80bc5e5065416/pandas-3.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:afd0aa3d0b5cda6e0b8ffc10dbcca3b09ef3cbcd3fe2b27364f85fdc04e1989d", size = 12325517, upload-time = "2026-01-21T15:50:27.952Z" }, + { url = "https://files.pythonhosted.org/packages/51/27/bf9436dd0a4fc3130acec0828951c7ef96a0631969613a9a35744baf27f6/pandas-3.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:113b4cca2614ff7e5b9fee9b6f066618fe73c5a83e99d721ffc41217b2bf57dd", size = 9881576, upload-time = "2026-01-21T15:50:30.149Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2b/c618b871fce0159fd107516336e82891b404e3f340821853c2fc28c7830f/pandas-3.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c14837eba8e99a8da1527c0280bba29b0eb842f64aa94982c5e21227966e164b", size = 9140807, upload-time = "2026-01-21T15:50:32.308Z" }, + { url = "https://files.pythonhosted.org/packages/0b/38/db33686f4b5fa64d7af40d96361f6a4615b8c6c8f1b3d334eee46ae6160e/pandas-3.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9803b31f5039b3c3b10cc858c5e40054adb4b29b4d81cb2fd789f4121c8efbcd", size = 10334013, upload-time = "2026-01-21T15:50:34.771Z" }, + { url = "https://files.pythonhosted.org/packages/a5/7b/9254310594e9774906bacdd4e732415e1f86ab7dbb4b377ef9ede58cd8ec/pandas-3.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:14c2a4099cd38a1d18ff108168ea417909b2dea3bd1ebff2ccf28ddb6a74d740", size = 9874154, upload-time = "2026-01-21T15:50:36.67Z" }, + { url = "https://files.pythonhosted.org/packages/63/d4/726c5a67a13bc66643e66d2e9ff115cead482a44fc56991d0c4014f15aaf/pandas-3.0.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d257699b9a9960e6125686098d5714ac59d05222bef7a5e6af7a7fd87c650801", size = 10384433, upload-time = "2026-01-21T15:50:39.132Z" }, + { url = "https://files.pythonhosted.org/packages/bf/2e/9211f09bedb04f9832122942de8b051804b31a39cfbad199a819bb88d9f3/pandas-3.0.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:69780c98f286076dcafca38d8b8eee1676adf220199c0a39f0ecbf976b68151a", size = 10864519, upload-time = "2026-01-21T15:50:41.043Z" }, + { url = "https://files.pythonhosted.org/packages/00/8d/50858522cdc46ac88b9afdc3015e298959a70a08cd21e008a44e9520180c/pandas-3.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4a66384f017240f3858a4c8a7cf21b0591c3ac885cddb7758a589f0f71e87ebb", size = 11394124, upload-time = "2026-01-21T15:50:43.377Z" }, + { url = "https://files.pythonhosted.org/packages/86/3f/83b2577db02503cd93d8e95b0f794ad9d4be0ba7cb6c8bcdcac964a34a42/pandas-3.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:be8c515c9bc33989d97b89db66ea0cececb0f6e3c2a87fcc8b69443a6923e95f", size = 11920444, upload-time = "2026-01-21T15:50:45.932Z" }, + { url = "https://files.pythonhosted.org/packages/64/2d/4f8a2f192ed12c90a0aab47f5557ece0e56b0370c49de9454a09de7381b2/pandas-3.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:a453aad8c4f4e9f166436994a33884442ea62aa8b27d007311e87521b97246e1", size = 9730970, upload-time = "2026-01-21T15:50:47.962Z" }, + { url = "https://files.pythonhosted.org/packages/d4/64/ff571be435cf1e643ca98d0945d76732c0b4e9c37191a89c8550b105eed1/pandas-3.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:da768007b5a33057f6d9053563d6b74dd6d029c337d93c6d0d22a763a5c2ecc0", size = 9041950, upload-time = "2026-01-21T15:50:50.422Z" }, + { url = "https://files.pythonhosted.org/packages/6f/fa/7f0ac4ca8877c57537aaff2a842f8760e630d8e824b730eb2e859ffe96ca/pandas-3.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b78d646249b9a2bc191040988c7bb524c92fa8534fb0898a0741d7e6f2ffafa6", size = 10307129, upload-time = "2026-01-21T15:50:52.877Z" }, + { url = "https://files.pythonhosted.org/packages/6f/11/28a221815dcea4c0c9414dfc845e34a84a6a7dabc6da3194498ed5ba4361/pandas-3.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:bc9cba7b355cb4162442a88ce495e01cb605f17ac1e27d6596ac963504e0305f", size = 9850201, upload-time = "2026-01-21T15:50:54.807Z" }, + { url = "https://files.pythonhosted.org/packages/ba/da/53bbc8c5363b7e5bd10f9ae59ab250fc7a382ea6ba08e4d06d8694370354/pandas-3.0.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3c9a1a149aed3b6c9bf246033ff91e1b02d529546c5d6fb6b74a28fea0cf4c70", size = 10354031, upload-time = "2026-01-21T15:50:57.463Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a3/51e02ebc2a14974170d51e2410dfdab58870ea9bcd37cda15bd553d24dc4/pandas-3.0.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:95683af6175d884ee89471842acfca29172a85031fccdabc35e50c0984470a0e", size = 10861165, upload-time = "2026-01-21T15:50:59.32Z" }, + { url = "https://files.pythonhosted.org/packages/a5/fe/05a51e3cac11d161472b8297bd41723ea98013384dd6d76d115ce3482f9b/pandas-3.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1fbbb5a7288719e36b76b4f18d46ede46e7f916b6c8d9915b756b0a6c3f792b3", size = 11359359, upload-time = "2026-01-21T15:51:02.014Z" }, + { url = "https://files.pythonhosted.org/packages/ee/56/ba620583225f9b85a4d3e69c01df3e3870659cc525f67929b60e9f21dcd1/pandas-3.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8e8b9808590fa364416b49b2a35c1f4cf2785a6c156935879e57f826df22038e", size = 11912907, upload-time = "2026-01-21T15:51:05.175Z" }, + { url = "https://files.pythonhosted.org/packages/c9/8c/c6638d9f67e45e07656b3826405c5cc5f57f6fd07c8b2572ade328c86e22/pandas-3.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:98212a38a709feb90ae658cb6227ea3657c22ba8157d4b8f913cd4c950de5e7e", size = 9732138, upload-time = "2026-01-21T15:51:07.569Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bf/bd1335c3bf1770b6d8fed2799993b11c4971af93bb1b729b9ebbc02ca2ec/pandas-3.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:177d9df10b3f43b70307a149d7ec49a1229a653f907aa60a48f1877d0e6be3be", size = 9033568, upload-time = "2026-01-21T15:51:09.484Z" }, + { url = "https://files.pythonhosted.org/packages/8e/c6/f5e2171914d5e29b9171d495344097d54e3ffe41d2d85d8115baba4dc483/pandas-3.0.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2713810ad3806767b89ad3b7b69ba153e1c6ff6d9c20f9c2140379b2a98b6c98", size = 10741936, upload-time = "2026-01-21T15:51:11.693Z" }, + { url = "https://files.pythonhosted.org/packages/51/88/9a0164f99510a1acb9f548691f022c756c2314aad0d8330a24616c14c462/pandas-3.0.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:15d59f885ee5011daf8335dff47dcb8a912a27b4ad7826dc6cbe809fd145d327", size = 10393884, upload-time = "2026-01-21T15:51:14.197Z" }, + { url = "https://files.pythonhosted.org/packages/e0/53/b34d78084d88d8ae2b848591229da8826d1e65aacf00b3abe34023467648/pandas-3.0.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:24e6547fb64d2c92665dd2adbfa4e85fa4fd70a9c070e7cfb03b629a0bbab5eb", size = 10310740, upload-time = "2026-01-21T15:51:16.093Z" }, + { url = "https://files.pythonhosted.org/packages/5b/d3/bee792e7c3d6930b74468d990604325701412e55d7aaf47460a22311d1a5/pandas-3.0.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:48ee04b90e2505c693d3f8e8f524dab8cb8aaf7ddcab52c92afa535e717c4812", size = 10700014, upload-time = "2026-01-21T15:51:18.818Z" }, + { url = "https://files.pythonhosted.org/packages/55/db/2570bc40fb13aaed1cbc3fbd725c3a60ee162477982123c3adc8971e7ac1/pandas-3.0.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:66f72fb172959af42a459e27a8d8d2c7e311ff4c1f7db6deb3b643dbc382ae08", size = 11323737, upload-time = "2026-01-21T15:51:20.784Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2e/297ac7f21c8181b62a4cccebad0a70caf679adf3ae5e83cb676194c8acc3/pandas-3.0.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4a4a400ca18230976724a5066f20878af785f36c6756e498e94c2a5e5d57779c", size = 11771558, upload-time = "2026-01-21T15:51:22.977Z" }, + { url = "https://files.pythonhosted.org/packages/0a/46/e1c6876d71c14332be70239acce9ad435975a80541086e5ffba2f249bcf6/pandas-3.0.0-cp313-cp313t-win_amd64.whl", hash = "sha256:940eebffe55528074341a5a36515f3e4c5e25e958ebbc764c9502cfc35ba3faa", size = 10473771, upload-time = "2026-01-21T15:51:25.285Z" }, + { url = "https://files.pythonhosted.org/packages/c0/db/0270ad9d13c344b7a36fa77f5f8344a46501abf413803e885d22864d10bf/pandas-3.0.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:597c08fb9fef0edf1e4fa2f9828dd27f3d78f9b8c9b4a748d435ffc55732310b", size = 10312075, upload-time = "2026-01-21T15:51:28.5Z" }, + { url = "https://files.pythonhosted.org/packages/09/9f/c176f5e9717f7c91becfe0f55a52ae445d3f7326b4a2cf355978c51b7913/pandas-3.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:447b2d68ac5edcbf94655fe909113a6dba6ef09ad7f9f60c80477825b6c489fe", size = 9900213, upload-time = "2026-01-21T15:51:30.955Z" }, + { url = "https://files.pythonhosted.org/packages/d9/e7/63ad4cc10b257b143e0a5ebb04304ad806b4e1a61c5da25f55896d2ca0f4/pandas-3.0.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:debb95c77ff3ed3ba0d9aa20c3a2f19165cc7956362f9873fce1ba0a53819d70", size = 10428768, upload-time = "2026-01-21T15:51:33.018Z" }, + { url = "https://files.pythonhosted.org/packages/9e/0e/4e4c2d8210f20149fd2248ef3fff26623604922bd564d915f935a06dd63d/pandas-3.0.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fedabf175e7cd82b69b74c30adbaa616de301291a5231138d7242596fc296a8d", size = 10882954, upload-time = "2026-01-21T15:51:35.287Z" }, + { url = "https://files.pythonhosted.org/packages/c6/60/c9de8ac906ba1f4d2250f8a951abe5135b404227a55858a75ad26f84db47/pandas-3.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:412d1a89aab46889f3033a386912efcdfa0f1131c5705ff5b668dda88305e986", size = 11430293, upload-time = "2026-01-21T15:51:37.57Z" }, + { url = "https://files.pythonhosted.org/packages/a1/69/806e6637c70920e5787a6d6896fd707f8134c2c55cd761e7249a97b7dc5a/pandas-3.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:e979d22316f9350c516479dd3a92252be2937a9531ed3a26ec324198a99cdd49", size = 11952452, upload-time = "2026-01-21T15:51:39.618Z" }, + { url = "https://files.pythonhosted.org/packages/cb/de/918621e46af55164c400ab0ef389c9d969ab85a43d59ad1207d4ddbe30a5/pandas-3.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:083b11415b9970b6e7888800c43c82e81a06cd6b06755d84804444f0007d6bb7", size = 9851081, upload-time = "2026-01-21T15:51:41.758Z" }, + { url = "https://files.pythonhosted.org/packages/91/a1/3562a18dd0bd8c73344bfa26ff90c53c72f827df119d6d6b1dacc84d13e3/pandas-3.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:5db1e62cb99e739fa78a28047e861b256d17f88463c76b8dafc7c1338086dca8", size = 9174610, upload-time = "2026-01-21T15:51:44.312Z" }, + { url = "https://files.pythonhosted.org/packages/ce/26/430d91257eaf366f1737d7a1c158677caaf6267f338ec74e3a1ec444111c/pandas-3.0.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:697b8f7d346c68274b1b93a170a70974cdc7d7354429894d5927c1effdcccd73", size = 10761999, upload-time = "2026-01-21T15:51:46.899Z" }, + { url = "https://files.pythonhosted.org/packages/ec/1a/954eb47736c2b7f7fe6a9d56b0cb6987773c00faa3c6451a43db4beb3254/pandas-3.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8cb3120f0d9467ed95e77f67a75e030b67545bcfa08964e349252d674171def2", size = 10410279, upload-time = "2026-01-21T15:51:48.89Z" }, + { url = "https://files.pythonhosted.org/packages/20/fc/b96f3a5a28b250cd1b366eb0108df2501c0f38314a00847242abab71bb3a/pandas-3.0.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33fd3e6baa72899746b820c31e4b9688c8e1b7864d7aec2de7ab5035c285277a", size = 10330198, upload-time = "2026-01-21T15:51:51.015Z" }, + { url = "https://files.pythonhosted.org/packages/90/b3/d0e2952f103b4fbef1ef22d0c2e314e74fc9064b51cee30890b5e3286ee6/pandas-3.0.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a8942e333dc67ceda1095227ad0febb05a3b36535e520154085db632c40ad084", size = 10728513, upload-time = "2026-01-21T15:51:53.387Z" }, + { url = "https://files.pythonhosted.org/packages/76/81/832894f286df828993dc5fd61c63b231b0fb73377e99f6c6c369174cf97e/pandas-3.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:783ac35c4d0fe0effdb0d67161859078618b1b6587a1af15928137525217a721", size = 11345550, upload-time = "2026-01-21T15:51:55.329Z" }, + { url = "https://files.pythonhosted.org/packages/34/a0/ed160a00fb4f37d806406bc0a79a8b62fe67f29d00950f8d16203ff3409b/pandas-3.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:125eb901e233f155b268bbef9abd9afb5819db74f0e677e89a61b246228c71ac", size = 11799386, upload-time = "2026-01-21T15:51:57.457Z" }, + { url = "https://files.pythonhosted.org/packages/36/c8/2ac00d7255252c5e3cf61b35ca92ca25704b0188f7454ca4aec08a33cece/pandas-3.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b86d113b6c109df3ce0ad5abbc259fe86a1bd4adfd4a31a89da42f84f65509bb", size = 10873041, upload-time = "2026-01-21T15:52:00.034Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3f/a80ac00acbc6b35166b42850e98a4f466e2c0d9c64054161ba9620f95680/pandas-3.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:1c39eab3ad38f2d7a249095f0a3d8f8c22cc0f847e98ccf5bbe732b272e2d9fa", size = 9441003, upload-time = "2026-01-21T15:52:02.281Z" }, +] + +[[package]] +name = "pillow" +version = "12.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d0/02/d52c733a2452ef1ffcc123b68e6606d07276b0e358db70eabad7e40042b7/pillow-12.1.0.tar.gz", hash = "sha256:5c5ae0a06e9ea030ab786b0251b32c7e4ce10e58d983c0d5c56029455180b5b9", size = 46977283, upload-time = "2026-01-02T09:13:29.892Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/43/c4/bf8328039de6cc22182c3ef007a2abfbbdab153661c0a9aa78af8d706391/pillow-12.1.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:a83e0850cb8f5ac975291ebfc4170ba481f41a28065277f7f735c202cd8e0af3", size = 5304057, upload-time = "2026-01-02T09:10:46.627Z" }, + { url = "https://files.pythonhosted.org/packages/43/06/7264c0597e676104cc22ca73ee48f752767cd4b1fe084662620b17e10120/pillow-12.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:b6e53e82ec2db0717eabb276aa56cf4e500c9a7cec2c2e189b55c24f65a3e8c0", size = 4657811, upload-time = "2026-01-02T09:10:49.548Z" }, + { url = "https://files.pythonhosted.org/packages/72/64/f9189e44474610daf83da31145fa56710b627b5c4c0b9c235e34058f6b31/pillow-12.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:40a8e3b9e8773876d6e30daed22f016509e3987bab61b3b7fe309d7019a87451", size = 6232243, upload-time = "2026-01-02T09:10:51.62Z" }, + { url = "https://files.pythonhosted.org/packages/ef/30/0df458009be6a4caca4ca2c52975e6275c387d4e5c95544e34138b41dc86/pillow-12.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:800429ac32c9b72909c671aaf17ecd13110f823ddb7db4dfef412a5587c2c24e", size = 8037872, upload-time = "2026-01-02T09:10:53.446Z" }, + { url = "https://files.pythonhosted.org/packages/e4/86/95845d4eda4f4f9557e25381d70876aa213560243ac1a6d619c46caaedd9/pillow-12.1.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0b022eaaf709541b391ee069f0022ee5b36c709df71986e3f7be312e46f42c84", size = 6345398, upload-time = "2026-01-02T09:10:55.426Z" }, + { url = "https://files.pythonhosted.org/packages/5c/1f/8e66ab9be3aaf1435bc03edd1ebdf58ffcd17f7349c1d970cafe87af27d9/pillow-12.1.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f345e7bc9d7f368887c712aa5054558bad44d2a301ddf9248599f4161abc7c0", size = 7034667, upload-time = "2026-01-02T09:10:57.11Z" }, + { url = "https://files.pythonhosted.org/packages/f9/f6/683b83cb9b1db1fb52b87951b1c0b99bdcfceaa75febf11406c19f82cb5e/pillow-12.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d70347c8a5b7ccd803ec0c85c8709f036e6348f1e6a5bf048ecd9c64d3550b8b", size = 6458743, upload-time = "2026-01-02T09:10:59.331Z" }, + { url = "https://files.pythonhosted.org/packages/9a/7d/de833d63622538c1d58ce5395e7c6cb7e7dce80decdd8bde4a484e095d9f/pillow-12.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1fcc52d86ce7a34fd17cb04e87cfdb164648a3662a6f20565910a99653d66c18", size = 7159342, upload-time = "2026-01-02T09:11:01.82Z" }, + { url = "https://files.pythonhosted.org/packages/8c/40/50d86571c9e5868c42b81fe7da0c76ca26373f3b95a8dd675425f4a92ec1/pillow-12.1.0-cp311-cp311-win32.whl", hash = "sha256:3ffaa2f0659e2f740473bcf03c702c39a8d4b2b7ffc629052028764324842c64", size = 6328655, upload-time = "2026-01-02T09:11:04.556Z" }, + { url = "https://files.pythonhosted.org/packages/6c/af/b1d7e301c4cd26cd45d4af884d9ee9b6fab893b0ad2450d4746d74a6968c/pillow-12.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:806f3987ffe10e867bab0ddad45df1148a2b98221798457fa097ad85d6e8bc75", size = 7031469, upload-time = "2026-01-02T09:11:06.538Z" }, + { url = "https://files.pythonhosted.org/packages/48/36/d5716586d887fb2a810a4a61518a327a1e21c8b7134c89283af272efe84b/pillow-12.1.0-cp311-cp311-win_arm64.whl", hash = "sha256:9f5fefaca968e700ad1a4a9de98bf0869a94e397fe3524c4c9450c1445252304", size = 2452515, upload-time = "2026-01-02T09:11:08.226Z" }, + { url = "https://files.pythonhosted.org/packages/20/31/dc53fe21a2f2996e1b7d92bf671cdb157079385183ef7c1ae08b485db510/pillow-12.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:a332ac4ccb84b6dde65dbace8431f3af08874bf9770719d32a635c4ef411b18b", size = 5262642, upload-time = "2026-01-02T09:11:10.138Z" }, + { url = "https://files.pythonhosted.org/packages/ab/c1/10e45ac9cc79419cedf5121b42dcca5a50ad2b601fa080f58c22fb27626e/pillow-12.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:907bfa8a9cb790748a9aa4513e37c88c59660da3bcfffbd24a7d9e6abf224551", size = 4657464, upload-time = "2026-01-02T09:11:12.319Z" }, + { url = "https://files.pythonhosted.org/packages/ad/26/7b82c0ab7ef40ebede7a97c72d473bda5950f609f8e0c77b04af574a0ddb/pillow-12.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efdc140e7b63b8f739d09a99033aa430accce485ff78e6d311973a67b6bf3208", size = 6234878, upload-time = "2026-01-02T09:11:14.096Z" }, + { url = "https://files.pythonhosted.org/packages/76/25/27abc9792615b5e886ca9411ba6637b675f1b77af3104710ac7353fe5605/pillow-12.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bef9768cab184e7ae6e559c032e95ba8d07b3023c289f79a2bd36e8bf85605a5", size = 8044868, upload-time = "2026-01-02T09:11:15.903Z" }, + { url = "https://files.pythonhosted.org/packages/0a/ea/f200a4c36d836100e7bc738fc48cd963d3ba6372ebc8298a889e0cfc3359/pillow-12.1.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:742aea052cf5ab5034a53c3846165bc3ce88d7c38e954120db0ab867ca242661", size = 6349468, upload-time = "2026-01-02T09:11:17.631Z" }, + { url = "https://files.pythonhosted.org/packages/11/8f/48d0b77ab2200374c66d344459b8958c86693be99526450e7aee714e03e4/pillow-12.1.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a6dfc2af5b082b635af6e08e0d1f9f1c4e04d17d4e2ca0ef96131e85eda6eb17", size = 7041518, upload-time = "2026-01-02T09:11:19.389Z" }, + { url = "https://files.pythonhosted.org/packages/1d/23/c281182eb986b5d31f0a76d2a2c8cd41722d6fb8ed07521e802f9bba52de/pillow-12.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:609e89d9f90b581c8d16358c9087df76024cf058fa693dd3e1e1620823f39670", size = 6462829, upload-time = "2026-01-02T09:11:21.28Z" }, + { url = "https://files.pythonhosted.org/packages/25/ef/7018273e0faac099d7b00982abdcc39142ae6f3bd9ceb06de09779c4a9d6/pillow-12.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:43b4899cfd091a9693a1278c4982f3e50f7fb7cff5153b05174b4afc9593b616", size = 7166756, upload-time = "2026-01-02T09:11:23.559Z" }, + { url = "https://files.pythonhosted.org/packages/8f/c8/993d4b7ab2e341fe02ceef9576afcf5830cdec640be2ac5bee1820d693d4/pillow-12.1.0-cp312-cp312-win32.whl", hash = "sha256:aa0c9cc0b82b14766a99fbe6084409972266e82f459821cd26997a488a7261a7", size = 6328770, upload-time = "2026-01-02T09:11:25.661Z" }, + { url = "https://files.pythonhosted.org/packages/a7/87/90b358775a3f02765d87655237229ba64a997b87efa8ccaca7dd3e36e7a7/pillow-12.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:d70534cea9e7966169ad29a903b99fc507e932069a881d0965a1a84bb57f6c6d", size = 7033406, upload-time = "2026-01-02T09:11:27.474Z" }, + { url = "https://files.pythonhosted.org/packages/5d/cf/881b457eccacac9e5b2ddd97d5071fb6d668307c57cbf4e3b5278e06e536/pillow-12.1.0-cp312-cp312-win_arm64.whl", hash = "sha256:65b80c1ee7e14a87d6a068dd3b0aea268ffcabfe0498d38661b00c5b4b22e74c", size = 2452612, upload-time = "2026-01-02T09:11:29.309Z" }, + { url = "https://files.pythonhosted.org/packages/dd/c7/2530a4aa28248623e9d7f27316b42e27c32ec410f695929696f2e0e4a778/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:7b5dd7cbae20285cdb597b10eb5a2c13aa9de6cde9bb64a3c1317427b1db1ae1", size = 4062543, upload-time = "2026-01-02T09:11:31.566Z" }, + { url = "https://files.pythonhosted.org/packages/8f/1f/40b8eae823dc1519b87d53c30ed9ef085506b05281d313031755c1705f73/pillow-12.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:29a4cef9cb672363926f0470afc516dbf7305a14d8c54f7abbb5c199cd8f8179", size = 4138373, upload-time = "2026-01-02T09:11:33.367Z" }, + { url = "https://files.pythonhosted.org/packages/d4/77/6fa60634cf06e52139fd0e89e5bbf055e8166c691c42fb162818b7fda31d/pillow-12.1.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:681088909d7e8fa9e31b9799aaa59ba5234c58e5e4f1951b4c4d1082a2e980e0", size = 3601241, upload-time = "2026-01-02T09:11:35.011Z" }, + { url = "https://files.pythonhosted.org/packages/4f/bf/28ab865de622e14b747f0cd7877510848252d950e43002e224fb1c9ababf/pillow-12.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:983976c2ab753166dc66d36af6e8ec15bb511e4a25856e2227e5f7e00a160587", size = 5262410, upload-time = "2026-01-02T09:11:36.682Z" }, + { url = "https://files.pythonhosted.org/packages/1c/34/583420a1b55e715937a85bd48c5c0991598247a1fd2eb5423188e765ea02/pillow-12.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:db44d5c160a90df2d24a24760bbd37607d53da0b34fb546c4c232af7192298ac", size = 4657312, upload-time = "2026-01-02T09:11:38.535Z" }, + { url = "https://files.pythonhosted.org/packages/1d/fd/f5a0896839762885b3376ff04878f86ab2b097c2f9a9cdccf4eda8ba8dc0/pillow-12.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:6b7a9d1db5dad90e2991645874f708e87d9a3c370c243c2d7684d28f7e133e6b", size = 6232605, upload-time = "2026-01-02T09:11:40.602Z" }, + { url = "https://files.pythonhosted.org/packages/98/aa/938a09d127ac1e70e6ed467bd03834350b33ef646b31edb7452d5de43792/pillow-12.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:6258f3260986990ba2fa8a874f8b6e808cf5abb51a94015ca3dc3c68aa4f30ea", size = 8041617, upload-time = "2026-01-02T09:11:42.721Z" }, + { url = "https://files.pythonhosted.org/packages/17/e8/538b24cb426ac0186e03f80f78bc8dc7246c667f58b540bdd57c71c9f79d/pillow-12.1.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e115c15e3bc727b1ca3e641a909f77f8ca72a64fff150f666fcc85e57701c26c", size = 6346509, upload-time = "2026-01-02T09:11:44.955Z" }, + { url = "https://files.pythonhosted.org/packages/01/9a/632e58ec89a32738cabfd9ec418f0e9898a2b4719afc581f07c04a05e3c9/pillow-12.1.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6741e6f3074a35e47c77b23a4e4f2d90db3ed905cb1c5e6e0d49bff2045632bc", size = 7038117, upload-time = "2026-01-02T09:11:46.736Z" }, + { url = "https://files.pythonhosted.org/packages/c7/a2/d40308cf86eada842ca1f3ffa45d0ca0df7e4ab33c83f81e73f5eaed136d/pillow-12.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:935b9d1aed48fcfb3f838caac506f38e29621b44ccc4f8a64d575cb1b2a88644", size = 6460151, upload-time = "2026-01-02T09:11:48.625Z" }, + { url = "https://files.pythonhosted.org/packages/f1/88/f5b058ad6453a085c5266660a1417bdad590199da1b32fb4efcff9d33b05/pillow-12.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5fee4c04aad8932da9f8f710af2c1a15a83582cfb884152a9caa79d4efcdbf9c", size = 7164534, upload-time = "2026-01-02T09:11:50.445Z" }, + { url = "https://files.pythonhosted.org/packages/19/ce/c17334caea1db789163b5d855a5735e47995b0b5dc8745e9a3605d5f24c0/pillow-12.1.0-cp313-cp313-win32.whl", hash = "sha256:a786bf667724d84aa29b5db1c61b7bfdde380202aaca12c3461afd6b71743171", size = 6332551, upload-time = "2026-01-02T09:11:52.234Z" }, + { url = "https://files.pythonhosted.org/packages/e5/07/74a9d941fa45c90a0d9465098fe1ec85de3e2afbdc15cc4766622d516056/pillow-12.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:461f9dfdafa394c59cd6d818bdfdbab4028b83b02caadaff0ffd433faf4c9a7a", size = 7040087, upload-time = "2026-01-02T09:11:54.822Z" }, + { url = "https://files.pythonhosted.org/packages/88/09/c99950c075a0e9053d8e880595926302575bc742b1b47fe1bbcc8d388d50/pillow-12.1.0-cp313-cp313-win_arm64.whl", hash = "sha256:9212d6b86917a2300669511ed094a9406888362e085f2431a7da985a6b124f45", size = 2452470, upload-time = "2026-01-02T09:11:56.522Z" }, + { url = "https://files.pythonhosted.org/packages/b5/ba/970b7d85ba01f348dee4d65412476321d40ee04dcb51cd3735b9dc94eb58/pillow-12.1.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:00162e9ca6d22b7c3ee8e61faa3c3253cd19b6a37f126cad04f2f88b306f557d", size = 5264816, upload-time = "2026-01-02T09:11:58.227Z" }, + { url = "https://files.pythonhosted.org/packages/10/60/650f2fb55fdba7a510d836202aa52f0baac633e50ab1cf18415d332188fb/pillow-12.1.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:7d6daa89a00b58c37cb1747ec9fb7ac3bc5ffd5949f5888657dfddde6d1312e0", size = 4660472, upload-time = "2026-01-02T09:12:00.798Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/5273a99478956a099d533c4f46cbaa19fd69d606624f4334b85e50987a08/pillow-12.1.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e2479c7f02f9d505682dc47df8c0ea1fc5e264c4d1629a5d63fe3e2334b89554", size = 6268974, upload-time = "2026-01-02T09:12:02.572Z" }, + { url = "https://files.pythonhosted.org/packages/b4/26/0bf714bc2e73d5267887d47931d53c4ceeceea6978148ed2ab2a4e6463c4/pillow-12.1.0-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:f188d580bd870cda1e15183790d1cc2fa78f666e76077d103edf048eed9c356e", size = 8073070, upload-time = "2026-01-02T09:12:04.75Z" }, + { url = "https://files.pythonhosted.org/packages/43/cf/1ea826200de111a9d65724c54f927f3111dc5ae297f294b370a670c17786/pillow-12.1.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0fde7ec5538ab5095cc02df38ee99b0443ff0e1c847a045554cf5f9af1f4aa82", size = 6380176, upload-time = "2026-01-02T09:12:06.626Z" }, + { url = "https://files.pythonhosted.org/packages/03/e0/7938dd2b2013373fd85d96e0f38d62b7a5a262af21ac274250c7ca7847c9/pillow-12.1.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0ed07dca4a8464bada6139ab38f5382f83e5f111698caf3191cb8dbf27d908b4", size = 7067061, upload-time = "2026-01-02T09:12:08.624Z" }, + { url = "https://files.pythonhosted.org/packages/86/ad/a2aa97d37272a929a98437a8c0ac37b3cf012f4f8721e1bd5154699b2518/pillow-12.1.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f45bd71d1fa5e5749587613037b172e0b3b23159d1c00ef2fc920da6f470e6f0", size = 6491824, upload-time = "2026-01-02T09:12:10.488Z" }, + { url = "https://files.pythonhosted.org/packages/a4/44/80e46611b288d51b115826f136fb3465653c28f491068a72d3da49b54cd4/pillow-12.1.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:277518bf4fe74aa91489e1b20577473b19ee70fb97c374aa50830b279f25841b", size = 7190911, upload-time = "2026-01-02T09:12:12.772Z" }, + { url = "https://files.pythonhosted.org/packages/86/77/eacc62356b4cf81abe99ff9dbc7402750044aed02cfd6a503f7c6fc11f3e/pillow-12.1.0-cp313-cp313t-win32.whl", hash = "sha256:7315f9137087c4e0ee73a761b163fc9aa3b19f5f606a7fc08d83fd3e4379af65", size = 6336445, upload-time = "2026-01-02T09:12:14.775Z" }, + { url = "https://files.pythonhosted.org/packages/e7/3c/57d81d0b74d218706dafccb87a87ea44262c43eef98eb3b164fd000e0491/pillow-12.1.0-cp313-cp313t-win_amd64.whl", hash = "sha256:0ddedfaa8b5f0b4ffbc2fa87b556dc59f6bb4ecb14a53b33f9189713ae8053c0", size = 7045354, upload-time = "2026-01-02T09:12:16.599Z" }, + { url = "https://files.pythonhosted.org/packages/ac/82/8b9b97bba2e3576a340f93b044a3a3a09841170ab4c1eb0d5c93469fd32f/pillow-12.1.0-cp313-cp313t-win_arm64.whl", hash = "sha256:80941e6d573197a0c28f394753de529bb436b1ca990ed6e765cf42426abc39f8", size = 2454547, upload-time = "2026-01-02T09:12:18.704Z" }, + { url = "https://files.pythonhosted.org/packages/8c/87/bdf971d8bbcf80a348cc3bacfcb239f5882100fe80534b0ce67a784181d8/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:5cb7bc1966d031aec37ddb9dcf15c2da5b2e9f7cc3ca7c54473a20a927e1eb91", size = 4062533, upload-time = "2026-01-02T09:12:20.791Z" }, + { url = "https://files.pythonhosted.org/packages/ff/4f/5eb37a681c68d605eb7034c004875c81f86ec9ef51f5be4a63eadd58859a/pillow-12.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:97e9993d5ed946aba26baf9c1e8cf18adbab584b99f452ee72f7ee8acb882796", size = 4138546, upload-time = "2026-01-02T09:12:23.664Z" }, + { url = "https://files.pythonhosted.org/packages/11/6d/19a95acb2edbace40dcd582d077b991646b7083c41b98da4ed7555b59733/pillow-12.1.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:414b9a78e14ffeb98128863314e62c3f24b8a86081066625700b7985b3f529bd", size = 3601163, upload-time = "2026-01-02T09:12:26.338Z" }, + { url = "https://files.pythonhosted.org/packages/fc/36/2b8138e51cb42e4cc39c3297713455548be855a50558c3ac2beebdc251dd/pillow-12.1.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:e6bdb408f7c9dd2a5ff2b14a3b0bb6d4deb29fb9961e6eb3ae2031ae9a5cec13", size = 5266086, upload-time = "2026-01-02T09:12:28.782Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/649056e4d22e1caa90816bf99cef0884aed607ed38075bd75f091a607a38/pillow-12.1.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:3413c2ae377550f5487991d444428f1a8ae92784aac79caa8b1e3b89b175f77e", size = 4657344, upload-time = "2026-01-02T09:12:31.117Z" }, + { url = "https://files.pythonhosted.org/packages/6c/6b/c5742cea0f1ade0cd61485dc3d81f05261fc2276f537fbdc00802de56779/pillow-12.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:e5dcbe95016e88437ecf33544ba5db21ef1b8dd6e1b434a2cb2a3d605299e643", size = 6232114, upload-time = "2026-01-02T09:12:32.936Z" }, + { url = "https://files.pythonhosted.org/packages/bf/8f/9f521268ce22d63991601aafd3d48d5ff7280a246a1ef62d626d67b44064/pillow-12.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d0a7735df32ccbcc98b98a1ac785cc4b19b580be1bdf0aeb5c03223220ea09d5", size = 8042708, upload-time = "2026-01-02T09:12:34.78Z" }, + { url = "https://files.pythonhosted.org/packages/1a/eb/257f38542893f021502a1bbe0c2e883c90b5cff26cc33b1584a841a06d30/pillow-12.1.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0c27407a2d1b96774cbc4a7594129cc027339fd800cd081e44497722ea1179de", size = 6347762, upload-time = "2026-01-02T09:12:36.748Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5a/8ba375025701c09b309e8d5163c5a4ce0102fa86bbf8800eb0d7ac87bc51/pillow-12.1.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15c794d74303828eaa957ff8070846d0efe8c630901a1c753fdc63850e19ecd9", size = 7039265, upload-time = "2026-01-02T09:12:39.082Z" }, + { url = "https://files.pythonhosted.org/packages/cf/dc/cf5e4cdb3db533f539e88a7bbf9f190c64ab8a08a9bc7a4ccf55067872e4/pillow-12.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c990547452ee2800d8506c4150280757f88532f3de2a58e3022e9b179107862a", size = 6462341, upload-time = "2026-01-02T09:12:40.946Z" }, + { url = "https://files.pythonhosted.org/packages/d0/47/0291a25ac9550677e22eda48510cfc4fa4b2ef0396448b7fbdc0a6946309/pillow-12.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:b63e13dd27da389ed9475b3d28510f0f954bca0041e8e551b2a4eb1eab56a39a", size = 7165395, upload-time = "2026-01-02T09:12:42.706Z" }, + { url = "https://files.pythonhosted.org/packages/4f/4c/e005a59393ec4d9416be06e6b45820403bb946a778e39ecec62f5b2b991e/pillow-12.1.0-cp314-cp314-win32.whl", hash = "sha256:1a949604f73eb07a8adab38c4fe50791f9919344398bdc8ac6b307f755fc7030", size = 6431413, upload-time = "2026-01-02T09:12:44.944Z" }, + { url = "https://files.pythonhosted.org/packages/1c/af/f23697f587ac5f9095d67e31b81c95c0249cd461a9798a061ed6709b09b5/pillow-12.1.0-cp314-cp314-win_amd64.whl", hash = "sha256:4f9f6a650743f0ddee5593ac9e954ba1bdbc5e150bc066586d4f26127853ab94", size = 7176779, upload-time = "2026-01-02T09:12:46.727Z" }, + { url = "https://files.pythonhosted.org/packages/b3/36/6a51abf8599232f3e9afbd16d52829376a68909fe14efe29084445db4b73/pillow-12.1.0-cp314-cp314-win_arm64.whl", hash = "sha256:808b99604f7873c800c4840f55ff389936ef1948e4e87645eaf3fccbc8477ac4", size = 2543105, upload-time = "2026-01-02T09:12:49.243Z" }, + { url = "https://files.pythonhosted.org/packages/82/54/2e1dd20c8749ff225080d6ba465a0cab4387f5db0d1c5fb1439e2d99923f/pillow-12.1.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:bc11908616c8a283cf7d664f77411a5ed2a02009b0097ff8abbba5e79128ccf2", size = 5268571, upload-time = "2026-01-02T09:12:51.11Z" }, + { url = "https://files.pythonhosted.org/packages/57/61/571163a5ef86ec0cf30d265ac2a70ae6fc9e28413d1dc94fa37fae6bda89/pillow-12.1.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:896866d2d436563fa2a43a9d72f417874f16b5545955c54a64941e87c1376c61", size = 4660426, upload-time = "2026-01-02T09:12:52.865Z" }, + { url = "https://files.pythonhosted.org/packages/5e/e1/53ee5163f794aef1bf84243f755ee6897a92c708505350dd1923f4afec48/pillow-12.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8e178e3e99d3c0ea8fc64b88447f7cac8ccf058af422a6cedc690d0eadd98c51", size = 6269908, upload-time = "2026-01-02T09:12:54.884Z" }, + { url = "https://files.pythonhosted.org/packages/bc/0b/b4b4106ff0ee1afa1dc599fde6ab230417f800279745124f6c50bcffed8e/pillow-12.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:079af2fb0c599c2ec144ba2c02766d1b55498e373b3ac64687e43849fbbef5bc", size = 8074733, upload-time = "2026-01-02T09:12:56.802Z" }, + { url = "https://files.pythonhosted.org/packages/19/9f/80b411cbac4a732439e629a26ad3ef11907a8c7fc5377b7602f04f6fe4e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bdec5e43377761c5dbca620efb69a77f6855c5a379e32ac5b158f54c84212b14", size = 6381431, upload-time = "2026-01-02T09:12:58.823Z" }, + { url = "https://files.pythonhosted.org/packages/8f/b7/d65c45db463b66ecb6abc17c6ba6917a911202a07662247e1355ce1789e7/pillow-12.1.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:565c986f4b45c020f5421a4cea13ef294dde9509a8577f29b2fc5edc7587fff8", size = 7068529, upload-time = "2026-01-02T09:13:00.885Z" }, + { url = "https://files.pythonhosted.org/packages/50/96/dfd4cd726b4a45ae6e3c669fc9e49deb2241312605d33aba50499e9d9bd1/pillow-12.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:43aca0a55ce1eefc0aefa6253661cb54571857b1a7b2964bd8a1e3ef4b729924", size = 6492981, upload-time = "2026-01-02T09:13:03.314Z" }, + { url = "https://files.pythonhosted.org/packages/4d/1c/b5dc52cf713ae46033359c5ca920444f18a6359ce1020dd3e9c553ea5bc6/pillow-12.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0deedf2ea233722476b3a81e8cdfbad786f7adbed5d848469fa59fe52396e4ef", size = 7191878, upload-time = "2026-01-02T09:13:05.276Z" }, + { url = "https://files.pythonhosted.org/packages/53/26/c4188248bd5edaf543864fe4834aebe9c9cb4968b6f573ce014cc42d0720/pillow-12.1.0-cp314-cp314t-win32.whl", hash = "sha256:b17fbdbe01c196e7e159aacb889e091f28e61020a8abeac07b68079b6e626988", size = 6438703, upload-time = "2026-01-02T09:13:07.491Z" }, + { url = "https://files.pythonhosted.org/packages/b8/0e/69ed296de8ea05cb03ee139cee600f424ca166e632567b2d66727f08c7ed/pillow-12.1.0-cp314-cp314t-win_amd64.whl", hash = "sha256:27b9baecb428899db6c0de572d6d305cfaf38ca1596b5c0542a5182e3e74e8c6", size = 7182927, upload-time = "2026-01-02T09:13:09.841Z" }, + { url = "https://files.pythonhosted.org/packages/fc/f5/68334c015eed9b5cff77814258717dec591ded209ab5b6fb70e2ae873d1d/pillow-12.1.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f61333d817698bdcdd0f9d7793e365ac3d2a21c1f1eb02b32ad6aefb8d8ea831", size = 2545104, upload-time = "2026-01-02T09:13:12.068Z" }, + { url = "https://files.pythonhosted.org/packages/8b/bc/224b1d98cffd7164b14707c91aac83c07b047fbd8f58eba4066a3e53746a/pillow-12.1.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:ca94b6aac0d7af2a10ba08c0f888b3d5114439b6b3ef39968378723622fed377", size = 5228605, upload-time = "2026-01-02T09:13:14.084Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ca/49ca7769c4550107de049ed85208240ba0f330b3f2e316f24534795702ce/pillow-12.1.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:351889afef0f485b84078ea40fe33727a0492b9af3904661b0abbafee0355b72", size = 4622245, upload-time = "2026-01-02T09:13:15.964Z" }, + { url = "https://files.pythonhosted.org/packages/73/48/fac807ce82e5955bcc2718642b94b1bd22a82a6d452aea31cbb678cddf12/pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:bb0984b30e973f7e2884362b7d23d0a348c7143ee559f38ef3eaab640144204c", size = 5247593, upload-time = "2026-01-02T09:13:17.913Z" }, + { url = "https://files.pythonhosted.org/packages/d2/95/3e0742fe358c4664aed4fd05d5f5373dcdad0b27af52aa0972568541e3f4/pillow-12.1.0-pp311-pypy311_pp73-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:84cabc7095dd535ca934d57e9ce2a72ffd216e435a84acb06b2277b1de2689bd", size = 6989008, upload-time = "2026-01-02T09:13:20.083Z" }, + { url = "https://files.pythonhosted.org/packages/5a/74/fe2ac378e4e202e56d50540d92e1ef4ff34ed687f3c60f6a121bcf99437e/pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:53d8b764726d3af1a138dd353116f774e3862ec7e3794e0c8781e30db0f35dfc", size = 5313824, upload-time = "2026-01-02T09:13:22.405Z" }, + { url = "https://files.pythonhosted.org/packages/f3/77/2a60dee1adee4e2655ac328dd05c02a955c1cd683b9f1b82ec3feb44727c/pillow-12.1.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5da841d81b1a05ef940a8567da92decaa15bc4d7dedb540a8c219ad83d91808a", size = 5963278, upload-time = "2026-01-02T09:13:24.706Z" }, + { url = "https://files.pythonhosted.org/packages/2d/71/64e9b1c7f04ae0027f788a248e6297d7fcc29571371fe7d45495a78172c0/pillow-12.1.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:75af0b4c229ac519b155028fa1be632d812a519abba9b46b20e50c6caa184f19", size = 7029809, upload-time = "2026-01-02T09:13:26.541Z" }, +] + +[[package]] +name = "pip" +version = "26.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/48/83/0d7d4e9efe3344b8e2fe25d93be44f64b65364d3c8d7bc6dc90198d5422e/pip-26.0.1.tar.gz", hash = "sha256:c4037d8a277c89b320abe636d59f91e6d0922d08a05b60e85e53b296613346d8", size = 1812747, upload-time = "2026-02-05T02:20:18.702Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/f0/c81e05b613866b76d2d1066490adf1a3dbc4ee9d9c839961c3fc8a6997af/pip-26.0.1-py3-none-any.whl", hash = "sha256:bdb1b08f4274833d62c1aa29e20907365a2ceb950410df15fc9521bad440122b", size = 1787723, upload-time = "2026-02-05T02:20:16.416Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cf/86/0248f086a84f01b37aaec0fa567b397df1a119f73c16f6c7a9aac73ea309/platformdirs-4.5.1.tar.gz", hash = "sha256:61d5cdcc6065745cdd94f0f878977f8de9437be93de97c1c12f853c9c0cdcbda", size = 21715, upload-time = "2025-12-05T13:52:58.638Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, +] + +[[package]] +name = "plotly" +version = "6.5.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "narwhals" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e3/4f/8a10a9b9f5192cb6fdef62f1d77fa7d834190b2c50c0cd256bd62879212b/plotly-6.5.2.tar.gz", hash = "sha256:7478555be0198562d1435dee4c308268187553cc15516a2f4dd034453699e393", size = 7015695, upload-time = "2026-01-14T21:26:51.222Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8a/67/f95b5460f127840310d2187f916cf0023b5875c0717fdf893f71e1325e87/plotly-6.5.2-py3-none-any.whl", hash = "sha256:91757653bd9c550eeea2fa2404dba6b85d1e366d54804c340b2c874e5a7eb4a4", size = 9895973, upload-time = "2026-01-14T21:26:47.135Z" }, +] + +[[package]] +name = "psutil" +version = "7.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/c6/d1ddf4abb55e93cebc4f2ed8b5d6dbad109ecb8d63748dd2b20ab5e57ebe/psutil-7.2.2.tar.gz", hash = "sha256:0746f5f8d406af344fd547f1c8daa5f5c33dbc293bb8d6a16d80b4bb88f59372", size = 493740, upload-time = "2026-01-28T18:14:54.428Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/08/510cbdb69c25a96f4ae523f733cdc963ae654904e8db864c07585ef99875/psutil-7.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:2edccc433cbfa046b980b0df0171cd25bcaeb3a68fe9022db0979e7aa74a826b", size = 130595, upload-time = "2026-01-28T18:14:57.293Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f5/97baea3fe7a5a9af7436301f85490905379b1c6f2dd51fe3ecf24b4c5fbf/psutil-7.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e78c8603dcd9a04c7364f1a3e670cea95d51ee865e4efb3556a3a63adef958ea", size = 131082, upload-time = "2026-01-28T18:14:59.732Z" }, + { url = "https://files.pythonhosted.org/packages/37/d6/246513fbf9fa174af531f28412297dd05241d97a75911ac8febefa1a53c6/psutil-7.2.2-cp313-cp313t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a571f2330c966c62aeda00dd24620425d4b0cc86881c89861fbc04549e5dc63", size = 181476, upload-time = "2026-01-28T18:15:01.884Z" }, + { url = "https://files.pythonhosted.org/packages/b8/b5/9182c9af3836cca61696dabe4fd1304e17bc56cb62f17439e1154f225dd3/psutil-7.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:917e891983ca3c1887b4ef36447b1e0873e70c933afc831c6b6da078ba474312", size = 184062, upload-time = "2026-01-28T18:15:04.436Z" }, + { url = "https://files.pythonhosted.org/packages/16/ba/0756dca669f5a9300d0cbcbfae9a4c30e446dfc7440ffe43ded5724bfd93/psutil-7.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:ab486563df44c17f5173621c7b198955bd6b613fb87c71c161f827d3fb149a9b", size = 139893, upload-time = "2026-01-28T18:15:06.378Z" }, + { url = "https://files.pythonhosted.org/packages/1c/61/8fa0e26f33623b49949346de05ec1ddaad02ed8ba64af45f40a147dbfa97/psutil-7.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:ae0aefdd8796a7737eccea863f80f81e468a1e4cf14d926bd9b6f5f2d5f90ca9", size = 135589, upload-time = "2026-01-28T18:15:08.03Z" }, + { url = "https://files.pythonhosted.org/packages/81/69/ef179ab5ca24f32acc1dac0c247fd6a13b501fd5534dbae0e05a1c48b66d/psutil-7.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:eed63d3b4d62449571547b60578c5b2c4bcccc5387148db46e0c2313dad0ee00", size = 130664, upload-time = "2026-01-28T18:15:09.469Z" }, + { url = "https://files.pythonhosted.org/packages/7b/64/665248b557a236d3fa9efc378d60d95ef56dd0a490c2cd37dafc7660d4a9/psutil-7.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7b6d09433a10592ce39b13d7be5a54fbac1d1228ed29abc880fb23df7cb694c9", size = 131087, upload-time = "2026-01-28T18:15:11.724Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2e/e6782744700d6759ebce3043dcfa661fb61e2fb752b91cdeae9af12c2178/psutil-7.2.2-cp314-cp314t-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fa4ecf83bcdf6e6c8f4449aff98eefb5d0604bf88cb883d7da3d8d2d909546a", size = 182383, upload-time = "2026-01-28T18:15:13.445Z" }, + { url = "https://files.pythonhosted.org/packages/57/49/0a41cefd10cb7505cdc04dab3eacf24c0c2cb158a998b8c7b1d27ee2c1f5/psutil-7.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e452c464a02e7dc7822a05d25db4cde564444a67e58539a00f929c51eddda0cf", size = 185210, upload-time = "2026-01-28T18:15:16.002Z" }, + { url = "https://files.pythonhosted.org/packages/dd/2c/ff9bfb544f283ba5f83ba725a3c5fec6d6b10b8f27ac1dc641c473dc390d/psutil-7.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:c7663d4e37f13e884d13994247449e9f8f574bc4655d509c3b95e9ec9e2b9dc1", size = 141228, upload-time = "2026-01-28T18:15:18.385Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fc/f8d9c31db14fcec13748d373e668bc3bed94d9077dbc17fb0eebc073233c/psutil-7.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:11fe5a4f613759764e79c65cf11ebdf26e33d6dd34336f8a337aa2996d71c841", size = 136284, upload-time = "2026-01-28T18:15:19.912Z" }, + { url = "https://files.pythonhosted.org/packages/e7/36/5ee6e05c9bd427237b11b3937ad82bb8ad2752d72c6969314590dd0c2f6e/psutil-7.2.2-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:ed0cace939114f62738d808fdcecd4c869222507e266e574799e9c0faa17d486", size = 129090, upload-time = "2026-01-28T18:15:22.168Z" }, + { url = "https://files.pythonhosted.org/packages/80/c4/f5af4c1ca8c1eeb2e92ccca14ce8effdeec651d5ab6053c589b074eda6e1/psutil-7.2.2-cp36-abi3-macosx_11_0_arm64.whl", hash = "sha256:1a7b04c10f32cc88ab39cbf606e117fd74721c831c98a27dc04578deb0c16979", size = 129859, upload-time = "2026-01-28T18:15:23.795Z" }, + { url = "https://files.pythonhosted.org/packages/b5/70/5d8df3b09e25bce090399cf48e452d25c935ab72dad19406c77f4e828045/psutil-7.2.2-cp36-abi3-manylinux2010_x86_64.manylinux_2_12_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:076a2d2f923fd4821644f5ba89f059523da90dc9014e85f8e45a5774ca5bc6f9", size = 155560, upload-time = "2026-01-28T18:15:25.976Z" }, + { url = "https://files.pythonhosted.org/packages/63/65/37648c0c158dc222aba51c089eb3bdfa238e621674dc42d48706e639204f/psutil-7.2.2-cp36-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b0726cecd84f9474419d67252add4ac0cd9811b04d61123054b9fb6f57df6e9e", size = 156997, upload-time = "2026-01-28T18:15:27.794Z" }, + { url = "https://files.pythonhosted.org/packages/8e/13/125093eadae863ce03c6ffdbae9929430d116a246ef69866dad94da3bfbc/psutil-7.2.2-cp36-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:fd04ef36b4a6d599bbdb225dd1d3f51e00105f6d48a28f006da7f9822f2606d8", size = 148972, upload-time = "2026-01-28T18:15:29.342Z" }, + { url = "https://files.pythonhosted.org/packages/04/78/0acd37ca84ce3ddffaa92ef0f571e073faa6d8ff1f0559ab1272188ea2be/psutil-7.2.2-cp36-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:b58fabe35e80b264a4e3bb23e6b96f9e45a3df7fb7eed419ac0e5947c61e47cc", size = 148266, upload-time = "2026-01-28T18:15:31.597Z" }, + { url = "https://files.pythonhosted.org/packages/b4/90/e2159492b5426be0c1fef7acba807a03511f97c5f86b3caeda6ad92351a7/psutil-7.2.2-cp37-abi3-win_amd64.whl", hash = "sha256:eb7e81434c8d223ec4a219b5fc1c47d0417b12be7ea866e24fb5ad6e84b3d988", size = 137737, upload-time = "2026-01-28T18:15:33.849Z" }, + { url = "https://files.pythonhosted.org/packages/8c/c7/7bb2e321574b10df20cbde462a94e2b71d05f9bbda251ef27d104668306a/psutil-7.2.2-cp37-abi3-win_arm64.whl", hash = "sha256:8c233660f575a5a89e6d4cb65d9f938126312bca76d8fe087b947b3a1aaac9ee", size = 134617, upload-time = "2026-01-28T18:15:36.514Z" }, +] + +[[package]] +name = "pybtex" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "latexcodec" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5f/bc/c2be05ca72f8c103670e983df8be26d1e288bc6556f487fa8cccaa27779f/pybtex-0.25.1.tar.gz", hash = "sha256:9eaf90267c7e83e225af89fea65c370afbf65f458220d3946a9e3049e1eca491", size = 406157, upload-time = "2025-06-26T13:27:41.903Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/25/68/ceb5d6679baa326261f5d3e5113d9cfed6efef2810afd9f18bffb8ed312b/pybtex-0.25.1-py2.py3-none-any.whl", hash = "sha256:9053b0d619409a0a83f38abad5d9921de5f7b3ede00742beafcd9f10ad0d8c5c", size = 127437, upload-time = "2025-06-26T13:27:43.585Z" }, +] + +[[package]] +name = "pydantic" +version = "2.12.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/69/44/36f1a6e523abc58ae5f928898e4aca2e0ea509b5aa6f6f392a5d882be928/pydantic-2.12.5.tar.gz", hash = "sha256:4d351024c75c0f085a9febbb665ce8c0c6ec5d30e903bdb6394b7ede26aebb49", size = 821591, upload-time = "2025-11-26T15:11:46.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/87/b70ad306ebb6f9b585f114d0ac2137d792b48be34d732d60e597c2f8465a/pydantic-2.12.5-py3-none-any.whl", hash = "sha256:e561593fccf61e8a20fc46dfc2dfe075b8be7d0188df33f221ad1f0139180f9d", size = 463580, upload-time = "2025-11-26T15:11:44.605Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.41.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/70/23b021c950c2addd24ec408e9ab05d59b035b39d97cdc1130e1bce647bb6/pydantic_core-2.41.5.tar.gz", hash = "sha256:08daa51ea16ad373ffd5e7606252cc32f07bc72b28284b6bc9c6df804816476e", size = 460952, upload-time = "2025-11-04T13:43:49.098Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/72/74a989dd9f2084b3d9530b0915fdda64ac48831c30dbf7c72a41a5232db8/pydantic_core-2.41.5-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:a3a52f6156e73e7ccb0f8cced536adccb7042be67cb45f9562e12b319c119da6", size = 2105873, upload-time = "2025-11-04T13:39:31.373Z" }, + { url = "https://files.pythonhosted.org/packages/12/44/37e403fd9455708b3b942949e1d7febc02167662bf1a7da5b78ee1ea2842/pydantic_core-2.41.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7f3bf998340c6d4b0c9a2f02d6a400e51f123b59565d74dc60d252ce888c260b", size = 1899826, upload-time = "2025-11-04T13:39:32.897Z" }, + { url = "https://files.pythonhosted.org/packages/33/7f/1d5cab3ccf44c1935a359d51a8a2a9e1a654b744b5e7f80d41b88d501eec/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:378bec5c66998815d224c9ca994f1e14c0c21cb95d2f52b6021cc0b2a58f2a5a", size = 1917869, upload-time = "2025-11-04T13:39:34.469Z" }, + { url = "https://files.pythonhosted.org/packages/6e/6a/30d94a9674a7fe4f4744052ed6c5e083424510be1e93da5bc47569d11810/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e7b576130c69225432866fe2f4a469a85a54ade141d96fd396dffcf607b558f8", size = 2063890, upload-time = "2025-11-04T13:39:36.053Z" }, + { url = "https://files.pythonhosted.org/packages/50/be/76e5d46203fcb2750e542f32e6c371ffa9b8ad17364cf94bb0818dbfb50c/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6cb58b9c66f7e4179a2d5e0f849c48eff5c1fca560994d6eb6543abf955a149e", size = 2229740, upload-time = "2025-11-04T13:39:37.753Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ee/fed784df0144793489f87db310a6bbf8118d7b630ed07aa180d6067e653a/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:88942d3a3dff3afc8288c21e565e476fc278902ae4d6d134f1eeda118cc830b1", size = 2350021, upload-time = "2025-11-04T13:39:40.94Z" }, + { url = "https://files.pythonhosted.org/packages/c8/be/8fed28dd0a180dca19e72c233cbf58efa36df055e5b9d90d64fd1740b828/pydantic_core-2.41.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f31d95a179f8d64d90f6831d71fa93290893a33148d890ba15de25642c5d075b", size = 2066378, upload-time = "2025-11-04T13:39:42.523Z" }, + { url = "https://files.pythonhosted.org/packages/b0/3b/698cf8ae1d536a010e05121b4958b1257f0b5522085e335360e53a6b1c8b/pydantic_core-2.41.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c1df3d34aced70add6f867a8cf413e299177e0c22660cc767218373d0779487b", size = 2175761, upload-time = "2025-11-04T13:39:44.553Z" }, + { url = "https://files.pythonhosted.org/packages/b8/ba/15d537423939553116dea94ce02f9c31be0fa9d0b806d427e0308ec17145/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:4009935984bd36bd2c774e13f9a09563ce8de4abaa7226f5108262fa3e637284", size = 2146303, upload-time = "2025-11-04T13:39:46.238Z" }, + { url = "https://files.pythonhosted.org/packages/58/7f/0de669bf37d206723795f9c90c82966726a2ab06c336deba4735b55af431/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:34a64bc3441dc1213096a20fe27e8e128bd3ff89921706e83c0b1ac971276594", size = 2340355, upload-time = "2025-11-04T13:39:48.002Z" }, + { url = "https://files.pythonhosted.org/packages/e5/de/e7482c435b83d7e3c3ee5ee4451f6e8973cff0eb6007d2872ce6383f6398/pydantic_core-2.41.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:c9e19dd6e28fdcaa5a1de679aec4141f691023916427ef9bae8584f9c2fb3b0e", size = 2319875, upload-time = "2025-11-04T13:39:49.705Z" }, + { url = "https://files.pythonhosted.org/packages/fe/e6/8c9e81bb6dd7560e33b9053351c29f30c8194b72f2d6932888581f503482/pydantic_core-2.41.5-cp311-cp311-win32.whl", hash = "sha256:2c010c6ded393148374c0f6f0bf89d206bf3217f201faa0635dcd56bd1520f6b", size = 1987549, upload-time = "2025-11-04T13:39:51.842Z" }, + { url = "https://files.pythonhosted.org/packages/11/66/f14d1d978ea94d1bc21fc98fcf570f9542fe55bfcc40269d4e1a21c19bf7/pydantic_core-2.41.5-cp311-cp311-win_amd64.whl", hash = "sha256:76ee27c6e9c7f16f47db7a94157112a2f3a00e958bc626e2f4ee8bec5c328fbe", size = 2011305, upload-time = "2025-11-04T13:39:53.485Z" }, + { url = "https://files.pythonhosted.org/packages/56/d8/0e271434e8efd03186c5386671328154ee349ff0354d83c74f5caaf096ed/pydantic_core-2.41.5-cp311-cp311-win_arm64.whl", hash = "sha256:4bc36bbc0b7584de96561184ad7f012478987882ebf9f9c389b23f432ea3d90f", size = 1972902, upload-time = "2025-11-04T13:39:56.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5d/5f6c63eebb5afee93bcaae4ce9a898f3373ca23df3ccaef086d0233a35a7/pydantic_core-2.41.5-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:f41a7489d32336dbf2199c8c0a215390a751c5b014c2c1c5366e817202e9cdf7", size = 2110990, upload-time = "2025-11-04T13:39:58.079Z" }, + { url = "https://files.pythonhosted.org/packages/aa/32/9c2e8ccb57c01111e0fd091f236c7b371c1bccea0fa85247ac55b1e2b6b6/pydantic_core-2.41.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:070259a8818988b9a84a449a2a7337c7f430a22acc0859c6b110aa7212a6d9c0", size = 1896003, upload-time = "2025-11-04T13:39:59.956Z" }, + { url = "https://files.pythonhosted.org/packages/68/b8/a01b53cb0e59139fbc9e4fda3e9724ede8de279097179be4ff31f1abb65a/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e96cea19e34778f8d59fe40775a7a574d95816eb150850a85a7a4c8f4b94ac69", size = 1919200, upload-time = "2025-11-04T13:40:02.241Z" }, + { url = "https://files.pythonhosted.org/packages/38/de/8c36b5198a29bdaade07b5985e80a233a5ac27137846f3bc2d3b40a47360/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed2e99c456e3fadd05c991f8f437ef902e00eedf34320ba2b0842bd1c3ca3a75", size = 2052578, upload-time = "2025-11-04T13:40:04.401Z" }, + { url = "https://files.pythonhosted.org/packages/00/b5/0e8e4b5b081eac6cb3dbb7e60a65907549a1ce035a724368c330112adfdd/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:65840751b72fbfd82c3c640cff9284545342a4f1eb1586ad0636955b261b0b05", size = 2208504, upload-time = "2025-11-04T13:40:06.072Z" }, + { url = "https://files.pythonhosted.org/packages/77/56/87a61aad59c7c5b9dc8caad5a41a5545cba3810c3e828708b3d7404f6cef/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e536c98a7626a98feb2d3eaf75944ef6f3dbee447e1f841eae16f2f0a72d8ddc", size = 2335816, upload-time = "2025-11-04T13:40:07.835Z" }, + { url = "https://files.pythonhosted.org/packages/0d/76/941cc9f73529988688a665a5c0ecff1112b3d95ab48f81db5f7606f522d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eceb81a8d74f9267ef4081e246ffd6d129da5d87e37a77c9bde550cb04870c1c", size = 2075366, upload-time = "2025-11-04T13:40:09.804Z" }, + { url = "https://files.pythonhosted.org/packages/d3/43/ebef01f69baa07a482844faaa0a591bad1ef129253ffd0cdaa9d8a7f72d3/pydantic_core-2.41.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d38548150c39b74aeeb0ce8ee1d8e82696f4a4e16ddc6de7b1d8823f7de4b9b5", size = 2171698, upload-time = "2025-11-04T13:40:12.004Z" }, + { url = "https://files.pythonhosted.org/packages/b1/87/41f3202e4193e3bacfc2c065fab7706ebe81af46a83d3e27605029c1f5a6/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c23e27686783f60290e36827f9c626e63154b82b116d7fe9adba1fda36da706c", size = 2132603, upload-time = "2025-11-04T13:40:13.868Z" }, + { url = "https://files.pythonhosted.org/packages/49/7d/4c00df99cb12070b6bccdef4a195255e6020a550d572768d92cc54dba91a/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:482c982f814460eabe1d3bb0adfdc583387bd4691ef00b90575ca0d2b6fe2294", size = 2329591, upload-time = "2025-11-04T13:40:15.672Z" }, + { url = "https://files.pythonhosted.org/packages/cc/6a/ebf4b1d65d458f3cda6a7335d141305dfa19bdc61140a884d165a8a1bbc7/pydantic_core-2.41.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:bfea2a5f0b4d8d43adf9d7b8bf019fb46fdd10a2e5cde477fbcb9d1fa08c68e1", size = 2319068, upload-time = "2025-11-04T13:40:17.532Z" }, + { url = "https://files.pythonhosted.org/packages/49/3b/774f2b5cd4192d5ab75870ce4381fd89cf218af999515baf07e7206753f0/pydantic_core-2.41.5-cp312-cp312-win32.whl", hash = "sha256:b74557b16e390ec12dca509bce9264c3bbd128f8a2c376eaa68003d7f327276d", size = 1985908, upload-time = "2025-11-04T13:40:19.309Z" }, + { url = "https://files.pythonhosted.org/packages/86/45/00173a033c801cacf67c190fef088789394feaf88a98a7035b0e40d53dc9/pydantic_core-2.41.5-cp312-cp312-win_amd64.whl", hash = "sha256:1962293292865bca8e54702b08a4f26da73adc83dd1fcf26fbc875b35d81c815", size = 2020145, upload-time = "2025-11-04T13:40:21.548Z" }, + { url = "https://files.pythonhosted.org/packages/f9/22/91fbc821fa6d261b376a3f73809f907cec5ca6025642c463d3488aad22fb/pydantic_core-2.41.5-cp312-cp312-win_arm64.whl", hash = "sha256:1746d4a3d9a794cacae06a5eaaccb4b8643a131d45fbc9af23e353dc0a5ba5c3", size = 1976179, upload-time = "2025-11-04T13:40:23.393Z" }, + { url = "https://files.pythonhosted.org/packages/87/06/8806241ff1f70d9939f9af039c6c35f2360cf16e93c2ca76f184e76b1564/pydantic_core-2.41.5-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:941103c9be18ac8daf7b7adca8228f8ed6bb7a1849020f643b3a14d15b1924d9", size = 2120403, upload-time = "2025-11-04T13:40:25.248Z" }, + { url = "https://files.pythonhosted.org/packages/94/02/abfa0e0bda67faa65fef1c84971c7e45928e108fe24333c81f3bfe35d5f5/pydantic_core-2.41.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:112e305c3314f40c93998e567879e887a3160bb8689ef3d2c04b6cc62c33ac34", size = 1896206, upload-time = "2025-11-04T13:40:27.099Z" }, + { url = "https://files.pythonhosted.org/packages/15/df/a4c740c0943e93e6500f9eb23f4ca7ec9bf71b19e608ae5b579678c8d02f/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cbaad15cb0c90aa221d43c00e77bb33c93e8d36e0bf74760cd00e732d10a6a0", size = 1919307, upload-time = "2025-11-04T13:40:29.806Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e3/6324802931ae1d123528988e0e86587c2072ac2e5394b4bc2bc34b61ff6e/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:03ca43e12fab6023fc79d28ca6b39b05f794ad08ec2feccc59a339b02f2b3d33", size = 2063258, upload-time = "2025-11-04T13:40:33.544Z" }, + { url = "https://files.pythonhosted.org/packages/c9/d4/2230d7151d4957dd79c3044ea26346c148c98fbf0ee6ebd41056f2d62ab5/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc799088c08fa04e43144b164feb0c13f9a0bc40503f8df3e9fde58a3c0c101e", size = 2214917, upload-time = "2025-11-04T13:40:35.479Z" }, + { url = "https://files.pythonhosted.org/packages/e6/9f/eaac5df17a3672fef0081b6c1bb0b82b33ee89aa5cec0d7b05f52fd4a1fa/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:97aeba56665b4c3235a0e52b2c2f5ae9cd071b8a8310ad27bddb3f7fb30e9aa2", size = 2332186, upload-time = "2025-11-04T13:40:37.436Z" }, + { url = "https://files.pythonhosted.org/packages/cf/4e/35a80cae583a37cf15604b44240e45c05e04e86f9cfd766623149297e971/pydantic_core-2.41.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:406bf18d345822d6c21366031003612b9c77b3e29ffdb0f612367352aab7d586", size = 2073164, upload-time = "2025-11-04T13:40:40.289Z" }, + { url = "https://files.pythonhosted.org/packages/bf/e3/f6e262673c6140dd3305d144d032f7bd5f7497d3871c1428521f19f9efa2/pydantic_core-2.41.5-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b93590ae81f7010dbe380cdeab6f515902ebcbefe0b9327cc4804d74e93ae69d", size = 2179146, upload-time = "2025-11-04T13:40:42.809Z" }, + { url = "https://files.pythonhosted.org/packages/75/c7/20bd7fc05f0c6ea2056a4565c6f36f8968c0924f19b7d97bbfea55780e73/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:01a3d0ab748ee531f4ea6c3e48ad9dac84ddba4b0d82291f87248f2f9de8d740", size = 2137788, upload-time = "2025-11-04T13:40:44.752Z" }, + { url = "https://files.pythonhosted.org/packages/3a/8d/34318ef985c45196e004bc46c6eab2eda437e744c124ef0dbe1ff2c9d06b/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:6561e94ba9dacc9c61bce40e2d6bdc3bfaa0259d3ff36ace3b1e6901936d2e3e", size = 2340133, upload-time = "2025-11-04T13:40:46.66Z" }, + { url = "https://files.pythonhosted.org/packages/9c/59/013626bf8c78a5a5d9350d12e7697d3d4de951a75565496abd40ccd46bee/pydantic_core-2.41.5-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:915c3d10f81bec3a74fbd4faebe8391013ba61e5a1a8d48c4455b923bdda7858", size = 2324852, upload-time = "2025-11-04T13:40:48.575Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d9/c248c103856f807ef70c18a4f986693a46a8ffe1602e5d361485da502d20/pydantic_core-2.41.5-cp313-cp313-win32.whl", hash = "sha256:650ae77860b45cfa6e2cdafc42618ceafab3a2d9a3811fcfbd3bbf8ac3c40d36", size = 1994679, upload-time = "2025-11-04T13:40:50.619Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl", hash = "sha256:79ec52ec461e99e13791ec6508c722742ad745571f234ea6255bed38c6480f11", size = 2019766, upload-time = "2025-11-04T13:40:52.631Z" }, + { url = "https://files.pythonhosted.org/packages/73/7d/f2f9db34af103bea3e09735bb40b021788a5e834c81eedb541991badf8f5/pydantic_core-2.41.5-cp313-cp313-win_arm64.whl", hash = "sha256:3f84d5c1b4ab906093bdc1ff10484838aca54ef08de4afa9de0f5f14d69639cd", size = 1981005, upload-time = "2025-11-04T13:40:54.734Z" }, + { url = "https://files.pythonhosted.org/packages/ea/28/46b7c5c9635ae96ea0fbb779e271a38129df2550f763937659ee6c5dbc65/pydantic_core-2.41.5-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:3f37a19d7ebcdd20b96485056ba9e8b304e27d9904d233d7b1015db320e51f0a", size = 2119622, upload-time = "2025-11-04T13:40:56.68Z" }, + { url = "https://files.pythonhosted.org/packages/74/1a/145646e5687e8d9a1e8d09acb278c8535ebe9e972e1f162ed338a622f193/pydantic_core-2.41.5-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:1d1d9764366c73f996edd17abb6d9d7649a7eb690006ab6adbda117717099b14", size = 1891725, upload-time = "2025-11-04T13:40:58.807Z" }, + { url = "https://files.pythonhosted.org/packages/23/04/e89c29e267b8060b40dca97bfc64a19b2a3cf99018167ea1677d96368273/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:25e1c2af0fce638d5f1988b686f3b3ea8cd7de5f244ca147c777769e798a9cd1", size = 1915040, upload-time = "2025-11-04T13:41:00.853Z" }, + { url = "https://files.pythonhosted.org/packages/84/a3/15a82ac7bd97992a82257f777b3583d3e84bdb06ba6858f745daa2ec8a85/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:506d766a8727beef16b7adaeb8ee6217c64fc813646b424d0804d67c16eddb66", size = 2063691, upload-time = "2025-11-04T13:41:03.504Z" }, + { url = "https://files.pythonhosted.org/packages/74/9b/0046701313c6ef08c0c1cf0e028c67c770a4e1275ca73131563c5f2a310a/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4819fa52133c9aa3c387b3328f25c1facc356491e6135b459f1de698ff64d869", size = 2213897, upload-time = "2025-11-04T13:41:05.804Z" }, + { url = "https://files.pythonhosted.org/packages/8a/cd/6bac76ecd1b27e75a95ca3a9a559c643b3afcd2dd62086d4b7a32a18b169/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b761d210c9ea91feda40d25b4efe82a1707da2ef62901466a42492c028553a2", size = 2333302, upload-time = "2025-11-04T13:41:07.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/d2/ef2074dc020dd6e109611a8be4449b98cd25e1b9b8a303c2f0fca2f2bcf7/pydantic_core-2.41.5-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:22f0fb8c1c583a3b6f24df2470833b40207e907b90c928cc8d3594b76f874375", size = 2064877, upload-time = "2025-11-04T13:41:09.827Z" }, + { url = "https://files.pythonhosted.org/packages/18/66/e9db17a9a763d72f03de903883c057b2592c09509ccfe468187f2a2eef29/pydantic_core-2.41.5-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2782c870e99878c634505236d81e5443092fba820f0373997ff75f90f68cd553", size = 2180680, upload-time = "2025-11-04T13:41:12.379Z" }, + { url = "https://files.pythonhosted.org/packages/d3/9e/3ce66cebb929f3ced22be85d4c2399b8e85b622db77dad36b73c5387f8f8/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:0177272f88ab8312479336e1d777f6b124537d47f2123f89cb37e0accea97f90", size = 2138960, upload-time = "2025-11-04T13:41:14.627Z" }, + { url = "https://files.pythonhosted.org/packages/a6/62/205a998f4327d2079326b01abee48e502ea739d174f0a89295c481a2272e/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:63510af5e38f8955b8ee5687740d6ebf7c2a0886d15a6d65c32814613681bc07", size = 2339102, upload-time = "2025-11-04T13:41:16.868Z" }, + { url = "https://files.pythonhosted.org/packages/3c/0d/f05e79471e889d74d3d88f5bd20d0ed189ad94c2423d81ff8d0000aab4ff/pydantic_core-2.41.5-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:e56ba91f47764cc14f1daacd723e3e82d1a89d783f0f5afe9c364b8bb491ccdb", size = 2326039, upload-time = "2025-11-04T13:41:18.934Z" }, + { url = "https://files.pythonhosted.org/packages/ec/e1/e08a6208bb100da7e0c4b288eed624a703f4d129bde2da475721a80cab32/pydantic_core-2.41.5-cp314-cp314-win32.whl", hash = "sha256:aec5cf2fd867b4ff45b9959f8b20ea3993fc93e63c7363fe6851424c8a7e7c23", size = 1995126, upload-time = "2025-11-04T13:41:21.418Z" }, + { url = "https://files.pythonhosted.org/packages/48/5d/56ba7b24e9557f99c9237e29f5c09913c81eeb2f3217e40e922353668092/pydantic_core-2.41.5-cp314-cp314-win_amd64.whl", hash = "sha256:8e7c86f27c585ef37c35e56a96363ab8de4e549a95512445b85c96d3e2f7c1bf", size = 2015489, upload-time = "2025-11-04T13:41:24.076Z" }, + { url = "https://files.pythonhosted.org/packages/4e/bb/f7a190991ec9e3e0ba22e4993d8755bbc4a32925c0b5b42775c03e8148f9/pydantic_core-2.41.5-cp314-cp314-win_arm64.whl", hash = "sha256:e672ba74fbc2dc8eea59fb6d4aed6845e6905fc2a8afe93175d94a83ba2a01a0", size = 1977288, upload-time = "2025-11-04T13:41:26.33Z" }, + { url = "https://files.pythonhosted.org/packages/92/ed/77542d0c51538e32e15afe7899d79efce4b81eee631d99850edc2f5e9349/pydantic_core-2.41.5-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:8566def80554c3faa0e65ac30ab0932b9e3a5cd7f8323764303d468e5c37595a", size = 2120255, upload-time = "2025-11-04T13:41:28.569Z" }, + { url = "https://files.pythonhosted.org/packages/bb/3d/6913dde84d5be21e284439676168b28d8bbba5600d838b9dca99de0fad71/pydantic_core-2.41.5-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b80aa5095cd3109962a298ce14110ae16b8c1aece8b72f9dafe81cf597ad80b3", size = 1863760, upload-time = "2025-11-04T13:41:31.055Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f0/e5e6b99d4191da102f2b0eb9687aaa7f5bea5d9964071a84effc3e40f997/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3006c3dd9ba34b0c094c544c6006cc79e87d8612999f1a5d43b769b89181f23c", size = 1878092, upload-time = "2025-11-04T13:41:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/71/48/36fb760642d568925953bcc8116455513d6e34c4beaa37544118c36aba6d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:72f6c8b11857a856bcfa48c86f5368439f74453563f951e473514579d44aa612", size = 2053385, upload-time = "2025-11-04T13:41:35.508Z" }, + { url = "https://files.pythonhosted.org/packages/20/25/92dc684dd8eb75a234bc1c764b4210cf2646479d54b47bf46061657292a8/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cb1b2f9742240e4bb26b652a5aeb840aa4b417c7748b6f8387927bc6e45e40d", size = 2218832, upload-time = "2025-11-04T13:41:37.732Z" }, + { url = "https://files.pythonhosted.org/packages/e2/09/f53e0b05023d3e30357d82eb35835d0f6340ca344720a4599cd663dca599/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bd3d54f38609ff308209bd43acea66061494157703364ae40c951f83ba99a1a9", size = 2327585, upload-time = "2025-11-04T13:41:40Z" }, + { url = "https://files.pythonhosted.org/packages/aa/4e/2ae1aa85d6af35a39b236b1b1641de73f5a6ac4d5a7509f77b814885760c/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ff4321e56e879ee8d2a879501c8e469414d948f4aba74a2d4593184eb326660", size = 2041078, upload-time = "2025-11-04T13:41:42.323Z" }, + { url = "https://files.pythonhosted.org/packages/cd/13/2e215f17f0ef326fc72afe94776edb77525142c693767fc347ed6288728d/pydantic_core-2.41.5-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d0d2568a8c11bf8225044aa94409e21da0cb09dcdafe9ecd10250b2baad531a9", size = 2173914, upload-time = "2025-11-04T13:41:45.221Z" }, + { url = "https://files.pythonhosted.org/packages/02/7a/f999a6dcbcd0e5660bc348a3991c8915ce6599f4f2c6ac22f01d7a10816c/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:a39455728aabd58ceabb03c90e12f71fd30fa69615760a075b9fec596456ccc3", size = 2129560, upload-time = "2025-11-04T13:41:47.474Z" }, + { url = "https://files.pythonhosted.org/packages/3a/b1/6c990ac65e3b4c079a4fb9f5b05f5b013afa0f4ed6780a3dd236d2cbdc64/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:239edca560d05757817c13dc17c50766136d21f7cd0fac50295499ae24f90fdf", size = 2329244, upload-time = "2025-11-04T13:41:49.992Z" }, + { url = "https://files.pythonhosted.org/packages/d9/02/3c562f3a51afd4d88fff8dffb1771b30cfdfd79befd9883ee094f5b6c0d8/pydantic_core-2.41.5-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:2a5e06546e19f24c6a96a129142a75cee553cc018ffee48a460059b1185f4470", size = 2331955, upload-time = "2025-11-04T13:41:54.079Z" }, + { url = "https://files.pythonhosted.org/packages/5c/96/5fb7d8c3c17bc8c62fdb031c47d77a1af698f1d7a406b0f79aaa1338f9ad/pydantic_core-2.41.5-cp314-cp314t-win32.whl", hash = "sha256:b4ececa40ac28afa90871c2cc2b9ffd2ff0bf749380fbdf57d165fd23da353aa", size = 1988906, upload-time = "2025-11-04T13:41:56.606Z" }, + { url = "https://files.pythonhosted.org/packages/22/ed/182129d83032702912c2e2d8bbe33c036f342cc735737064668585dac28f/pydantic_core-2.41.5-cp314-cp314t-win_amd64.whl", hash = "sha256:80aa89cad80b32a912a65332f64a4450ed00966111b6615ca6816153d3585a8c", size = 1981607, upload-time = "2025-11-04T13:41:58.889Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ed/068e41660b832bb0b1aa5b58011dea2a3fe0ba7861ff38c4d4904c1c1a99/pydantic_core-2.41.5-cp314-cp314t-win_arm64.whl", hash = "sha256:35b44f37a3199f771c3eaa53051bc8a70cd7b54f333531c59e29fd4db5d15008", size = 1974769, upload-time = "2025-11-04T13:42:01.186Z" }, + { url = "https://files.pythonhosted.org/packages/11/72/90fda5ee3b97e51c494938a4a44c3a35a9c96c19bba12372fb9c634d6f57/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:b96d5f26b05d03cc60f11a7761a5ded1741da411e7fe0909e27a5e6a0cb7b034", size = 2115441, upload-time = "2025-11-04T13:42:39.557Z" }, + { url = "https://files.pythonhosted.org/packages/1f/53/8942f884fa33f50794f119012dc6a1a02ac43a56407adaac20463df8e98f/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:634e8609e89ceecea15e2d61bc9ac3718caaaa71963717bf3c8f38bfde64242c", size = 1930291, upload-time = "2025-11-04T13:42:42.169Z" }, + { url = "https://files.pythonhosted.org/packages/79/c8/ecb9ed9cd942bce09fc888ee960b52654fbdbede4ba6c2d6e0d3b1d8b49c/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:93e8740d7503eb008aa2df04d3b9735f845d43ae845e6dcd2be0b55a2da43cd2", size = 1948632, upload-time = "2025-11-04T13:42:44.564Z" }, + { url = "https://files.pythonhosted.org/packages/2e/1b/687711069de7efa6af934e74f601e2a4307365e8fdc404703afc453eab26/pydantic_core-2.41.5-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f15489ba13d61f670dcc96772e733aad1a6f9c429cc27574c6cdaed82d0146ad", size = 2138905, upload-time = "2025-11-04T13:42:47.156Z" }, + { url = "https://files.pythonhosted.org/packages/09/32/59b0c7e63e277fa7911c2fc70ccfb45ce4b98991e7ef37110663437005af/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:7da7087d756b19037bc2c06edc6c170eeef3c3bafcb8f532ff17d64dc427adfd", size = 2110495, upload-time = "2025-11-04T13:42:49.689Z" }, + { url = "https://files.pythonhosted.org/packages/aa/81/05e400037eaf55ad400bcd318c05bb345b57e708887f07ddb2d20e3f0e98/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:aabf5777b5c8ca26f7824cb4a120a740c9588ed58df9b2d196ce92fba42ff8dc", size = 1915388, upload-time = "2025-11-04T13:42:52.215Z" }, + { url = "https://files.pythonhosted.org/packages/6e/0d/e3549b2399f71d56476b77dbf3cf8937cec5cd70536bdc0e374a421d0599/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c007fe8a43d43b3969e8469004e9845944f1a80e6acd47c150856bb87f230c56", size = 1942879, upload-time = "2025-11-04T13:42:56.483Z" }, + { url = "https://files.pythonhosted.org/packages/f7/07/34573da085946b6a313d7c42f82f16e8920bfd730665de2d11c0c37a74b5/pydantic_core-2.41.5-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:76d0819de158cd855d1cbb8fcafdf6f5cf1eb8e470abe056d5d161106e38062b", size = 2139017, upload-time = "2025-11-04T13:42:59.471Z" }, + { url = "https://files.pythonhosted.org/packages/5f/9b/1b3f0e9f9305839d7e84912f9e8bfbd191ed1b1ef48083609f0dabde978c/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b2379fa7ed44ddecb5bfe4e48577d752db9fc10be00a6b7446e9663ba143de26", size = 2101980, upload-time = "2025-11-04T13:43:25.97Z" }, + { url = "https://files.pythonhosted.org/packages/a4/ed/d71fefcb4263df0da6a85b5d8a7508360f2f2e9b3bf5814be9c8bccdccc1/pydantic_core-2.41.5-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:266fb4cbf5e3cbd0b53669a6d1b039c45e3ce651fd5442eff4d07c2cc8d66808", size = 1923865, upload-time = "2025-11-04T13:43:28.763Z" }, + { url = "https://files.pythonhosted.org/packages/ce/3a/626b38db460d675f873e4444b4bb030453bbe7b4ba55df821d026a0493c4/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58133647260ea01e4d0500089a8c4f07bd7aa6ce109682b1426394988d8aaacc", size = 2134256, upload-time = "2025-11-04T13:43:31.71Z" }, + { url = "https://files.pythonhosted.org/packages/83/d9/8412d7f06f616bbc053d30cb4e5f76786af3221462ad5eee1f202021eb4e/pydantic_core-2.41.5-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:287dad91cfb551c363dc62899a80e9e14da1f0e2b6ebde82c806612ca2a13ef1", size = 2174762, upload-time = "2025-11-04T13:43:34.744Z" }, + { url = "https://files.pythonhosted.org/packages/55/4c/162d906b8e3ba3a99354e20faa1b49a85206c47de97a639510a0e673f5da/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:03b77d184b9eb40240ae9fd676ca364ce1085f203e1b1256f8ab9984dca80a84", size = 2143141, upload-time = "2025-11-04T13:43:37.701Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/f11dd73284122713f5f89fc940f370d035fa8e1e078d446b3313955157fe/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:a668ce24de96165bb239160b3d854943128f4334822900534f2fe947930e5770", size = 2330317, upload-time = "2025-11-04T13:43:40.406Z" }, + { url = "https://files.pythonhosted.org/packages/88/9d/b06ca6acfe4abb296110fb1273a4d848a0bfb2ff65f3ee92127b3244e16b/pydantic_core-2.41.5-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:f14f8f046c14563f8eb3f45f499cc658ab8d10072961e07225e507adb700e93f", size = 2316992, upload-time = "2025-11-04T13:43:43.602Z" }, + { url = "https://files.pythonhosted.org/packages/36/c7/cfc8e811f061c841d7990b0201912c3556bfeb99cdcb7ed24adc8d6f8704/pydantic_core-2.41.5-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:56121965f7a4dc965bff783d70b907ddf3d57f6eba29b6d2e5dabfaf07799c51", size = 2145302, upload-time = "2025-11-04T13:43:46.64Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, + { name = "typing-inspection" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/ac7e0aae12027748076d72a8764ff1c9d82ca75a7a52622e67ed3f765c54/pydantic_settings-2.12.0.tar.gz", hash = "sha256:005538ef951e3c2a68e1c08b292b5f2e71490def8589d4221b95dab00dafcfd0", size = 194184, upload-time = "2025-11-10T14:25:47.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/60/5d4751ba3f4a40a6891f24eec885f51afd78d208498268c734e256fb13c4/pydantic_settings-2.12.0-py3-none-any.whl", hash = "sha256:fddb9fd99a5b18da837b29710391e945b1e30c135477f484084ee513adb93809", size = 51880, upload-time = "2025-11-10T14:25:45.546Z" }, +] + +[[package]] +name = "pyfai" +version = "2025.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fabio" }, + { name = "h5py" }, + { name = "matplotlib" }, + { name = "numexpr" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "silx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/8b/25a4b3ec765ac65162d3c10c93850f245f536d11d2fd4a5c676999e7b564/pyfai-2025.12.1.tar.gz", hash = "sha256:88b5a7334af419de7ffba40c772896e85bd51dc1f05c099eb52c30f1d7752a2e", size = 68401729, upload-time = "2025-12-19T07:50:12.013Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fd/92/87fd57c44a987ae7a5e04dccb0b96da05d0ef31623bb7ca87297a4c76b7b/pyfai-2025.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:115b7c5b3dc4c3a618199d78e4d2589931839452fcadc24fdbf09afe4fae5d9f", size = 5818184, upload-time = "2025-12-19T08:08:20.471Z" }, + { url = "https://files.pythonhosted.org/packages/2e/51/3b8edef0dd33835e783dcc1850dc7a83c39ce68b9d374e35d22f00f72890/pyfai-2025.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d2d178fc30022a708065dfa4a2a4f3ee81d61f401137d8c4c697f7c65abab91b", size = 5293688, upload-time = "2025-12-19T08:08:22.766Z" }, + { url = "https://files.pythonhosted.org/packages/c1/b1/0d1d952fdd59d82a14e322ce2e5b9565f357190f05aadbdf4036b08fa4d8/pyfai-2025.12.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1c23fd9c2b70c6192f9d8cc04dc05ba6d0eebae364091e0bc9f4a4b85de84b20", size = 7274175, upload-time = "2025-12-19T08:08:24.58Z" }, + { url = "https://files.pythonhosted.org/packages/6f/4a/0c328e0e920441f3ecfce0463bb3ac0d3682d1637a45eba57bb6d913bd29/pyfai-2025.12.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:29b3dd7fc283faa5de98ef53f542646b05f4f47bf3d12174643e7f28204bdbe1", size = 7330309, upload-time = "2025-12-19T07:35:53.918Z" }, + { url = "https://files.pythonhosted.org/packages/e0/41/47146f56af9b419ddf8dcdc284a9e5cc8afaf9db9bcb05fae64881e99e7a/pyfai-2025.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:932fc7fa6e59aef90d85a7f3bd9f0a08af732c69394fca6947c5c5f07dea4976", size = 5441508, upload-time = "2025-12-19T08:08:27.577Z" }, + { url = "https://files.pythonhosted.org/packages/4a/34/65f7f8afee39e5fe7c736cd404573cb27981c3f468245948748223121b84/pyfai-2025.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:403faa1250d9130fde290b84d7a2cc9d35bcdabf779e201cadf912b7e9f85397", size = 5599237, upload-time = "2025-12-19T08:08:29.413Z" }, + { url = "https://files.pythonhosted.org/packages/a9/a5/1a1ac47f858e1961d1f6ac1311c12e4449adf9e9a2142a60bf2846e30e68/pyfai-2025.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce6a2268e556e790b51fe5baa4a23d5c2e213f0b5324dc641ff1626e3a6f7cf9", size = 5186423, upload-time = "2025-12-19T08:08:32.321Z" }, + { url = "https://files.pythonhosted.org/packages/51/91/3c51be7b1ec6412b08e3b621759702303b6a61d57fb77bb71e061ca98cd4/pyfai-2025.12.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c0e102a9c6fe54862c9d56b2016e210433ab4629495381309b70c8ae62cd018a", size = 6935701, upload-time = "2025-12-19T08:08:34.296Z" }, + { url = "https://files.pythonhosted.org/packages/04/58/d830542956a6bfb24d3e7964bee06ebc17871255f1f50a7b4070a57b7f60/pyfai-2025.12.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f582e5606a121a0d1f8102f7c0212648d84b99e76348b6999698c613d0b2a31", size = 7041230, upload-time = "2025-12-19T07:35:56.179Z" }, + { url = "https://files.pythonhosted.org/packages/b4/28/e0e425f74bd06bce57c0e58f69dbbb31b74441228eae9223525817d66131/pyfai-2025.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:4a032f01dbbd0bbbdfe4bf3e24c8b50452dcc0bb5eddd16dcbacb3916d9e886d", size = 5274496, upload-time = "2025-12-19T08:08:36.772Z" }, + { url = "https://files.pythonhosted.org/packages/f7/7d/292cf095a8a6b5109ff31cf1130f70b42bc77cf7bd35fbf7440d91b36279/pyfai-2025.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:3f0676be03e85bb4adffd872dc0b3565fdc425a034081acf0ef3f4178b3d1367", size = 5602116, upload-time = "2025-12-19T08:08:38.668Z" }, + { url = "https://files.pythonhosted.org/packages/10/90/e9bfa09405caebd5b4e7b817ad1170955dd887520880a64ef19c302e4cbb/pyfai-2025.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a5a5c59ae25832998ab4fbf2cd1f583c5843f8c5940da300a4d65d715efa457b", size = 5163166, upload-time = "2025-12-19T08:08:40.578Z" }, + { url = "https://files.pythonhosted.org/packages/23/a6/7bbc8ddd8c93a62b9eeb16797aa887e2814de4370aba7939d180d3a51cb6/pyfai-2025.12.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8138dace04ac8ac5dc04a9d279970a528935dba18a16f99c26e3a8fd218ba8a4", size = 6911563, upload-time = "2025-12-19T08:08:42.792Z" }, + { url = "https://files.pythonhosted.org/packages/01/5c/af3f4236c85fd3fbc219ed1401997eb9659586076086ba3e796c0da55ea0/pyfai-2025.12.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5bb1167aafbd20e03c252d99b51743f1c1eec6da7d980a6b3fc0d255b109b824", size = 7007113, upload-time = "2025-12-19T07:35:58.505Z" }, + { url = "https://files.pythonhosted.org/packages/b9/39/0a823de16e5620ee3d605635ef6ab89ce8531a52f386fe735c0f2d0aa3ab/pyfai-2025.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:905bafbbc763b41e306b756ae97d7e353e64ff0665737fc6c6f4a818090cbba8", size = 5269115, upload-time = "2025-12-19T08:08:45.646Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d9/793533c5a231e9392e3ee32e471080d3100e7ebda448a0e3d630129eef33/pyfai-2025.12.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e4c333dd344699d7da7c74b1ae7d9c135a15f306f76e50a53b011e036b7103be", size = 5193739, upload-time = "2025-12-19T08:08:47.928Z" }, + { url = "https://files.pythonhosted.org/packages/7b/06/b4e915f035c4f3d23f1f1c12b374a7e55224147db5b1c3bfcd91af3ddbec/pyfai-2025.12.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ab297f55e9d7ab6d2bedcfd8b24e10d4074a2b7bcf92702c93bdf8b6fa24266f", size = 7024334, upload-time = "2025-12-19T07:36:00.446Z" }, + { url = "https://files.pythonhosted.org/packages/28/4f/1d7577ecfad3ff2258cbc1793ab9e1bb0a81c7c9c8e1e335f06a2fa49057/pyfai-2025.12.1-cp314-cp314-win_amd64.whl", hash = "sha256:928d881adba2376c2bebade8dcbb87a49ded9b2242616d3c9d1aeae7d018e0a7", size = 5361609, upload-time = "2025-12-19T08:08:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/b8/38/f49e3a6a72f7ef619e1d051f179e6c4082b55a23583b92d97fb6c825ecfa/pyfai-2025.12.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bc7919c31aa87de4b2706f4faaebc1e61b1558ce3717a2173df2c9ef93ca2dc9", size = 6644333, upload-time = "2025-12-19T07:36:02.8Z" }, + { url = "https://files.pythonhosted.org/packages/ec/ea/5085e6563a20e24addc4e2016873815a1c361302fe2b68c7dc64b8172947/pyfai-2025.12.1-cp314-cp314t-win_amd64.whl", hash = "sha256:e66858246ff5e55334a55925c3491e602e88cafc28d2abf24f4685d45faee36b", size = 5987214, upload-time = "2025-12-19T08:08:50.842Z" }, +] + +[[package]] +name = "pymatgen" +version = "2025.10.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bibtexparser" }, + { name = "joblib" }, + { name = "matplotlib" }, + { name = "monty" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "orjson" }, + { name = "palettable" }, + { name = "pandas" }, + { name = "plotly" }, + { name = "requests" }, + { name = "ruamel-yaml" }, + { name = "scipy" }, + { name = "spglib" }, + { name = "sympy" }, + { name = "tabulate" }, + { name = "tqdm" }, + { name = "uncertainties" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/6c/3e7f3f6884d3797a847a8d2441b165bb3a09979a0e40e328d2aca4fa933e/pymatgen-2025.10.7.tar.gz", hash = "sha256:11b4b4dcc847c377088984e58802d155b79237a53d586eb75f32370ed8fafda2", size = 3147848, upload-time = "2025-10-07T13:44:33.704Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/e5/11d97c51261461b2134816de23d5cf407fe361a9442999c0beab03e36076/pymatgen-2025.10.7-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:370aa89324548742ee674f1255a4daf0a4e98769f90dfdfabf97fa7c79e11f2d", size = 3588589, upload-time = "2025-10-07T13:43:55.855Z" }, + { url = "https://files.pythonhosted.org/packages/ce/09/b66966cd1db9fd13589221c1dbadfeabe40b88658f1f24c7be6b8907913a/pymatgen-2025.10.7-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:da25604f474f7b6725dfd54ad3aec826c5b7ae16edf794b6b66b3dc86a9931ad", size = 3591165, upload-time = "2025-10-07T13:43:57.587Z" }, + { url = "https://files.pythonhosted.org/packages/69/eb/0157a27486f3de31fcfcade34f08a5c47d470176db785caf730561592424/pymatgen-2025.10.7-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c83cc623a46121ce4482f9bec2c8deefbb8a578fb8569cccb645b732410d903d", size = 4631661, upload-time = "2025-10-07T13:43:59.76Z" }, + { url = "https://files.pythonhosted.org/packages/d1/7e/89033901e5ba97a317cf1d2646bf05ba46a31f133280d8701ea431c342f1/pymatgen-2025.10.7-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18c3b66358c8a607d0cfcc57551a0640100024812d16217548dcdb17b42dfa3c", size = 4661416, upload-time = "2025-10-07T13:44:02.146Z" }, + { url = "https://files.pythonhosted.org/packages/1e/d1/b874b8e8700382b57846267ff39eb8e5ea827931b78e05a725cc5833dd4e/pymatgen-2025.10.7-cp311-cp311-win32.whl", hash = "sha256:45cfc87d3bf29da141e589aef150a6017262a1efbded907889ac4bf3ab3306ae", size = 3541914, upload-time = "2025-10-07T13:44:04.369Z" }, + { url = "https://files.pythonhosted.org/packages/63/e9/59c8eced18ab89a96e1f0c2396838d7522b778a5c4e0b9185b21f2c5286d/pymatgen-2025.10.7-cp311-cp311-win_amd64.whl", hash = "sha256:13103be858c333f9b23fe190d385c7b4dc0e3824e21abca85d8d274722de7bed", size = 3571879, upload-time = "2025-10-07T13:44:06.117Z" }, + { url = "https://files.pythonhosted.org/packages/c2/27/05d85f2f0ff743d9a4002a31f978a0e8f8f8e75970934d293cfb87063366/pymatgen-2025.10.7-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ff89c4b16271fba2f15cf3984f3b27daefca99fe40e222cc8dbbd8bf35c9a47b", size = 3589019, upload-time = "2025-10-07T13:44:07.84Z" }, + { url = "https://files.pythonhosted.org/packages/59/90/f3bcfb9b801360509469338095e267c85d0e23c3ea9feb2f70c015544d94/pymatgen-2025.10.7-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:69d5865fad4d52f0bbe00df30311d5245bcf4f0e5ed5f6e7e4e6a42b54612e4f", size = 3592345, upload-time = "2025-10-07T13:44:10.217Z" }, + { url = "https://files.pythonhosted.org/packages/8f/11/256db54fec7d0f1409f9fc972cff779d0e11d436a41ed507ffa1bca4200b/pymatgen-2025.10.7-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a3127e4e3a96e668d66ce16ef65cbb4b641950197ee3f3ab38d4b79f4fc09017", size = 4628206, upload-time = "2025-10-07T13:44:12.307Z" }, + { url = "https://files.pythonhosted.org/packages/35/cd/305378f0b0b53083fd738f0e7ad449970ad4645ef838364351ca7ef8c981/pymatgen-2025.10.7-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e9e88e11509f48dc75090a874122cda19ebe59d3ed9ee2614fb712bb88943fd", size = 4663440, upload-time = "2025-10-07T13:44:14.562Z" }, + { url = "https://files.pythonhosted.org/packages/f1/78/aa88ff410fc6da6a94e8a43d91c5b26273319d68982fab9e7dda0fbfc014/pymatgen-2025.10.7-cp312-cp312-win32.whl", hash = "sha256:09e47e0899d820fccba673e6911bda850dce20ee1bcd8ffee4849082bb8b4d87", size = 3540066, upload-time = "2025-10-07T13:44:16.242Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c9/def0dd1d760fdff1afa2bed833a30fc41889c01e09c99e7ce7a76a7395fc/pymatgen-2025.10.7-cp312-cp312-win_amd64.whl", hash = "sha256:b159f9abd6755be106359d77c677be8a71ce882a0ba68a063212c7c168420431", size = 3571319, upload-time = "2025-10-07T13:44:18.43Z" }, + { url = "https://files.pythonhosted.org/packages/bc/31/b3f2bd096aa44791e0c85abd76947355191be7a994830124d78471e982f1/pymatgen-2025.10.7-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8df389e96d42da0fce68b8f55d6b0a87dcb0596ee0196017e6f2edd9d0f72397", size = 3586783, upload-time = "2025-10-07T13:44:20.588Z" }, + { url = "https://files.pythonhosted.org/packages/44/1b/2010fa932fccd3aac0dffaa4525dfb5363069d73d61ac3ac15889bc4c0f5/pymatgen-2025.10.7-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:35da3f13a4bd686e2ff01c11995441fd2050c0efa58bcf2538430045ddcf85a5", size = 3590414, upload-time = "2025-10-07T13:44:22.983Z" }, + { url = "https://files.pythonhosted.org/packages/88/88/9ad16868b578873874e36829f6ce1403676f7439f0c824cddf3333156520/pymatgen-2025.10.7-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9ff0db7c9614db9c687825d1ac5e8db3655ec663578faa79ebd9091000f831a0", size = 4620258, upload-time = "2025-10-07T13:44:25.259Z" }, + { url = "https://files.pythonhosted.org/packages/ec/1e/d15005bc57bc0c307cd07dc52b1d7a94f3f18034cfcc90cfca015024633d/pymatgen-2025.10.7-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:206201d8ebc6c8a2af9748a3dfa3e1975356eb9bf18f96db7021c2e3060cc3dd", size = 4658272, upload-time = "2025-10-07T13:44:27.481Z" }, + { url = "https://files.pythonhosted.org/packages/bc/04/faf2e226f3f1e859503974d4eb7d468041b8e931c9a66a2598c82285c965/pymatgen-2025.10.7-cp313-cp313-win32.whl", hash = "sha256:f4d0c605a0b8d0573973b2eb5491e80110438fe053d16fc6d7365df951123f58", size = 3539807, upload-time = "2025-10-07T13:44:29.887Z" }, + { url = "https://files.pythonhosted.org/packages/0a/4b/52fd2c203a4e9abc610d19f4e3655995748375c1c92215f3f508386b826c/pymatgen-2025.10.7-cp313-cp313-win_amd64.whl", hash = "sha256:d03be1675d2415422fdc1dc26ac30d9e0d6badcdb6fafe0177094c45676415fb", size = 3570933, upload-time = "2025-10-07T13:44:31.939Z" }, +] + +[[package]] +name = "pymatgen-io-validation" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pymatgen" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bd/20/9a5b96d413f7678ef4fd0b689ae20aa406b512013531eec7c7fa7128f544/pymatgen_io_validation-0.1.2.tar.gz", hash = "sha256:76632878ab2269356092dab5bae08c8f42418c3e15d4610f4eb304f0102e7f24", size = 51515, upload-time = "2025-09-16T16:52:43.66Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/fa/30b0dc764abc321693d16621482d02aa13ef569ba193c443c9411ac818a8/pymatgen_io_validation-0.1.2-py3-none-any.whl", hash = "sha256:765cb7f5f98422193d46518792be76ea5683c7093b444088f21dd6d5d217dc65", size = 46381, upload-time = "2025-09-16T16:52:42.391Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "pyshortcuts" +version = "1.9.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "charset-normalizer" }, + { name = "pywin32", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d3/eb/38208a9c8cb76af76a0ddb7a88e3397691a98ea539fce7a78aa4d484f8e6/pyshortcuts-1.9.7.tar.gz", hash = "sha256:bf2f28d5e7e5e5d825366ff63251be5518946f1e31a672b5d17fc19909b789fb", size = 1006641, upload-time = "2026-01-06T17:19:52.576Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e1/cf/7a4a079a01cd9df26db1ebda9a1d3db6074c331c976eeecdb16dcea84e30/pyshortcuts-1.9.7-py3-none-any.whl", hash = "sha256:b5ab1d02717e8b93b3e26b56ffc9c2cb3a1e91fe3138c93dc5727c2f6c1bed9b", size = 167377, upload-time = "2026-01-06T17:19:51.574Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f0/26/19cadc79a718c5edbec86fd4919a6b6d3f681039a2f6d66d14be94e75fb9/python_dotenv-1.2.1.tar.gz", hash = "sha256:42667e897e16ab0d66954af0e60a9caa94f0fd4ecf3aaf6d2d260eec1aa36ad6", size = 44221, upload-time = "2025-10-26T15:12:10.434Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/1b/a298b06749107c305e1fe0f814c6c74aea7b2f1e10989cb30f544a1b3253/python_dotenv-1.2.1-py3-none-any.whl", hash = "sha256:b81ee9561e9ca4004139c6cbba3a238c32b03e4894671e181b671e8cb8425d61", size = 21230, upload-time = "2025-10-26T15:12:09.109Z" }, +] + +[[package]] +name = "pywin32" +version = "311" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/af/449a6a91e5d6db51420875c54f6aff7c97a86a3b13a0b4f1a5c13b988de3/pywin32-311-cp311-cp311-win32.whl", hash = "sha256:184eb5e436dea364dcd3d2316d577d625c0351bf237c4e9a5fabbcfa5a58b151", size = 8697031, upload-time = "2025-07-14T20:13:13.266Z" }, + { url = "https://files.pythonhosted.org/packages/51/8f/9bb81dd5bb77d22243d33c8397f09377056d5c687aa6d4042bea7fbf8364/pywin32-311-cp311-cp311-win_amd64.whl", hash = "sha256:3ce80b34b22b17ccbd937a6e78e7225d80c52f5ab9940fe0506a1a16f3dab503", size = 9508308, upload-time = "2025-07-14T20:13:15.147Z" }, + { url = "https://files.pythonhosted.org/packages/44/7b/9c2ab54f74a138c491aba1b1cd0795ba61f144c711daea84a88b63dc0f6c/pywin32-311-cp311-cp311-win_arm64.whl", hash = "sha256:a733f1388e1a842abb67ffa8e7aad0e70ac519e09b0f6a784e65a136ec7cefd2", size = 8703930, upload-time = "2025-07-14T20:13:16.945Z" }, + { url = "https://files.pythonhosted.org/packages/e7/ab/01ea1943d4eba0f850c3c61e78e8dd59757ff815ff3ccd0a84de5f541f42/pywin32-311-cp312-cp312-win32.whl", hash = "sha256:750ec6e621af2b948540032557b10a2d43b0cee2ae9758c54154d711cc852d31", size = 8706543, upload-time = "2025-07-14T20:13:20.765Z" }, + { url = "https://files.pythonhosted.org/packages/d1/a8/a0e8d07d4d051ec7502cd58b291ec98dcc0c3fff027caad0470b72cfcc2f/pywin32-311-cp312-cp312-win_amd64.whl", hash = "sha256:b8c095edad5c211ff31c05223658e71bf7116daa0ecf3ad85f3201ea3190d067", size = 9495040, upload-time = "2025-07-14T20:13:22.543Z" }, + { url = "https://files.pythonhosted.org/packages/ba/3a/2ae996277b4b50f17d61f0603efd8253cb2d79cc7ae159468007b586396d/pywin32-311-cp312-cp312-win_arm64.whl", hash = "sha256:e286f46a9a39c4a18b319c28f59b61de793654af2f395c102b4f819e584b5852", size = 8710102, upload-time = "2025-07-14T20:13:24.682Z" }, + { url = "https://files.pythonhosted.org/packages/a5/be/3fd5de0979fcb3994bfee0d65ed8ca9506a8a1260651b86174f6a86f52b3/pywin32-311-cp313-cp313-win32.whl", hash = "sha256:f95ba5a847cba10dd8c4d8fefa9f2a6cf283b8b88ed6178fa8a6c1ab16054d0d", size = 8705700, upload-time = "2025-07-14T20:13:26.471Z" }, + { url = "https://files.pythonhosted.org/packages/e3/28/e0a1909523c6890208295a29e05c2adb2126364e289826c0a8bc7297bd5c/pywin32-311-cp313-cp313-win_amd64.whl", hash = "sha256:718a38f7e5b058e76aee1c56ddd06908116d35147e133427e59a3983f703a20d", size = 9494700, upload-time = "2025-07-14T20:13:28.243Z" }, + { url = "https://files.pythonhosted.org/packages/04/bf/90339ac0f55726dce7d794e6d79a18a91265bdf3aa70b6b9ca52f35e022a/pywin32-311-cp313-cp313-win_arm64.whl", hash = "sha256:7b4075d959648406202d92a2310cb990fea19b535c7f4a78d3f5e10b926eeb8a", size = 8709318, upload-time = "2025-07-14T20:13:30.348Z" }, + { url = "https://files.pythonhosted.org/packages/c9/31/097f2e132c4f16d99a22bfb777e0fd88bd8e1c634304e102f313af69ace5/pywin32-311-cp314-cp314-win32.whl", hash = "sha256:b7a2c10b93f8986666d0c803ee19b5990885872a7de910fc460f9b0c2fbf92ee", size = 8840714, upload-time = "2025-07-14T20:13:32.449Z" }, + { url = "https://files.pythonhosted.org/packages/90/4b/07c77d8ba0e01349358082713400435347df8426208171ce297da32c313d/pywin32-311-cp314-cp314-win_amd64.whl", hash = "sha256:3aca44c046bd2ed8c90de9cb8427f581c479e594e99b5c0bb19b29c10fd6cb87", size = 9656800, upload-time = "2025-07-14T20:13:34.312Z" }, + { url = "https://files.pythonhosted.org/packages/c0/d2/21af5c535501a7233e734b8af901574572da66fcc254cb35d0609c9080dd/pywin32-311-cp314-cp314-win_arm64.whl", hash = "sha256:a508e2d9025764a8270f93111a970e1d0fbfc33f4153b388bb649b7eec4f9b42", size = 8932540, upload-time = "2025-07-14T20:13:36.379Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "requests" +version = "2.32.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/74/b3ff8e6c8446842c3f5c837e9c3dfcfe2018ea6ecef224c710c85ef728f4/requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf", size = 134517, upload-time = "2025-08-18T20:46:02.573Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/db/4254e3eabe8020b458f1a747140d32277ec7a271daf1d235b70dc0b4e6e3/requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6", size = 64738, upload-time = "2025-08-18T20:46:00.542Z" }, +] + +[[package]] +name = "ruamel-yaml" +version = "0.19.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/3b/ebda527b56beb90cb7652cb1c7e4f91f48649fbcd8d2eb2fb6e77cd3329b/ruamel_yaml-0.19.1.tar.gz", hash = "sha256:53eb66cd27849eff968ebf8f0bf61f46cdac2da1d1f3576dd4ccee9b25c31993", size = 142709, upload-time = "2026-01-02T16:50:31.84Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b8/0c/51f6841f1d84f404f92463fc2b1ba0da357ca1e3db6b7fbda26956c3b82a/ruamel_yaml-0.19.1-py3-none-any.whl", hash = "sha256:27592957fedf6e0b62f281e96effd28043345e0e66001f97683aa9a40c667c93", size = 118102, upload-time = "2026-01-02T16:50:29.201Z" }, +] + +[[package]] +name = "s3transfer" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/05/04/74127fc843314818edfa81b5540e26dd537353b123a4edc563109d8f17dd/s3transfer-0.16.0.tar.gz", hash = "sha256:8e990f13268025792229cd52fa10cb7163744bf56e719e0b9cb925ab79abf920", size = 153827, upload-time = "2025-12-01T02:30:59.114Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/51/727abb13f44c1fcf6d145979e1535a35794db0f6e450a0cb46aa24732fe2/s3transfer-0.16.0-py3-none-any.whl", hash = "sha256:18e25d66fed509e3868dc1572b3f427ff947dd2c56f844a5bf09481ad3f3b2fe", size = 86830, upload-time = "2025-12-01T02:30:57.729Z" }, +] + +[[package]] +name = "scikit-image" +version = "0.26.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "imageio" }, + { name = "lazy-loader" }, + { name = "networkx" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "scipy" }, + { name = "tifffile" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/b4/2528bb43c67d48053a7a649a9666432dc307d66ba02e3a6d5c40f46655df/scikit_image-0.26.0.tar.gz", hash = "sha256:f5f970ab04efad85c24714321fcc91613fcb64ef2a892a13167df2f3e59199fa", size = 22729739, upload-time = "2025-12-20T17:12:21.824Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/16/8a407688b607f86f81f8c649bf0d68a2a6d67375f18c2d660aba20f5b648/scikit_image-0.26.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b1ede33a0fb3731457eaf53af6361e73dd510f449dac437ab54573b26788baf0", size = 12355510, upload-time = "2025-12-20T17:10:31.628Z" }, + { url = "https://files.pythonhosted.org/packages/6b/f9/7efc088ececb6f6868fd4475e16cfafc11f242ce9ab5fc3557d78b5da0d4/scikit_image-0.26.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7af7aa331c6846bd03fa28b164c18d0c3fd419dbb888fb05e958ac4257a78fdd", size = 12056334, upload-time = "2025-12-20T17:10:34.559Z" }, + { url = "https://files.pythonhosted.org/packages/9f/1e/bc7fb91fb5ff65ef42346c8b7ee8b09b04eabf89235ab7dbfdfd96cbd1ea/scikit_image-0.26.0-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9ea6207d9e9d21c3f464efe733121c0504e494dbdc7728649ff3e23c3c5a4953", size = 13297768, upload-time = "2025-12-20T17:10:37.733Z" }, + { url = "https://files.pythonhosted.org/packages/a5/2a/e71c1a7d90e70da67b88ccc609bd6ae54798d5847369b15d3a8052232f9d/scikit_image-0.26.0-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74aa5518ccea28121f57a95374581d3b979839adc25bb03f289b1bc9b99c58af", size = 13711217, upload-time = "2025-12-20T17:10:40.935Z" }, + { url = "https://files.pythonhosted.org/packages/d4/59/9637ee12c23726266b91296791465218973ce1ad3e4c56fc81e4d8e7d6e1/scikit_image-0.26.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:d5c244656de905e195a904e36dbc18585e06ecf67d90f0482cbde63d7f9ad59d", size = 14337782, upload-time = "2025-12-20T17:10:43.452Z" }, + { url = "https://files.pythonhosted.org/packages/e7/5c/a3e1e0860f9294663f540c117e4bf83d55e5b47c281d475cc06227e88411/scikit_image-0.26.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:21a818ee6ca2f2131b9e04d8eb7637b5c18773ebe7b399ad23dcc5afaa226d2d", size = 14805997, upload-time = "2025-12-20T17:10:45.93Z" }, + { url = "https://files.pythonhosted.org/packages/d3/c6/2eeacf173da041a9e388975f54e5c49df750757fcfc3ee293cdbbae1ea0a/scikit_image-0.26.0-cp311-cp311-win_amd64.whl", hash = "sha256:9490360c8d3f9a7e85c8de87daf7c0c66507960cf4947bb9610d1751928721c7", size = 11878486, upload-time = "2025-12-20T17:10:48.246Z" }, + { url = "https://files.pythonhosted.org/packages/c3/a4/a852c4949b9058d585e762a66bf7e9a2cd3be4795cd940413dfbfbb0ce79/scikit_image-0.26.0-cp311-cp311-win_arm64.whl", hash = "sha256:0baa0108d2d027f34d748e84e592b78acc23e965a5de0e4bb03cf371de5c0581", size = 11346518, upload-time = "2025-12-20T17:10:50.575Z" }, + { url = "https://files.pythonhosted.org/packages/99/e8/e13757982264b33a1621628f86b587e9a73a13f5256dad49b19ba7dc9083/scikit_image-0.26.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d454b93a6fa770ac5ae2d33570f8e7a321bb80d29511ce4b6b78058ebe176e8c", size = 12376452, upload-time = "2025-12-20T17:10:52.796Z" }, + { url = "https://files.pythonhosted.org/packages/e3/be/f8dd17d0510f9911f9f17ba301f7455328bf13dae416560126d428de9568/scikit_image-0.26.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3409e89d66eff5734cd2b672d1c48d2759360057e714e1d92a11df82c87cba37", size = 12061567, upload-time = "2025-12-20T17:10:55.207Z" }, + { url = "https://files.pythonhosted.org/packages/b3/2b/c70120a6880579fb42b91567ad79feb4772f7be72e8d52fec403a3dde0c6/scikit_image-0.26.0-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c717490cec9e276afb0438dd165b7c3072d6c416709cc0f9f5a4c1070d23a44", size = 13084214, upload-time = "2025-12-20T17:10:57.468Z" }, + { url = "https://files.pythonhosted.org/packages/f4/a2/70401a107d6d7466d64b466927e6b96fcefa99d57494b972608e2f8be50f/scikit_image-0.26.0-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7df650e79031634ac90b11e64a9eedaf5a5e06fcd09bcd03a34be01745744466", size = 13561683, upload-time = "2025-12-20T17:10:59.49Z" }, + { url = "https://files.pythonhosted.org/packages/13/a5/48bdfd92794c5002d664e0910a349d0a1504671ef5ad358150f21643c79a/scikit_image-0.26.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cefd85033e66d4ea35b525bb0937d7f42d4cdcfed2d1888e1570d5ce450d3932", size = 14112147, upload-time = "2025-12-20T17:11:02.083Z" }, + { url = "https://files.pythonhosted.org/packages/ee/b5/ac71694da92f5def5953ca99f18a10fe98eac2dd0a34079389b70b4d0394/scikit_image-0.26.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3f5bf622d7c0435884e1e141ebbe4b2804e16b2dd23ae4c6183e2ea99233be70", size = 14661625, upload-time = "2025-12-20T17:11:04.528Z" }, + { url = "https://files.pythonhosted.org/packages/23/4d/a3cc1e96f080e253dad2251bfae7587cf2b7912bcd76fd43fd366ff35a87/scikit_image-0.26.0-cp312-cp312-win_amd64.whl", hash = "sha256:abed017474593cd3056ae0fe948d07d0747b27a085e92df5474f4955dd65aec0", size = 11911059, upload-time = "2025-12-20T17:11:06.61Z" }, + { url = "https://files.pythonhosted.org/packages/35/8a/d1b8055f584acc937478abf4550d122936f420352422a1a625eef2c605d8/scikit_image-0.26.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d57e39ef67a95d26860c8caf9b14b8fb130f83b34c6656a77f191fa6d1d04d8", size = 11348740, upload-time = "2025-12-20T17:11:09.118Z" }, + { url = "https://files.pythonhosted.org/packages/4f/48/02357ffb2cca35640f33f2cfe054a4d6d5d7a229b88880a64f1e45c11f4e/scikit_image-0.26.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a2e852eccf41d2d322b8e60144e124802873a92b8d43a6f96331aa42888491c7", size = 12346329, upload-time = "2025-12-20T17:11:11.599Z" }, + { url = "https://files.pythonhosted.org/packages/67/b9/b792c577cea2c1e94cda83b135a656924fc57c428e8a6d302cd69aac1b60/scikit_image-0.26.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:98329aab3bc87db352b9887f64ce8cdb8e75f7c2daa19927f2e121b797b678d5", size = 12031726, upload-time = "2025-12-20T17:11:13.871Z" }, + { url = "https://files.pythonhosted.org/packages/07/a9/9564250dfd65cb20404a611016db52afc6268b2b371cd19c7538ea47580f/scikit_image-0.26.0-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:915bb3ba66455cf8adac00dc8fdf18a4cd29656aec7ddd38cb4dda90289a6f21", size = 13094910, upload-time = "2025-12-20T17:11:16.2Z" }, + { url = "https://files.pythonhosted.org/packages/a3/b8/0d8eeb5a9fd7d34ba84f8a55753a0a3e2b5b51b2a5a0ade648a8db4a62f7/scikit_image-0.26.0-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b36ab5e778bf50af5ff386c3ac508027dc3aaeccf2161bdf96bde6848f44d21b", size = 13660939, upload-time = "2025-12-20T17:11:18.464Z" }, + { url = "https://files.pythonhosted.org/packages/2f/d6/91d8973584d4793d4c1a847d388e34ef1218d835eeddecfc9108d735b467/scikit_image-0.26.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:09bad6a5d5949c7896c8347424c4cca899f1d11668030e5548813ab9c2865dcb", size = 14138938, upload-time = "2025-12-20T17:11:20.919Z" }, + { url = "https://files.pythonhosted.org/packages/39/9a/7e15d8dc10d6bbf212195fb39bdeb7f226c46dd53f9c63c312e111e2e175/scikit_image-0.26.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:aeb14db1ed09ad4bee4ceb9e635547a8d5f3549be67fc6c768c7f923e027e6cd", size = 14752243, upload-time = "2025-12-20T17:11:23.347Z" }, + { url = "https://files.pythonhosted.org/packages/8f/58/2b11b933097bc427e42b4a8b15f7de8f24f2bac1fd2779d2aea1431b2c31/scikit_image-0.26.0-cp313-cp313-win_amd64.whl", hash = "sha256:ac529eb9dbd5954f9aaa2e3fe9a3fd9661bfe24e134c688587d811a0233127f1", size = 11906770, upload-time = "2025-12-20T17:11:25.297Z" }, + { url = "https://files.pythonhosted.org/packages/ad/ec/96941474a18a04b69b6f6562a5bd79bd68049fa3728d3b350976eccb8b93/scikit_image-0.26.0-cp313-cp313-win_arm64.whl", hash = "sha256:a2d211bc355f59725efdcae699b93b30348a19416cc9e017f7b2fb599faf7219", size = 11342506, upload-time = "2025-12-20T17:11:27.399Z" }, + { url = "https://files.pythonhosted.org/packages/03/e5/c1a9962b0cf1952f42d32b4a2e48eed520320dbc4d2ff0b981c6fa508b6b/scikit_image-0.26.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9eefb4adad066da408a7601c4c24b07af3b472d90e08c3e7483d4e9e829d8c49", size = 12663278, upload-time = "2025-12-20T17:11:29.358Z" }, + { url = "https://files.pythonhosted.org/packages/ae/97/c1a276a59ce8e4e24482d65c1a3940d69c6b3873279193b7ebd04e5ee56b/scikit_image-0.26.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:6caec76e16c970c528d15d1c757363334d5cb3069f9cea93d2bead31820511f3", size = 12405142, upload-time = "2025-12-20T17:11:31.282Z" }, + { url = "https://files.pythonhosted.org/packages/d4/4a/f1cbd1357caef6c7993f7efd514d6e53d8fd6f7fe01c4714d51614c53289/scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a07200fe09b9d99fcdab959859fe0f7db8df6333d6204344425d476850ce3604", size = 12942086, upload-time = "2025-12-20T17:11:33.683Z" }, + { url = "https://files.pythonhosted.org/packages/5b/6f/74d9fb87c5655bd64cf00b0c44dc3d6206d9002e5f6ba1c9aeb13236f6bf/scikit_image-0.26.0-cp313-cp313t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92242351bccf391fc5df2d1529d15470019496d2498d615beb68da85fe7fdf37", size = 13265667, upload-time = "2025-12-20T17:11:36.11Z" }, + { url = "https://files.pythonhosted.org/packages/a7/73/faddc2413ae98d863f6fa2e3e14da4467dd38e788e1c23346cf1a2b06b97/scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:52c496f75a7e45844d951557f13c08c81487c6a1da2e3c9c8a39fcde958e02cc", size = 14001966, upload-time = "2025-12-20T17:11:38.55Z" }, + { url = "https://files.pythonhosted.org/packages/02/94/9f46966fa042b5d57c8cd641045372b4e0df0047dd400e77ea9952674110/scikit_image-0.26.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:20ef4a155e2e78b8ab973998e04d8a361d49d719e65412405f4dadd9155a61d9", size = 14359526, upload-time = "2025-12-20T17:11:41.087Z" }, + { url = "https://files.pythonhosted.org/packages/5d/b4/2840fe38f10057f40b1c9f8fb98a187a370936bf144a4ac23452c5ef1baf/scikit_image-0.26.0-cp313-cp313t-win_amd64.whl", hash = "sha256:c9087cf7d0e7f33ab5c46d2068d86d785e70b05400a891f73a13400f1e1faf6a", size = 12287629, upload-time = "2025-12-20T17:11:43.11Z" }, + { url = "https://files.pythonhosted.org/packages/22/ba/73b6ca70796e71f83ab222690e35a79612f0117e5aaf167151b7d46f5f2c/scikit_image-0.26.0-cp313-cp313t-win_arm64.whl", hash = "sha256:27d58bc8b2acd351f972c6508c1b557cfed80299826080a4d803dd29c51b707e", size = 11647755, upload-time = "2025-12-20T17:11:45.279Z" }, + { url = "https://files.pythonhosted.org/packages/51/44/6b744f92b37ae2833fd423cce8f806d2368859ec325a699dc30389e090b9/scikit_image-0.26.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:63af3d3a26125f796f01052052f86806da5b5e54c6abef152edb752683075a9c", size = 12365810, upload-time = "2025-12-20T17:11:47.357Z" }, + { url = "https://files.pythonhosted.org/packages/40/f5/83590d9355191f86ac663420fec741b82cc547a4afe7c4c1d986bf46e4db/scikit_image-0.26.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ce00600cd70d4562ed59f80523e18cdcc1fae0e10676498a01f73c255774aefd", size = 12075717, upload-time = "2025-12-20T17:11:49.483Z" }, + { url = "https://files.pythonhosted.org/packages/72/48/253e7cf5aee6190459fe136c614e2cbccc562deceb4af96e0863f1b8ee29/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6381edf972b32e4f54085449afde64365a57316637496c1325a736987083e2ab", size = 13161520, upload-time = "2025-12-20T17:11:51.58Z" }, + { url = "https://files.pythonhosted.org/packages/73/c3/cec6a3cbaadfdcc02bd6ff02f3abfe09eaa7f4d4e0a525a1e3a3f4bce49c/scikit_image-0.26.0-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c6624a76c6085218248154cc7e1500e6b488edcd9499004dd0d35040607d7505", size = 13684340, upload-time = "2025-12-20T17:11:53.708Z" }, + { url = "https://files.pythonhosted.org/packages/d4/0d/39a776f675d24164b3a267aa0db9f677a4cb20127660d8bf4fd7fef66817/scikit_image-0.26.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f775f0e420faac9c2aa6757135f4eb468fb7b70e0b67fa77a5e79be3c30ee331", size = 14203839, upload-time = "2025-12-20T17:11:55.89Z" }, + { url = "https://files.pythonhosted.org/packages/ee/25/2514df226bbcedfe9b2caafa1ba7bc87231a0c339066981b182b08340e06/scikit_image-0.26.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede4d6d255cc5da9faeb2f9ba7fedbc990abbc652db429f40a16b22e770bb578", size = 14770021, upload-time = "2025-12-20T17:11:58.014Z" }, + { url = "https://files.pythonhosted.org/packages/8d/5b/0671dc91c0c79340c3fe202f0549c7d3681eb7640fe34ab68a5f090a7c7f/scikit_image-0.26.0-cp314-cp314-win_amd64.whl", hash = "sha256:0660b83968c15293fd9135e8d860053ee19500d52bf55ca4fb09de595a1af650", size = 12023490, upload-time = "2025-12-20T17:12:00.013Z" }, + { url = "https://files.pythonhosted.org/packages/65/08/7c4cb59f91721f3de07719085212a0b3962e3e3f2d1818cbac4eeb1ea53e/scikit_image-0.26.0-cp314-cp314-win_arm64.whl", hash = "sha256:b8d14d3181c21c11170477a42542c1addc7072a90b986675a71266ad17abc37f", size = 11473782, upload-time = "2025-12-20T17:12:01.983Z" }, + { url = "https://files.pythonhosted.org/packages/49/41/65c4258137acef3d73cb561ac55512eacd7b30bb4f4a11474cad526bc5db/scikit_image-0.26.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:cde0bbd57e6795eba83cb10f71a677f7239271121dc950bc060482834a668ad1", size = 12686060, upload-time = "2025-12-20T17:12:03.886Z" }, + { url = "https://files.pythonhosted.org/packages/e7/32/76971f8727b87f1420a962406388a50e26667c31756126444baf6668f559/scikit_image-0.26.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:163e9afb5b879562b9aeda0dd45208a35316f26cc7a3aed54fd601604e5cf46f", size = 12422628, upload-time = "2025-12-20T17:12:05.921Z" }, + { url = "https://files.pythonhosted.org/packages/37/0d/996febd39f757c40ee7b01cdb861867327e5c8e5f595a634e8201462d958/scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:724f79fd9b6cb6f4a37864fe09f81f9f5d5b9646b6868109e1b100d1a7019e59", size = 12962369, upload-time = "2025-12-20T17:12:07.912Z" }, + { url = "https://files.pythonhosted.org/packages/48/b4/612d354f946c9600e7dea012723c11d47e8d455384e530f6daaaeb9bf62c/scikit_image-0.26.0-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3268f13310e6857508bd87202620df996199a016a1d281b309441d227c822394", size = 13272431, upload-time = "2025-12-20T17:12:10.255Z" }, + { url = "https://files.pythonhosted.org/packages/0a/6e/26c00b466e06055a086de2c6e2145fe189ccdc9a1d11ccc7de020f2591ad/scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:fac96a1f9b06cd771cbbb3cd96c5332f36d4efd839b1d8b053f79e5887acde62", size = 14016362, upload-time = "2025-12-20T17:12:12.793Z" }, + { url = "https://files.pythonhosted.org/packages/47/88/00a90402e1775634043c2a0af8a3c76ad450866d9fa444efcc43b553ba2d/scikit_image-0.26.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2c1e7bd342f43e7a97e571b3f03ba4c1293ea1a35c3f13f41efdc8a81c1dc8f2", size = 14364151, upload-time = "2025-12-20T17:12:14.909Z" }, + { url = "https://files.pythonhosted.org/packages/da/ca/918d8d306bd43beacff3b835c6d96fac0ae64c0857092f068b88db531a7c/scikit_image-0.26.0-cp314-cp314t-win_amd64.whl", hash = "sha256:b702c3bb115e1dcf4abf5297429b5c90f2189655888cbed14921f3d26f81d3a4", size = 12413484, upload-time = "2025-12-20T17:12:17.046Z" }, + { url = "https://files.pythonhosted.org/packages/dc/cd/4da01329b5a8d47ff7ec3c99a2b02465a8017b186027590dc7425cee0b56/scikit_image-0.26.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0608aa4a9ec39e0843de10d60edb2785a30c1c47819b67866dd223ebd149acaf", size = 11769501, upload-time = "2025-12-20T17:12:19.339Z" }, +] + +[[package]] +name = "scikit-learn" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "joblib" }, + { name = "numpy" }, + { name = "scipy" }, + { name = "threadpoolctl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0e/d4/40988bf3b8e34feec1d0e6a051446b1f66225f8529b9309becaeef62b6c4/scikit_learn-1.8.0.tar.gz", hash = "sha256:9bccbb3b40e3de10351f8f5068e105d0f4083b1a65fa07b6634fbc401a6287fd", size = 7335585, upload-time = "2025-12-10T07:08:53.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c9/92/53ea2181da8ac6bf27170191028aee7251f8f841f8d3edbfdcaf2008fde9/scikit_learn-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:146b4d36f800c013d267b29168813f7a03a43ecd2895d04861f1240b564421da", size = 8595835, upload-time = "2025-12-10T07:07:39.385Z" }, + { url = "https://files.pythonhosted.org/packages/01/18/d154dc1638803adf987910cdd07097d9c526663a55666a97c124d09fb96a/scikit_learn-1.8.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:f984ca4b14914e6b4094c5d52a32ea16b49832c03bd17a110f004db3c223e8e1", size = 8080381, upload-time = "2025-12-10T07:07:41.93Z" }, + { url = "https://files.pythonhosted.org/packages/8a/44/226142fcb7b7101e64fdee5f49dbe6288d4c7af8abf593237b70fca080a4/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5e30adb87f0cc81c7690a84f7932dd66be5bac57cfe16b91cb9151683a4a2d3b", size = 8799632, upload-time = "2025-12-10T07:07:43.899Z" }, + { url = "https://files.pythonhosted.org/packages/36/4d/4a67f30778a45d542bbea5db2dbfa1e9e100bf9ba64aefe34215ba9f11f6/scikit_learn-1.8.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ada8121bcb4dac28d930febc791a69f7cb1673c8495e5eee274190b73a4559c1", size = 9103788, upload-time = "2025-12-10T07:07:45.982Z" }, + { url = "https://files.pythonhosted.org/packages/89/3c/45c352094cfa60050bcbb967b1faf246b22e93cb459f2f907b600f2ceda5/scikit_learn-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:c57b1b610bd1f40ba43970e11ce62821c2e6569e4d74023db19c6b26f246cb3b", size = 8081706, upload-time = "2025-12-10T07:07:48.111Z" }, + { url = "https://files.pythonhosted.org/packages/3d/46/5416595bb395757f754feb20c3d776553a386b661658fb21b7c814e89efe/scikit_learn-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:2838551e011a64e3053ad7618dda9310175f7515f1742fa2d756f7c874c05961", size = 7688451, upload-time = "2025-12-10T07:07:49.873Z" }, + { url = "https://files.pythonhosted.org/packages/90/74/e6a7cc4b820e95cc38cf36cd74d5aa2b42e8ffc2d21fe5a9a9c45c1c7630/scikit_learn-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5fb63362b5a7ddab88e52b6dbb47dac3fd7dafeee740dc6c8d8a446ddedade8e", size = 8548242, upload-time = "2025-12-10T07:07:51.568Z" }, + { url = "https://files.pythonhosted.org/packages/49/d8/9be608c6024d021041c7f0b3928d4749a706f4e2c3832bbede4fb4f58c95/scikit_learn-1.8.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:5025ce924beccb28298246e589c691fe1b8c1c96507e6d27d12c5fadd85bfd76", size = 8079075, upload-time = "2025-12-10T07:07:53.697Z" }, + { url = "https://files.pythonhosted.org/packages/dd/47/f187b4636ff80cc63f21cd40b7b2d177134acaa10f6bb73746130ee8c2e5/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4496bb2cf7a43ce1a2d7524a79e40bc5da45cf598dbf9545b7e8316ccba47bb4", size = 8660492, upload-time = "2025-12-10T07:07:55.574Z" }, + { url = "https://files.pythonhosted.org/packages/97/74/b7a304feb2b49df9fafa9382d4d09061a96ee9a9449a7cbea7988dda0828/scikit_learn-1.8.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a0bcfe4d0d14aec44921545fd2af2338c7471de9cb701f1da4c9d85906ab847a", size = 8931904, upload-time = "2025-12-10T07:07:57.666Z" }, + { url = "https://files.pythonhosted.org/packages/9f/c4/0ab22726a04ede56f689476b760f98f8f46607caecff993017ac1b64aa5d/scikit_learn-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:35c007dedb2ffe38fe3ee7d201ebac4a2deccd2408e8621d53067733e3c74809", size = 8019359, upload-time = "2025-12-10T07:07:59.838Z" }, + { url = "https://files.pythonhosted.org/packages/24/90/344a67811cfd561d7335c1b96ca21455e7e472d281c3c279c4d3f2300236/scikit_learn-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:8c497fff237d7b4e07e9ef1a640887fa4fb765647f86fbe00f969ff6280ce2bb", size = 7641898, upload-time = "2025-12-10T07:08:01.36Z" }, + { url = "https://files.pythonhosted.org/packages/03/aa/e22e0768512ce9255eba34775be2e85c2048da73da1193e841707f8f039c/scikit_learn-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0d6ae97234d5d7079dc0040990a6f7aeb97cb7fa7e8945f1999a429b23569e0a", size = 8513770, upload-time = "2025-12-10T07:08:03.251Z" }, + { url = "https://files.pythonhosted.org/packages/58/37/31b83b2594105f61a381fc74ca19e8780ee923be2d496fcd8d2e1147bd99/scikit_learn-1.8.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:edec98c5e7c128328124a029bceb09eda2d526997780fef8d65e9a69eead963e", size = 8044458, upload-time = "2025-12-10T07:08:05.336Z" }, + { url = "https://files.pythonhosted.org/packages/2d/5a/3f1caed8765f33eabb723596666da4ebbf43d11e96550fb18bdec42b467b/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:74b66d8689d52ed04c271e1329f0c61635bcaf5b926db9b12d58914cdc01fe57", size = 8610341, upload-time = "2025-12-10T07:08:07.732Z" }, + { url = "https://files.pythonhosted.org/packages/38/cf/06896db3f71c75902a8e9943b444a56e727418f6b4b4a90c98c934f51ed4/scikit_learn-1.8.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8fdf95767f989b0cfedb85f7ed8ca215d4be728031f56ff5a519ee1e3276dc2e", size = 8900022, upload-time = "2025-12-10T07:08:09.862Z" }, + { url = "https://files.pythonhosted.org/packages/1c/f9/9b7563caf3ec8873e17a31401858efab6b39a882daf6c1bfa88879c0aa11/scikit_learn-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:2de443b9373b3b615aec1bb57f9baa6bb3a9bd093f1269ba95c17d870422b271", size = 7989409, upload-time = "2025-12-10T07:08:12.028Z" }, + { url = "https://files.pythonhosted.org/packages/49/bd/1f4001503650e72c4f6009ac0c4413cb17d2d601cef6f71c0453da2732fc/scikit_learn-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:eddde82a035681427cbedded4e6eff5e57fa59216c2e3e90b10b19ab1d0a65c3", size = 7619760, upload-time = "2025-12-10T07:08:13.688Z" }, + { url = "https://files.pythonhosted.org/packages/d2/7d/a630359fc9dcc95496588c8d8e3245cc8fd81980251079bc09c70d41d951/scikit_learn-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7cc267b6108f0a1499a734167282c00c4ebf61328566b55ef262d48e9849c735", size = 8826045, upload-time = "2025-12-10T07:08:15.215Z" }, + { url = "https://files.pythonhosted.org/packages/cc/56/a0c86f6930cfcd1c7054a2bc417e26960bb88d32444fe7f71d5c2cfae891/scikit_learn-1.8.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:fe1c011a640a9f0791146011dfd3c7d9669785f9fed2b2a5f9e207536cf5c2fd", size = 8420324, upload-time = "2025-12-10T07:08:17.561Z" }, + { url = "https://files.pythonhosted.org/packages/46/1e/05962ea1cebc1cf3876667ecb14c283ef755bf409993c5946ade3b77e303/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:72358cce49465d140cc4e7792015bb1f0296a9742d5622c67e31399b75468b9e", size = 8680651, upload-time = "2025-12-10T07:08:19.952Z" }, + { url = "https://files.pythonhosted.org/packages/fe/56/a85473cd75f200c9759e3a5f0bcab2d116c92a8a02ee08ccd73b870f8bb4/scikit_learn-1.8.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:80832434a6cc114f5219211eec13dcbc16c2bac0e31ef64c6d346cde3cf054cb", size = 8925045, upload-time = "2025-12-10T07:08:22.11Z" }, + { url = "https://files.pythonhosted.org/packages/cc/b7/64d8cfa896c64435ae57f4917a548d7ac7a44762ff9802f75a79b77cb633/scikit_learn-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:ee787491dbfe082d9c3013f01f5991658b0f38aa8177e4cd4bf434c58f551702", size = 8507994, upload-time = "2025-12-10T07:08:23.943Z" }, + { url = "https://files.pythonhosted.org/packages/5e/37/e192ea709551799379958b4c4771ec507347027bb7c942662c7fbeba31cb/scikit_learn-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf97c10a3f5a7543f9b88cbf488d33d175e9146115a451ae34568597ba33dcde", size = 7869518, upload-time = "2025-12-10T07:08:25.71Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/1af2c186174cc92dcab2233f327336058c077d38f6fe2aceb08e6ab4d509/scikit_learn-1.8.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:c22a2da7a198c28dd1a6e1136f19c830beab7fdca5b3e5c8bba8394f8a5c45b3", size = 8528667, upload-time = "2025-12-10T07:08:27.541Z" }, + { url = "https://files.pythonhosted.org/packages/a8/25/01c0af38fe969473fb292bba9dc2b8f9b451f3112ff242c647fee3d0dfe7/scikit_learn-1.8.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:6b595b07a03069a2b1740dc08c2299993850ea81cce4fe19b2421e0c970de6b7", size = 8066524, upload-time = "2025-12-10T07:08:29.822Z" }, + { url = "https://files.pythonhosted.org/packages/be/ce/a0623350aa0b68647333940ee46fe45086c6060ec604874e38e9ab7d8e6c/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:29ffc74089f3d5e87dfca4c2c8450f88bdc61b0fc6ed5d267f3988f19a1309f6", size = 8657133, upload-time = "2025-12-10T07:08:31.865Z" }, + { url = "https://files.pythonhosted.org/packages/b8/cb/861b41341d6f1245e6ca80b1c1a8c4dfce43255b03df034429089ca2a2c5/scikit_learn-1.8.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fb65db5d7531bccf3a4f6bec3462223bea71384e2cda41da0f10b7c292b9e7c4", size = 8923223, upload-time = "2025-12-10T07:08:34.166Z" }, + { url = "https://files.pythonhosted.org/packages/76/18/a8def8f91b18cd1ba6e05dbe02540168cb24d47e8dcf69e8d00b7da42a08/scikit_learn-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:56079a99c20d230e873ea40753102102734c5953366972a71d5cb39a32bc40c6", size = 8096518, upload-time = "2025-12-10T07:08:36.339Z" }, + { url = "https://files.pythonhosted.org/packages/d1/77/482076a678458307f0deb44e29891d6022617b2a64c840c725495bee343f/scikit_learn-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:3bad7565bc9cf37ce19a7c0d107742b320c1285df7aab1a6e2d28780df167242", size = 7754546, upload-time = "2025-12-10T07:08:38.128Z" }, + { url = "https://files.pythonhosted.org/packages/2d/d1/ef294ca754826daa043b2a104e59960abfab4cf653891037d19dd5b6f3cf/scikit_learn-1.8.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:4511be56637e46c25721e83d1a9cea9614e7badc7040c4d573d75fbe257d6fd7", size = 8848305, upload-time = "2025-12-10T07:08:41.013Z" }, + { url = "https://files.pythonhosted.org/packages/5b/e2/b1f8b05138ee813b8e1a4149f2f0d289547e60851fd1bb268886915adbda/scikit_learn-1.8.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:a69525355a641bf8ef136a7fa447672fb54fe8d60cab5538d9eb7c6438543fb9", size = 8432257, upload-time = "2025-12-10T07:08:42.873Z" }, + { url = "https://files.pythonhosted.org/packages/26/11/c32b2138a85dcb0c99f6afd13a70a951bfdff8a6ab42d8160522542fb647/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c2656924ec73e5939c76ac4c8b026fc203b83d8900362eb2599d8aee80e4880f", size = 8678673, upload-time = "2025-12-10T07:08:45.362Z" }, + { url = "https://files.pythonhosted.org/packages/c7/57/51f2384575bdec454f4fe4e7a919d696c9ebce914590abf3e52d47607ab8/scikit_learn-1.8.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:15fc3b5d19cc2be65404786857f2e13c70c83dd4782676dd6814e3b89dc8f5b9", size = 8922467, upload-time = "2025-12-10T07:08:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/35/4d/748c9e2872637a57981a04adc038dacaa16ba8ca887b23e34953f0b3f742/scikit_learn-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:00d6f1d66fbcf4eba6e356e1420d33cc06c70a45bb1363cd6f6a8e4ebbbdece2", size = 8774395, upload-time = "2025-12-10T07:08:49.337Z" }, + { url = "https://files.pythonhosted.org/packages/60/22/d7b2ebe4704a5e50790ba089d5c2ae308ab6bb852719e6c3bd4f04c3a363/scikit_learn-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:f28dd15c6bb0b66ba09728cf09fd8736c304be29409bd8445a080c1280619e8c", size = 8002647, upload-time = "2025-12-10T07:08:51.601Z" }, +] + +[[package]] +name = "scipy" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/56/3e/9cca699f3486ce6bc12ff46dc2031f1ec8eb9ccc9a320fdaf925f1417426/scipy-1.17.0.tar.gz", hash = "sha256:2591060c8e648d8b96439e111ac41fd8342fdeff1876be2e19dea3fe8930454e", size = 30396830, upload-time = "2026-01-10T21:34:23.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/4b/c89c131aa87cad2b77a54eb0fb94d633a842420fa7e919dc2f922037c3d8/scipy-1.17.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:2abd71643797bd8a106dff97894ff7869eeeb0af0f7a5ce02e4227c6a2e9d6fd", size = 31381316, upload-time = "2026-01-10T21:24:33.42Z" }, + { url = "https://files.pythonhosted.org/packages/5e/5f/a6b38f79a07d74989224d5f11b55267714707582908a5f1ae854cf9a9b84/scipy-1.17.0-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:ef28d815f4d2686503e5f4f00edc387ae58dfd7a2f42e348bb53359538f01558", size = 27966760, upload-time = "2026-01-10T21:24:38.911Z" }, + { url = "https://files.pythonhosted.org/packages/c1/20/095ad24e031ee8ed3c5975954d816b8e7e2abd731e04f8be573de8740885/scipy-1.17.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:272a9f16d6bb4667e8b50d25d71eddcc2158a214df1b566319298de0939d2ab7", size = 20138701, upload-time = "2026-01-10T21:24:43.249Z" }, + { url = "https://files.pythonhosted.org/packages/89/11/4aad2b3858d0337756f3323f8960755704e530b27eb2a94386c970c32cbe/scipy-1.17.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:7204fddcbec2fe6598f1c5fdf027e9f259106d05202a959a9f1aecf036adc9f6", size = 22480574, upload-time = "2026-01-10T21:24:47.266Z" }, + { url = "https://files.pythonhosted.org/packages/85/bd/f5af70c28c6da2227e510875cadf64879855193a687fb19951f0f44cfd6b/scipy-1.17.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fc02c37a5639ee67d8fb646ffded6d793c06c5622d36b35cfa8fe5ececb8f042", size = 32862414, upload-time = "2026-01-10T21:24:52.566Z" }, + { url = "https://files.pythonhosted.org/packages/ef/df/df1457c4df3826e908879fe3d76bc5b6e60aae45f4ee42539512438cfd5d/scipy-1.17.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:dac97a27520d66c12a34fd90a4fe65f43766c18c0d6e1c0a80f114d2260080e4", size = 35112380, upload-time = "2026-01-10T21:24:58.433Z" }, + { url = "https://files.pythonhosted.org/packages/5f/bb/88e2c16bd1dd4de19d80d7c5e238387182993c2fb13b4b8111e3927ad422/scipy-1.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ebb7446a39b3ae0fe8f416a9a3fdc6fba3f11c634f680f16a239c5187bc487c0", size = 34922676, upload-time = "2026-01-10T21:25:04.287Z" }, + { url = "https://files.pythonhosted.org/packages/02/ba/5120242cc735f71fc002cff0303d536af4405eb265f7c60742851e7ccfe9/scipy-1.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:474da16199f6af66601a01546144922ce402cb17362e07d82f5a6cf8f963e449", size = 37507599, upload-time = "2026-01-10T21:25:09.851Z" }, + { url = "https://files.pythonhosted.org/packages/52/c8/08629657ac6c0da198487ce8cd3de78e02cfde42b7f34117d56a3fe249dc/scipy-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:255c0da161bd7b32a6c898e7891509e8a9289f0b1c6c7d96142ee0d2b114c2ea", size = 36380284, upload-time = "2026-01-10T21:25:15.632Z" }, + { url = "https://files.pythonhosted.org/packages/6c/4a/465f96d42c6f33ad324a40049dfd63269891db9324aa66c4a1c108c6f994/scipy-1.17.0-cp311-cp311-win_arm64.whl", hash = "sha256:85b0ac3ad17fa3be50abd7e69d583d98792d7edc08367e01445a1e2076005379", size = 24370427, upload-time = "2026-01-10T21:25:20.514Z" }, + { url = "https://files.pythonhosted.org/packages/0b/11/7241a63e73ba5a516f1930ac8d5b44cbbfabd35ac73a2d08ca206df007c4/scipy-1.17.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:0d5018a57c24cb1dd828bcf51d7b10e65986d549f52ef5adb6b4d1ded3e32a57", size = 31364580, upload-time = "2026-01-10T21:25:25.717Z" }, + { url = "https://files.pythonhosted.org/packages/ed/1d/5057f812d4f6adc91a20a2d6f2ebcdb517fdbc87ae3acc5633c9b97c8ba5/scipy-1.17.0-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:88c22af9e5d5a4f9e027e26772cc7b5922fab8bcc839edb3ae33de404feebd9e", size = 27969012, upload-time = "2026-01-10T21:25:30.921Z" }, + { url = "https://files.pythonhosted.org/packages/e3/21/f6ec556c1e3b6ec4e088da667d9987bb77cc3ab3026511f427dc8451187d/scipy-1.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f3cd947f20fe17013d401b64e857c6b2da83cae567adbb75b9dcba865abc66d8", size = 20140691, upload-time = "2026-01-10T21:25:34.802Z" }, + { url = "https://files.pythonhosted.org/packages/7a/fe/5e5ad04784964ba964a96f16c8d4676aa1b51357199014dce58ab7ec5670/scipy-1.17.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e8c0b331c2c1f531eb51f1b4fc9ba709521a712cce58f1aa627bc007421a5306", size = 22463015, upload-time = "2026-01-10T21:25:39.277Z" }, + { url = "https://files.pythonhosted.org/packages/4a/69/7c347e857224fcaf32a34a05183b9d8a7aca25f8f2d10b8a698b8388561a/scipy-1.17.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5194c445d0a1c7a6c1a4a4681b6b7c71baad98ff66d96b949097e7513c9d6742", size = 32724197, upload-time = "2026-01-10T21:25:44.084Z" }, + { url = "https://files.pythonhosted.org/packages/d1/fe/66d73b76d378ba8cc2fe605920c0c75092e3a65ae746e1e767d9d020a75a/scipy-1.17.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9eeb9b5f5997f75507814ed9d298ab23f62cf79f5a3ef90031b1ee2506abdb5b", size = 35009148, upload-time = "2026-01-10T21:25:50.591Z" }, + { url = "https://files.pythonhosted.org/packages/af/07/07dec27d9dc41c18d8c43c69e9e413431d20c53a0339c388bcf72f353c4b/scipy-1.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:40052543f7bbe921df4408f46003d6f01c6af109b9e2c8a66dd1cf6cf57f7d5d", size = 34798766, upload-time = "2026-01-10T21:25:59.41Z" }, + { url = "https://files.pythonhosted.org/packages/81/61/0470810c8a093cdacd4ba7504b8a218fd49ca070d79eca23a615f5d9a0b0/scipy-1.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0cf46c8013fec9d3694dc572f0b54100c28405d55d3e2cb15e2895b25057996e", size = 37405953, upload-time = "2026-01-10T21:26:07.75Z" }, + { url = "https://files.pythonhosted.org/packages/92/ce/672ed546f96d5d41ae78c4b9b02006cedd0b3d6f2bf5bb76ea455c320c28/scipy-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:0937a0b0d8d593a198cededd4c439a0ea216a3f36653901ea1f3e4be949056f8", size = 36328121, upload-time = "2026-01-10T21:26:16.509Z" }, + { url = "https://files.pythonhosted.org/packages/9d/21/38165845392cae67b61843a52c6455d47d0cc2a40dd495c89f4362944654/scipy-1.17.0-cp312-cp312-win_arm64.whl", hash = "sha256:f603d8a5518c7426414d1d8f82e253e454471de682ce5e39c29adb0df1efb86b", size = 24314368, upload-time = "2026-01-10T21:26:23.087Z" }, + { url = "https://files.pythonhosted.org/packages/0c/51/3468fdfd49387ddefee1636f5cf6d03ce603b75205bf439bbf0e62069bfd/scipy-1.17.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:65ec32f3d32dfc48c72df4291345dae4f048749bc8d5203ee0a3f347f96c5ce6", size = 31344101, upload-time = "2026-01-10T21:26:30.25Z" }, + { url = "https://files.pythonhosted.org/packages/b2/9a/9406aec58268d437636069419e6977af953d1e246df941d42d3720b7277b/scipy-1.17.0-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:1f9586a58039d7229ce77b52f8472c972448cded5736eaf102d5658bbac4c269", size = 27950385, upload-time = "2026-01-10T21:26:36.801Z" }, + { url = "https://files.pythonhosted.org/packages/4f/98/e7342709e17afdfd1b26b56ae499ef4939b45a23a00e471dfb5375eea205/scipy-1.17.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:9fad7d3578c877d606b1150135c2639e9de9cecd3705caa37b66862977cc3e72", size = 20122115, upload-time = "2026-01-10T21:26:42.107Z" }, + { url = "https://files.pythonhosted.org/packages/fd/0e/9eeeb5357a64fd157cbe0302c213517c541cc16b8486d82de251f3c68ede/scipy-1.17.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:423ca1f6584fc03936972b5f7c06961670dbba9f234e71676a7c7ccf938a0d61", size = 22442402, upload-time = "2026-01-10T21:26:48.029Z" }, + { url = "https://files.pythonhosted.org/packages/c9/10/be13397a0e434f98e0c79552b2b584ae5bb1c8b2be95db421533bbca5369/scipy-1.17.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fe508b5690e9eaaa9467fc047f833af58f1152ae51a0d0aed67aa5801f4dd7d6", size = 32696338, upload-time = "2026-01-10T21:26:55.521Z" }, + { url = "https://files.pythonhosted.org/packages/63/1e/12fbf2a3bb240161651c94bb5cdd0eae5d4e8cc6eaeceb74ab07b12a753d/scipy-1.17.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6680f2dfd4f6182e7d6db161344537da644d1cf85cf293f015c60a17ecf08752", size = 34977201, upload-time = "2026-01-10T21:27:03.501Z" }, + { url = "https://files.pythonhosted.org/packages/19/5b/1a63923e23ccd20bd32156d7dd708af5bbde410daa993aa2500c847ab2d2/scipy-1.17.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:eec3842ec9ac9de5917899b277428886042a93db0b227ebbe3a333b64ec7643d", size = 34777384, upload-time = "2026-01-10T21:27:11.423Z" }, + { url = "https://files.pythonhosted.org/packages/39/22/b5da95d74edcf81e540e467202a988c50fef41bd2011f46e05f72ba07df6/scipy-1.17.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d7425fcafbc09a03731e1bc05581f5fad988e48c6a861f441b7ab729a49a55ea", size = 37379586, upload-time = "2026-01-10T21:27:20.171Z" }, + { url = "https://files.pythonhosted.org/packages/b9/b6/8ac583d6da79e7b9e520579f03007cb006f063642afd6b2eeb16b890bf93/scipy-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:87b411e42b425b84777718cc41516b8a7e0795abfa8e8e1d573bf0ef014f0812", size = 36287211, upload-time = "2026-01-10T21:28:43.122Z" }, + { url = "https://files.pythonhosted.org/packages/55/fb/7db19e0b3e52f882b420417644ec81dd57eeef1bd1705b6f689d8ff93541/scipy-1.17.0-cp313-cp313-win_arm64.whl", hash = "sha256:357ca001c6e37601066092e7c89cca2f1ce74e2a520ca78d063a6d2201101df2", size = 24312646, upload-time = "2026-01-10T21:28:49.893Z" }, + { url = "https://files.pythonhosted.org/packages/20/b6/7feaa252c21cc7aff335c6c55e1b90ab3e3306da3f048109b8b639b94648/scipy-1.17.0-cp313-cp313t-macosx_10_14_x86_64.whl", hash = "sha256:ec0827aa4d36cb79ff1b81de898e948a51ac0b9b1c43e4a372c0508c38c0f9a3", size = 31693194, upload-time = "2026-01-10T21:27:27.454Z" }, + { url = "https://files.pythonhosted.org/packages/76/bb/bbb392005abce039fb7e672cb78ac7d158700e826b0515cab6b5b60c26fb/scipy-1.17.0-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:819fc26862b4b3c73a60d486dbb919202f3d6d98c87cf20c223511429f2d1a97", size = 28365415, upload-time = "2026-01-10T21:27:34.26Z" }, + { url = "https://files.pythonhosted.org/packages/37/da/9d33196ecc99fba16a409c691ed464a3a283ac454a34a13a3a57c0d66f3a/scipy-1.17.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:363ad4ae2853d88ebcde3ae6ec46ccca903ea9835ee8ba543f12f575e7b07e4e", size = 20537232, upload-time = "2026-01-10T21:27:40.306Z" }, + { url = "https://files.pythonhosted.org/packages/56/9d/f4b184f6ddb28e9a5caea36a6f98e8ecd2a524f9127354087ce780885d83/scipy-1.17.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:979c3a0ff8e5ba254d45d59ebd38cde48fce4f10b5125c680c7a4bfe177aab07", size = 22791051, upload-time = "2026-01-10T21:27:46.539Z" }, + { url = "https://files.pythonhosted.org/packages/9b/9d/025cccdd738a72140efc582b1641d0dd4caf2e86c3fb127568dc80444e6e/scipy-1.17.0-cp313-cp313t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:130d12926ae34399d157de777472bf82e9061c60cc081372b3118edacafe1d00", size = 32815098, upload-time = "2026-01-10T21:27:54.389Z" }, + { url = "https://files.pythonhosted.org/packages/48/5f/09b879619f8bca15ce392bfc1894bd9c54377e01d1b3f2f3b595a1b4d945/scipy-1.17.0-cp313-cp313t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e886000eb4919eae3a44f035e63f0fd8b651234117e8f6f29bad1cd26e7bc45", size = 35031342, upload-time = "2026-01-10T21:28:03.012Z" }, + { url = "https://files.pythonhosted.org/packages/f2/9a/f0f0a9f0aa079d2f106555b984ff0fbb11a837df280f04f71f056ea9c6e4/scipy-1.17.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:13c4096ac6bc31d706018f06a49abe0485f96499deb82066b94d19b02f664209", size = 34893199, upload-time = "2026-01-10T21:28:10.832Z" }, + { url = "https://files.pythonhosted.org/packages/90/b8/4f0f5cf0c5ea4d7548424e6533e6b17d164f34a6e2fb2e43ffebb6697b06/scipy-1.17.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cacbaddd91fcffde703934897c5cd2c7cb0371fac195d383f4e1f1c5d3f3bd04", size = 37438061, upload-time = "2026-01-10T21:28:19.684Z" }, + { url = "https://files.pythonhosted.org/packages/f9/cc/2bd59140ed3b2fa2882fb15da0a9cb1b5a6443d67cfd0d98d4cec83a57ec/scipy-1.17.0-cp313-cp313t-win_amd64.whl", hash = "sha256:edce1a1cf66298cccdc48a1bdf8fb10a3bf58e8b58d6c3883dd1530e103f87c0", size = 36328593, upload-time = "2026-01-10T21:28:28.007Z" }, + { url = "https://files.pythonhosted.org/packages/13/1b/c87cc44a0d2c7aaf0f003aef2904c3d097b422a96c7e7c07f5efd9073c1b/scipy-1.17.0-cp313-cp313t-win_arm64.whl", hash = "sha256:30509da9dbec1c2ed8f168b8d8aa853bc6723fede1dbc23c7d43a56f5ab72a67", size = 24625083, upload-time = "2026-01-10T21:28:35.188Z" }, + { url = "https://files.pythonhosted.org/packages/1a/2d/51006cd369b8e7879e1c630999a19d1fbf6f8b5ed3e33374f29dc87e53b3/scipy-1.17.0-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:c17514d11b78be8f7e6331b983a65a7f5ca1fd037b95e27b280921fe5606286a", size = 31346803, upload-time = "2026-01-10T21:28:57.24Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2e/2349458c3ce445f53a6c93d4386b1c4c5c0c540917304c01222ff95ff317/scipy-1.17.0-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:4e00562e519c09da34c31685f6acc3aa384d4d50604db0f245c14e1b4488bfa2", size = 27967182, upload-time = "2026-01-10T21:29:04.107Z" }, + { url = "https://files.pythonhosted.org/packages/5e/7c/df525fbfa77b878d1cfe625249529514dc02f4fd5f45f0f6295676a76528/scipy-1.17.0-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:f7df7941d71314e60a481e02d5ebcb3f0185b8d799c70d03d8258f6c80f3d467", size = 20139125, upload-time = "2026-01-10T21:29:10.179Z" }, + { url = "https://files.pythonhosted.org/packages/33/11/fcf9d43a7ed1234d31765ec643b0515a85a30b58eddccc5d5a4d12b5f194/scipy-1.17.0-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:aabf057c632798832f071a8dde013c2e26284043934f53b00489f1773b33527e", size = 22443554, upload-time = "2026-01-10T21:29:15.888Z" }, + { url = "https://files.pythonhosted.org/packages/80/5c/ea5d239cda2dd3d31399424967a24d556cf409fbea7b5b21412b0fd0a44f/scipy-1.17.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a38c3337e00be6fd8a95b4ed66b5d988bac4ec888fd922c2ea9fe5fb1603dd67", size = 32757834, upload-time = "2026-01-10T21:29:23.406Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7e/8c917cc573310e5dc91cbeead76f1b600d3fb17cf0969db02c9cf92e3cfa/scipy-1.17.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00fb5f8ec8398ad90215008d8b6009c9db9fa924fd4c7d6be307c6f945f9cd73", size = 34995775, upload-time = "2026-01-10T21:29:31.915Z" }, + { url = "https://files.pythonhosted.org/packages/c5/43/176c0c3c07b3f7df324e7cdd933d3e2c4898ca202b090bd5ba122f9fe270/scipy-1.17.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:f2a4942b0f5f7c23c7cd641a0ca1955e2ae83dedcff537e3a0259096635e186b", size = 34841240, upload-time = "2026-01-10T21:29:39.995Z" }, + { url = "https://files.pythonhosted.org/packages/44/8c/d1f5f4b491160592e7f084d997de53a8e896a3ac01cd07e59f43ca222744/scipy-1.17.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf133ced83889583156566d2bdf7a07ff89228fe0c0cb727f777de92092ec6b", size = 37394463, upload-time = "2026-01-10T21:29:48.723Z" }, + { url = "https://files.pythonhosted.org/packages/9f/ec/42a6657f8d2d087e750e9a5dde0b481fd135657f09eaf1cf5688bb23c338/scipy-1.17.0-cp314-cp314-win_amd64.whl", hash = "sha256:3625c631a7acd7cfd929e4e31d2582cf00f42fcf06011f59281271746d77e061", size = 37053015, upload-time = "2026-01-10T21:30:51.418Z" }, + { url = "https://files.pythonhosted.org/packages/27/58/6b89a6afd132787d89a362d443a7bddd511b8f41336a1ae47f9e4f000dc4/scipy-1.17.0-cp314-cp314-win_arm64.whl", hash = "sha256:9244608d27eafe02b20558523ba57f15c689357c85bdcfe920b1828750aa26eb", size = 24951312, upload-time = "2026-01-10T21:30:56.771Z" }, + { url = "https://files.pythonhosted.org/packages/e9/01/f58916b9d9ae0112b86d7c3b10b9e685625ce6e8248df139d0fcb17f7397/scipy-1.17.0-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:2b531f57e09c946f56ad0b4a3b2abee778789097871fc541e267d2eca081cff1", size = 31706502, upload-time = "2026-01-10T21:29:56.326Z" }, + { url = "https://files.pythonhosted.org/packages/59/8e/2912a87f94a7d1f8b38aabc0faf74b82d3b6c9e22be991c49979f0eceed8/scipy-1.17.0-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:13e861634a2c480bd237deb69333ac79ea1941b94568d4b0efa5db5e263d4fd1", size = 28380854, upload-time = "2026-01-10T21:30:01.554Z" }, + { url = "https://files.pythonhosted.org/packages/bd/1c/874137a52dddab7d5d595c1887089a2125d27d0601fce8c0026a24a92a0b/scipy-1.17.0-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:eb2651271135154aa24f6481cbae5cc8af1f0dd46e6533fb7b56aa9727b6a232", size = 20552752, upload-time = "2026-01-10T21:30:05.93Z" }, + { url = "https://files.pythonhosted.org/packages/3f/f0/7518d171cb735f6400f4576cf70f756d5b419a07fe1867da34e2c2c9c11b/scipy-1.17.0-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:c5e8647f60679790c2f5c76be17e2e9247dc6b98ad0d3b065861e082c56e078d", size = 22803972, upload-time = "2026-01-10T21:30:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/7c/74/3498563a2c619e8a3ebb4d75457486c249b19b5b04a30600dfd9af06bea5/scipy-1.17.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5fb10d17e649e1446410895639f3385fd2bf4c3c7dfc9bea937bddcbc3d7b9ba", size = 32829770, upload-time = "2026-01-10T21:30:16.359Z" }, + { url = "https://files.pythonhosted.org/packages/48/d1/7b50cedd8c6c9d6f706b4b36fa8544d829c712a75e370f763b318e9638c1/scipy-1.17.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8547e7c57f932e7354a2319fab613981cde910631979f74c9b542bb167a8b9db", size = 35051093, upload-time = "2026-01-10T21:30:22.987Z" }, + { url = "https://files.pythonhosted.org/packages/e2/82/a2d684dfddb87ba1b3ea325df7c3293496ee9accb3a19abe9429bce94755/scipy-1.17.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:33af70d040e8af9d5e7a38b5ed3b772adddd281e3062ff23fec49e49681c38cf", size = 34909905, upload-time = "2026-01-10T21:30:28.704Z" }, + { url = "https://files.pythonhosted.org/packages/ef/5e/e565bd73991d42023eb82bb99e51c5b3d9e2c588ca9d4b3e2cc1d3ca62a6/scipy-1.17.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f9eb55bb97d00f8b7ab95cb64f873eb0bf54d9446264d9f3609130381233483f", size = 37457743, upload-time = "2026-01-10T21:30:34.819Z" }, + { url = "https://files.pythonhosted.org/packages/58/a8/a66a75c3d8f1fb2b83f66007d6455a06a6f6cf5618c3dc35bc9b69dd096e/scipy-1.17.0-cp314-cp314t-win_amd64.whl", hash = "sha256:1ff269abf702f6c7e67a4b7aad981d42871a11b9dd83c58d2d2ea624efbd1088", size = 37098574, upload-time = "2026-01-10T21:30:40.782Z" }, + { url = "https://files.pythonhosted.org/packages/56/a5/df8f46ef7da168f1bc52cd86e09a9de5c6f19cc1da04454d51b7d4f43408/scipy-1.17.0-cp314-cp314t-win_arm64.whl", hash = "sha256:031121914e295d9791319a1875444d55079885bbae5bdc9c5e0f2ee5f09d34ff", size = 25246266, upload-time = "2026-01-10T21:30:45.923Z" }, +] + +[[package]] +name = "silx" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "fabio" }, + { name = "h5py" }, + { name = "numpy" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/34/ee443851672fc1a8f27e0a7c212c567118fd1892d1cb798c6d5c405c6efe/silx-2.2.2.tar.gz", hash = "sha256:5d9ba367b5715cc4cb9011388f3d71200d7beb7676c910952fd1350a342c571f", size = 19102274, upload-time = "2025-04-08T11:44:59.716Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/71/9574dc9420258b1daaba18e6032b888a25768510394ed39c4047b39ae10d/silx-2.2.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0658063adb7652b7360f438ac62d7d42531114011e77e2ffa3740a99c91aac6", size = 6182793, upload-time = "2025-04-08T11:43:47.45Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4d/19c7e652bbdedbff3d0b47fb6cae21638359c57fe64e1b3e9cf4b4f36761/silx-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d21cb7ca1dd74b561592798a6b2e4583095f5a7e3d2a23478918c59d366b9beb", size = 13863034, upload-time = "2025-04-08T11:43:54.279Z" }, + { url = "https://files.pythonhosted.org/packages/b2/6f/1444c4b7a7402bcd7d7a849117aace61bff239ff85bded9e91b08fb929d0/silx-2.2.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41794f85a00b11cc571ef7f4cb4fbccbd2448f496ebac5fb1be5f6c7b44a8f85", size = 14320761, upload-time = "2025-04-08T11:43:57.45Z" }, + { url = "https://files.pythonhosted.org/packages/d3/fb/4c08c29a262f75e60911db0f039e7011f9a2daf1000659cbe5a950737434/silx-2.2.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:962efdfc3d22a7dbca7e5884cd6bfdbb24424e79891444a89cc1d0c5e0fdacb6", size = 13972613, upload-time = "2025-04-08T11:44:00.437Z" }, + { url = "https://files.pythonhosted.org/packages/47/9f/b47b7f9183db61ddb6d3d52b27a2d70ed9fee5715b6db4ca0d48d4d2db05/silx-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:9994b78600c7e04407bdbb0091a931067d6fa9b424ffb6001a3a6c29023d7c64", size = 4289910, upload-time = "2025-04-08T11:44:03.529Z" }, + { url = "https://files.pythonhosted.org/packages/ba/6b/c74371b63d6dfb52d0d63ef655365507b7ae7da3e146258dc0d66a58c1d8/silx-2.2.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:6568187b9e68f1f5ddbdcc4c36047decdd1339ca4b78a1216982424098d94459", size = 6200667, upload-time = "2025-04-08T11:44:05.334Z" }, + { url = "https://files.pythonhosted.org/packages/fa/cc/8099693ae0218c9b75bdfc146ef57fe110927d3424c2d25da3097b709c59/silx-2.2.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4bf84e40474804d095bbb7596d9a93625b90b6453b52298b679a2683fa58654e", size = 13674069, upload-time = "2025-04-08T11:44:07.341Z" }, + { url = "https://files.pythonhosted.org/packages/81/ba/1dd6d950015bbfbf279d22d382fde00593b76223beef720ac7e28d88b29c/silx-2.2.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:248dcf396089190fb4cb5a9adde77ea3ac62500e33bfabc8e15374ce9e2e881b", size = 14097036, upload-time = "2025-04-08T11:44:10.841Z" }, + { url = "https://files.pythonhosted.org/packages/fa/a2/8ca963a9a00ff84a6835123573e014d2742d6dee0303310340877d0da445/silx-2.2.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:005bf5d407445b779b56550fad8a05e646010bf78d5c57cf33a7e43264b43a7c", size = 13822086, upload-time = "2025-04-08T11:44:15.021Z" }, + { url = "https://files.pythonhosted.org/packages/55/e9/09f4b8c08c151295848f2a5a400295219f932002c9237d638cb4d785f1bd/silx-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:8923f3681c538806b894391295632acf984a5d5e3ab72443a8f8668686e84f02", size = 4278379, upload-time = "2025-04-08T11:44:17.895Z" }, + { url = "https://files.pythonhosted.org/packages/70/18/0ca21fb486a18eed2e7d4d889ca79386c6b400e599fcdb68110140247b61/silx-2.2.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:5a99cd66fef51ca6db45fc05663c1896d7266c6a0cc6a94923a0ebc9a470e6f9", size = 6161652, upload-time = "2025-04-08T11:44:19.729Z" }, + { url = "https://files.pythonhosted.org/packages/79/8f/bffbaa5743069a41b89129c823b905116ecf31edebe64fa30c6d435dbc69/silx-2.2.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f8ea7fa7b79464d3f9b8d0cdf2a5b2272fe323be48faa01e606c5d18b4c4725b", size = 13617350, upload-time = "2025-04-08T11:44:22.009Z" }, + { url = "https://files.pythonhosted.org/packages/20/f0/f872e812e61d1deba97b1d9fc2cf3c8b10f9d0c3560986bcb465b51953f3/silx-2.2.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2655c01d3b53bf5cd3aaf3a7265530956d77412b1c8eb2bd58205197cc18bc7f", size = 14017340, upload-time = "2025-04-08T11:44:25.602Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/00299b27ecc5b539a7d4d2a1f63434e824ae2627c0c4881d3651f58e3133/silx-2.2.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b08d3972a88d4f3167cbe00ff5ef9599086534ab650e8df7439f22e24dcee370", size = 13803813, upload-time = "2025-04-08T11:44:28.11Z" }, + { url = "https://files.pythonhosted.org/packages/a9/13/772c94f553a1b8476037909cac4d69be0eb70a8a9efd66488d866673dc05/silx-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:eee31cec33d4cf496044231cbf86b8aa0f5b1bd7536db4a69d54e7762b591a75", size = 4274649, upload-time = "2025-04-08T11:44:30.596Z" }, + { url = "https://files.pythonhosted.org/packages/f6/e4/04360d089942253abb8cdd20ac1288873a4ad80404bf2ffb479e70914163/silx-2.2.2-cp314-cp314-win_amd64.whl", hash = "sha256:8703dbbb048ef0993be311a02c747f980171bc57cc26c04c6249f09a5d519092", size = 4190966, upload-time = "2025-10-31T08:18:21.821Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "spglib" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/06/7964acb4c444191376bd87f91579475fbe7623ca943cce40cee8fb7f2c36/spglib-2.7.0.tar.gz", hash = "sha256:c40907a42c9dc45572f46740bf95412f84fb0eda30267e31665d104a4bde6627", size = 2366134, upload-time = "2025-12-29T09:48:26.42Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/a8/d841ae7743c58227af277f7f16aa844376fa11c426090d6ae35e7e93af76/spglib-2.7.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3cf0ff80c01d8631ef4b9f1b78da79ff2044834e6e2d870f7f20c8579c921136", size = 910793, upload-time = "2025-12-29T09:47:32.063Z" }, + { url = "https://files.pythonhosted.org/packages/e8/02/11baf94cf682cdaafa046b72d4b2adcf944e19e2b2741454e329dedb2fc2/spglib-2.7.0-cp311-cp311-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a7b29d2cfca6ac53e927686ca0b91257126e47f6abfa26451723a5cd40070352", size = 944977, upload-time = "2025-12-29T09:47:33.638Z" }, + { url = "https://files.pythonhosted.org/packages/ce/fa/6d1bc8f8cb08945ca8c37c95b42bf336b6b9a8a737eced1ce64f0cebe9ce/spglib-2.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f892ecce2dd1bc636b14a4e5bc13aabb73b008bd37a4d23636882c8971c432a0", size = 960531, upload-time = "2025-12-29T09:47:36.932Z" }, + { url = "https://files.pythonhosted.org/packages/b0/79/2fd5e33b431cd0afcdd441bd10704c11cdf74c09b721249297284e5bf0b2/spglib-2.7.0-cp311-cp311-win_amd64.whl", hash = "sha256:468879702577124dcde0607a75396576e256f1cfa2d8fe48da4a928fbb27abc6", size = 669827, upload-time = "2025-12-29T09:47:38.47Z" }, + { url = "https://files.pythonhosted.org/packages/f7/e9/4e07c9c1bda40df54e09bd686eae0dc13d46e76a5ef4d43582971a86eb32/spglib-2.7.0-cp311-cp311-win_arm64.whl", hash = "sha256:ceb6730a2324d0c83579c803f3782e28bd41e79bbfe0c3dfdbf30e3d3a6320e5", size = 649076, upload-time = "2025-12-29T09:47:40.367Z" }, + { url = "https://files.pythonhosted.org/packages/68/0e/36720beeca8452530e50ab8a16b91e8721e34c0f97fd25e9c4ddd8b9324b/spglib-2.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ef70132e23dfcc7ab6813742e0edab3f9906e61cd11c857f014bd5610a8bc88c", size = 911009, upload-time = "2025-12-29T09:47:42.238Z" }, + { url = "https://files.pythonhosted.org/packages/47/a0/24df91cbde6a3237d54cfb21602cc8ebb4102cd4e3ec9497c66135c2b190/spglib-2.7.0-cp312-cp312-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:59f134e74f7f488de4bf5579ee6a35af25cb2c478c138de664fea1e14f3efbaf", size = 946821, upload-time = "2025-12-29T09:47:44.548Z" }, + { url = "https://files.pythonhosted.org/packages/67/4c/75ac6f7ade28019b216c7333322f2886e1c0105202cd74506f530664bf26/spglib-2.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6913906fd9108e7bb2ce06a810513a95a82d801530f10230979bf3427bb7e771", size = 962531, upload-time = "2025-12-29T09:47:46.3Z" }, + { url = "https://files.pythonhosted.org/packages/a7/5f/4e283139af178bb445eedff281a90e66ceff1b814ace70a9d90a2197acc3/spglib-2.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:d5729ff0040baae764c17249302cd99f0eb4e73449612a8c69d3e60a215f062e", size = 671111, upload-time = "2025-12-29T09:47:48.14Z" }, + { url = "https://files.pythonhosted.org/packages/a5/b9/20e52d46e33bf69ceba4fc86602f006c06ce4ab10e3c930f4722fb270b02/spglib-2.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:54f4b6e789475384c62e759c618172707f261c0eae8017949fe4994b6b8cc779", size = 646679, upload-time = "2025-12-29T09:47:49.376Z" }, + { url = "https://files.pythonhosted.org/packages/2c/1c/a0fe8c0523a0e7d608f49f09895e5c599329265c9bfacd269a21458b7564/spglib-2.7.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:ab061ea6a3c3c25a1d0018b09c333c0458792036d3f45d892bd52793ed1f1bda", size = 911085, upload-time = "2025-12-29T09:47:51.606Z" }, + { url = "https://files.pythonhosted.org/packages/2a/34/cb3c522c4aaf6ce319b37bbec71d373b9e2cf0bcfe7d42c365cd6c113b4b/spglib-2.7.0-cp313-cp313-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:be28673e90f7a6c7770f73c57e529d2bdbb373d06d26ee5e90991b548e9238aa", size = 946857, upload-time = "2025-12-29T09:47:53.059Z" }, + { url = "https://files.pythonhosted.org/packages/9e/64/3b1213f2f655ff143ed142292b47ec3f1f9bda8641e659a7e33c4cf0e8a9/spglib-2.7.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f627a4ed6f2396ed6e3e8eaf33a53ad143c8ffb8756a84a640f4569ac5ffa2a7", size = 962470, upload-time = "2025-12-29T09:47:54.878Z" }, + { url = "https://files.pythonhosted.org/packages/5c/3a/c51883ce739a00f9f60196f3dcb4ed91b690299a4ec64defd8ec5b2c5899/spglib-2.7.0-cp313-cp313-win_amd64.whl", hash = "sha256:c76411bc1b96cd87c8733994747c7692512b583bb4ef89a65463ff4255221c11", size = 671073, upload-time = "2025-12-29T09:47:56.887Z" }, + { url = "https://files.pythonhosted.org/packages/35/78/3f9ec6ae93a48527dce0eceb6eeab74e6ad1fb2977adb5cbdfc03d43193c/spglib-2.7.0-cp313-cp313-win_arm64.whl", hash = "sha256:0d8ecf030d13d67c4cc272423e5652b74eda57f86a0b118e007f6d12974cc256", size = 646711, upload-time = "2025-12-29T09:47:58.697Z" }, + { url = "https://files.pythonhosted.org/packages/1b/47/86e3c15c3e1c252bde40a794eea4742c142f23fc5f9c3d7551f083c1fa20/spglib-2.7.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:95e3dd7ef992ff8a88f6ef2e5909aaa60ecb479004cc1f73c1e6285d54227960", size = 911712, upload-time = "2025-12-29T09:48:01.14Z" }, + { url = "https://files.pythonhosted.org/packages/05/61/ab2447bb47fa69934adc2fc2d13f771dedd3b2fd3171c95307446c948f01/spglib-2.7.0-cp314-cp314-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97e0fcea2db3915bd973fdd2cc0a757b1f99bda71ce815da333d75ad1ffc3eb1", size = 947528, upload-time = "2025-12-29T09:48:03.258Z" }, + { url = "https://files.pythonhosted.org/packages/9d/69/898d9e005131b0b1c7e5dce2b79f36aeb20ec4d3a88cca596b522a0fa4df/spglib-2.7.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39b978c08ef2ebc0eaba833c488fc4c0f9b1fc0f50d4a8584f176741eea69376", size = 962474, upload-time = "2025-12-29T09:48:05.617Z" }, + { url = "https://files.pythonhosted.org/packages/c8/56/7b25ee5348722dc93ca245ed950f1a89f8a944906140629055f394c072a4/spglib-2.7.0-cp314-cp314-win_amd64.whl", hash = "sha256:5f334b4b66c8aafd583fafab5b15a56e27efdd2dc6cb1064dfcd0fe59ae130f4", size = 679679, upload-time = "2025-12-29T09:48:15.393Z" }, + { url = "https://files.pythonhosted.org/packages/20/37/eda9a34f25b13e47298fa1b94cc4dfd8b0fcfc46c7d63ea046aa1bf91fe7/spglib-2.7.0-cp314-cp314-win_arm64.whl", hash = "sha256:b032842fc223de46d2ef7d220459e1a61ed90329ac2e72818c605f1fc87451b8", size = 656403, upload-time = "2025-12-29T09:48:17.027Z" }, + { url = "https://files.pythonhosted.org/packages/39/af/1c8d0f98d07969b7fa7323d522732124d88caf4ee3b680ef59120bd7b229/spglib-2.7.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:b7e29c796cfdadcc3857aef330acc19b9bc50c83e9911fb23b28390e7c80bae5", size = 920791, upload-time = "2025-12-29T09:48:07.085Z" }, + { url = "https://files.pythonhosted.org/packages/b5/c6/89a3f31f831efc4108a19f110873559990b72186745cd3e151de28b256cc/spglib-2.7.0-cp314-cp314t-manylinux_2_26_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9b6ca88bb6e604bc8f63efe87b3b2470c2e25f56988b775bd332cefa8866f5c5", size = 946881, upload-time = "2025-12-29T09:48:09.154Z" }, + { url = "https://files.pythonhosted.org/packages/7e/e9/1ca63db2cebd381bd6b27ae309f25d270e70928359a6f0360db09b77894e/spglib-2.7.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:50629939a9cd6fa3df5a12f6f025ceb3c78534284f875371574c360e4ccaf5e1", size = 963803, upload-time = "2025-12-29T09:48:12.478Z" }, + { url = "https://files.pythonhosted.org/packages/28/97/459b37c3802633f77c883883c75f5d4429b601ae8d930410b999c4e1dafb/spglib-2.7.0-cp314-cp314t-win_amd64.whl", hash = "sha256:cb77daaf9dd5d48d523a888f37cebd47fa63ff28dfcf1aac2b031b914f9ed55a", size = 696536, upload-time = "2025-12-29T09:48:13.885Z" }, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.46" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/aa/9ce0f3e7a9829ead5c8ce549392f33a12c4555a6c0609bb27d882e9c7ddf/sqlalchemy-2.0.46.tar.gz", hash = "sha256:cf36851ee7219c170bb0793dbc3da3e80c582e04a5437bc601bfe8c85c9216d7", size = 9865393, upload-time = "2026-01-21T18:03:45.119Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/69/ac/b42ad16800d0885105b59380ad69aad0cce5a65276e269ce2729a2343b6a/sqlalchemy-2.0.46-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:261c4b1f101b4a411154f1da2b76497d73abbfc42740029205d4d01fa1052684", size = 2154851, upload-time = "2026-01-21T18:27:30.54Z" }, + { url = "https://files.pythonhosted.org/packages/a0/60/d8710068cb79f64d002ebed62a7263c00c8fd95f4ebd4b5be8f7ca93f2bc/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181903fe8c1b9082995325f1b2e84ac078b1189e2819380c2303a5f90e114a62", size = 3311241, upload-time = "2026-01-21T18:32:33.45Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/20c71487c7219ab3aa7421c7c62d93824c97c1460f2e8bb72404b0192d13/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:590be24e20e2424a4c3c1b0835e9405fa3d0af5823a1a9fc02e5dff56471515f", size = 3310741, upload-time = "2026-01-21T18:44:57.887Z" }, + { url = "https://files.pythonhosted.org/packages/65/80/d26d00b3b249ae000eee4db206fcfc564bf6ca5030e4747adf451f4b5108/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7568fe771f974abadce52669ef3a03150ff03186d8eb82613bc8adc435a03f01", size = 3263116, upload-time = "2026-01-21T18:32:35.044Z" }, + { url = "https://files.pythonhosted.org/packages/da/ee/74dda7506640923821340541e8e45bd3edd8df78664f1f2e0aae8077192b/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf7e1e78af38047e08836d33502c7a278915698b7c2145d045f780201679999", size = 3285327, upload-time = "2026-01-21T18:44:59.254Z" }, + { url = "https://files.pythonhosted.org/packages/9f/25/6dcf8abafff1389a21c7185364de145107b7394ecdcb05233815b236330d/sqlalchemy-2.0.46-cp311-cp311-win32.whl", hash = "sha256:9d80ea2ac519c364a7286e8d765d6cd08648f5b21ca855a8017d9871f075542d", size = 2114564, upload-time = "2026-01-21T18:33:15.85Z" }, + { url = "https://files.pythonhosted.org/packages/93/5f/e081490f8523adc0088f777e4ebad3cac21e498ec8a3d4067074e21447a1/sqlalchemy-2.0.46-cp311-cp311-win_amd64.whl", hash = "sha256:585af6afe518732d9ccd3aea33af2edaae4a7aa881af5d8f6f4fe3a368699597", size = 2139233, upload-time = "2026-01-21T18:33:17.528Z" }, + { url = "https://files.pythonhosted.org/packages/b6/35/d16bfa235c8b7caba3730bba43e20b1e376d2224f407c178fbf59559f23e/sqlalchemy-2.0.46-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a9a72b0da8387f15d5810f1facca8f879de9b85af8c645138cba61ea147968c", size = 2153405, upload-time = "2026-01-21T19:05:54.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/6c/3192e24486749862f495ddc6584ed730c0c994a67550ec395d872a2ad650/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2347c3f0efc4de367ba00218e0ae5c4ba2306e47216ef80d6e31761ac97cb0b9", size = 3334702, upload-time = "2026-01-21T18:46:45.384Z" }, + { url = "https://files.pythonhosted.org/packages/ea/a2/b9f33c8d68a3747d972a0bb758c6b63691f8fb8a49014bc3379ba15d4274/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9094c8b3197db12aa6f05c51c05daaad0a92b8c9af5388569847b03b1007fb1b", size = 3347664, upload-time = "2026-01-21T18:40:09.979Z" }, + { url = "https://files.pythonhosted.org/packages/aa/d2/3e59e2a91eaec9db7e8dc6b37b91489b5caeb054f670f32c95bcba98940f/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37fee2164cf21417478b6a906adc1a91d69ae9aba8f9533e67ce882f4bb1de53", size = 3277372, upload-time = "2026-01-21T18:46:47.168Z" }, + { url = "https://files.pythonhosted.org/packages/dd/dd/67bc2e368b524e2192c3927b423798deda72c003e73a1e94c21e74b20a85/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1e14b2f6965a685c7128bd315e27387205429c2e339eeec55cb75ca4ab0ea2e", size = 3312425, upload-time = "2026-01-21T18:40:11.548Z" }, + { url = "https://files.pythonhosted.org/packages/43/82/0ecd68e172bfe62247e96cb47867c2d68752566811a4e8c9d8f6e7c38a65/sqlalchemy-2.0.46-cp312-cp312-win32.whl", hash = "sha256:412f26bb4ba942d52016edc8d12fb15d91d3cd46b0047ba46e424213ad407bcb", size = 2113155, upload-time = "2026-01-21T18:42:49.748Z" }, + { url = "https://files.pythonhosted.org/packages/bc/2a/2821a45742073fc0331dc132552b30de68ba9563230853437cac54b2b53e/sqlalchemy-2.0.46-cp312-cp312-win_amd64.whl", hash = "sha256:ea3cd46b6713a10216323cda3333514944e510aa691c945334713fca6b5279ff", size = 2140078, upload-time = "2026-01-21T18:42:51.197Z" }, + { url = "https://files.pythonhosted.org/packages/b3/4b/fa7838fe20bb752810feed60e45625a9a8b0102c0c09971e2d1d95362992/sqlalchemy-2.0.46-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a12da97cca70cea10d4b4fc602589c4511f96c1f8f6c11817620c021d21d00", size = 2150268, upload-time = "2026-01-21T19:05:56.621Z" }, + { url = "https://files.pythonhosted.org/packages/46/c1/b34dccd712e8ea846edf396e00973dda82d598cb93762e55e43e6835eba9/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af865c18752d416798dae13f83f38927c52f085c52e2f32b8ab0fef46fdd02c2", size = 3276511, upload-time = "2026-01-21T18:46:49.022Z" }, + { url = "https://files.pythonhosted.org/packages/96/48/a04d9c94753e5d5d096c628c82a98c4793b9c08ca0e7155c3eb7d7db9f24/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d679b5f318423eacb61f933a9a0f75535bfca7056daeadbf6bd5bcee6183aee", size = 3292881, upload-time = "2026-01-21T18:40:13.089Z" }, + { url = "https://files.pythonhosted.org/packages/be/f4/06eda6e91476f90a7d8058f74311cb65a2fb68d988171aced81707189131/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64901e08c33462acc9ec3bad27fc7a5c2b6491665f2aa57564e57a4f5d7c52ad", size = 3224559, upload-time = "2026-01-21T18:46:50.974Z" }, + { url = "https://files.pythonhosted.org/packages/ab/a2/d2af04095412ca6345ac22b33b89fe8d6f32a481e613ffcb2377d931d8d0/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8ac45e8f4eaac0f9f8043ea0e224158855c6a4329fd4ee37c45c61e3beb518e", size = 3262728, upload-time = "2026-01-21T18:40:14.883Z" }, + { url = "https://files.pythonhosted.org/packages/31/48/1980c7caa5978a3b8225b4d230e69a2a6538a3562b8b31cea679b6933c83/sqlalchemy-2.0.46-cp313-cp313-win32.whl", hash = "sha256:8d3b44b3d0ab2f1319d71d9863d76eeb46766f8cf9e921ac293511804d39813f", size = 2111295, upload-time = "2026-01-21T18:42:52.366Z" }, + { url = "https://files.pythonhosted.org/packages/2d/54/f8d65bbde3d877617c4720f3c9f60e99bb7266df0d5d78b6e25e7c149f35/sqlalchemy-2.0.46-cp313-cp313-win_amd64.whl", hash = "sha256:77f8071d8fbcbb2dd11b7fd40dedd04e8ebe2eb80497916efedba844298065ef", size = 2137076, upload-time = "2026-01-21T18:42:53.924Z" }, + { url = "https://files.pythonhosted.org/packages/56/ba/9be4f97c7eb2b9d5544f2624adfc2853e796ed51d2bb8aec90bc94b7137e/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1e8cc6cc01da346dc92d9509a63033b9b1bda4fed7a7a7807ed385c7dccdc10", size = 3556533, upload-time = "2026-01-21T18:33:06.636Z" }, + { url = "https://files.pythonhosted.org/packages/20/a6/b1fc6634564dbb4415b7ed6419cdfeaadefd2c39cdab1e3aa07a5f2474c2/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96c7cca1a4babaaf3bfff3e4e606e38578856917e52f0384635a95b226c87764", size = 3523208, upload-time = "2026-01-21T18:45:08.436Z" }, + { url = "https://files.pythonhosted.org/packages/a1/d8/41e0bdfc0f930ff236f86fccd12962d8fa03713f17ed57332d38af6a3782/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b2a9f9aee38039cf4755891a1e50e1effcc42ea6ba053743f452c372c3152b1b", size = 3464292, upload-time = "2026-01-21T18:33:08.208Z" }, + { url = "https://files.pythonhosted.org/packages/f0/8b/9dcbec62d95bea85f5ecad9b8d65b78cc30fb0ffceeb3597961f3712549b/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:db23b1bf8cfe1f7fda19018e7207b20cdb5168f83c437ff7e95d19e39289c447", size = 3473497, upload-time = "2026-01-21T18:45:10.552Z" }, + { url = "https://files.pythonhosted.org/packages/e9/f8/5ecdfc73383ec496de038ed1614de9e740a82db9ad67e6e4514ebc0708a3/sqlalchemy-2.0.46-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:56bdd261bfd0895452006d5316cbf35739c53b9bb71a170a331fa0ea560b2ada", size = 2152079, upload-time = "2026-01-21T19:05:58.477Z" }, + { url = "https://files.pythonhosted.org/packages/e5/bf/eba3036be7663ce4d9c050bc3d63794dc29fbe01691f2bf5ccb64e048d20/sqlalchemy-2.0.46-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33e462154edb9493f6c3ad2125931e273bbd0be8ae53f3ecd1c161ea9a1dd366", size = 3272216, upload-time = "2026-01-21T18:46:52.634Z" }, + { url = "https://files.pythonhosted.org/packages/05/45/1256fb597bb83b58a01ddb600c59fe6fdf0e5afe333f0456ed75c0f8d7bd/sqlalchemy-2.0.46-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bcdce05f056622a632f1d44bb47dbdb677f58cad393612280406ce37530eb6d", size = 3277208, upload-time = "2026-01-21T18:40:16.38Z" }, + { url = "https://files.pythonhosted.org/packages/d9/a0/2053b39e4e63b5d7ceb3372cface0859a067c1ddbd575ea7e9985716f771/sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e84b09a9b0f19accedcbeff5c2caf36e0dd537341a33aad8d680336152dc34e", size = 3221994, upload-time = "2026-01-21T18:46:54.622Z" }, + { url = "https://files.pythonhosted.org/packages/1e/87/97713497d9502553c68f105a1cb62786ba1ee91dea3852ae4067ed956a50/sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4f52f7291a92381e9b4de9050b0a65ce5d6a763333406861e33906b8aa4906bf", size = 3243990, upload-time = "2026-01-21T18:40:18.253Z" }, + { url = "https://files.pythonhosted.org/packages/a8/87/5d1b23548f420ff823c236f8bea36b1a997250fd2f892e44a3838ca424f4/sqlalchemy-2.0.46-cp314-cp314-win32.whl", hash = "sha256:70ed2830b169a9960193f4d4322d22be5c0925357d82cbf485b3369893350908", size = 2114215, upload-time = "2026-01-21T18:42:55.232Z" }, + { url = "https://files.pythonhosted.org/packages/3a/20/555f39cbcf0c10cf452988b6a93c2a12495035f68b3dbd1a408531049d31/sqlalchemy-2.0.46-cp314-cp314-win_amd64.whl", hash = "sha256:3c32e993bc57be6d177f7d5d31edb93f30726d798ad86ff9066d75d9bf2e0b6b", size = 2139867, upload-time = "2026-01-21T18:42:56.474Z" }, + { url = "https://files.pythonhosted.org/packages/3e/f0/f96c8057c982d9d8a7a68f45d69c674bc6f78cad401099692fe16521640a/sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4dafb537740eef640c4d6a7c254611dca2df87eaf6d14d6a5fca9d1f4c3fc0fa", size = 3561202, upload-time = "2026-01-21T18:33:10.337Z" }, + { url = "https://files.pythonhosted.org/packages/d7/53/3b37dda0a5b137f21ef608d8dfc77b08477bab0fe2ac9d3e0a66eaeab6fc/sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42a1643dc5427b69aca967dae540a90b0fbf57eaf248f13a90ea5930e0966863", size = 3526296, upload-time = "2026-01-21T18:45:12.657Z" }, + { url = "https://files.pythonhosted.org/packages/33/75/f28622ba6dde79cd545055ea7bd4062dc934e0621f7b3be2891f8563f8de/sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ff33c6e6ad006bbc0f34f5faf941cfc62c45841c64c0a058ac38c799f15b5ede", size = 3470008, upload-time = "2026-01-21T18:33:11.725Z" }, + { url = "https://files.pythonhosted.org/packages/a9/42/4afecbbc38d5e99b18acef446453c76eec6fbd03db0a457a12a056836e22/sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:82ec52100ec1e6ec671563bbd02d7c7c8d0b9e71a0723c72f22ecf52d1755330", size = 3476137, upload-time = "2026-01-21T18:45:15.001Z" }, + { url = "https://files.pythonhosted.org/packages/fc/a1/9c4efa03300926601c19c18582531b45aededfb961ab3c3585f1e24f120b/sqlalchemy-2.0.46-py3-none-any.whl", hash = "sha256:f9c11766e7e7c0a2767dda5acb006a118640c9fc0a4104214b96269bfb78399e", size = 1937882, upload-time = "2026-01-21T18:22:10.456Z" }, +] + +[[package]] +name = "sqlalchemy-utils" +version = "0.42.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0f/7d/eb9565b6a49426552a5bf5c57e7c239c506dc0e4e5315aec6d1e8241dc7c/sqlalchemy_utils-0.42.1.tar.gz", hash = "sha256:881f9cd9e5044dc8f827bccb0425ce2e55490ce44fc0bb848c55cc8ee44cc02e", size = 130789, upload-time = "2025-12-13T03:14:13.591Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/25/7400c18c3ee97914cc99c90007795c00a4ec5b60c853b49db7ba24d11179/sqlalchemy_utils-0.42.1-py3-none-any.whl", hash = "sha256:243cfe1b3a1dae3c74118ae633f1d1e0ed8c787387bc33e556e37c990594ac80", size = 91761, upload-time = "2025-12-13T03:14:15.014Z" }, +] + +[[package]] +name = "sympy" +version = "1.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mpmath" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/83/d3/803453b36afefb7c2bb238361cd4ae6125a569b4db67cd9e79846ba2d68c/sympy-1.14.0.tar.gz", hash = "sha256:d3d3fe8df1e5a0b42f0e7bdf50541697dbe7d23746e894990c030e2b05e72517", size = 7793921, upload-time = "2025-04-27T18:05:01.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/09/77d55d46fd61b4a135c444fc97158ef34a095e5681d0a6c10b75bf356191/sympy-1.14.0-py3-none-any.whl", hash = "sha256:e091cc3e99d2141a0ba2847328f5479b05d94a6635cb96148ccb3f34671bd8f5", size = 6299353, upload-time = "2025-04-27T18:04:59.103Z" }, +] + +[[package]] +name = "tabulate" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090, upload-time = "2022-10-06T17:21:48.54Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252, upload-time = "2022-10-06T17:21:44.262Z" }, +] + +[[package]] +name = "termcolor" +version = "3.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/46/79/cf31d7a93a8fdc6aa0fbb665be84426a8c5a557d9240b6239e9e11e35fc5/termcolor-3.3.0.tar.gz", hash = "sha256:348871ca648ec6a9a983a13ab626c0acce02f515b9e1983332b17af7979521c5", size = 14434, upload-time = "2025-12-29T12:55:21.882Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/d1/8bb87d21e9aeb323cc03034f5eaf2c8f69841e40e4853c2627edf8111ed3/termcolor-3.3.0-py3-none-any.whl", hash = "sha256:cf642efadaf0a8ebbbf4bc7a31cec2f9b5f21a9f726f4ccbb08192c9c26f43a5", size = 7734, upload-time = "2025-12-29T12:55:20.718Z" }, +] + +[[package]] +name = "threadpoolctl" +version = "3.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b7/4d/08c89e34946fce2aec4fbb45c9016efd5f4d7f24af8e5d93296e935631d8/threadpoolctl-3.6.0.tar.gz", hash = "sha256:8ab8b4aa3491d812b623328249fab5302a68d2d71745c8a4c719a2fcaba9f44e", size = 21274, upload-time = "2025-03-13T13:49:23.031Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/d5/f9a850d79b0851d1d4ef6456097579a9005b31fea68726a4ae5f2d82ddd9/threadpoolctl-3.6.0-py3-none-any.whl", hash = "sha256:43a0b8fd5a2928500110039e43a5eed8480b918967083ea48dc3ab9f13c4a7fb", size = 18638, upload-time = "2025-03-13T13:49:21.846Z" }, +] + +[[package]] +name = "tifffile" +version = "2026.1.28" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/94/32/38498d2a1a5d70f33f6c3909bbad48557c9a54b0e33a9307ff06b6d416ba/tifffile-2026.1.28.tar.gz", hash = "sha256:537ae6466a8bb555c336108bb1878d8319d52c9c738041d3349454dea6956e1c", size = 374675, upload-time = "2026-01-29T05:17:24.992Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/19/529b28ca338c5a88315e71e672badc85eef89460c248c4164f6ce058f8c7/tifffile-2026.1.28-py3-none-any.whl", hash = "sha256:45b08a19cf603dd99952eff54a61519626a1912e4e2a4d355f05938fe4a6e9fd", size = 233011, upload-time = "2026-01-29T05:17:23.078Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/30/31573e9457673ab10aa432461bee537ce6cef177667deca369efb79df071/tomli-2.4.0.tar.gz", hash = "sha256:aa89c3f6c277dd275d8e243ad24f3b5e701491a860d5121f2cdd399fbb31fc9c", size = 17477, upload-time = "2026-01-11T11:22:38.165Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3c/d9/3dc2289e1f3b32eb19b9785b6a006b28ee99acb37d1d47f78d4c10e28bf8/tomli-2.4.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b5ef256a3fd497d4973c11bf142e9ed78b150d36f5773f1ca6088c230ffc5867", size = 153663, upload-time = "2026-01-11T11:21:45.27Z" }, + { url = "https://files.pythonhosted.org/packages/51/32/ef9f6845e6b9ca392cd3f64f9ec185cc6f09f0a2df3db08cbe8809d1d435/tomli-2.4.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5572e41282d5268eb09a697c89a7bee84fae66511f87533a6f88bd2f7b652da9", size = 148469, upload-time = "2026-01-11T11:21:46.873Z" }, + { url = "https://files.pythonhosted.org/packages/d6/c2/506e44cce89a8b1b1e047d64bd495c22c9f71f21e05f380f1a950dd9c217/tomli-2.4.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:551e321c6ba03b55676970b47cb1b73f14a0a4dce6a3e1a9458fd6d921d72e95", size = 236039, upload-time = "2026-01-11T11:21:48.503Z" }, + { url = "https://files.pythonhosted.org/packages/b3/40/e1b65986dbc861b7e986e8ec394598187fa8aee85b1650b01dd925ca0be8/tomli-2.4.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5e3f639a7a8f10069d0e15408c0b96a2a828cfdec6fca05296ebcdcc28ca7c76", size = 243007, upload-time = "2026-01-11T11:21:49.456Z" }, + { url = "https://files.pythonhosted.org/packages/9c/6f/6e39ce66b58a5b7ae572a0f4352ff40c71e8573633deda43f6a379d56b3e/tomli-2.4.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1b168f2731796b045128c45982d3a4874057626da0e2ef1fdd722848b741361d", size = 240875, upload-time = "2026-01-11T11:21:50.755Z" }, + { url = "https://files.pythonhosted.org/packages/aa/ad/cb089cb190487caa80204d503c7fd0f4d443f90b95cf4ef5cf5aa0f439b0/tomli-2.4.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:133e93646ec4300d651839d382d63edff11d8978be23da4cc106f5a18b7d0576", size = 246271, upload-time = "2026-01-11T11:21:51.81Z" }, + { url = "https://files.pythonhosted.org/packages/0b/63/69125220e47fd7a3a27fd0de0c6398c89432fec41bc739823bcc66506af6/tomli-2.4.0-cp311-cp311-win32.whl", hash = "sha256:b6c78bdf37764092d369722d9946cb65b8767bfa4110f902a1b2542d8d173c8a", size = 96770, upload-time = "2026-01-11T11:21:52.647Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0d/a22bb6c83f83386b0008425a6cd1fa1c14b5f3dd4bad05e98cf3dbbf4a64/tomli-2.4.0-cp311-cp311-win_amd64.whl", hash = "sha256:d3d1654e11d724760cdb37a3d7691f0be9db5fbdaef59c9f532aabf87006dbaa", size = 107626, upload-time = "2026-01-11T11:21:53.459Z" }, + { url = "https://files.pythonhosted.org/packages/2f/6d/77be674a3485e75cacbf2ddba2b146911477bd887dda9d8c9dfb2f15e871/tomli-2.4.0-cp311-cp311-win_arm64.whl", hash = "sha256:cae9c19ed12d4e8f3ebf46d1a75090e4c0dc16271c5bce1c833ac168f08fb614", size = 94842, upload-time = "2026-01-11T11:21:54.831Z" }, + { url = "https://files.pythonhosted.org/packages/3c/43/7389a1869f2f26dba52404e1ef13b4784b6b37dac93bac53457e3ff24ca3/tomli-2.4.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:920b1de295e72887bafa3ad9f7a792f811847d57ea6b1215154030cf131f16b1", size = 154894, upload-time = "2026-01-11T11:21:56.07Z" }, + { url = "https://files.pythonhosted.org/packages/e9/05/2f9bf110b5294132b2edf13fe6ca6ae456204f3d749f623307cbb7a946f2/tomli-2.4.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d6d9a4aee98fac3eab4952ad1d73aee87359452d1c086b5ceb43ed02ddb16b8", size = 149053, upload-time = "2026-01-11T11:21:57.467Z" }, + { url = "https://files.pythonhosted.org/packages/e8/41/1eda3ca1abc6f6154a8db4d714a4d35c4ad90adc0bcf700657291593fbf3/tomli-2.4.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:36b9d05b51e65b254ea6c2585b59d2c4cb91c8a3d91d0ed0f17591a29aaea54a", size = 243481, upload-time = "2026-01-11T11:21:58.661Z" }, + { url = "https://files.pythonhosted.org/packages/d2/6d/02ff5ab6c8868b41e7d4b987ce2b5f6a51d3335a70aa144edd999e055a01/tomli-2.4.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1c8a885b370751837c029ef9bc014f27d80840e48bac415f3412e6593bbc18c1", size = 251720, upload-time = "2026-01-11T11:22:00.178Z" }, + { url = "https://files.pythonhosted.org/packages/7b/57/0405c59a909c45d5b6f146107c6d997825aa87568b042042f7a9c0afed34/tomli-2.4.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8768715ffc41f0008abe25d808c20c3d990f42b6e2e58305d5da280ae7d1fa3b", size = 247014, upload-time = "2026-01-11T11:22:01.238Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/2e37568edd944b4165735687cbaf2fe3648129e440c26d02223672ee0630/tomli-2.4.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7b438885858efd5be02a9a133caf5812b8776ee0c969fea02c45e8e3f296ba51", size = 251820, upload-time = "2026-01-11T11:22:02.727Z" }, + { url = "https://files.pythonhosted.org/packages/5a/1c/ee3b707fdac82aeeb92d1a113f803cf6d0f37bdca0849cb489553e1f417a/tomli-2.4.0-cp312-cp312-win32.whl", hash = "sha256:0408e3de5ec77cc7f81960c362543cbbd91ef883e3138e81b729fc3eea5b9729", size = 97712, upload-time = "2026-01-11T11:22:03.777Z" }, + { url = "https://files.pythonhosted.org/packages/69/13/c07a9177d0b3bab7913299b9278845fc6eaaca14a02667c6be0b0a2270c8/tomli-2.4.0-cp312-cp312-win_amd64.whl", hash = "sha256:685306e2cc7da35be4ee914fd34ab801a6acacb061b6a7abca922aaf9ad368da", size = 108296, upload-time = "2026-01-11T11:22:04.86Z" }, + { url = "https://files.pythonhosted.org/packages/18/27/e267a60bbeeee343bcc279bb9e8fbed0cbe224bc7b2a3dc2975f22809a09/tomli-2.4.0-cp312-cp312-win_arm64.whl", hash = "sha256:5aa48d7c2356055feef06a43611fc401a07337d5b006be13a30f6c58f869e3c3", size = 94553, upload-time = "2026-01-11T11:22:05.854Z" }, + { url = "https://files.pythonhosted.org/packages/34/91/7f65f9809f2936e1f4ce6268ae1903074563603b2a2bd969ebbda802744f/tomli-2.4.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84d081fbc252d1b6a982e1870660e7330fb8f90f676f6e78b052ad4e64714bf0", size = 154915, upload-time = "2026-01-11T11:22:06.703Z" }, + { url = "https://files.pythonhosted.org/packages/20/aa/64dd73a5a849c2e8f216b755599c511badde80e91e9bc2271baa7b2cdbb1/tomli-2.4.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9a08144fa4cba33db5255f9b74f0b89888622109bd2776148f2597447f92a94e", size = 149038, upload-time = "2026-01-11T11:22:07.56Z" }, + { url = "https://files.pythonhosted.org/packages/9e/8a/6d38870bd3d52c8d1505ce054469a73f73a0fe62c0eaf5dddf61447e32fa/tomli-2.4.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c73add4bb52a206fd0c0723432db123c0c75c280cbd67174dd9d2db228ebb1b4", size = 242245, upload-time = "2026-01-11T11:22:08.344Z" }, + { url = "https://files.pythonhosted.org/packages/59/bb/8002fadefb64ab2669e5b977df3f5e444febea60e717e755b38bb7c41029/tomli-2.4.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1fb2945cbe303b1419e2706e711b7113da57b7db31ee378d08712d678a34e51e", size = 250335, upload-time = "2026-01-11T11:22:09.951Z" }, + { url = "https://files.pythonhosted.org/packages/a5/3d/4cdb6f791682b2ea916af2de96121b3cb1284d7c203d97d92d6003e91c8d/tomli-2.4.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:bbb1b10aa643d973366dc2cb1ad94f99c1726a02343d43cbc011edbfac579e7c", size = 245962, upload-time = "2026-01-11T11:22:11.27Z" }, + { url = "https://files.pythonhosted.org/packages/f2/4a/5f25789f9a460bd858ba9756ff52d0830d825b458e13f754952dd15fb7bb/tomli-2.4.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4cbcb367d44a1f0c2be408758b43e1ffb5308abe0ea222897d6bfc8e8281ef2f", size = 250396, upload-time = "2026-01-11T11:22:12.325Z" }, + { url = "https://files.pythonhosted.org/packages/aa/2f/b73a36fea58dfa08e8b3a268750e6853a6aac2a349241a905ebd86f3047a/tomli-2.4.0-cp313-cp313-win32.whl", hash = "sha256:7d49c66a7d5e56ac959cb6fc583aff0651094ec071ba9ad43df785abc2320d86", size = 97530, upload-time = "2026-01-11T11:22:13.865Z" }, + { url = "https://files.pythonhosted.org/packages/3b/af/ca18c134b5d75de7e8dc551c5234eaba2e8e951f6b30139599b53de9c187/tomli-2.4.0-cp313-cp313-win_amd64.whl", hash = "sha256:3cf226acb51d8f1c394c1b310e0e0e61fecdd7adcb78d01e294ac297dd2e7f87", size = 108227, upload-time = "2026-01-11T11:22:15.224Z" }, + { url = "https://files.pythonhosted.org/packages/22/c3/b386b832f209fee8073c8138ec50f27b4460db2fdae9ffe022df89a57f9b/tomli-2.4.0-cp313-cp313-win_arm64.whl", hash = "sha256:d20b797a5c1ad80c516e41bc1fb0443ddb5006e9aaa7bda2d71978346aeb9132", size = 94748, upload-time = "2026-01-11T11:22:16.009Z" }, + { url = "https://files.pythonhosted.org/packages/f3/c4/84047a97eb1004418bc10bdbcfebda209fca6338002eba2dc27cc6d13563/tomli-2.4.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:26ab906a1eb794cd4e103691daa23d95c6919cc2fa9160000ac02370cc9dd3f6", size = 154725, upload-time = "2026-01-11T11:22:17.269Z" }, + { url = "https://files.pythonhosted.org/packages/a8/5d/d39038e646060b9d76274078cddf146ced86dc2b9e8bbf737ad5983609a0/tomli-2.4.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:20cedb4ee43278bc4f2fee6cb50daec836959aadaf948db5172e776dd3d993fc", size = 148901, upload-time = "2026-01-11T11:22:18.287Z" }, + { url = "https://files.pythonhosted.org/packages/73/e5/383be1724cb30f4ce44983d249645684a48c435e1cd4f8b5cded8a816d3c/tomli-2.4.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:39b0b5d1b6dd03684b3fb276407ebed7090bbec989fa55838c98560c01113b66", size = 243375, upload-time = "2026-01-11T11:22:19.154Z" }, + { url = "https://files.pythonhosted.org/packages/31/f0/bea80c17971c8d16d3cc109dc3585b0f2ce1036b5f4a8a183789023574f2/tomli-2.4.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a26d7ff68dfdb9f87a016ecfd1e1c2bacbe3108f4e0f8bcd2228ef9a766c787d", size = 250639, upload-time = "2026-01-11T11:22:20.168Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8f/2853c36abbb7608e3f945d8a74e32ed3a74ee3a1f468f1ffc7d1cb3abba6/tomli-2.4.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:20ffd184fb1df76a66e34bd1b36b4a4641bd2b82954befa32fe8163e79f1a702", size = 246897, upload-time = "2026-01-11T11:22:21.544Z" }, + { url = "https://files.pythonhosted.org/packages/49/f0/6c05e3196ed5337b9fe7ea003e95fd3819a840b7a0f2bf5a408ef1dad8ed/tomli-2.4.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:75c2f8bbddf170e8effc98f5e9084a8751f8174ea6ccf4fca5398436e0320bc8", size = 254697, upload-time = "2026-01-11T11:22:23.058Z" }, + { url = "https://files.pythonhosted.org/packages/f3/f5/2922ef29c9f2951883525def7429967fc4d8208494e5ab524234f06b688b/tomli-2.4.0-cp314-cp314-win32.whl", hash = "sha256:31d556d079d72db7c584c0627ff3a24c5d3fb4f730221d3444f3efb1b2514776", size = 98567, upload-time = "2026-01-11T11:22:24.033Z" }, + { url = "https://files.pythonhosted.org/packages/7b/31/22b52e2e06dd2a5fdbc3ee73226d763b184ff21fc24e20316a44ccc4d96b/tomli-2.4.0-cp314-cp314-win_amd64.whl", hash = "sha256:43e685b9b2341681907759cf3a04e14d7104b3580f808cfde1dfdb60ada85475", size = 108556, upload-time = "2026-01-11T11:22:25.378Z" }, + { url = "https://files.pythonhosted.org/packages/48/3d/5058dff3255a3d01b705413f64f4306a141a8fd7a251e5a495e3f192a998/tomli-2.4.0-cp314-cp314-win_arm64.whl", hash = "sha256:3d895d56bd3f82ddd6faaff993c275efc2ff38e52322ea264122d72729dca2b2", size = 96014, upload-time = "2026-01-11T11:22:26.138Z" }, + { url = "https://files.pythonhosted.org/packages/b8/4e/75dab8586e268424202d3a1997ef6014919c941b50642a1682df43204c22/tomli-2.4.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5b5807f3999fb66776dbce568cc9a828544244a8eb84b84b9bafc080c99597b9", size = 163339, upload-time = "2026-01-11T11:22:27.143Z" }, + { url = "https://files.pythonhosted.org/packages/06/e3/b904d9ab1016829a776d97f163f183a48be6a4deb87304d1e0116a349519/tomli-2.4.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c084ad935abe686bd9c898e62a02a19abfc9760b5a79bc29644463eaf2840cb0", size = 159490, upload-time = "2026-01-11T11:22:28.399Z" }, + { url = "https://files.pythonhosted.org/packages/e3/5a/fc3622c8b1ad823e8ea98a35e3c632ee316d48f66f80f9708ceb4f2a0322/tomli-2.4.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f2e3955efea4d1cfbcb87bc321e00dc08d2bcb737fd1d5e398af111d86db5df", size = 269398, upload-time = "2026-01-11T11:22:29.345Z" }, + { url = "https://files.pythonhosted.org/packages/fd/33/62bd6152c8bdd4c305ad9faca48f51d3acb2df1f8791b1477d46ff86e7f8/tomli-2.4.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e0fe8a0b8312acf3a88077a0802565cb09ee34107813bba1c7cd591fa6cfc8d", size = 276515, upload-time = "2026-01-11T11:22:30.327Z" }, + { url = "https://files.pythonhosted.org/packages/4b/ff/ae53619499f5235ee4211e62a8d7982ba9e439a0fb4f2f351a93d67c1dd2/tomli-2.4.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:413540dce94673591859c4c6f794dfeaa845e98bf35d72ed59636f869ef9f86f", size = 273806, upload-time = "2026-01-11T11:22:32.56Z" }, + { url = "https://files.pythonhosted.org/packages/47/71/cbca7787fa68d4d0a9f7072821980b39fbb1b6faeb5f5cf02f4a5559fa28/tomli-2.4.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:0dc56fef0e2c1c470aeac5b6ca8cc7b640bb93e92d9803ddaf9ea03e198f5b0b", size = 281340, upload-time = "2026-01-11T11:22:33.505Z" }, + { url = "https://files.pythonhosted.org/packages/f5/00/d595c120963ad42474cf6ee7771ad0d0e8a49d0f01e29576ee9195d9ecdf/tomli-2.4.0-cp314-cp314t-win32.whl", hash = "sha256:d878f2a6707cc9d53a1be1414bbb419e629c3d6e67f69230217bb663e76b5087", size = 108106, upload-time = "2026-01-11T11:22:34.451Z" }, + { url = "https://files.pythonhosted.org/packages/de/69/9aa0c6a505c2f80e519b43764f8b4ba93b5a0bbd2d9a9de6e2b24271b9a5/tomli-2.4.0-cp314-cp314t-win_amd64.whl", hash = "sha256:2add28aacc7425117ff6364fe9e06a183bb0251b03f986df0e78e974047571fd", size = 120504, upload-time = "2026-01-11T11:22:35.764Z" }, + { url = "https://files.pythonhosted.org/packages/b3/9f/f1668c281c58cfae01482f7114a4b88d345e4c140386241a1a24dcc9e7bc/tomli-2.4.0-cp314-cp314t-win_arm64.whl", hash = "sha256:2b1e3b80e1d5e52e40e9b924ec43d81570f0e7d09d11081b797bc4692765a3d4", size = 99561, upload-time = "2026-01-11T11:22:36.624Z" }, + { url = "https://files.pythonhosted.org/packages/23/d1/136eb2cb77520a31e1f64cbae9d33ec6df0d78bdf4160398e86eec8a8754/tomli-2.4.0-py3-none-any.whl", hash = "sha256:1f776e7d669ebceb01dee46484485f43a4048746235e683bcdffacdf1fb4785a", size = 14477, upload-time = "2026-01-11T11:22:37.446Z" }, +] + +[[package]] +name = "tomli-w" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/75/241269d1da26b624c0d5e110e8149093c759b7a286138f4efd61a60e75fe/tomli_w-1.2.0.tar.gz", hash = "sha256:2dd14fac5a47c27be9cd4c976af5a12d87fb1f0b4512f81d69cce3b35ae25021", size = 7184, upload-time = "2025-01-15T12:07:24.262Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/18/c86eb8e0202e32dd3df50d43d7ff9854f8e0603945ff398974c1d91ac1ef/tomli_w-1.2.0-py3-none-any.whl", hash = "sha256:188306098d013b691fcadc011abd66727d3c414c571bb01b1a174ba8c983cf90", size = 6675, upload-time = "2025-01-15T12:07:22.074Z" }, +] + +[[package]] +name = "tqdm" +version = "4.67.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/a9/6ba95a270c6f1fbcd8dac228323f2777d886cb206987444e4bce66338dd4/tqdm-4.67.3.tar.gz", hash = "sha256:7d825f03f89244ef73f1d4ce193cb1774a8179fd96f31d7e1dcde62092b960bb", size = 169598, upload-time = "2026-02-03T17:35:53.048Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/16/e1/3079a9ff9b8e11b846c6ac5c8b5bfb7ff225eee721825310c91b3b50304f/tqdm-4.67.3-py3-none-any.whl", hash = "sha256:ee1e4c0e59148062281c49d80b25b67771a127c85fc9676d3be5f243206826bf", size = 78374, upload-time = "2026-02-03T17:35:50.982Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "typing-inspection" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/55/e3/70399cb7dd41c10ac53367ae42139cf4b1ca5f36bb3dc6c9d33acdb43655/typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464", size = 75949, upload-time = "2025-10-01T02:14:41.687Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/9b/47798a6c91d8bdb567fe2698fe81e0c6b7cb7ef4d13da4114b41d239f65d/typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7", size = 14611, upload-time = "2025-10-01T02:14:40.154Z" }, +] + +[[package]] +name = "tzdata" +version = "2025.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/a7/c202b344c5ca7daf398f3b8a477eeb205cf3b6f32e7ec3a6bac0629ca975/tzdata-2025.3.tar.gz", hash = "sha256:de39c2ca5dc7b0344f2eba86f49d614019d29f060fc4ebc8a417896a620b56a7", size = 196772, upload-time = "2025-12-13T17:45:35.667Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c7/b0/003792df09decd6849a5e39c28b513c06e84436a54440380862b5aeff25d/tzdata-2025.3-py2.py3-none-any.whl", hash = "sha256:06a47e5700f3081aab02b2e513160914ff0694bce9947d6b76ebd6bf57cfc5d1", size = 348521, upload-time = "2025-12-13T17:45:33.889Z" }, +] + +[[package]] +name = "uncertainties" +version = "3.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/0c/cb09f33b26955399c675ab378e4063ed7e48422d3d49f96219ab0be5eba9/uncertainties-3.2.3.tar.gz", hash = "sha256:76a5653e686f617a42922d546a239e9efce72e6b35411b7750a1d12dcba03031", size = 160492, upload-time = "2025-04-21T19:58:28.63Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/5e/f1e1dd319e35e962a4e00b33150a8868b6329cc1d19fd533436ba5488f09/uncertainties-3.2.3-py3-none-any.whl", hash = "sha256:313353900d8f88b283c9bad81e7d2b2d3d4bcc330cbace35403faaed7e78890a", size = 60118, upload-time = "2025-04-21T19:58:26.864Z" }, +] + +[[package]] +name = "urllib3" +version = "2.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c7/24/5f1b3bdffd70275f6661c76461e25f024d5a38a46f04aaca912426a2b1d3/urllib3-2.6.3.tar.gz", hash = "sha256:1b62b6884944a57dbe321509ab94fd4d3b307075e0c2eae991ac71ee15ad38ed", size = 435556, upload-time = "2026-01-07T16:24:43.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/08/aaaad47bc4e9dc8c725e68f9d04865dbcb2052843ff09c97b08904852d84/urllib3-2.6.3-py3-none-any.whl", hash = "sha256:bf272323e553dfb2e87d9bfd225ca7b0f467b919d7bbd355436d3fd37cb0acd4", size = 131584, upload-time = "2026-01-07T16:24:42.685Z" }, +] + +[[package]] +name = "xraydb" +version = "4.5.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "platformdirs" }, + { name = "scipy" }, + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/01/267954e2e0342418edadf3dea7f85f0edd92a3b065e6ef5daeaae36d4b79/xraydb-4.5.8.tar.gz", hash = "sha256:4414474c10be6dd8f273062fe57c1342e7a9f4c8f8c2c86881acd2ce013182ff", size = 3851174, upload-time = "2025-07-18T19:58:33.885Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/8b/7ec325b4e9e78beefc2d025b01ee8a2fde771ef7c957c3bff99b9e1fbffa/xraydb-4.5.8-py3-none-any.whl", hash = "sha256:2215baafa6a03d00d0254a94525aafc6493c8c285e4ac4477fbd6271b25e6a51", size = 3858878, upload-time = "2025-07-18T19:58:31.528Z" }, +] + +[[package]] +name = "xraylarch" +version = "2026.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asteval" }, + { name = "charset-normalizer" }, + { name = "dill" }, + { name = "fabio" }, + { name = "h5py" }, + { name = "hdf5plugin" }, + { name = "imageio" }, + { name = "larixite" }, + { name = "lmfit" }, + { name = "matplotlib" }, + { name = "numdifftools" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pillow" }, + { name = "pip" }, + { name = "psutil" }, + { name = "pyfai" }, + { name = "pyshortcuts" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "scikit-image" }, + { name = "scikit-learn" }, + { name = "scipy" }, + { name = "silx" }, + { name = "sqlalchemy" }, + { name = "sqlalchemy-utils" }, + { name = "tabulate" }, + { name = "termcolor" }, + { name = "tomli" }, + { name = "tomli-w" }, + { name = "uncertainties" }, + { name = "xraydb" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/23/12/a3a413ac571deffa898c1740855f4bd504df67cbcf90a6fb87b3ff498977/xraylarch-2026.1.1.tar.gz", hash = "sha256:0309a79d78494ed84d96d28e206bc3a714184c2b1ed7ef00b1e8a2302fd15365", size = 18097929, upload-time = "2026-01-23T04:29:59.895Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/54/18ed4959a63338b42bb0ca17a6548a3bee19acfe2f75e79803c7d7db8c4a/xraylarch-2026.1.1-py3-none-any.whl", hash = "sha256:2414636486b5113188b4a1b8ab780a40dd39da1e6e600fb133f0448353015ec2", size = 17750169, upload-time = "2026-01-23T04:29:57.001Z" }, +] + +[[package]] +name = "xraytsubaki-larch-fixtures" +version = "0.1.0" +source = { virtual = "." } +dependencies = [ + { name = "numpy" }, + { name = "xraylarch" }, +] + +[package.metadata] +requires-dist = [ + { name = "numpy", specifier = ">=2.4.2" }, + { name = "xraylarch", specifier = ">=2026.1.1" }, +] diff --git a/crates/xraytsubaki/tests/testfiles/feff0002.dat b/crates/xraytsubaki/tests/testfiles/feff0002.dat new file mode 100644 index 0000000..2483c33 --- /dev/null +++ b/crates/xraytsubaki/tests/testfiles/feff0002.dat @@ -0,0 +1,71 @@ + Cu metal fcc a=3.603 Feff XX 6.10 + Abs Z=29 Rmt= 1.289 Rnm= 1.424 K shell + Pot 1 Z=29 Rmt= 1.272 Rnm= 1.392 + Gam_ch=1.761E+00 H-L exch + Mu=-5.535E+00 kf=1.806E+00 Vint=-1.796E+01 Rs_int= 2.008 + Path 2 icalc 2 + ----------------------------------------------------------------------- + 2 6.000 3.6032 2.6300 -5.53502 nleg, deg, reff, rnrmav(bohr), edge + x y z pot at# + .0000 .0000 .0000 0 29 Cu absorbing atom + -3.6032 .0000 .0000 1 29 Cu + k real[2*phc] mag[feff] phase[feff] red factor lambda real[p]@# + .000 3.5015E+00 0.0000E+00 -1.9368E+00 9.872E-01 1.5637E+01 1.8071E+00 + .100 3.5020E+00 4.4009E-02 -2.6394E+00 9.873E-01 1.5660E+01 1.8098E+00 + .200 3.5035E+00 8.6894E-02 -3.3061E+00 9.877E-01 1.5726E+01 1.8177E+00 + .300 3.5060E+00 1.2768E-01 -3.9377E+00 9.882E-01 1.5831E+01 1.8309E+00 + .400 3.5093E+00 1.6565E-01 -4.5354E+00 9.890E-01 1.5963E+01 1.8491E+00 + .500 3.5132E+00 2.0037E-01 -5.1005E+00 9.901E-01 1.6111E+01 1.8724E+00 + .600 3.5175E+00 2.3172E-01 -5.6342E+00 9.915E-01 1.6258E+01 1.9005E+00 + .700 3.5218E+00 2.5974E-01 -6.1379E+00 9.932E-01 1.6388E+01 1.9332E+00 + .800 3.5258E+00 2.8462E-01 -6.6126E+00 9.953E-01 1.6481E+01 1.9704E+00 + .900 3.5291E+00 3.0656E-01 -7.0593E+00 9.978E-01 1.6522E+01 2.0119E+00 + 1.000 3.5311E+00 3.2577E-01 -7.4789E+00 1.001E+00 1.6496E+01 2.0575E+00 + 1.100 3.5315E+00 3.4238E-01 -7.8721E+00 1.004E+00 1.6396E+01 2.1070E+00 + 1.200 3.5296E+00 3.5648E-01 -8.2394E+00 1.008E+00 1.6217E+01 2.1605E+00 + 1.300 3.5247E+00 3.6805E-01 -8.5812E+00 1.013E+00 1.5965E+01 2.2177E+00 + 1.400 3.5164E+00 3.7703E-01 -8.8978E+00 1.018E+00 1.5649E+01 2.2786E+00 + 1.500 3.5039E+00 3.8333E-01 -9.1894E+00 1.024E+00 1.5286E+01 2.3431E+00 + 1.600 3.4866E+00 3.8679E-01 -9.4557E+00 1.030E+00 1.4895E+01 2.4113E+00 + 1.700 3.4640E+00 3.8727E-01 -9.6966E+00 1.036E+00 1.4497E+01 2.4830E+00 + 1.800 3.4354E+00 3.8462E-01 -9.9115E+00 1.043E+00 1.4117E+01 2.5584E+00 + 1.900 3.4002E+00 3.7875E-01 -1.0100E+01 1.048E+00 1.3776E+01 2.6374E+00 + 2.000 3.3581E+00 3.6961E-01 -1.0260E+01 1.053E+00 1.3497E+01 2.7201E+00 + 2.200 3.2511E+00 3.4179E-01 -1.0490E+01 1.059E+00 1.3207E+01 2.8970E+00 + 2.400 3.1362E+00 3.2322E-01 -1.0664E+01 1.230E+00 7.5606E+00 3.0883E+00 + 2.600 3.1585E+00 3.1411E-01 -1.1143E+01 1.303E+00 6.1535E+00 3.2191E+00 + 2.800 3.1545E+00 2.8725E-01 -1.1528E+01 1.326E+00 5.6163E+00 3.3579E+00 + 3.000 3.1151E+00 2.5588E-01 -1.1788E+01 1.321E+00 5.3982E+00 3.5040E+00 + 3.200 3.0550E+00 2.2122E-01 -1.1928E+01 1.304E+00 5.3389E+00 3.6566E+00 + 3.400 2.9887E+00 2.0330E-01 -1.1932E+01 1.281E+00 5.3735E+00 3.8150E+00 + 3.600 2.9054E+00 2.0843E-01 -1.1850E+01 1.256E+00 5.4705E+00 3.9784E+00 + 3.800 2.8228E+00 2.4172E-01 -1.1788E+01 1.229E+00 5.6121E+00 4.1461E+00 + 4.000 2.7282E+00 2.9080E-01 -1.1783E+01 1.206E+00 5.7879E+00 4.3177E+00 + 4.200 2.6390E+00 3.4555E-01 -1.1825E+01 1.179E+00 5.9908E+00 4.4926E+00 + 4.400 2.5352E+00 4.0431E-01 -1.1893E+01 1.157E+00 6.2162E+00 4.6704E+00 + 4.600 2.4376E+00 4.6028E-01 -1.1975E+01 1.135E+00 6.4607E+00 4.8506E+00 + 4.800 2.3422E+00 5.1294E-01 -1.2055E+01 1.115E+00 6.7219E+00 5.0329E+00 + 5.000 2.2460E+00 5.5809E-01 -1.2140E+01 1.096E+00 6.9979E+00 5.2171E+00 + 5.200 2.1454E+00 6.0085E-01 -1.2222E+01 1.079E+00 7.2872E+00 5.4030E+00 + 5.400 2.0492E+00 6.3867E-01 -1.2297E+01 1.064E+00 7.5888E+00 5.5902E+00 + 5.600 1.9507E+00 6.6986E-01 -1.2373E+01 1.050E+00 7.9017E+00 5.7787E+00 + 5.800 1.8576E+00 6.9963E-01 -1.2443E+01 1.038E+00 8.2251E+00 5.9682E+00 + 6.000 1.7615E+00 7.2338E-01 -1.2508E+01 1.027E+00 8.5584E+00 6.1587E+00 + 6.500 1.5272E+00 7.6169E-01 -1.2661E+01 1.004E+00 9.4317E+00 6.6385E+00 + 7.000 1.2998E+00 7.7231E-01 -1.2797E+01 9.857E-01 1.0357E+01 7.1222E+00 + 7.500 1.0824E+00 7.5858E-01 -1.2924E+01 9.708E-01 1.1331E+01 7.6088E+00 + 8.000 8.7724E-01 7.2858E-01 -1.3042E+01 9.579E-01 1.2348E+01 8.0978E+00 + 8.500 6.8313E-01 6.8936E-01 -1.3151E+01 9.470E-01 1.3407E+01 8.5885E+00 + 9.000 4.9775E-01 6.4353E-01 -1.3258E+01 9.381E-01 1.4505E+01 9.0807E+00 + 9.500 3.2222E-01 5.9395E-01 -1.3367E+01 9.304E-01 1.5641E+01 9.5740E+00 + 10.000 1.4825E-01 5.4390E-01 -1.3480E+01 9.222E-01 1.6812E+01 1.0068E+01 + 11.000 -1.7917E-01 4.5305E-01 -1.3702E+01 9.056E-01 1.9258E+01 1.1059E+01 + 12.000 -4.8336E-01 3.7567E-01 -1.3922E+01 8.938E-01 2.1832E+01 1.2051E+01 + 13.000 -7.6646E-01 3.1296E-01 -1.4149E+01 8.879E-01 2.4527E+01 1.3045E+01 + 14.000 -1.0250E+00 2.6253E-01 -1.4359E+01 8.831E-01 2.7338E+01 1.4041E+01 + 15.000 -1.2653E+00 2.2160E-01 -1.4577E+01 8.801E-01 3.0257E+01 1.5037E+01 + 16.000 -1.4894E+00 1.8953E-01 -1.4778E+01 8.793E-01 3.3281E+01 1.6034E+01 + 17.000 -1.6950E+00 1.6208E-01 -1.4977E+01 8.776E-01 3.6404E+01 1.7031E+01 + 18.000 -1.8893E+00 1.4153E-01 -1.5177E+01 8.772E-01 3.9623E+01 1.8028E+01 + 19.000 -2.0688E+00 1.2296E-01 -1.5346E+01 8.769E-01 4.2933E+01 1.9026E+01 + 20.000 -2.2337E+00 1.1112E-01 -1.5554E+01 8.754E-01 4.6332E+01 2.0025E+01 diff --git a/crates/xraytsubaki/tests/testfiles/feff_ff2chi_larch_ref.txt b/crates/xraytsubaki/tests/testfiles/feff_ff2chi_larch_ref.txt new file mode 100644 index 0000000..97a0ab2 --- /dev/null +++ b/crates/xraytsubaki/tests/testfiles/feff_ff2chi_larch_ref.txt @@ -0,0 +1,280 @@ +5.000000000000000278e-02 -3.004169364982454682e-01 +1.000000000000000056e-01 -3.028599019623772759e-01 +1.500000000000000222e-01 -3.053028674265091391e-01 +2.000000000000000111e-01 -3.086716147668305821e-01 +2.500000000000000000e-01 -3.129124878200045257e-01 +3.000000000000000444e-01 -3.179532062114368007e-01 +3.500000000000000333e-01 -3.237002129304355491e-01 +4.000000000000000222e-01 -3.300350931702579760e-01 +4.500000000000000111e-01 -3.368094875634737306e-01 +5.000000000000000000e-01 -3.438366516251071814e-01 +5.500000000000000444e-01 -3.508707890133190843e-01 +6.000000000000000888e-01 -3.574452979919543472e-01 +6.500000000000000222e-01 -3.501577306932779354e-01 +7.000000000000000666e-01 -3.405942413177491246e-01 +7.500000000000000000e-01 -3.300357874890824661e-01 +8.000000000000000444e-01 -3.183303142416021858e-01 +8.500000000000000888e-01 -3.053143758861092127e-01 +9.000000000000000222e-01 -2.908142127027583124e-01 +9.500000000000000666e-01 -2.746697006743046843e-01 +1.000000000000000000e+00 -2.566904091810706667e-01 +1.050000000000000044e+00 -2.366915795844709292e-01 +1.100000000000000089e+00 -2.146150108471136519e-01 +1.150000000000000133e+00 -1.903978999284350326e-01 +1.200000000000000178e+00 -1.639657785887687347e-01 +1.250000000000000000e+00 -1.354458407271037224e-01 +1.300000000000000044e+00 -1.050901753780835168e-01 +1.350000000000000089e+00 -7.321869693233498677e-02 +1.400000000000000133e+00 -4.024892562746903990e-02 +1.450000000000000178e+00 -6.700430123979781577e-03 +1.500000000000000000e+00 2.680692382766853080e-02 +1.550000000000000044e+00 5.961777704622420182e-02 +1.600000000000000089e+00 9.087616707522273851e-02 +1.650000000000000133e+00 1.195655016592854503e-01 +1.700000000000000178e+00 1.448409228968287610e-01 +1.750000000000000000e+00 1.659637995759864759e-01 +1.800000000000000044e+00 1.822495368952256611e-01 +1.850000000000000089e+00 1.931074963665653510e-01 +1.900000000000000133e+00 1.979268769105310133e-01 +1.950000000000000178e+00 1.963472264424163949e-01 +2.000000000000000000e+00 1.884735806610938480e-01 +2.050000000000000266e+00 1.746564628031881117e-01 +2.100000000000000089e+00 1.554951523414867809e-01 +2.149999999999999911e+00 1.316825343937293447e-01 +2.200000000000000178e+00 1.040714544493424876e-01 +2.250000000000000000e+00 7.400141872601719017e-02 +2.300000000000000266e+00 4.302716422678934394e-02 +2.350000000000000089e+00 1.309155149630827214e-02 +2.400000000000000355e+00 -1.310367525509091927e-02 +2.450000000000000178e+00 -3.302927308564903436e-02 +2.500000000000000000e+00 -4.640763667407480503e-02 +2.550000000000000266e+00 -5.581488933794546276e-02 +2.600000000000000089e+00 -6.316030171637775081e-02 +2.650000000000000355e+00 -6.841524811782885573e-02 +2.700000000000000178e+00 -7.020515977365512916e-02 +2.750000000000000000e+00 -6.792518666129712668e-02 +2.800000000000000266e+00 -6.218768247809863814e-02 +2.850000000000000089e+00 -5.391038856201588875e-02 +2.900000000000000355e+00 -4.402784078806625673e-02 +2.950000000000000178e+00 -3.306749999586004046e-02 +3.000000000000000000e+00 -2.139550839460680962e-02 +3.050000000000000266e+00 -9.494087244318345081e-03 +3.100000000000000089e+00 1.986307935410876885e-03 +3.150000000000000355e+00 1.223227768008340946e-02 +3.200000000000000178e+00 2.061319465981406585e-02 +3.250000000000000000e+00 2.682767743475604830e-02 +3.300000000000000266e+00 3.080642829899851720e-02 +3.350000000000000089e+00 3.240420343293558270e-02 +3.400000000000000355e+00 3.145052796512837201e-02 +3.450000000000000178e+00 2.793031572819430763e-02 +3.500000000000000000e+00 2.208217948402323855e-02 +3.550000000000000266e+00 1.430805893604274702e-02 +3.600000000000000089e+00 5.071568423474790213e-03 +3.650000000000000355e+00 -5.114776248795718100e-03 +3.700000000000000178e+00 -1.569654914697634143e-02 +3.750000000000000000e+00 -2.607612265720092928e-02 +3.800000000000000266e+00 -3.566079301176168503e-02 +3.850000000000000089e+00 -4.390194528857827710e-02 +3.900000000000000355e+00 -5.031916717402932365e-02 +3.950000000000000178e+00 -5.451108543180542554e-02 +4.000000000000000000e+00 -5.616685805409583204e-02 +4.049999999999999822e+00 -5.507776164441665484e-02 +4.100000000000000533e+00 -5.116981200038889233e-02 +4.150000000000000355e+00 -4.457573836426813318e-02 +4.200000000000000178e+00 -3.559125171731317150e-02 +4.250000000000000000e+00 -2.463226353660547679e-02 +4.299999999999999822e+00 -1.217229435385377805e-02 +4.350000000000000533e+00 1.325784372530569967e-03 +4.400000000000000355e+00 1.535716815824066106e-02 +4.450000000000000178e+00 2.936615493296541521e-02 +4.500000000000000000e+00 4.274594134592041988e-02 +4.549999999999999822e+00 5.486448541991694600e-02 +4.600000000000000533e+00 6.512292880250634963e-02 +4.650000000000000355e+00 7.298261099723955814e-02 +4.700000000000000178e+00 7.797359943831612406e-02 +4.750000000000000000e+00 7.970604884231749510e-02 +4.800000000000000711e+00 7.792979811745449903e-02 +4.850000000000000533e+00 7.256811010372074544e-02 +4.900000000000000355e+00 6.374292834357239701e-02 +4.950000000000000178e+00 5.176424792215213178e-02 +5.000000000000000000e+00 3.708679445097438909e-02 +5.050000000000000711e+00 2.028890202940852872e-02 +5.100000000000000533e+00 2.043620105910488177e-03 +5.150000000000000355e+00 -1.689608707626588657e-02 +5.200000000000000178e+00 -3.569114462319385866e-02 +5.250000000000000000e+00 -5.343881363381125515e-02 +5.300000000000000711e+00 -6.918674245826683666e-02 +5.350000000000000533e+00 -8.199176590436191292e-02 +5.400000000000000355e+00 -9.104752414147880557e-02 +5.450000000000000178e+00 -9.576293313974684751e-02 +5.500000000000000000e+00 -9.582510348764021468e-02 +5.550000000000000711e+00 -9.117747200460113444e-02 +5.600000000000000533e+00 -8.196131420674235279e-02 +5.650000000000000355e+00 -6.850780851480593736e-02 +5.700000000000000178e+00 -5.136344085249149038e-02 +5.750000000000000000e+00 -3.134786704913027078e-02 +5.800000000000000711e+00 -9.517892503830237966e-03 +5.850000000000000533e+00 1.290790471926331860e-02 +5.900000000000000355e+00 3.467740318976289537e-02 +5.950000000000000178e+00 5.462173699974319507e-02 +6.000000000000000000e+00 7.168550683085379849e-02 +6.050000000000000711e+00 8.497689966557199492e-02 +6.100000000000000533e+00 9.380451620196920970e-02 +6.150000000000000355e+00 9.771826242502329452e-02 +6.200000000000000178e+00 9.655034700885455068e-02 +6.250000000000000000e+00 9.042444162599964919e-02 +6.300000000000000711e+00 7.974471058205626073e-02 +6.350000000000000533e+00 6.516667031937531385e-02 +6.400000000000000355e+00 4.755225752158828006e-02 +6.450000000000000178e+00 2.791264198559455234e-02 +6.500000000000000000e+00 7.343161939455978247e-03 +6.550000000000000711e+00 -1.304480497806291724e-02 +6.600000000000000533e+00 -3.219083999017847281e-02 +6.650000000000000355e+00 -4.914553666907882368e-02 +6.700000000000000178e+00 -6.311887298760601728e-02 +6.750000000000000000e+00 -7.351619187007080169e-02 +6.800000000000000711e+00 -7.995986094812153333e-02 +6.850000000000000533e+00 -8.229629580956937529e-02 +6.900000000000000355e+00 -8.058919906344892692e-02 +6.950000000000000178e+00 -7.510081705469534574e-02 +7.000000000000000000e+00 -6.626371511773414269e-02 +7.050000000000000711e+00 -5.464597211380164271e-02 +7.100000000000000533e+00 -4.091261535907782937e-02 +7.150000000000000355e+00 -2.578621339315132974e-02 +7.200000000000000178e+00 -1.000961466334053182e-02 +7.250000000000000000e+00 5.687694874403858430e-03 +7.300000000000000711e+00 2.061852607306290802e-02 +7.350000000000000533e+00 3.416169392849583569e-02 +7.400000000000000355e+00 4.578052771482832295e-02 +7.450000000000000178e+00 5.503661933270340839e-02 +7.500000000000000000e+00 6.159947819025627519e-02 +7.550000000000000711e+00 6.525281269187034605e-02 +7.600000000000000533e+00 6.589806180341042929e-02 +7.650000000000000355e+00 6.355572798545992830e-02 +7.700000000000000178e+00 5.836432872040654002e-02 +7.750000000000000000e+00 5.057668810277386739e-02 +7.800000000000000711e+00 4.055322392412655241e-02 +7.850000000000000533e+00 2.875166014355712632e-02 +7.900000000000000355e+00 1.571260818020697031e-02 +7.950000000000000178e+00 2.040635690074976607e-03 +8.000000000000000000e+00 -1.161923358825462521e-02 +8.050000000000000711e+00 -2.460916373588093245e-02 +8.099999999999999645e+00 -3.628880069227626015e-02 +8.150000000000000355e+00 -4.606846109828022923e-02 +8.200000000000001066e+00 -5.344319014553962355e-02 +8.250000000000000000e+00 -5.802394625834032121e-02 +8.300000000000000711e+00 -5.956400130884990929e-02 +8.349999999999999645e+00 -5.797824662570019716e-02 +8.400000000000000355e+00 -5.335341712962858585e-02 +8.450000000000001066e+00 -4.594781832001560568e-02 +8.500000000000000000e+00 -3.617989765830225551e-02 +8.550000000000000711e+00 -2.460583248218271499e-02 +8.599999999999999645e+00 -1.188655892518760034e-02 +8.650000000000000355e+00 1.252149569892617182e-03 +8.700000000000001066e+00 1.406354259587437421e-02 +8.750000000000000000e+00 2.582610436815985927e-02 +8.800000000000000711e+00 3.588847223560180655e-02 +8.849999999999999645e+00 4.370980205862921852e-02 +8.900000000000000355e+00 4.889264819318998173e-02 +8.950000000000001066e+00 5.120598732031819700e-02 +9.000000000000000000e+00 5.059677865335511504e-02 +9.050000000000000711e+00 4.718936501786623328e-02 +9.099999999999999645e+00 4.127336919480560640e-02 +9.150000000000000355e+00 3.328099287909089266e-02 +9.200000000000001066e+00 2.375442166148616571e-02 +9.250000000000000000e+00 1.330663439539873927e-02 +9.300000000000000711e+00 2.578933644436964129e-03 +9.349999999999999645e+00 -7.801506838576523911e-03 +9.400000000000000355e+00 -1.726093010848119697e-02 +9.450000000000001066e+00 -2.531238596777028033e-02 +9.500000000000000000e+00 -3.158111769657663548e-02 +9.550000000000000711e+00 -3.582065422478199201e-02 +9.600000000000001421e+00 -3.791928905386621890e-02 +9.650000000000000355e+00 -3.789565765274303943e-02 +9.700000000000001066e+00 -3.588634825141755191e-02 +9.750000000000000000e+00 -3.212780033956540160e-02 +9.800000000000000711e+00 -2.693374608299487633e-02 +9.850000000000001421e+00 -2.067022516148691105e-02 +9.900000000000000355e+00 -1.373016067368768370e-02 +9.950000000000001066e+00 -6.509267104854669223e-03 +1.000000000000000000e+01 6.152789012362300941e-04 +1.005000000000000071e+01 7.302358590583295922e-03 +1.010000000000000142e+01 1.325972964240328122e-02 +1.015000000000000036e+01 1.825308506849581194e-02 +1.020000000000000107e+01 2.211118322356764657e-02 +1.025000000000000000e+01 2.472689265424966865e-02 +1.030000000000000071e+01 2.605511906886627191e-02 +1.035000000000000142e+01 2.610840712617058454e-02 +1.040000000000000036e+01 2.495099023307391362e-02 +1.045000000000000107e+01 2.269196134851711455e-02 +1.050000000000000000e+01 1.947807689616760929e-02 +1.055000000000000071e+01 1.548651581173614983e-02 +1.060000000000000142e+01 1.091772869919564043e-02 +1.065000000000000036e+01 5.988356868860783035e-03 +1.070000000000000107e+01 9.240996723423826721e-04 +1.075000000000000000e+01 -4.047626250061810149e-03 +1.080000000000000071e+01 -8.705358193318768825e-03 +1.085000000000000142e+01 -1.284161674919462488e-02 +1.090000000000000036e+01 -1.627118251850051892e-02 +1.095000000000000107e+01 -1.883935058800270332e-02 +1.100000000000000000e+01 -2.042974061629809421e-02 +1.105000000000000071e+01 -2.097111932397222392e-02 +1.110000000000000142e+01 -2.044261908193109253e-02 +1.115000000000000036e+01 -1.887677581293924212e-02 +1.120000000000000107e+01 -1.635986214076924627e-02 +1.125000000000000000e+01 -1.302913588531016444e-02 +1.130000000000000071e+01 -9.066864128071333920e-03 +1.135000000000000142e+01 -4.691240978768426717e-03 +1.140000000000000036e+01 -1.445949023572931126e-04 +1.145000000000000107e+01 4.320454723196526584e-03 +1.150000000000000000e+01 8.456011404361635578e-03 +1.155000000000000071e+01 1.203405287472282016e-02 +1.160000000000000142e+01 1.486062176532719319e-02 +1.165000000000000036e+01 1.678798884481126630e-02 +1.170000000000000107e+01 1.772385037507346467e-02 +1.175000000000000000e+01 1.763683630385891668e-02 +1.180000000000000071e+01 1.655788917865321647e-02 +1.185000000000000142e+01 1.457739900690657731e-02 +1.190000000000000036e+01 1.183831677503228638e-02 +1.195000000000000107e+01 8.525787835432275391e-03 +1.200000000000000000e+01 4.854116812889404560e-03 +1.205000000000000071e+01 1.052064474702775693e-03 +1.210000000000000142e+01 -2.652463426366249901e-03 +1.215000000000000036e+01 -6.046951107058131519e-03 +1.220000000000000107e+01 -8.947141658624402014e-03 +1.225000000000000000e+01 -1.120748348649863724e-02 +1.230000000000000071e+01 -1.272845816555719448e-02 +1.235000000000000142e+01 -1.346042014195472994e-02 +1.240000000000000036e+01 -1.340386655696342022e-02 +1.245000000000000107e+01 -1.260633406837283373e-02 +1.250000000000000000e+01 -1.115636598434160964e-02 +1.255000000000000071e+01 -9.175187672835864727e-03 +1.260000000000000142e+01 -6.806857230623699316e-03 +1.265000000000000036e+01 -4.207714771755739595e-03 +1.270000000000000107e+01 -1.535937536557823151e-03 +1.275000000000000000e+01 1.058073841363182336e-03 +1.280000000000000071e+01 3.439887640553301353e-03 +1.285000000000000142e+01 5.497393321000197501e-03 +1.290000000000000036e+01 7.145084565856943230e-03 +1.295000000000000107e+01 8.326232021603229005e-03 +1.300000000000000000e+01 9.013074121423440138e-03 +1.305000000000000071e+01 9.205291975930155260e-03 +1.310000000000000142e+01 8.927164167346875526e-03 +1.315000000000000036e+01 8.223804933539193354e-03 +1.320000000000000107e+01 7.156761502240076116e-03 +1.325000000000000000e+01 5.799403831750807835e-03 +1.330000000000000071e+01 4.232447376886653255e-03 +1.335000000000000142e+01 2.539839825621324244e-03 +1.340000000000000036e+01 8.051485986428117509e-04 +1.345000000000000107e+01 -8.915021848384764103e-04 +1.350000000000000000e+01 -2.475968066201227925e-03 +1.355000000000000071e+01 -3.882164293975623806e-03 +1.360000000000000142e+01 -5.053780223639464490e-03 +1.365000000000000036e+01 -5.945712562378934786e-03 +1.370000000000000107e+01 -6.525273849625061982e-03 +1.375000000000000000e+01 -6.773190012935770624e-03 +1.380000000000000071e+01 -6.684353071111120981e-03 +1.385000000000000142e+01 -6.268251719093956113e-03 +1.390000000000000036e+01 -5.548972335890280973e-03 +1.395000000000000107e+01 -4.564652509074927818e-03 +1.400000000000000000e+01 -3.366282087129052192e-03 diff --git a/crates/xraytsubaki/tests/testfiles/feff_fit_target_larch.txt b/crates/xraytsubaki/tests/testfiles/feff_fit_target_larch.txt new file mode 100644 index 0000000..2f23402 --- /dev/null +++ b/crates/xraytsubaki/tests/testfiles/feff_fit_target_larch.txt @@ -0,0 +1,280 @@ +5.000000000000000278e-02 -3.268976448800760548e-01 +1.000000000000000056e-01 -3.297673845053191166e-01 +1.500000000000000222e-01 -3.326371241305621784e-01 +2.000000000000000111e-01 -3.365758531351952798e-01 +2.500000000000000000e-01 -3.415002267804358449e-01 +3.000000000000000444e-01 -3.472967572297996353e-01 +3.500000000000000333e-01 -3.538170121631238896e-01 +4.000000000000000222e-01 -3.608714103737300505e-01 +4.500000000000000111e-01 -3.682203485404714760e-01 +5.000000000000000000e-01 -3.755559045179838185e-01 +5.500000000000000444e-01 -3.823918834449200332e-01 +6.000000000000000888e-01 -3.765380316269572036e-01 +6.500000000000000222e-01 -3.665482948089569537e-01 +7.000000000000000666e-01 -3.550976042516860165e-01 +7.500000000000000000e-01 -3.420263598189173249e-01 +8.000000000000000444e-01 -3.271845322484740470e-01 +8.500000000000000888e-01 -3.104299815207995361e-01 +9.000000000000000222e-01 -2.916511900433462201e-01 +9.500000000000000666e-01 -2.707575981465084047e-01 +1.000000000000000000e+00 -2.476546850239838837e-01 +1.050000000000000044e+00 -2.223597504113359880e-01 +1.100000000000000089e+00 -1.949945922223872419e-01 +1.150000000000000133e+00 -1.656435969740151781e-01 +1.200000000000000178e+00 -1.345071799266581991e-01 +1.250000000000000000e+00 -1.019760440441987298e-01 +1.300000000000000044e+00 -6.850143370976029267e-02 +1.350000000000000089e+00 -3.460195351519824991e-02 +1.400000000000000133e+00 -8.615806808538846928e-04 +1.450000000000000178e+00 3.206234833169036014e-02 +1.500000000000000000e+00 6.351361318496372144e-02 +1.550000000000000044e+00 9.284197110179941148e-02 +1.600000000000000089e+00 1.192198127752085862e-01 +1.650000000000000133e+00 1.418467050590829226e-01 +1.700000000000000178e+00 1.601845173882634754e-01 +1.750000000000000000e+00 1.738060039588685546e-01 +1.800000000000000044e+00 1.824037495155313715e-01 +1.850000000000000089e+00 1.857441106062278913e-01 +1.900000000000000133e+00 1.836149319892036169e-01 +1.950000000000000178e+00 1.761228810568808700e-01 +2.000000000000000000e+00 1.637107029454708262e-01 +2.050000000000000266e+00 1.469631014485319465e-01 +2.100000000000000089e+00 1.265940844774777752e-01 +2.149999999999999911e+00 1.032873219147697336e-01 +2.200000000000000178e+00 7.792269290600756237e-02 +2.250000000000000000e+00 5.168819766163117169e-02 +2.300000000000000266e+00 2.583526733293109445e-02 +2.350000000000000089e+00 1.937783854416019920e-03 +2.400000000000000355e+00 -1.805664473956577337e-02 +2.450000000000000178e+00 -3.266170080267470632e-02 +2.500000000000000000e+00 -4.246418058289012226e-02 +2.550000000000000266e+00 -4.965295685678019350e-02 +2.600000000000000089e+00 -5.537310699533237041e-02 +2.650000000000000355e+00 -5.926234440639008283e-02 +2.700000000000000178e+00 -6.014050353844528629e-02 +2.750000000000000000e+00 -5.778603735051646845e-02 +2.800000000000000266e+00 -5.274698990234170937e-02 +2.850000000000000089e+00 -4.575698675201088361e-02 +2.900000000000000355e+00 -3.750691013416839609e-02 +2.950000000000000178e+00 -2.833331387462459383e-02 +3.000000000000000000e+00 -1.851009792258654155e-02 +3.050000000000000266e+00 -8.421382331279286815e-03 +3.100000000000000089e+00 1.381231289104644213e-03 +3.150000000000000355e+00 1.020198060718491978e-02 +3.200000000000000178e+00 1.752911923062438343e-02 +3.250000000000000000e+00 2.312507094381292469e-02 +3.300000000000000266e+00 2.690607056251670057e-02 +3.350000000000000089e+00 2.867044610332271370e-02 +3.400000000000000355e+00 2.820179323716467609e-02 +3.450000000000000178e+00 2.542907697057061184e-02 +3.500000000000000000e+00 2.050865401010817241e-02 +3.550000000000000266e+00 1.372672199524562452e-02 +3.600000000000000089e+00 5.437329484330871709e-03 +3.650000000000000355e+00 -3.938729376983998026e-03 +3.700000000000000178e+00 -1.391388231518068605e-02 +3.750000000000000000e+00 -2.393674479228042815e-02 +3.800000000000000266e+00 -3.343339656035325402e-02 +3.850000000000000089e+00 -4.183807772938227809e-02 +3.900000000000000355e+00 -4.861931616865382971e-02 +3.950000000000000178e+00 -5.330192308686195618e-02 +4.000000000000000000e+00 -5.548615110580378679e-02 +4.049999999999999822e+00 -5.486899261853787901e-02 +4.100000000000000533e+00 -5.129724543895667482e-02 +4.150000000000000355e+00 -4.484421785377745023e-02 +4.200000000000000178e+00 -3.577239847693824970e-02 +4.250000000000000000e+00 -2.449871051825350254e-02 +4.299999999999999822e+00 -1.152355668102801774e-02 +4.350000000000000533e+00 2.626782176498646242e-03 +4.400000000000000355e+00 1.735188489634286249e-02 +4.450000000000000178e+00 3.198087201971324539e-02 +4.500000000000000000e+00 4.578415531956626927e-02 +4.549999999999999822e+00 5.802278862975022294e-02 +4.600000000000000533e+00 6.801860689814104299e-02 +4.650000000000000355e+00 7.519095819326973573e-02 +4.700000000000000178e+00 7.907050484280661595e-02 +4.750000000000000000e+00 7.932352553295794750e-02 +4.800000000000000711e+00 7.581138773824494526e-02 +4.850000000000000533e+00 6.861441912830618106e-02 +4.900000000000000355e+00 5.804021216658433041e-02 +4.950000000000000178e+00 4.458470583490287825e-02 +5.000000000000000000e+00 2.887273754616965712e-02 +5.050000000000000711e+00 1.162056570605317016e-02 +5.100000000000000533e+00 -6.406409710856074587e-03 +5.150000000000000355e+00 -2.441194969227495834e-02 +5.200000000000000178e+00 -4.157383280565753181e-02 +5.250000000000000000e+00 -5.707107233779913635e-02 +5.300000000000000711e+00 -7.009799183556945923e-02 +5.350000000000000533e+00 -7.992801141411649823e-02 +5.400000000000000355e+00 -8.601348762715171903e-02 +5.450000000000000178e+00 -8.803362520742250008e-02 +5.500000000000000000e+00 -8.592152147300551046e-02 +5.550000000000000711e+00 -7.981037259893244973e-02 +5.600000000000000533e+00 -6.997406329368847933e-02 +5.650000000000000355e+00 -5.681246321899181134e-02 +5.700000000000000178e+00 -4.087629954781662328e-02 +5.750000000000000000e+00 -2.290966780584851453e-02 +5.800000000000000711e+00 -3.808900432877701612e-03 +5.850000000000000533e+00 1.543935053365181123e-02 +5.900000000000000355e+00 3.386380321041619623e-02 +5.950000000000000178e+00 5.058289229438074630e-02 +6.000000000000000000e+00 6.481106695652265326e-02 +6.050000000000000711e+00 7.588596955876612815e-02 +6.100000000000000533e+00 8.328577021902620892e-02 +6.150000000000000355e+00 8.665803993284260098e-02 +6.200000000000000178e+00 8.585009751283546875e-02 +6.250000000000000000e+00 8.091784206598348628e-02 +6.300000000000000711e+00 7.212316170648756797e-02 +6.350000000000000533e+00 5.992053020274670100e-02 +6.400000000000000355e+00 4.493346601035842769e-02 +6.450000000000000178e+00 2.792209412932241883e-02 +6.500000000000000000e+00 9.743550193725684927e-03 +6.550000000000000711e+00 -8.692666098155816742e-03 +6.600000000000000533e+00 -2.647263444314461311e-02 +6.650000000000000355e+00 -4.272516798296609880e-02 +6.700000000000000178e+00 -5.666526066338104656e-02 +6.750000000000000000e+00 -6.763314417566683445e-02 +6.800000000000000711e+00 -7.512650645126017768e-02 +6.850000000000000533e+00 -7.882422771626518276e-02 +6.900000000000000355e+00 -7.860048152759019358e-02 +6.950000000000000178e+00 -7.452857121851108602e-02 +7.000000000000000000e+00 -6.687442348336111730e-02 +7.050000000000000711e+00 -5.608020389949824186e-02 +7.100000000000000533e+00 -4.273884800733655787e-02 +7.150000000000000355e+00 -2.756105371595663975e-02 +7.200000000000000178e+00 -1.133714942722468914e-02 +7.250000000000000000e+00 5.104386225835110848e-03 +7.300000000000000711e+00 2.093963023745358185e-02 +7.350000000000000533e+00 3.539092969323673343e-02 +7.400000000000000355e+00 4.776549937115417976e-02 +7.450000000000000178e+00 5.748897616249763060e-02 +7.500000000000000000e+00 6.413229924008720384e-02 +7.550000000000000711e+00 6.743065703094737462e-02 +7.600000000000000533e+00 6.729370051909321082e-02 +7.650000000000000355e+00 6.380681338443570938e-02 +7.700000000000000178e+00 5.722324317634090024e-02 +7.750000000000000000e+00 4.794765928744399580e-02 +7.800000000000000711e+00 3.651224781276700415e-02 +7.850000000000000533e+00 2.354673555345971475e-02 +7.900000000000000355e+00 9.744023012530713540e-03 +7.950000000000000178e+00 -4.176698780340420275e-03 +8.000000000000000000e+00 -1.750738053289593171e-02 +8.050000000000000711e+00 -2.958708967504838916e-02 +8.099999999999999645e+00 -3.983413356577016756e-02 +8.150000000000000355e+00 -4.777453075574800839e-02 +8.200000000000001066e+00 -5.306483634664998367e-02 +8.250000000000000000e+00 -5.550704943038629879e-02 +8.300000000000000711e+00 -5.505545080616732617e-02 +8.349999999999999645e+00 -5.181518410597468066e-02 +8.400000000000000355e+00 -4.603283996400760886e-02 +8.450000000000001066e+00 -3.807974011877129222e-02 +8.500000000000000000e+00 -2.842900706416296927e-02 +8.550000000000000711e+00 -1.762776604187867371e-02 +8.599999999999999645e+00 -6.265467805123305089e-03 +8.650000000000000355e+00 5.058164119561192086e-03 +8.700000000000001066e+00 1.576394147457535130e-02 +8.750000000000000000e+00 2.532237674565547547e-02 +8.800000000000000711e+00 3.327940889963034582e-02 +8.849999999999999645e+00 3.927746259345386848e-02 +8.900000000000000355e+00 4.307090031615516679e-02 +8.950000000000001066e+00 4.453524239994800099e-02 +9.000000000000000000e+00 4.366986774922135967e-02 +9.050000000000000711e+00 4.059426945086783145e-02 +9.099999999999999645e+00 3.553864066000118893e-02 +9.150000000000000355e+00 2.882912985981000292e-02 +9.200000000000001066e+00 2.086773967534296531e-02 +9.250000000000000000e+00 1.210864596828998933e-02 +9.300000000000000711e+00 3.032445262751690563e-03 +9.349999999999999645e+00 -5.880191165762417571e-03 +9.400000000000000355e+00 -1.417398943150237345e-02 +9.450000000000001066e+00 -2.144230031957712612e-02 +9.500000000000000000e+00 -2.734688254021514983e-02 +9.550000000000000711e+00 -3.163332810904461584e-02 +9.600000000000001421e+00 -3.414161229092183697e-02 +9.650000000000000355e+00 -3.480980713837347057e-02 +9.700000000000001066e+00 -3.367274827856153729e-02 +9.750000000000000000e+00 -3.085638761297102017e-02 +9.800000000000000711e+00 -2.656777425911979046e-02 +9.850000000000001421e+00 -2.108134575971435873e-02 +9.900000000000000355e+00 -1.472237059660488380e-02 +9.950000000000001066e+00 -7.848486265504509007e-03 +1.000000000000000000e+01 -8.303299601267043629e-04 +1.005000000000000071e+01 5.967696203880665587e-03 +1.010000000000000142e+01 1.220524907322406705e-02 +1.015000000000000036e+01 1.758270819396179699e-02 +1.020000000000000107e+01 2.185545223720624861e-02 +1.025000000000000000e+01 2.484456504442947647e-02 +1.030000000000000071e+01 2.644376433561458281e-02 +1.035000000000000142e+01 2.662232364887630320e-02 +1.040000000000000036e+01 2.542397138460611439e-02 +1.045000000000000107e+01 2.296196189734931933e-02 +1.050000000000000000e+01 1.941070745512368453e-02 +1.055000000000000071e+01 1.499452686579414405e-02 +1.060000000000000142e+01 9.974198693185288775e-03 +1.065000000000000036e+01 4.632098406151892792e-03 +1.070000000000000107e+01 -7.432539632589709941e-04 +1.075000000000000000e+01 -5.872407045088559249e-03 +1.080000000000000071e+01 -1.049916537225565986e-02 +1.085000000000000142e+01 -1.440304556185424689e-02 +1.090000000000000036e+01 -1.740941248044334047e-02 +1.095000000000000107e+01 -1.939684951854411810e-02 +1.100000000000000000e+01 -2.030147859947669525e-02 +1.105000000000000071e+01 -2.011811528014801481e-02 +1.110000000000000142e+01 -1.889830850113327285e-02 +1.115000000000000036e+01 -1.674550547151661128e-02 +1.120000000000000107e+01 -1.380769691825404002e-02 +1.125000000000000000e+01 -1.026801122849810288e-02 +1.130000000000000071e+01 -6.333830322864506326e-03 +1.135000000000000142e+01 -2.225052784712363597e-03 +1.140000000000000036e+01 1.837849005904521136e-03 +1.145000000000000107e+01 5.645344587323337590e-03 +1.150000000000000000e+01 9.009347291000334088e-03 +1.155000000000000071e+01 1.177219120098476658e-02 +1.160000000000000142e+01 1.381367178822807615e-02 +1.165000000000000036e+01 1.505585633405457854e-02 +1.170000000000000107e+01 1.546549873722253589e-02 +1.175000000000000000e+01 1.505402551560786062e-02 +1.180000000000000071e+01 1.387518862882982512e-02 +1.185000000000000142e+01 1.202059948383338468e-02 +1.190000000000000036e+01 9.613461261101121855e-03 +1.195000000000000107e+01 6.800898714359591112e-03 +1.200000000000000000e+01 3.745342343972281676e-03 +1.205000000000000071e+01 6.154456833254968269e-04 +1.210000000000000142e+01 -2.423018484298121444e-03 +1.215000000000000036e+01 -5.215595463044011941e-03 +1.220000000000000107e+01 -7.626646693406831032e-03 +1.225000000000000000e+01 -9.545630894253658363e-03 +1.230000000000000071e+01 -1.089185057317415724e-02 +1.235000000000000142e+01 -1.161747977356185867e-02 +1.240000000000000036e+01 -1.170878356362017869e-02 +1.245000000000000107e+01 -1.118553490485766841e-02 +1.250000000000000000e+01 -1.009872585316786558e-02 +1.255000000000000071e+01 -8.526753148078049585e-03 +1.260000000000000142e+01 -6.570329299746828673e-03 +1.265000000000000036e+01 -4.346426179192378406e-03 +1.270000000000000107e+01 -1.981596596233264115e-03 +1.275000000000000000e+01 3.949609158195310776e-04 +1.280000000000000071e+01 2.658228262054358141e-03 +1.285000000000000142e+01 4.693736937645330738e-03 +1.290000000000000036e+01 6.403167136452871978e-03 +1.295000000000000107e+01 7.708913462767188682e-03 +1.300000000000000000e+01 8.557415386360352205e-03 +1.305000000000000071e+01 8.921120829288290213e-03 +1.310000000000000142e+01 8.799060733982396604e-03 +1.315000000000000036e+01 8.216056673385492559e-03 +1.320000000000000107e+01 7.220508775011014180e-03 +1.325000000000000000e+01 5.880972324172316530e-03 +1.330000000000000071e+01 4.281770028317760310e-03 +1.335000000000000142e+01 2.517910101342151624e-03 +1.340000000000000036e+01 6.896092953572841933e-04 +1.345000000000000107e+01 -1.103268397111658791e-03 +1.350000000000000000e+01 -2.766552601704902296e-03 +1.355000000000000071e+01 -4.216604818136515664e-03 +1.360000000000000142e+01 -5.384409353799395753e-03 +1.365000000000000036e+01 -6.218721903467786666e-03 +1.370000000000000107e+01 -6.688139474115472639e-03 +1.375000000000000000e+01 -6.782019522012580973e-03 +1.380000000000000071e+01 -6.510241987221760881e-03 +1.385000000000000142e+01 -5.901871631962295368e-03 +1.390000000000000036e+01 -5.002836222723250521e-03 +1.395000000000000107e+01 -3.872785596563409032e-03 +1.400000000000000000e+01 -2.581335079556788814e-03 diff --git a/crates/xraytsubaki/tests/testfiles/feff_path_chi_larch_ref.txt b/crates/xraytsubaki/tests/testfiles/feff_path_chi_larch_ref.txt new file mode 100644 index 0000000..0d57486 --- /dev/null +++ b/crates/xraytsubaki/tests/testfiles/feff_path_chi_larch_ref.txt @@ -0,0 +1,280 @@ +5.000000000000000278e-02 -3.294014545590027709e-01 +1.000000000000000056e-01 -3.325857487366469800e-01 +1.500000000000000222e-01 -3.357700429142911891e-01 +2.000000000000000111e-01 -3.401532904633557952e-01 +2.500000000000000000e-01 -3.456560420239568332e-01 +3.000000000000000444e-01 -3.521695009003528165e-01 +3.500000000000000333e-01 -3.595505950839698039e-01 +4.000000000000000222e-01 -3.676159293232869052e-01 +4.500000000000000111e-01 -3.761342857813328444e-01 +5.000000000000000000e-01 -3.848161215226474918e-01 +5.500000000000000444e-01 -3.932912407666668275e-01 +6.000000000000000888e-01 -4.009380735867982826e-01 +6.500000000000000222e-01 -3.926716466366215741e-01 +7.000000000000000666e-01 -3.813331402971081308e-01 +7.500000000000000000e-01 -3.683470245398694498e-01 +8.000000000000000444e-01 -3.535384017595220030e-01 +8.500000000000000888e-01 -3.367438066643357319e-01 +9.000000000000000222e-01 -3.178195023572454869e-01 +9.500000000000000666e-01 -2.966649207098992491e-01 +1.000000000000000000e+00 -2.731786232202900733e-01 +1.050000000000000044e+00 -2.473011706388375253e-01 +1.100000000000000089e+00 -2.191364633970085130e-01 +1.150000000000000133e+00 -1.888065267837185923e-01 +1.200000000000000178e+00 -1.564444046653403475e-01 +1.250000000000000000e+00 -1.224036763166079234e-01 +1.300000000000000044e+00 -8.715983524047754560e-02 +1.350000000000000089e+00 -5.124494511630742904e-02 +1.400000000000000133e+00 -1.526751063079347451e-02 +1.450000000000000178e+00 2.009284886755197466e-02 +1.500000000000000000e+00 5.411256444340888094e-02 +1.550000000000000044e+00 8.611033042562016293e-02 +1.600000000000000089e+00 1.152681180423987539e-01 +1.650000000000000133e+00 1.406728273556015207e-01 +1.700000000000000178e+00 1.616641557189680278e-01 +1.750000000000000000e+00 1.777615901639631180e-01 +1.800000000000000044e+00 1.885934374458279605e-01 +1.850000000000000089e+00 1.939096951849520190e-01 +1.900000000000000133e+00 1.934543094537796160e-01 +1.950000000000000178e+00 1.872181652685967757e-01 +2.000000000000000000e+00 1.756076414101512828e-01 +2.050000000000000266e+00 1.592074863076734237e-01 +2.100000000000000089e+00 1.387543676633362921e-01 +2.149999999999999911e+00 1.149897343852503140e-01 +2.200000000000000178e+00 8.875688172901036177e-02 +2.250000000000000000e+00 6.126408875565007156e-02 +2.300000000000000266e+00 3.383069858273712871e-02 +2.350000000000000089e+00 8.001530980010461425e-03 +2.400000000000000355e+00 -1.419485949073217602e-02 +2.450000000000000178e+00 -3.094240168596014418e-02 +2.500000000000000000e+00 -4.224256148900267654e-02 +2.550000000000000266e+00 -5.031380519059944212e-02 +2.600000000000000089e+00 -5.670952968803742722e-02 +2.650000000000000355e+00 -6.135428800005267996e-02 +2.700000000000000178e+00 -6.305081412694059362e-02 +2.750000000000000000e+00 -6.127376324439794131e-02 +2.800000000000000266e+00 -5.652561559186973505e-02 +2.850000000000000089e+00 -4.955663879173895919e-02 +2.900000000000000355e+00 -4.113529316986851841e-02 +2.950000000000000178e+00 -3.168053048321991388e-02 +3.000000000000000000e+00 -2.146831418650913675e-02 +3.050000000000000266e+00 -1.087946208821197712e-02 +3.100000000000000089e+00 -4.587705779771952385e-04 +3.150000000000000355e+00 9.061277594673041239e-03 +3.200000000000000178e+00 1.708921245437347580e-02 +3.250000000000000000e+00 2.332543994108142102e-02 +3.300000000000000266e+00 2.767369495791551295e-02 +3.350000000000000089e+00 2.994275657939048790e-02 +3.400000000000000355e+00 2.989024823516421570e-02 +3.450000000000000178e+00 2.740457688441883324e-02 +3.500000000000000000e+00 2.261174459581146573e-02 +3.550000000000000266e+00 1.579795282183295291e-02 +3.600000000000000089e+00 7.323249415895688105e-03 +3.650000000000000355e+00 -2.380798998970953210e-03 +3.700000000000000178e+00 -1.281254498424807924e-02 +3.750000000000000000e+00 -2.339859823437767314e-02 +3.800000000000000266e+00 -3.353472147970278788e-02 +3.850000000000000089e+00 -4.262032967414725038e-02 +3.900000000000000355e+00 -5.008641634667831966e-02 +3.950000000000000178e+00 -5.541970665377989741e-02 +4.000000000000000000e+00 -5.818284346494816128e-02 +4.049999999999999822e+00 -5.803659160936111561e-02 +4.100000000000000533e+00 -5.478653800353909531e-02 +4.150000000000000355e+00 -4.847398543699171086e-02 +4.200000000000000178e+00 -3.934649815839189740e-02 +4.250000000000000000e+00 -2.782024409440195245e-02 +4.299999999999999822e+00 -1.441432204924694357e-02 +4.350000000000000533e+00 3.265218023979570786e-04 +4.400000000000000355e+00 1.578191918956779391e-02 +4.450000000000000178e+00 3.125449153850474310e-02 +4.500000000000000000e+00 4.598155098922993012e-02 +4.549999999999999822e+00 5.917879554031482692e-02 +4.600000000000000533e+00 7.011813343809929211e-02 +4.650000000000000355e+00 7.816915293860128566e-02 +4.700000000000000178e+00 8.281759304920717490e-02 +4.750000000000000000e+00 8.368420542837065601e-02 +4.800000000000000711e+00 8.058963229390792016e-02 +4.850000000000000533e+00 7.358342092383775290e-02 +4.900000000000000355e+00 6.295556973109264765e-02 +4.950000000000000178e+00 4.920365892816373071e-02 +5.000000000000000000e+00 3.296768579203947225e-02 +5.050000000000000711e+00 1.498984481746125537e-02 +5.100000000000000533e+00 -3.929514776377779177e-03 +5.150000000000000355e+00 -2.295628888039202148e-02 +5.200000000000000178e+00 -4.122508671583547529e-02 +5.250000000000000000e+00 -5.786692630852265096e-02 +5.300000000000000711e+00 -7.202556967489648354e-02 +5.350000000000000533e+00 -8.291373033798418724e-02 +5.400000000000000355e+00 -8.992350683799055222e-02 +5.450000000000000178e+00 -9.268088631045044712e-02 +5.500000000000000000e+00 -9.107908727781256764e-02 +5.550000000000000711e+00 -8.523224567628562287e-02 +5.600000000000000533e+00 -7.540638119559814334e-02 +5.650000000000000355e+00 -6.200189369554368751e-02 +5.700000000000000178e+00 -4.557316986790264229e-02 +5.750000000000000000e+00 -2.687967771539054654e-02 +5.800000000000000711e+00 -6.849405836761213520e-03 +5.850000000000000533e+00 1.348432009170464144e-02 +5.900000000000000355e+00 3.308903116410555345e-02 +5.950000000000000178e+00 5.102264616099140560e-02 +6.000000000000000000e+00 6.644019174355857149e-02 +6.050000000000000711e+00 7.862235679434556590e-02 +6.100000000000000533e+00 8.699505008224446556e-02 +6.150000000000000355e+00 9.115787654823545583e-02 +6.200000000000000178e+00 9.091884418325793527e-02 +6.250000000000000000e+00 8.630565955985784743e-02 +6.300000000000000711e+00 7.756464886558303573e-02 +6.350000000000000533e+00 6.514820479733918202e-02 +6.400000000000000355e+00 4.969138238178368028e-02 +6.450000000000000178e+00 3.197887233777263472e-02 +6.500000000000000000e+00 1.290412019320334898e-02 +6.550000000000000711e+00 -6.577220900253044795e-03 +6.600000000000000533e+00 -2.549764026540372874e-02 +6.650000000000000355e+00 -4.292794882956833119e-02 +6.700000000000000178e+00 -5.802370193848817304e-02 +6.750000000000000000e+00 -7.006731498927627755e-02 +6.800000000000000711e+00 -7.850324998118982101e-02 +6.850000000000000533e+00 -8.296445633348552284e-02 +6.900000000000000355e+00 -8.328877256613433089e-02 +6.950000000000000178e+00 -7.952454115866208761e-02 +7.000000000000000000e+00 -7.192526911410060397e-02 +7.050000000000000711e+00 -6.093374572850791121e-02 +7.100000000000000533e+00 -4.715640700691572235e-02 +7.150000000000000355e+00 -3.132942550937054677e-02 +7.200000000000000178e+00 -1.427907649474588481e-02 +7.250000000000000000e+00 3.121734130525496368e-03 +7.300000000000000711e+00 1.999857567972659553e-02 +7.350000000000000533e+00 3.551988516577422178e-02 +7.400000000000000355e+00 4.893837819426151425e-02 +7.450000000000000178e+00 5.962740437407831190e-02 +7.500000000000000000e+00 6.711047149618247498e-02 +7.550000000000000711e+00 7.108254557408520691e-02 +7.600000000000000533e+00 7.142219975837472978e-02 +7.650000000000000355e+00 6.819433118481182943e-02 +7.700000000000000178e+00 6.164319123625330160e-02 +7.750000000000000000e+00 5.217621235581462735e-02 +7.800000000000000711e+00 4.033975560878329258e-02 +7.850000000000000533e+00 2.678820095319883049e-02 +7.900000000000000355e+00 1.224811874907342189e-02 +7.950000000000000178e+00 -2.520517219241451713e-03 +8.000000000000000000e+00 -1.676400091345857379e-02 +8.050000000000000711e+00 -2.977333293763550007e-02 +8.099999999999999645e+00 -4.091886099415020100e-02 +8.150000000000000355e+00 -4.968110509181467016e-02 +8.200000000000001066e+00 -5.567600701799864382e-02 +8.250000000000000000e+00 -5.867189565488428737e-02 +8.300000000000000711e+00 -5.859796531610711456e-02 +8.349999999999999645e+00 -5.554400703826383595e-02 +8.400000000000000355e+00 -4.975159818027985459e-02 +8.450000000000001066e+00 -4.159742424055457022e-02 +8.500000000000000000e+00 -3.156982764134590169e-02 +8.550000000000000711e+00 -2.023998357483600477e-02 +8.599999999999999645e+00 -8.228727770454299234e-03 +8.650000000000000355e+00 3.827479727038067721e-03 +8.700000000000001066e+00 1.530936795006152158e-02 +8.750000000000000000e+00 2.564617866034528751e-02 +8.800000000000000711e+00 3.434356122040055359e-02 +8.849999999999999645e+00 4.100669307998267704e-02 +8.900000000000000355e+00 4.535758178295143384e-02 +8.950000000000001066e+00 4.724583343258997870e-02 +9.000000000000000000e+00 4.665252827378930933e-02 +9.050000000000000711e+00 4.368722123280012470e-02 +9.099999999999999645e+00 3.857880239993067423e-02 +9.150000000000000355e+00 3.166068225402760700e-02 +9.200000000000001066e+00 2.335012603780155585e-02 +9.250000000000000000e+00 1.412354756874768455e-02 +9.300000000000000711e+00 4.489379393336292295e-03 +9.349999999999999645e+00 -5.039917047772022977e-03 +9.400000000000000355e+00 -1.397513594748537973e-02 +9.450000000000001066e+00 -2.187543016706310073e-02 +9.500000000000000000e+00 -2.836992789242949453e-02 +9.550000000000000711e+00 -3.317484174443213057e-02 +9.600000000000001421e+00 -3.610552971219380819e-02 +9.650000000000000355e+00 -3.708136689927710172e-02 +9.700000000000001066e+00 -3.612505751102308704e-02 +9.750000000000000000e+00 -3.335737150533307077e-02 +9.800000000000000711e+00 -2.898714746713086307e-02 +9.850000000000001421e+00 -2.329725107638914647e-02 +9.900000000000000355e+00 -1.662736038323953461e-02 +9.950000000000001066e+00 -9.354567131054040280e-03 +1.000000000000000000e+01 -1.872848172190767161e-03 +1.005000000000000071e+01 5.427492164462625716e-03 +1.010000000000000142e+01 1.217902825553127295e-02 +1.015000000000000036e+01 1.805524144004870546e-02 +1.020000000000000107e+01 2.278621937645636947e-02 +1.025000000000000000e+01 2.617062965873059519e-02 +1.030000000000000071e+01 2.808372682602688908e-02 +1.035000000000000142e+01 2.848111496202295964e-02 +1.040000000000000036e+01 2.739821257867672971e-02 +1.045000000000000107e+01 2.494559303993540422e-02 +1.050000000000000000e+01 2.130058386675654988e-02 +1.055000000000000071e+01 1.669569129211091740e-02 +1.060000000000000142e+01 1.140456359473907520e-02 +1.065000000000000036e+01 5.726311416106130876e-03 +1.070000000000000107e+01 -3.093868396967466736e-05 +1.075000000000000000e+01 -5.566371271701224532e-03 +1.080000000000000071e+01 -1.060184066582379840e-02 +1.085000000000000142e+01 -1.489549275332028959e-02 +1.090000000000000036e+01 -1.825299994212069288e-02 +1.095000000000000107e+01 -2.053590767384608565e-02 +1.100000000000000000e+01 -2.166676060250415092e-02 +1.105000000000000071e+01 -2.163085686820075126e-02 +1.110000000000000142e+01 -2.047465442990558174e-02 +1.115000000000000036e+01 -1.830105771378189028e-02 +1.120000000000000107e+01 -1.526194409035613701e-02 +1.125000000000000000e+01 -1.154841037692294972e-02 +1.130000000000000071e+01 -7.379338145569930285e-03 +1.135000000000000142e+01 -2.988938879825488084e-03 +1.140000000000000036e+01 1.386031097737145659e-03 +1.145000000000000107e+01 5.518704446114999253e-03 +1.150000000000000000e+01 9.203547913928560725e-03 +1.155000000000000071e+01 1.226625721756981376e-02 +1.160000000000000142e+01 1.457164282457136528e-02 +1.165000000000000036e+01 1.602917070210778047e-02 +1.170000000000000107e+01 1.659595801810000507e-02 +1.175000000000000000e+01 1.627716503008924676e-02 +1.180000000000000071e+01 1.512386329484178248e-02 +1.185000000000000142e+01 1.322858963079861713e-02 +1.190000000000000036e+01 1.071890850872551058e-02 +1.195000000000000107e+01 7.749397380750424127e-03 +1.200000000000000000e+01 4.492535878338435595e-03 +1.205000000000000071e+01 1.129009678268843263e-03 +1.210000000000000142e+01 -2.162096817035537386e-03 +1.215000000000000036e+01 -5.212481968576559814e-03 +1.220000000000000107e+01 -7.872854994341652729e-03 +1.225000000000000000e+01 -1.001991949450198836e-02 +1.230000000000000071e+01 -1.156175306398889852e-02 +1.235000000000000142e+01 -1.244136833240152250e-02 +1.240000000000000036e+01 -1.263834178303833641e-02 +1.245000000000000107e+01 -1.216849891701548766e-02 +1.250000000000000000e+01 -1.108174336415266095e-02 +1.255000000000000071e+01 -9.458208599265974584e-03 +1.260000000000000142e+01 -7.402989761817498418e-03 +1.265000000000000036e+01 -5.039776205606520676e-03 +1.270000000000000107e+01 -2.503750219292607410e-03 +1.275000000000000000e+01 6.585776105391020292e-05 +1.280000000000000071e+01 2.533162767047224609e-03 +1.285000000000000142e+01 4.772588782592041869e-03 +1.290000000000000036e+01 6.675057528337164682e-03 +1.295000000000000107e+01 8.153108738198085181e-03 +1.300000000000000000e+01 9.144722221219243538e-03 +1.305000000000000071e+01 9.615685819962095301e-03 +1.310000000000000142e+01 9.560466761592516585e-03 +1.315000000000000036e+01 9.001610557677649019e-03 +1.320000000000000107e+01 7.987590027620913510e-03 +1.325000000000000000e+01 6.589308887028171718e-03 +1.330000000000000071e+01 4.895520112888521007e-03 +1.335000000000000142e+01 3.007443206001367275e-03 +1.340000000000000036e+01 1.032898863024423819e-03 +1.345000000000000107e+01 -9.197045512599944959e-04 +1.350000000000000000e+01 -2.747201441313184243e-03 +1.355000000000000071e+01 -4.357006341400599704e-03 +1.360000000000000142e+01 -5.671685938644050601e-03 +1.365000000000000036e+01 -6.632544991951675080e-03 +1.370000000000000107e+01 -7.202067296267993142e-03 +1.375000000000000000e+01 -7.365121355367849378e-03 +1.380000000000000071e+01 -7.128911471144582478e-03 +1.385000000000000142e+01 -6.521724465611306032e-03 +1.390000000000000036e+01 -5.590586389117912190e-03 +1.395000000000000107e+01 -4.397998944792539527e-03 +1.400000000000000000e+01 -3.017969208148637335e-03 diff --git a/crates/xraytsubaki/tests/testfiles/feffcu01.dat b/crates/xraytsubaki/tests/testfiles/feffcu01.dat new file mode 100644 index 0000000..bf91f2d --- /dev/null +++ b/crates/xraytsubaki/tests/testfiles/feffcu01.dat @@ -0,0 +1,71 @@ + Cu metal fcc a=3.603 Feff XX 6.10 + Abs Z=29 Rmt= 1.289 Rnm= 1.424 K shell + Pot 1 Z=29 Rmt= 1.272 Rnm= 1.392 + Gam_ch=1.761E+00 H-L exch + Mu=-5.535E+00 kf=1.806E+00 Vint=-1.796E+01 Rs_int= 2.008 + Path 1 icalc 2 + ----------------------------------------------------------------------- + 2 12.000 2.5478 2.6300 -5.53502 nleg, deg, reff, rnrmav(bohr), edge + x y z pot at# + .0000 .0000 .0000 0 29 Cu absorbing atom + .0000 -1.8016 1.8016 1 29 Cu + k real[2*phc] mag[feff] phase[feff] red factor lambda real[p]@# + .000 3.5015E+00 0.0000E+00 -5.1320E+00 9.872E-01 1.5637E+01 1.8071E+00 + .100 3.5020E+00 3.3976E-02 -5.6318E+00 9.873E-01 1.5660E+01 1.8098E+00 + .200 3.5035E+00 6.7038E-02 -6.1121E+00 9.877E-01 1.5726E+01 1.8177E+00 + .300 3.5060E+00 9.8421E-02 -6.5731E+00 9.882E-01 1.5831E+01 1.8309E+00 + .400 3.5093E+00 1.2760E-01 -7.0153E+00 9.890E-01 1.5963E+01 1.8491E+00 + .500 3.5132E+00 1.5432E-01 -7.4387E+00 9.901E-01 1.6111E+01 1.8724E+00 + .600 3.5175E+00 1.7856E-01 -7.8435E+00 9.915E-01 1.6258E+01 1.9005E+00 + .700 3.5218E+00 2.0044E-01 -8.2297E+00 9.932E-01 1.6388E+01 1.9332E+00 + .800 3.5258E+00 2.2014E-01 -8.5973E+00 9.953E-01 1.6481E+01 1.9704E+00 + .900 3.5291E+00 2.3782E-01 -8.9459E+00 9.978E-01 1.6522E+01 2.0119E+00 + 1.000 3.5311E+00 2.5358E-01 -9.2756E+00 1.001E+00 1.6496E+01 2.0575E+00 + 1.100 3.5315E+00 2.6742E-01 -9.5864E+00 1.004E+00 1.6396E+01 2.1070E+00 + 1.200 3.5296E+00 2.7930E-01 -9.8781E+00 1.008E+00 1.6217E+01 2.1605E+00 + 1.300 3.5247E+00 2.8908E-01 -1.0151E+01 1.013E+00 1.5965E+01 2.2177E+00 + 1.400 3.5164E+00 2.9658E-01 -1.0405E+01 1.018E+00 1.5649E+01 2.2786E+00 + 1.500 3.5039E+00 3.0158E-01 -1.0639E+01 1.024E+00 1.5286E+01 2.3431E+00 + 1.600 3.4866E+00 3.0387E-01 -1.0855E+01 1.030E+00 1.4895E+01 2.4113E+00 + 1.700 3.4640E+00 3.0324E-01 -1.1051E+01 1.036E+00 1.4497E+01 2.4830E+00 + 1.800 3.4354E+00 2.9952E-01 -1.1226E+01 1.043E+00 1.4117E+01 2.5584E+00 + 1.900 3.4002E+00 2.9262E-01 -1.1381E+01 1.048E+00 1.3776E+01 2.6374E+00 + 2.000 3.3581E+00 2.8254E-01 -1.1513E+01 1.053E+00 1.3497E+01 2.7201E+00 + 2.200 3.2511E+00 2.5343E-01 -1.1702E+01 1.059E+00 1.3207E+01 2.8970E+00 + 2.400 3.1362E+00 2.2097E-01 -1.1853E+01 1.230E+00 7.5606E+00 3.0883E+00 + 2.600 3.1585E+00 2.0024E-01 -1.2187E+01 1.303E+00 6.1535E+00 3.2191E+00 + 2.800 3.1545E+00 1.6820E-01 -1.2400E+01 1.326E+00 5.6163E+00 3.3579E+00 + 3.000 3.1151E+00 1.3806E-01 -1.2407E+01 1.321E+00 5.3982E+00 3.5040E+00 + 3.200 3.0550E+00 1.2236E-01 -1.2189E+01 1.304E+00 5.3389E+00 3.6566E+00 + 3.400 2.9887E+00 1.4499E-01 -1.1933E+01 1.281E+00 5.3735E+00 3.8150E+00 + 3.600 2.9054E+00 1.9428E-01 -1.1822E+01 1.256E+00 5.4705E+00 3.9784E+00 + 3.800 2.8228E+00 2.5740E-01 -1.1838E+01 1.229E+00 5.6121E+00 4.1461E+00 + 4.000 2.7282E+00 3.2303E-01 -1.1902E+01 1.206E+00 5.7879E+00 4.3177E+00 + 4.200 2.6390E+00 3.8574E-01 -1.1985E+01 1.179E+00 5.9908E+00 4.4926E+00 + 4.400 2.5352E+00 4.4624E-01 -1.2073E+01 1.157E+00 6.2162E+00 4.6704E+00 + 4.600 2.4376E+00 5.0095E-01 -1.2161E+01 1.135E+00 6.4607E+00 4.8506E+00 + 4.800 2.3422E+00 5.5041E-01 -1.2241E+01 1.115E+00 6.7219E+00 5.0329E+00 + 5.000 2.2460E+00 5.9187E-01 -1.2322E+01 1.096E+00 6.9979E+00 5.2171E+00 + 5.200 2.1454E+00 6.3037E-01 -1.2396E+01 1.079E+00 7.2872E+00 5.4030E+00 + 5.400 2.0492E+00 6.6383E-01 -1.2463E+01 1.064E+00 7.5888E+00 5.5902E+00 + 5.600 1.9507E+00 6.9100E-01 -1.2531E+01 1.050E+00 7.9017E+00 5.7787E+00 + 5.800 1.8576E+00 7.1670E-01 -1.2591E+01 1.038E+00 8.2251E+00 5.9682E+00 + 6.000 1.7615E+00 7.3666E-01 -1.2649E+01 1.027E+00 8.5584E+00 6.1587E+00 + 6.500 1.5272E+00 7.6643E-01 -1.2784E+01 1.004E+00 9.4317E+00 6.6385E+00 + 7.000 1.2998E+00 7.6974E-01 -1.2906E+01 9.857E-01 1.0357E+01 7.1222E+00 + 7.500 1.0824E+00 7.5036E-01 -1.3022E+01 9.708E-01 1.1331E+01 7.6088E+00 + 8.000 8.7724E-01 7.1645E-01 -1.3130E+01 9.579E-01 1.2348E+01 8.0978E+00 + 8.500 6.8313E-01 6.7486E-01 -1.3230E+01 9.470E-01 1.3407E+01 8.5885E+00 + 9.000 4.9775E-01 6.2811E-01 -1.3331E+01 9.381E-01 1.4505E+01 9.0807E+00 + 9.500 3.2222E-01 5.7859E-01 -1.3435E+01 9.304E-01 1.5641E+01 9.5740E+00 + 10.000 1.4825E-01 5.2908E-01 -1.3544E+01 9.222E-01 1.6812E+01 1.0068E+01 + 11.000 -1.7917E-01 4.3980E-01 -1.3760E+01 9.056E-01 1.9258E+01 1.1059E+01 + 12.000 -4.8336E-01 3.6492E-01 -1.3977E+01 8.938E-01 2.1832E+01 1.2051E+01 + 13.000 -7.6646E-01 3.0439E-01 -1.4200E+01 8.879E-01 2.4527E+01 1.3045E+01 + 14.000 -1.0250E+00 2.5553E-01 -1.4407E+01 8.831E-01 2.7338E+01 1.4041E+01 + 15.000 -1.2653E+00 2.1646E-01 -1.4623E+01 8.801E-01 3.0257E+01 1.5037E+01 + 16.000 -1.4894E+00 1.8503E-01 -1.4821E+01 8.793E-01 3.3281E+01 1.6034E+01 + 17.000 -1.6950E+00 1.5883E-01 -1.5018E+01 8.776E-01 3.6404E+01 1.7031E+01 + 18.000 -1.8893E+00 1.3866E-01 -1.5217E+01 8.772E-01 3.9623E+01 1.8028E+01 + 19.000 -2.0688E+00 1.1937E-01 -1.5388E+01 8.769E-01 4.2933E+01 1.9026E+01 + 20.000 -2.2337E+00 1.0466E-01 -1.5591E+01 8.754E-01 4.6332E+01 2.0025E+01 diff --git a/doc/plots/feff_vs_larch_01_path_builder.png b/doc/plots/feff_vs_larch_01_path_builder.png new file mode 100644 index 0000000..00202e2 Binary files /dev/null and b/doc/plots/feff_vs_larch_01_path_builder.png differ diff --git a/doc/plots/feff_vs_larch_01_path_builder.svg b/doc/plots/feff_vs_larch_01_path_builder.svg new file mode 100644 index 0000000..f0c72b7 --- /dev/null +++ b/doc/plots/feff_vs_larch_01_path_builder.svg @@ -0,0 +1,62 @@ + + + +01_path_builder: xraytsubaki vs xraylarch +RMS(diff)=7.465e-02, Max|diff|=4.009e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.4009 + +-0.2820 + +-0.1630 + +-0.0440 + +0.0749 + +0.1939 + +-0.4009 + +-0.2406 + +-0.0802 + +0.0802 + +0.2406 + +0.4009 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_01_path_builder_rspace.png b/doc/plots/feff_vs_larch_01_path_builder_rspace.png new file mode 100644 index 0000000..90d83e2 Binary files /dev/null and b/doc/plots/feff_vs_larch_01_path_builder_rspace.png differ diff --git a/doc/plots/feff_vs_larch_01_path_builder_rspace.svg b/doc/plots/feff_vs_larch_01_path_builder_rspace.svg new file mode 100644 index 0000000..b611288 --- /dev/null +++ b/doc/plots/feff_vs_larch_01_path_builder_rspace.svg @@ -0,0 +1,62 @@ + + + +01_path_builder_rspace: xraytsubaki vs xraylarch +RMS(diff)=2.173e-03, Max|diff|=1.184e-02, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5608 + +3.1215 + +4.6823 + +6.2430 + +7.8038 + +-0.0118 + +-0.0071 + +-0.0024 + +0.0024 + +0.0071 + +0.0118 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.png b/doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.png new file mode 100644 index 0000000..e7d2227 Binary files /dev/null and b/doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.svg b/doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.svg new file mode 100644 index 0000000..e13cee1 --- /dev/null +++ b/doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.svg @@ -0,0 +1,65 @@ + + + +01_path_builder_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=2.173e-03, Max|diff|=1.184e-02, contributions=1 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5608 + +3.1215 + +4.6823 + +6.2430 + +7.8038 + +-0.0118 + +-0.0071 + +-0.0024 + +0.0024 + +0.0071 + +0.0118 + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_02_multi_path_model.png b/doc/plots/feff_vs_larch_02_multi_path_model.png new file mode 100644 index 0000000..032e804 Binary files /dev/null and b/doc/plots/feff_vs_larch_02_multi_path_model.png differ diff --git a/doc/plots/feff_vs_larch_02_multi_path_model.svg b/doc/plots/feff_vs_larch_02_multi_path_model.svg new file mode 100644 index 0000000..0e903ec --- /dev/null +++ b/doc/plots/feff_vs_larch_02_multi_path_model.svg @@ -0,0 +1,62 @@ + + + +02_multi_path_model: xraytsubaki vs xraylarch +RMS(diff)=6.724e-02, Max|diff|=3.574e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.3574 + +-0.2464 + +-0.1353 + +-0.0242 + +0.0869 + +0.1979 + +-0.3574 + +-0.2145 + +-0.0715 + +0.0715 + +0.2145 + +0.3574 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_02_multi_path_model_rspace.png b/doc/plots/feff_vs_larch_02_multi_path_model_rspace.png new file mode 100644 index 0000000..b1e9eae Binary files /dev/null and b/doc/plots/feff_vs_larch_02_multi_path_model_rspace.png differ diff --git a/doc/plots/feff_vs_larch_02_multi_path_model_rspace.svg b/doc/plots/feff_vs_larch_02_multi_path_model_rspace.svg new file mode 100644 index 0000000..db9458f --- /dev/null +++ b/doc/plots/feff_vs_larch_02_multi_path_model_rspace.svg @@ -0,0 +1,62 @@ + + + +02_multi_path_model_rspace: xraytsubaki vs xraylarch +RMS(diff)=2.183e-03, Max|diff|=1.171e-02, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5658 + +3.1315 + +4.6973 + +6.2630 + +7.8288 + +-0.0117 + +-0.0070 + +-0.0023 + +0.0023 + +0.0070 + +0.0117 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.png b/doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.png new file mode 100644 index 0000000..45fe20c Binary files /dev/null and b/doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.svg b/doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.svg new file mode 100644 index 0000000..504c319 --- /dev/null +++ b/doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.svg @@ -0,0 +1,68 @@ + + + +02_multi_path_model_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=2.183e-03, Max|diff|=1.171e-02, contributions=2 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5658 + +3.1315 + +4.6973 + +6.2630 + +7.8288 + +-0.0117 + +-0.0070 + +-0.0023 + +0.0023 + +0.0070 + +0.0117 + + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + +feff0002dat_01 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_03_single_dataset_fit.png b/doc/plots/feff_vs_larch_03_single_dataset_fit.png new file mode 100644 index 0000000..4c5aaf6 Binary files /dev/null and b/doc/plots/feff_vs_larch_03_single_dataset_fit.png differ diff --git a/doc/plots/feff_vs_larch_03_single_dataset_fit.svg b/doc/plots/feff_vs_larch_03_single_dataset_fit.svg new file mode 100644 index 0000000..e8b8160 --- /dev/null +++ b/doc/plots/feff_vs_larch_03_single_dataset_fit.svg @@ -0,0 +1,62 @@ + + + +03_single_dataset_fit: xraytsubaki vs xraylarch +RMS(diff)=6.957e-02, Max|diff|=3.824e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.3824 + +-0.2687 + +-0.1549 + +-0.0412 + +0.0725 + +0.1863 + +-0.3824 + +-0.2294 + +-0.0765 + +0.0765 + +0.2294 + +0.3824 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.png b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.png new file mode 100644 index 0000000..2dd1d4a Binary files /dev/null and b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.png differ diff --git a/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.svg b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.svg new file mode 100644 index 0000000..cb69525 --- /dev/null +++ b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.svg @@ -0,0 +1,62 @@ + + + +03_single_dataset_fit_rspace: xraytsubaki vs xraylarch +RMS(diff)=1.325e-03, Max|diff|=5.629e-03, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.4682 + +2.9364 + +4.4047 + +5.8729 + +7.3411 + +-0.0056 + +-0.0034 + +-0.0011 + +0.0011 + +0.0034 + +0.0056 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.png b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.png new file mode 100644 index 0000000..c5cc49e Binary files /dev/null and b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.svg b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.svg new file mode 100644 index 0000000..8a8a10b --- /dev/null +++ b/doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.svg @@ -0,0 +1,65 @@ + + + +03_single_dataset_fit_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=1.325e-03, Max|diff|=5.629e-03, contributions=1 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.4682 + +2.9364 + +4.4047 + +5.8729 + +7.3411 + +-0.0056 + +-0.0034 + +-0.0011 + +0.0011 + +0.0034 + +0.0056 + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_04_clone_template_path.png b/doc/plots/feff_vs_larch_04_clone_template_path.png new file mode 100644 index 0000000..3c44552 Binary files /dev/null and b/doc/plots/feff_vs_larch_04_clone_template_path.png differ diff --git a/doc/plots/feff_vs_larch_04_clone_template_path.svg b/doc/plots/feff_vs_larch_04_clone_template_path.svg new file mode 100644 index 0000000..bc6b172 --- /dev/null +++ b/doc/plots/feff_vs_larch_04_clone_template_path.svg @@ -0,0 +1,62 @@ + + + +04_clone_template_path: xraytsubaki vs xraylarch +RMS(diff)=7.465e-02, Max|diff|=4.009e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.4009 + +-0.2819 + +-0.1628 + +-0.0437 + +0.0754 + +0.1945 + +-0.4009 + +-0.2406 + +-0.0802 + +0.0802 + +0.2406 + +0.4009 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_04_clone_template_path_rspace.png b/doc/plots/feff_vs_larch_04_clone_template_path_rspace.png new file mode 100644 index 0000000..665f549 Binary files /dev/null and b/doc/plots/feff_vs_larch_04_clone_template_path_rspace.png differ diff --git a/doc/plots/feff_vs_larch_04_clone_template_path_rspace.svg b/doc/plots/feff_vs_larch_04_clone_template_path_rspace.svg new file mode 100644 index 0000000..44bda2c --- /dev/null +++ b/doc/plots/feff_vs_larch_04_clone_template_path_rspace.svg @@ -0,0 +1,62 @@ + + + +04_clone_template_path_rspace: xraytsubaki vs xraylarch +RMS(diff)=1.407e-03, Max|diff|=5.832e-03, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5610 + +3.1220 + +4.6829 + +6.2439 + +7.8049 + +-0.0058 + +-0.0035 + +-0.0012 + +0.0012 + +0.0035 + +0.0058 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.png b/doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.png new file mode 100644 index 0000000..6083e30 Binary files /dev/null and b/doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.svg b/doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.svg new file mode 100644 index 0000000..0e75a3f --- /dev/null +++ b/doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.svg @@ -0,0 +1,65 @@ + + + +04_clone_template_path_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=1.407e-03, Max|diff|=5.832e-03, contributions=1 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5610 + +3.1220 + +4.6829 + +6.2439 + +7.8049 + +-0.0058 + +-0.0035 + +-0.0012 + +0.0012 + +0.0035 + +0.0058 + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_05_clone_template_ff2chi.png b/doc/plots/feff_vs_larch_05_clone_template_ff2chi.png new file mode 100644 index 0000000..cd986ea Binary files /dev/null and b/doc/plots/feff_vs_larch_05_clone_template_ff2chi.png differ diff --git a/doc/plots/feff_vs_larch_05_clone_template_ff2chi.svg b/doc/plots/feff_vs_larch_05_clone_template_ff2chi.svg new file mode 100644 index 0000000..ab00735 --- /dev/null +++ b/doc/plots/feff_vs_larch_05_clone_template_ff2chi.svg @@ -0,0 +1,62 @@ + + + +05_clone_template_ff2chi: xraytsubaki vs xraylarch +RMS(diff)=6.724e-02, Max|diff|=3.574e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.3574 + +-0.2463 + +-0.1351 + +-0.0239 + +0.0873 + +0.1985 + +-0.3574 + +-0.2145 + +-0.0715 + +0.0715 + +0.2145 + +0.3574 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.png b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.png new file mode 100644 index 0000000..be9364f Binary files /dev/null and b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.png differ diff --git a/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.svg b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.svg new file mode 100644 index 0000000..0748d01 --- /dev/null +++ b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.svg @@ -0,0 +1,62 @@ + + + +05_clone_template_ff2chi_rspace: xraytsubaki vs xraylarch +RMS(diff)=1.262e-03, Max|diff|=5.003e-03, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5658 + +3.1316 + +4.6973 + +6.2631 + +7.8289 + +-0.0050 + +-0.0030 + +-0.0010 + +0.0010 + +0.0030 + +0.0050 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.png b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.png new file mode 100644 index 0000000..0770764 Binary files /dev/null and b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.svg b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.svg new file mode 100644 index 0000000..36814e8 --- /dev/null +++ b/doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.svg @@ -0,0 +1,68 @@ + + + +05_clone_template_ff2chi_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=1.262e-03, Max|diff|=5.003e-03, contributions=2 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5658 + +3.1316 + +4.6973 + +6.2631 + +7.8289 + +-0.0050 + +-0.0030 + +-0.0010 + +0.0010 + +0.0030 + +0.0050 + + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + +feff0002dat_01 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_06_multi_dataset_ds1.png b/doc/plots/feff_vs_larch_06_multi_dataset_ds1.png new file mode 100644 index 0000000..2204a9e Binary files /dev/null and b/doc/plots/feff_vs_larch_06_multi_dataset_ds1.png differ diff --git a/doc/plots/feff_vs_larch_06_multi_dataset_ds1.svg b/doc/plots/feff_vs_larch_06_multi_dataset_ds1.svg new file mode 100644 index 0000000..434b44d --- /dev/null +++ b/doc/plots/feff_vs_larch_06_multi_dataset_ds1.svg @@ -0,0 +1,62 @@ + + + +06_multi_dataset_ds1: xraytsubaki vs xraylarch +RMS(diff)=7.465e-02, Max|diff|=4.009e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.4009 + +-0.2819 + +-0.1628 + +-0.0437 + +0.0754 + +0.1945 + +-0.4009 + +-0.2406 + +-0.0802 + +0.0802 + +0.2406 + +0.4009 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.png b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.png new file mode 100644 index 0000000..1d6c051 Binary files /dev/null and b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.png differ diff --git a/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.svg b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.svg new file mode 100644 index 0000000..72f928c --- /dev/null +++ b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.svg @@ -0,0 +1,62 @@ + + + +06_multi_dataset_ds1_rspace: xraytsubaki vs xraylarch +RMS(diff)=1.392e-03, Max|diff|=5.781e-03, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5610 + +3.1219 + +4.6829 + +6.2439 + +7.8048 + +-0.0058 + +-0.0035 + +-0.0012 + +0.0012 + +0.0035 + +0.0058 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.png b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.png new file mode 100644 index 0000000..61efa61 Binary files /dev/null and b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.svg b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.svg new file mode 100644 index 0000000..948c071 --- /dev/null +++ b/doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.svg @@ -0,0 +1,65 @@ + + + +06_multi_dataset_ds1_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=1.392e-03, Max|diff|=5.781e-03, contributions=1 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5610 + +3.1219 + +4.6829 + +6.2439 + +7.8048 + +-0.0058 + +-0.0035 + +-0.0012 + +0.0012 + +0.0035 + +0.0058 + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_07_multi_dataset_ds2.png b/doc/plots/feff_vs_larch_07_multi_dataset_ds2.png new file mode 100644 index 0000000..743c2cb Binary files /dev/null and b/doc/plots/feff_vs_larch_07_multi_dataset_ds2.png differ diff --git a/doc/plots/feff_vs_larch_07_multi_dataset_ds2.svg b/doc/plots/feff_vs_larch_07_multi_dataset_ds2.svg new file mode 100644 index 0000000..2397f92 --- /dev/null +++ b/doc/plots/feff_vs_larch_07_multi_dataset_ds2.svg @@ -0,0 +1,62 @@ + + + +07_multi_dataset_ds2: xraytsubaki vs xraylarch +RMS(diff)=6.724e-02, Max|diff|=3.574e-01, contributions=0 + + +0.0500 + + +2.8400 + + +5.6300 + + +8.4200 + + +11.2100 + + +14.0000 + +-0.3574 + +-0.2463 + +-0.1351 + +-0.0239 + +0.0873 + +0.1985 + +-0.3574 + +-0.2145 + +-0.0715 + +0.0715 + +0.2145 + +0.3574 + + + + + +χ(k) +diff +k (Å⁻¹) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.png b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.png new file mode 100644 index 0000000..6d2e398 Binary files /dev/null and b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.png differ diff --git a/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.svg b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.svg new file mode 100644 index 0000000..f6b4dae --- /dev/null +++ b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.svg @@ -0,0 +1,62 @@ + + + +07_multi_dataset_ds2_rspace: xraytsubaki vs xraylarch +RMS(diff)=1.275e-03, Max|diff|=5.031e-03, contributions=0 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5658 + +3.1316 + +4.6974 + +6.2632 + +7.8290 + +-0.0050 + +-0.0030 + +-0.0010 + +0.0010 + +0.0030 + +0.0050 + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.png b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.png new file mode 100644 index 0000000..4be565f Binary files /dev/null and b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.png differ diff --git a/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.svg b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.svg new file mode 100644 index 0000000..46d7165 --- /dev/null +++ b/doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.svg @@ -0,0 +1,68 @@ + + + +07_multi_dataset_ds2_rspace_contrib: xraytsubaki vs xraylarch +RMS(diff)=1.275e-03, Max|diff|=5.031e-03, contributions=2 + + +0.0000 + + +1.9942 + + +3.9884 + + +5.9825 + + +7.9767 + + +9.9709 + +0.0000 + +1.5658 + +3.1316 + +4.6974 + +6.2632 + +7.8290 + +-0.0050 + +-0.0030 + +-0.0010 + +0.0010 + +0.0030 + +0.0050 + + + + + + + +|χ(R)| +diff +R (Å) + +xraytsubaki total + +xraylarch total + +diff + +feffcu01dat_00 + +feff0002dat_01 + \ No newline at end of file diff --git a/doc/plots/feff_vs_larch_data/01_path_builder.csv b/doc/plots/feff_vs_larch_data/01_path_builder.csv new file mode 100644 index 0000000..d7cbc4b --- /dev/null +++ b/doc/plots/feff_vs_larch_data/01_path_builder.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.294014545590028e-1,3.294014545590028e-1 +1.000000000000000e-1,-0.000000000000000e0,-3.325857487366470e-1,3.325857487366470e-1 +1.500000000000000e-1,-0.000000000000000e0,-3.357700429142912e-1,3.357700429142912e-1 +2.000000000000000e-1,-0.000000000000000e0,-3.401532904633558e-1,3.401532904633558e-1 +2.500000000000000e-1,-0.000000000000000e0,-3.456560420239568e-1,3.456560420239568e-1 +3.000000000000000e-1,-0.000000000000000e0,-3.521695009003528e-1,3.521695009003528e-1 +3.500000000000000e-1,-0.000000000000000e0,-3.595505950839698e-1,3.595505950839698e-1 +4.000000000000000e-1,-0.000000000000000e0,-3.676159293232869e-1,3.676159293232869e-1 +4.500000000000000e-1,-0.000000000000000e0,-3.761342857813328e-1,3.761342857813328e-1 +5.000000000000000e-1,-0.000000000000000e0,-3.848161215226475e-1,3.848161215226475e-1 +5.500000000000000e-1,0.000000000000000e0,-3.932912407666668e-1,3.932912407666668e-1 +6.000000000000001e-1,0.000000000000000e0,-4.009380735867983e-1,4.009380735867983e-1 +6.500000000000000e-1,-3.915853054277744e-1,-3.926716466366216e-1,1.086341208847208e-3 +7.000000000000001e-1,-3.802944970001493e-1,-3.813331402971081e-1,1.038643296958852e-3 +7.500000000000000e-1,-3.674290524831365e-1,-3.683470245398694e-1,9.179720567329408e-4 +8.000000000000000e-1,-3.529421504134531e-1,-3.535384017595220e-1,5.962513460689434e-4 +8.500000000000001e-1,-3.366121565912450e-1,-3.367438066643357e-1,1.316500730906833e-4 +9.000000000000000e-1,-3.171093622540004e-1,-3.178195023572455e-1,7.101401032451049e-4 +9.500000000000001e-1,-2.960070141732363e-1,-2.966649207098992e-1,6.579065366629222e-4 +1.000000000000000e0,-2.730420065322258e-1,-2.731786232202901e-1,1.366166880643060e-4 +1.050000000000000e0,-2.465828189164593e-1,-2.473011706388375e-1,7.183517223782465e-4 +1.100000000000000e0,-2.187062008047924e-1,-2.191364633970085e-1,4.302625922160963e-4 +1.150000000000000e0,-1.882868887824480e-1,-1.888065267837186e-1,5.196380012706392e-4 +1.200000000000000e0,-1.557825913344832e-1,-1.564444046653403e-1,6.618133308571861e-4 +1.250000000000000e0,-1.222271532310840e-1,-1.224036763166079e-1,1.765230855238914e-4 +1.300000000000000e0,-8.652203757219393e-2,-8.715983524047755e-2,6.377976682836184e-4 +1.350000000000000e0,-5.110748419092499e-2,-5.124494511630743e-2,1.374609253824363e-4 +1.400000000000000e0,-1.475831949537142e-2,-1.526751063079347e-2,5.091911354220529e-4 +1.450000000000000e0,2.037900469720176e-2,2.009284886755197e-2,2.861558296497826e-4 +1.500000000000000e0,5.447784211421495e-2,5.411256444340888e-2,3.652776708060676e-4 +1.550000000000000e0,8.637820832842411e-2,8.611033042562016e-2,2.678779028039424e-4 +1.600000000000000e0,1.154189773414290e-1,1.152681180423988e-1,1.508592990302760e-4 +1.650000000000000e0,1.407961117801618e-1,1.406728273556015e-1,1.232844245603049e-4 +1.700000000000000e0,1.616944419509563e-1,1.616641557189680e-1,3.028623198830793e-5 +1.750000000000000e0,1.778080413309615e-1,1.777615901639631e-1,4.645116699839025e-5 +1.800000000000000e0,1.885906396829412e-1,1.885934374458280e-1,-2.797762886808108e-6 +1.850000000000000e0,1.937639274614610e-1,1.939096951849520e-1,-1.457677234910637e-4 +1.900000000000000e0,1.934474172288985e-1,1.934543094537796e-1,-6.892224881149822e-6 +1.950000000000000e0,1.869415542228487e-1,1.872181652685968e-1,-2.766110457481097e-4 +2.000000000000000e0,1.755518959497113e-1,1.756076414101513e-1,-5.574546043998763e-5 +2.050000000000000e0,1.589378080020292e-1,1.592074863076734e-1,-2.696783056441998e-4 +2.100000000000000e0,1.384453626164553e-1,1.387543676633363e-1,-3.090050468809447e-4 +2.150000000000000e0,1.135981670044739e-1,1.149897343852503e-1,-1.391567380776448e-3 +2.200000000000000e0,8.722760249214880e-2,8.875688172901036e-2,-1.529279236861567e-3 +2.250000000000000e0,6.046780845036538e-2,6.126408875565007e-2,-7.962803052846898e-4 +2.300000000000000e0,3.386948035275666e-2,3.383069858273713e-2,3.878177001953587e-5 +2.350000000000000e0,8.317470937088524e-3,8.001530980010461e-3,3.159399570780621e-4 +2.400000000000000e0,-1.379241349793018e-2,-1.419485949073218e-2,4.024459928019999e-4 +2.450000000000000e0,-3.093239483209223e-2,-3.094240168596014e-2,1.000685386791378e-5 +2.500000000000000e0,-4.316433233656559e-2,-4.224256148900268e-2,-9.217708475629111e-4 +2.550000000000000e0,-5.274710579688240e-2,-5.031380519059944e-2,-2.433300606282961e-3 +2.600000000000000e0,-5.901855719715893e-2,-5.670952968803743e-2,-2.309027509121500e-3 +2.650000000000000e0,-6.207853765685667e-2,-6.135428800005268e-2,-7.242496568039894e-4 +2.700000000000000e0,-6.264545903348590e-2,-6.305081412694059e-2,4.053550934546984e-4 +2.750000000000000e0,-6.056403835571495e-2,-6.127376324439794e-2,7.097248886829902e-4 +2.800000000000000e0,-5.595405938891754e-2,-5.652561559186974e-2,5.715562029521976e-4 +2.850000000000000e0,-4.940609936712565e-2,-4.955663879173896e-2,1.505394246133079e-4 +2.900000000000000e0,-4.110047197269584e-2,-4.113529316986852e-2,3.482119717267834e-5 +2.950000000000000e0,-3.128803671742777e-2,-3.168053048321991e-2,3.924937657921457e-4 +3.000000000000000e0,-2.088808424086482e-2,-2.146831418650914e-2,5.802299456443213e-4 +3.050000000000000e0,-1.069896640466857e-2,-1.087946208821198e-2,1.804956835434052e-4 +3.100000000000000e0,1.605852549992616e-5,-4.587705779771952e-4,4.748291034771214e-4 +3.150000000000000e0,9.919808535598221e-3,9.061277594673041e-3,8.585309409251795e-4 +3.200000000000000e0,1.791475206324469e-2,1.708921245437348e-2,8.255396088712105e-4 +3.250000000000000e0,2.347986619577907e-2,2.332543994108142e-2,1.544262546976510e-4 +3.300000000000000e0,2.838156668674029e-2,2.767369495791551e-2,7.078717288247806e-4 +3.350000000000000e0,3.103256448487451e-2,2.994275657939049e-2,1.089807905484026e-3 +3.400000000000000e0,3.076554690024546e-2,2.989024823516422e-2,8.752986650812401e-4 +3.450000000000000e0,2.748304472745677e-2,2.740457688441883e-2,7.846784303793680e-5 +3.500000000000000e0,2.327711757253738e-2,2.261174459581147e-2,6.653729767259163e-4 +3.550000000000000e0,1.671256792164662e-2,1.579795282183295e-2,9.146150998136648e-4 +3.600000000000000e0,7.977102789516898e-3,7.323249415895688e-3,6.538533736212097e-4 +3.650000000000000e0,-2.370471253104306e-3,-2.380798998970953e-3,1.032774586664760e-5 +3.700000000000000e0,-1.249265715085654e-2,-1.281254498424808e-2,3.198878333915377e-4 +3.750000000000000e0,-2.305137632221002e-2,-2.339859823437767e-2,3.472219121676522e-4 +3.800000000000000e0,-3.334596028124870e-2,-3.353472147970279e-2,1.887611984540891e-4 +3.850000000000000e0,-4.261368573261622e-2,-4.262032967414725e-2,6.643941531034314e-6 +3.900000000000000e0,-4.998070863172447e-2,-5.008641634667832e-2,1.057077149538496e-4 +3.950000000000000e0,-5.531067338967915e-2,-5.541970665377990e-2,1.090332641007496e-4 +4.000000000000000e0,-5.811884856629419e-2,-5.818284346494816e-2,6.399489865397540e-5 +4.050000000000000e0,-5.802798461471789e-2,-5.803659160936112e-2,8.606994643230170e-6 +4.100000000000001e0,-5.475241926834878e-2,-5.478653800353910e-2,3.411873519031106e-5 +4.150000000000000e0,-4.849677003306710e-2,-4.847398543699171e-2,-2.278459607538835e-5 +4.200000000000000e0,-3.940903758574368e-2,-3.934649815839190e-2,-6.253942735178625e-5 +4.250000000000000e0,-2.783480279646578e-2,-2.782024409440195e-2,-1.455870206382506e-5 +4.300000000000000e0,-1.449485448772742e-2,-1.441432204924694e-2,-8.053243848047190e-5 +4.350000000000001e0,2.447228060772750e-4,3.265218023979571e-4,-8.179899632068210e-5 +4.400000000000000e0,1.573604618611214e-2,1.578191918956779e-2,-4.587300345565773e-5 +4.450000000000000e0,3.126372755076821e-2,3.125449153850474e-2,9.236012263470761e-6 +4.500000000000000e0,4.600106048923661e-2,4.598155098922993e-2,1.950950000667584e-5 +4.550000000000000e0,5.917239738897542e-2,5.917879554031483e-2,-6.398151339410962e-6 +4.600000000000001e0,7.009712254133452e-2,7.011813343809929e-2,-2.101089676477541e-5 +4.650000000000000e0,7.815141002623074e-2,7.816915293860129e-2,-1.774291237054137e-5 +4.700000000000000e0,8.271132133073993e-2,8.281759304920717e-2,-1.062717184672490e-4 +4.750000000000000e0,8.353745464336736e-2,8.368420542837066e-2,-1.467507850032995e-4 +4.800000000000001e0,8.049221770303266e-2,8.058963229390792e-2,-9.741459087525550e-5 +4.850000000000001e0,7.356016201376378e-2,7.358342092383775e-2,-2.325891007397274e-5 +4.900000000000000e0,6.289892863829247e-2,6.295556973109265e-2,-5.664109280018037e-5 +4.950000000000000e0,4.917065938372108e-2,4.920365892816373e-2,-3.299954444264952e-5 +5.000000000000000e0,3.296274719579328e-2,3.296768579203947e-2,-4.938596246187310e-6 +5.050000000000001e0,1.496764495084400e-2,1.498984481746126e-2,-2.219986661725765e-5 +5.100000000000001e0,-4.020496408920863e-3,-3.929514776377779e-3,-9.098163254308341e-5 +5.150000000000000e0,-2.306708491689408e-2,-2.295628888039202e-2,-1.107960365020547e-4 +5.200000000000000e0,-4.129003870601811e-2,-4.122508671583548e-2,-6.495199018263786e-5 +5.250000000000000e0,-5.786714096211528e-2,-5.786692630852265e-2,-2.146535926297877e-7 +5.300000000000001e0,-7.197655048888957e-2,-7.202556967489648e-2,4.901918600691557e-5 +5.350000000000001e0,-8.281704981016172e-2,-8.291373033798419e-2,9.668052782246805e-5 +5.400000000000000e0,-8.985295321463024e-2,-8.992350683799055e-2,7.055362336030879e-5 +5.450000000000000e0,-9.265904430254911e-2,-9.268088631045045e-2,2.184200790134039e-5 +5.500000000000000e0,-9.102624864423704e-2,-9.107908727781257e-2,5.283863357552487e-5 +5.550000000000001e0,-8.517161260633160e-2,-8.523224567628562e-2,6.063306995401918e-5 +5.600000000000001e0,-7.536111353083387e-2,-7.540638119559814e-2,4.526766476427302e-5 +5.650000000000000e0,-6.196304722450949e-2,-6.200189369554369e-2,3.884647103419986e-5 +5.700000000000000e0,-4.546743352428891e-2,-4.557316986790264e-2,1.057363436137368e-4 +5.750000000000000e0,-2.678817172767015e-2,-2.687967771539055e-2,9.150598772040067e-5 +5.800000000000001e0,-6.819761695018653e-3,-6.849405836761214e-3,2.964414174256094e-5 +5.850000000000001e0,1.346415056336587e-2,1.348432009170464e-2,-2.016952833877247e-5 +5.900000000000000e0,3.303332671192397e-2,3.308903116410555e-2,-5.570445218158054e-5 +5.950000000000000e0,5.096466205101085e-2,5.102264616099141e-2,-5.798410998055642e-5 +6.000000000000000e0,6.641053714943662e-2,6.644019174355857e-2,-2.965459412195004e-5 +6.050000000000001e0,7.860839871274450e-2,7.862235679434557e-2,-1.395808160106760e-5 +6.100000000000001e0,8.690171624582563e-2,8.699505008224447e-2,-9.333383641883797e-5 +6.150000000000000e0,9.095157956570786e-2,9.115787654823546e-2,-2.062969825275957e-4 +6.200000000000000e0,9.060111852482100e-2,9.091884418325794e-2,-3.177256584369348e-4 +6.250000000000000e0,8.590740760084239e-2,8.630565955985785e-2,-3.982519590154526e-4 +6.300000000000001e0,7.713660689392536e-2,7.756464886558304e-2,-4.280419716576750e-4 +6.350000000000001e0,6.474900991872820e-2,6.514820479733918e-2,-3.991948786109811e-4 +6.400000000000000e0,4.937483439566361e-2,4.969138238178368e-2,-3.165479861200679e-4 +6.450000000000000e0,3.178203311449215e-2,3.197887233777263e-2,-1.968392232804886e-4 +6.500000000000000e0,1.283777531842578e-2,1.290412019320335e-2,-6.634487477757099e-5 +6.550000000000001e0,-6.603313729778812e-3,-6.577220900253045e-3,-2.609282952576678e-5 +6.600000000000001e0,-2.553802878659509e-2,-2.549764026540373e-2,-4.038852119136321e-5 +6.650000000000000e0,-4.293203784060443e-2,-4.292794882956833e-2,-4.089011036094437e-6 +6.700000000000000e0,-5.796111608760502e-2,-5.802370193848817e-2,6.258585088315255e-5 +6.750000000000000e0,-6.993011956794722e-2,-7.006731498927628e-2,1.371954213290616e-4 +6.800000000000001e0,-7.830493195423731e-2,-7.850324998118982e-2,1.983180269525125e-4 +6.850000000000001e0,-8.273595629581884e-2,-8.296445633348552e-2,2.285000376666818e-4 +6.900000000000000e0,-8.307214283774553e-2,-8.328877256613433e-2,2.166297283888036e-4 +6.950000000000000e0,-7.936502855221324e-2,-7.952454115866209e-2,1.595126064488500e-4 +7.000000000000000e0,-7.186276550301263e-2,-7.192526911410060e-2,6.250361108797731e-5 +7.050000000000001e0,-6.088443514286736e-2,-6.093374572850791e-2,4.931058564055374e-5 +7.100000000000001e0,-4.702535782772273e-2,-4.715640700691572e-2,1.310491791929880e-4 +7.150000000000000e0,-3.115229759320708e-2,-3.132942550937055e-2,1.771279161634637e-4 +7.200000000000000e0,-1.409304754687792e-2,-1.427907649474588e-2,1.860289478679677e-4 +7.250000000000000e0,3.284167167401071e-3,3.121734130525496e-3,1.624330368755742e-4 +7.300000000000001e0,2.011470087046009e-2,1.999857567972660e-2,1.161251907334931e-4 +7.350000000000001e0,3.558032188971767e-2,3.551988516577422e-2,6.043672394345084e-5 +7.400000000000000e0,4.894876054569523e-2,4.893837819426151e-2,1.038235143371175e-5 +7.450000000000000e0,5.960807461009695e-2,5.962740437407831e-2,-1.932976398136277e-5 +7.500000000000000e0,6.709423972979345e-2,6.711047149618247e-2,-1.623176638902712e-5 +7.550000000000001e0,7.107074067874039e-2,7.108254557408521e-2,-1.180489534481632e-5 +7.600000000000001e0,7.136948955177468e-2,7.142219975837473e-2,-5.271020660005399e-5 +7.650000000000000e0,6.809010179893901e-2,6.819433118481183e-2,-1.042293858728172e-4 +7.700000000000000e0,6.149106229398735e-2,6.164319123625330e-2,-1.521289422659541e-4 +7.750000000000000e0,5.199121589066838e-2,5.217621235581463e-2,-1.849964651462477e-4 +7.800000000000001e0,4.014434099767430e-2,4.033975560878329e-2,-1.954146111089877e-4 +7.850000000000001e0,2.660756737590048e-2,2.678820095319883e-2,-1.806335772983475e-4 +7.900000000000000e0,1.210540951576728e-2,1.224811874907342e-2,-1.427092333061465e-4 +7.950000000000000e0,-2.608637996490844e-3,-2.520517219241452e-3,-8.812077724939258e-5 +8.000000000000000e0,-1.679092587850236e-2,-1.676400091345857e-2,-2.692496504378555e-5 +8.050000000000001e0,-2.979279781048163e-2,-2.977333293763550e-2,-1.946487284613246e-5 +8.100000000000000e0,-4.095445907100383e-2,-4.091886099415020e-2,-3.559807685363237e-5 +8.150000000000000e0,-4.971163896902608e-2,-4.968110509181467e-2,-3.053387721140693e-5 +8.200000000000001e0,-5.568777998254047e-2,-5.567600701799864e-2,-1.177296454182158e-5 +8.250000000000000e0,-5.865966713692173e-2,-5.867189565488429e-2,1.222851796255781e-5 +8.300000000000001e0,-5.856438801471094e-2,-5.859796531610711e-2,3.357730139617876e-5 +8.350000000000000e0,-5.549782667412241e-2,-5.554400703826384e-2,4.618036414142518e-5 +8.400000000000000e0,-4.970502027515417e-2,-4.975159818027985e-2,4.657790512568871e-5 +8.450000000000001e0,-4.156311936551006e-2,-4.159742424055457e-2,3.430487504450797e-5 +8.500000000000000e0,-3.155805408533852e-2,-3.156982764134590e-2,1.177355600738561e-5 +8.550000000000001e0,-2.023021746998942e-2,-2.023998357483600e-2,9.766104846587603e-6 +8.600000000000000e0,-8.204489188075920e-3,-8.228727770454299e-3,2.423858237837924e-5 +8.650000000000000e0,3.861127368449841e-3,3.827479727038068e-3,3.364764141177345e-5 +8.700000000000001e0,1.534630870542263e-2,1.530936795006152e-2,3.694075536110619e-5 +8.750000000000000e0,2.568030976397370e-2,2.564617866034529e-2,3.413110362841115e-5 +8.800000000000001e0,3.436990216909578e-2,3.434356122040055e-2,2.634094869522624e-5 +8.850000000000000e0,4.102239888090764e-2,4.100669307998268e-2,1.570580092496304e-5 +8.900000000000000e0,4.536272254250045e-2,4.535758178295143e-2,5.140759549014662e-6 +8.950000000000001e0,4.724381945042722e-2,4.724583343258998e-2,-2.013982162756001e-6 +9.000000000000000e0,4.665009130873107e-2,4.665252827378931e-2,-2.436965058236207e-6 +9.050000000000001e0,4.368532757448981e-2,4.368722123280012e-2,-1.893658310311852e-6 +9.100000000000000e0,3.857311707975175e-2,3.857880239993067e-2,-5.685320178923370e-6 +9.150000000000000e0,3.165264458636769e-2,3.166068225402761e-2,-8.037667659915870e-6 +9.200000000000001e0,2.334235672396818e-2,2.335012603780156e-2,-7.769313833380642e-6 +9.250000000000000e0,1.411849922075456e-2,1.412354756874768e-2,-5.048347993124452e-6 +9.300000000000001e0,4.488365786972021e-3,4.489379393336292e-3,-1.013606364271523e-6 +9.350000000000000e0,-5.037166228100863e-3,-5.039917047772023e-3,2.750819671160087e-6 +9.400000000000000e0,-1.397034817023456e-2,-1.397513594748538e-2,4.787777250818415e-6 +9.450000000000001e0,-2.187114441220226e-2,-2.187543016706310e-2,4.285754860836738e-6 +9.500000000000000e0,-2.836847164990459e-2,-2.836992789242949e-2,1.456242524906781e-6 +9.550000000000001e0,-3.317619666118283e-2,-3.317484174443213e-2,-1.354916750698210e-6 +9.600000000000001e0,-3.611235604039846e-2,-3.610552971219381e-2,-6.826328204652399e-6 +9.650000000000000e0,-3.709461156108980e-2,-3.708136689927710e-2,-1.324466181269746e-5 +9.700000000000001e0,-3.614276393101642e-2,-3.612505751102309e-2,-1.770641999333106e-5 +9.750000000000000e0,-3.337585562340926e-2,-3.335737150533307e-2,-1.848411807618688e-5 +9.800000000000001e0,-2.900242096955690e-2,-2.898714746713086e-2,-1.527350242603448e-5 +9.850000000000001e0,-2.330641813911669e-2,-2.329725107638915e-2,-9.167062727542807e-6 +9.900000000000000e0,-1.662973438604077e-2,-1.662736038323953e-2,-2.374002801230901e-6 +9.950000000000001e0,-9.352304493798466e-3,-9.354567131054040e-3,2.262637255574101e-6 +1.000000000000000e1,-1.870970731914900e-3,-1.872848172190767e-3,1.877440275866935e-6 +1.005000000000000e1,5.448591370752241e-3,5.427492164462626e-3,2.109920628961485e-5 +1.010000000000000e1,1.223612862615366e-2,1.217902825553127e-2,5.710037062238611e-5 +1.015000000000000e1,1.814625027293358e-2,1.805524144004871e-2,9.100883288487918e-5 +1.020000000000000e1,2.290397044108777e-2,2.278621937645637e-2,1.177510646314037e-4 +1.025000000000000e1,2.630433953430620e-2,2.617062965873060e-2,1.337098755756008e-4 +1.030000000000000e1,2.822064616991751e-2,2.808372682602689e-2,1.369193438906235e-4 +1.035000000000000e1,2.860820781302250e-2,2.848111496202296e-2,1.270928509995439e-4 +1.040000000000000e1,2.750370840464247e-2,2.739821257867673e-2,1.054958259657443e-4 +1.045000000000000e1,2.502027894869243e-2,2.494559303993540e-2,7.468590875702244e-5 +1.050000000000000e1,2.133873580175927e-2,2.130058386675655e-2,3.815193500272124e-5 +1.055000000000000e1,1.669558028088094e-2,1.669569129211092e-2,-1.110112299758381e-7 +1.060000000000000e1,1.136851313538917e-2,1.140456359473908e-2,-3.605045934990461e-5 +1.065000000000000e1,5.660321793150190e-3,5.726311416106131e-3,-6.598962295594098e-5 +1.070000000000000e1,-1.179468582812607e-4,-3.093868396967467e-5,-8.700817431158607e-5 +1.075000000000000e1,-5.663611209345789e-3,-5.566371271701225e-3,-9.723993764456425e-5 +1.080000000000000e1,-1.069790510717593e-2,-1.060184066582380e-2,-9.606444135213353e-5 +1.085000000000000e1,-1.497967113330553e-2,-1.489549275332029e-2,-8.417837998524018e-5 +1.090000000000000e1,-1.831654279564003e-2,-1.825299994212069e-2,-6.354285351934177e-5 +1.095000000000000e1,-2.057311975095585e-2,-2.053590767384609e-2,-3.721207710976823e-5 +1.100000000000000e1,-2.167581902189752e-2,-2.166676060250415e-2,-9.058419393373485e-6 +1.105000000000000e1,-2.164681044891285e-2,-2.163085686820075e-2,-1.595358071209904e-5 +1.110000000000000e1,-2.050812984088478e-2,-2.047465442990558e-2,-3.347541097920015e-5 +1.115000000000000e1,-1.834285472928868e-2,-1.830105771378189e-2,-4.179701550678649e-5 +1.120000000000000e1,-1.530234851461929e-2,-1.526194409035614e-2,-4.040442426315148e-5 +1.125000000000000e1,-1.157837636829751e-2,-1.154841037692295e-2,-2.996599137456216e-5 +1.130000000000000e1,-7.391487859104086e-3,-7.379338145569930e-3,-1.214971353415573e-5 +1.135000000000000e1,-2.978302131431121e-3,-2.988938879825488e-3,1.063674839436694e-5 +1.140000000000000e1,1.421587333262895e-3,1.386031097737146e-3,3.555623552574947e-5 +1.145000000000000e1,5.578377216685236e-3,5.518704446114999e-3,5.967277057023716e-5 +1.150000000000000e1,9.283820769752016e-3,9.203547913928561e-3,8.027285582345479e-5 +1.155000000000000e1,1.236140676637873e-2,1.226625721756981e-2,9.514954880891421e-5 +1.160000000000000e1,1.467446840590377e-2,1.457164282457137e-2,1.028255813323997e-4 +1.165000000000000e1,1.613186828967063e-2,1.602917070210778e-2,1.026975875628514e-4 +1.170000000000000e1,1.669104855071762e-2,1.659595801810001e-2,9.509053261761921e-5 +1.175000000000000e1,1.635838417226359e-2,1.627716503008925e-2,8.121914217433870e-5 +1.180000000000000e1,1.518692424018330e-2,1.512386329484178e-2,6.306094534152054e-5 +1.185000000000000e1,1.327174250965681e-2,1.322858963079862e-2,4.315287885819051e-5 +1.190000000000000e1,1.074323823202881e-2,1.071890850872551e-2,2.432972330330095e-5 +1.195000000000000e1,7.758824872022224e-3,7.749397380750424e-3,9.427491271800370e-6 +1.200000000000000e1,4.493513789763925e-3,4.492535878338436e-3,9.779114254889962e-7 +1.205000000000000e1,1.124306609205682e-3,1.129009678268843e-3,-4.703069063161655e-6 +1.210000000000000e1,-2.179183611452384e-3,-2.162096817035537e-3,-1.708679441684647e-5 +1.215000000000000e1,-5.245748678240382e-3,-5.212481968576560e-3,-3.326670966382218e-5 +1.220000000000000e1,-7.922831089050331e-3,-7.872854994341653e-3,-4.997609470867859e-5 +1.225000000000000e1,-1.008411754443125e-2,-1.001991949450199e-2,-6.419804992925833e-5 +1.230000000000000e1,-1.163526329581228e-2,-1.156175306398890e-2,-7.351023182337879e-5 +1.235000000000000e1,-1.251770293001261e-2,-1.244136833240152e-2,-7.633459761108297e-5 +1.240000000000000e1,-1.271041458627794e-2,-1.263834178303834e-2,-7.207280323960272e-5 +1.245000000000000e1,-1.222961921155182e-2,-1.216849891701549e-2,-6.112029453633587e-5 +1.250000000000000e1,-1.112650787330656e-2,-1.108174336415266e-2,-4.476450915389882e-5 +1.255000000000000e1,-9.483192469679524e-3,-9.458208599265975e-3,-2.498387041354952e-5 +1.260000000000000e1,-7.407163211328423e-3,-7.402989761817498e-3,-4.173449510924687e-6 +1.265000000000000e1,-5.024605767287967e-3,-5.039776205606521e-3,1.517043831855344e-5 +1.270000000000000e1,-2.472978893981097e-3,-2.503750219292607e-3,3.077132531151055e-5 +1.275000000000000e1,1.067220896431099e-4,6.585776105391020e-5,4.086432858919971e-5 +1.280000000000000e1,2.577589915947284e-3,2.533162767047225e-3,4.442714890005948e-5 +1.285000000000000e1,4.813914295617686e-3,4.772588782592042e-3,4.132551302564458e-5 +1.290000000000000e1,6.707414595635171e-3,6.675057528337165e-3,3.235706729800680e-5 +1.295000000000000e1,8.172296718785922e-3,8.153108738198085e-3,1.918798058783699e-5 +1.300000000000000e1,9.148909472342365e-3,9.144722221219244e-3,4.187251123121544e-6 +1.305000000000000e1,9.623111183812804e-3,9.615685819962095e-3,7.425363850708383e-6 +1.310000000000000e1,9.574106596565607e-3,9.560466761592517e-3,1.363983497308999e-5 +1.315000000000000e1,9.016639254818685e-3,9.001610557677649e-3,1.502869714103613e-5 +1.320000000000000e1,7.999653423176462e-3,7.987590027620914e-3,1.206339555554804e-5 +1.325000000000000e1,6.594922160799337e-3,6.589308887028172e-3,5.613273771165259e-6 +1.330000000000000e1,4.892323291839319e-3,4.895520112888521e-3,-3.196821049202166e-6 +1.335000000000000e1,2.994313561047216e-3,3.007443206001367e-3,-1.312964495415103e-5 +1.340000000000000e1,1.009930683115912e-3,1.032898863024424e-3,-2.296817990851143e-5 +1.345000000000000e1,-9.513335723228709e-4,-9.197045512599945e-4,-3.162902106287641e-5 +1.350000000000000e1,-2.785451918187585e-3,-2.747201441313184e-3,-3.825047687440117e-5 +1.355000000000000e1,-4.399258376173262e-3,-4.357006341400600e-3,-4.225203477266262e-5 +1.360000000000000e1,-5.715050286098988e-3,-5.671685938644051e-3,-4.336434745493695e-5 +1.365000000000000e1,-6.674176034604923e-3,-6.632544991951675e-3,-4.163104265324756e-5 +1.370000000000000e1,-7.239452654833038e-3,-7.202067296267993e-3,-3.738535856504487e-5 +1.375000000000000e1,-7.396327176541573e-3,-7.365121355367849e-3,-3.120582117372393e-5 +1.380000000000000e1,-7.152767392481206e-3,-7.128911471144582e-3,-2.385592133662302e-5 +1.385000000000000e1,-6.537937535957940e-3,-6.521724465611306e-3,-1.621307034663406e-5 +1.390000000000000e1,-5.599778478636704e-3,-5.590586389117912e-3,-9.192089518791566e-6 +1.395000000000000e1,-4.401667155067073e-3,-4.397998944792540e-3,-3.668210274533103e-6 +1.400000000000000e1,-3.018373320626700e-3,-3.017969208148637e-3,-4.041124780627438e-7 diff --git a/doc/plots/feff_vs_larch_data/01_path_builder_rspace.csv b/doc/plots/feff_vs_larch_data/01_path_builder_rspace.csv new file mode 100644 index 0000000..d1d2b70 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/01_path_builder_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.544195718850788e-1,2.558747282920494e-1,-1.455156406970581e-3 +1.012427320004523e0,2.752296078851635e-1,2.773025376727473e-1,-2.072929787583833e-3 +1.043106935762236e0,2.709449904649241e-1,2.735683477047668e-1,-2.623357239842750e-3 +1.073786551519949e0,2.398127187400496e-1,2.428152699477845e-1,-3.002551207734933e-3 +1.104466167277662e0,1.839786848730161e-1,1.870736439246672e-1,-3.094959051651081e-3 +1.135145783035375e0,1.135063290399351e-1,1.160528621453687e-1,-2.546533105433596e-3 +1.165825398793087e0,7.805589598998386e-2,7.754852264437105e-2,5.073733456128077e-4 +1.196505014550800e0,1.457144432219958e-1,1.435394888017387e-1,2.174954420257058e-3 +1.227184630308513e0,2.416529387298946e-1,2.398246866727718e-1,1.828252057122781e-3 +1.257864246066226e0,3.296717442421275e-1,3.285448278308771e-1,1.126916411250400e-3 +1.288543861823939e0,3.955496908458901e-1,3.952356005942735e-1,3.140902516166055e-4 +1.319223477581652e0,4.298439203530746e-1,4.303765632963322e-1,-5.326429432575552e-4 +1.349903093339364e0,4.267144479959524e-1,4.281042025947471e-1,-1.389754598794701e-3 +1.380582709097077e0,3.845797472245795e-1,3.868824236805590e-1,-2.302676455979535e-3 +1.411262324854790e0,3.077835269468379e-1,3.112457492914950e-1,-3.462222344657151e-3 +1.441941940612503e0,2.133321265031469e-1,2.186900221436502e-1,-5.357895640503318e-3 +1.472621556370216e0,1.642071719148660e-1,1.713715343640317e-1,-7.164362449165684e-3 +1.503301172127929e0,2.471711155793025e-1,2.522984049733616e-1,-5.127289394059098e-3 +1.533980787885641e0,3.971028057463870e-1,4.007499536517847e-1,-3.647147905397774e-3 +1.564660403643354e0,5.570787916875454e-1,5.602156878439984e-1,-3.136896156453073e-3 +1.595340019401067e0,7.050240838921245e-1,7.080747496897777e-1,-3.050665797653229e-3 +1.626019635158780e0,8.277612385924962e-1,8.309103089696968e-1,-3.149070377200580e-3 +1.656699250916493e0,9.158746254134836e-1,9.192091106321986e-1,-3.334485218714933e-3 +1.687378866674206e0,9.628794049797390e-1,9.664718537914971e-1,-3.592448811758131e-3 +1.718058482431918e0,9.656541123058654e-1,9.696463180008973e-1,-3.992205695031892e-3 +1.748738098189631e0,9.266204948977835e-1,9.313364995536739e-1,-4.716004655890393e-3 +1.779417713947344e0,8.601036588323087e-1,8.661831888946288e-1,-6.079530062320093e-3 +1.810097329705057e0,8.068928409471963e-1,8.152192139578609e-1,-8.326373010664634e-3 +1.840776945462770e0,8.478192696762338e-1,8.585669246158346e-1,-1.074765493960084e-2 +1.871456561220483e0,1.061311074414427e0,1.073147035846165e0,-1.183596143173760e-2 +1.902136176978195e0,1.452630835439992e0,1.464292537682443e0,-1.166170224245078e-2 +1.932815792735908e0,1.984591108477463e0,1.995552166800125e0,-1.096105832266181e-2 +1.963495408493621e0,2.621529475668214e0,2.631504866577784e0,-9.975390909569892e-3 +1.994175024251334e0,3.332744962391723e0,3.341457869106104e0,-8.712906714380519e-3 +2.024854640009047e0,4.087631649863540e0,4.094800195811356e0,-7.168545947815907e-3 +2.055534255766760e0,4.853436166589821e0,4.858817085637143e0,-5.380919047321520e-3 +2.086213871524472e0,5.595359047349070e0,5.598794766069281e0,-3.435718720210978e-3 +2.116893487282185e0,6.277967201738252e0,6.279420966997848e0,-1.453765259595841e-3 +2.147573103039898e0,6.867261314131377e0,6.866835054406098e0,4.262597252786549e-4 +2.178252718797611e0,7.332962907802561e0,7.330896104199549e0,2.066803603012701e-3 +2.208932334555323e0,7.650691766957828e0,7.647342037861583e0,3.349729096244758e-3 +2.239611950313036e0,7.803772599720386e0,7.799580915633002e0,4.191684087383685e-3 +2.270291566070749e0,7.784473759773748e0,7.779919120036420e0,4.554639737327726e-3 +2.300971181828462e0,7.594550634918871e0,7.590100373557053e0,4.450261361817809e-3 +2.331650797586175e0,7.245041673585752e0,7.241104068945938e0,3.937604639814296e-3 +2.362330413343888e0,6.755341169163074e0,6.752226580629729e0,3.114588533344786e-3 +2.393010029101601e0,6.151643446193118e0,6.149538810225253e0,2.104635967865143e-3 +2.423689644859313e0,5.464911647152372e0,5.463871001281782e0,1.040645870589607e-3 +2.454369260617026e0,4.728565783725616e0,4.728516833078941e0,4.895064667476134e-5 +2.485048876374739e0,3.976106069601268e0,3.976869996679484e0,-7.639270782160423e-4 +2.515728492132452e0,3.238888660984108e0,3.240207673360869e0,-1.319012376761020e-3 +2.546408107890165e0,2.544255832237022e0,2.545820338318451e0,-1.564506081429773e-3 +2.577087723647877e0,1.914203390896280e0,1.915667395558472e0,-1.464004662191876e-3 +2.607767339405590e0,1.364780581349432e0,1.365746689105934e0,-9.661077565021881e-4 +2.638446955163303e0,9.065953132385687e-1,9.065281295332590e-1,6.718370530967022e-5 +2.669126570921016e0,5.477744504926644e-1,5.457278491961594e-1,2.046601296505024e-3 +2.699806186678729e0,3.054887341212001e-1,2.995637851445563e-1,5.924948976643751e-3 +2.730485802436442e0,2.263931592284399e-1,2.168737554915928e-1,9.519403736847037e-3 +2.761165418194155e0,2.764597280540505e-1,2.686193902273983e-1,7.840337826652222e-3 +2.791845033951867e0,3.387747125398984e-1,3.329778384071310e-1,5.796874132767360e-3 +2.822524649709580e0,3.771583002997147e-1,3.728526645956100e-1,4.305635704104749e-3 +2.853204265467293e0,3.905553784828427e-1,3.874305587762821e-1,3.124819706560644e-3 +2.883883881225006e0,3.844590788721317e-1,3.823077963355339e-1,2.151282536597854e-3 +2.914563496982719e0,3.650071942940938e-1,3.636196885703041e-1,1.387505723789706e-3 +2.945243112740431e0,3.379002518113067e-1,3.370278655756987e-1,8.723862356079803e-4 +2.975922728498144e0,1.156407585389740e-33,1.154059954646660e-33,2.347630743079634e-36 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/01_path_builder_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/01_path_builder_rspace_contrib.csv new file mode 100644 index 0000000..17d6bc5 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/01_path_builder_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.544195718850788e-1,2.558747282920494e-1,-1.455156406970581e-3,2.544195718850788e-1 +1.012427320004523e0,2.752296078851635e-1,2.773025376727473e-1,-2.072929787583833e-3,2.752296078851635e-1 +1.043106935762236e0,2.709449904649241e-1,2.735683477047668e-1,-2.623357239842750e-3,2.709449904649241e-1 +1.073786551519949e0,2.398127187400496e-1,2.428152699477845e-1,-3.002551207734933e-3,2.398127187400496e-1 +1.104466167277662e0,1.839786848730161e-1,1.870736439246672e-1,-3.094959051651081e-3,1.839786848730161e-1 +1.135145783035375e0,1.135063290399351e-1,1.160528621453687e-1,-2.546533105433596e-3,1.135063290399351e-1 +1.165825398793087e0,7.805589598998386e-2,7.754852264437105e-2,5.073733456128077e-4,7.805589598998386e-2 +1.196505014550800e0,1.457144432219958e-1,1.435394888017387e-1,2.174954420257058e-3,1.457144432219958e-1 +1.227184630308513e0,2.416529387298946e-1,2.398246866727718e-1,1.828252057122781e-3,2.416529387298946e-1 +1.257864246066226e0,3.296717442421275e-1,3.285448278308771e-1,1.126916411250400e-3,3.296717442421275e-1 +1.288543861823939e0,3.955496908458901e-1,3.952356005942735e-1,3.140902516166055e-4,3.955496908458901e-1 +1.319223477581652e0,4.298439203530746e-1,4.303765632963322e-1,-5.326429432575552e-4,4.298439203530746e-1 +1.349903093339364e0,4.267144479959524e-1,4.281042025947471e-1,-1.389754598794701e-3,4.267144479959524e-1 +1.380582709097077e0,3.845797472245795e-1,3.868824236805590e-1,-2.302676455979535e-3,3.845797472245795e-1 +1.411262324854790e0,3.077835269468379e-1,3.112457492914950e-1,-3.462222344657151e-3,3.077835269468379e-1 +1.441941940612503e0,2.133321265031469e-1,2.186900221436502e-1,-5.357895640503318e-3,2.133321265031469e-1 +1.472621556370216e0,1.642071719148660e-1,1.713715343640317e-1,-7.164362449165684e-3,1.642071719148660e-1 +1.503301172127929e0,2.471711155793025e-1,2.522984049733616e-1,-5.127289394059098e-3,2.471711155793025e-1 +1.533980787885641e0,3.971028057463870e-1,4.007499536517847e-1,-3.647147905397774e-3,3.971028057463870e-1 +1.564660403643354e0,5.570787916875454e-1,5.602156878439984e-1,-3.136896156453073e-3,5.570787916875454e-1 +1.595340019401067e0,7.050240838921245e-1,7.080747496897777e-1,-3.050665797653229e-3,7.050240838921245e-1 +1.626019635158780e0,8.277612385924962e-1,8.309103089696968e-1,-3.149070377200580e-3,8.277612385924962e-1 +1.656699250916493e0,9.158746254134836e-1,9.192091106321986e-1,-3.334485218714933e-3,9.158746254134836e-1 +1.687378866674206e0,9.628794049797390e-1,9.664718537914971e-1,-3.592448811758131e-3,9.628794049797390e-1 +1.718058482431918e0,9.656541123058654e-1,9.696463180008973e-1,-3.992205695031892e-3,9.656541123058654e-1 +1.748738098189631e0,9.266204948977835e-1,9.313364995536739e-1,-4.716004655890393e-3,9.266204948977835e-1 +1.779417713947344e0,8.601036588323087e-1,8.661831888946288e-1,-6.079530062320093e-3,8.601036588323087e-1 +1.810097329705057e0,8.068928409471963e-1,8.152192139578609e-1,-8.326373010664634e-3,8.068928409471963e-1 +1.840776945462770e0,8.478192696762338e-1,8.585669246158346e-1,-1.074765493960084e-2,8.478192696762338e-1 +1.871456561220483e0,1.061311074414427e0,1.073147035846165e0,-1.183596143173760e-2,1.061311074414427e0 +1.902136176978195e0,1.452630835439992e0,1.464292537682443e0,-1.166170224245078e-2,1.452630835439992e0 +1.932815792735908e0,1.984591108477463e0,1.995552166800125e0,-1.096105832266181e-2,1.984591108477463e0 +1.963495408493621e0,2.621529475668214e0,2.631504866577784e0,-9.975390909569892e-3,2.621529475668214e0 +1.994175024251334e0,3.332744962391723e0,3.341457869106104e0,-8.712906714380519e-3,3.332744962391723e0 +2.024854640009047e0,4.087631649863540e0,4.094800195811356e0,-7.168545947815907e-3,4.087631649863540e0 +2.055534255766760e0,4.853436166589821e0,4.858817085637143e0,-5.380919047321520e-3,4.853436166589821e0 +2.086213871524472e0,5.595359047349070e0,5.598794766069281e0,-3.435718720210978e-3,5.595359047349070e0 +2.116893487282185e0,6.277967201738252e0,6.279420966997848e0,-1.453765259595841e-3,6.277967201738252e0 +2.147573103039898e0,6.867261314131377e0,6.866835054406098e0,4.262597252786549e-4,6.867261314131377e0 +2.178252718797611e0,7.332962907802561e0,7.330896104199549e0,2.066803603012701e-3,7.332962907802561e0 +2.208932334555323e0,7.650691766957828e0,7.647342037861583e0,3.349729096244758e-3,7.650691766957828e0 +2.239611950313036e0,7.803772599720386e0,7.799580915633002e0,4.191684087383685e-3,7.803772599720386e0 +2.270291566070749e0,7.784473759773748e0,7.779919120036420e0,4.554639737327726e-3,7.784473759773748e0 +2.300971181828462e0,7.594550634918871e0,7.590100373557053e0,4.450261361817809e-3,7.594550634918871e0 +2.331650797586175e0,7.245041673585752e0,7.241104068945938e0,3.937604639814296e-3,7.245041673585752e0 +2.362330413343888e0,6.755341169163074e0,6.752226580629729e0,3.114588533344786e-3,6.755341169163074e0 +2.393010029101601e0,6.151643446193118e0,6.149538810225253e0,2.104635967865143e-3,6.151643446193118e0 +2.423689644859313e0,5.464911647152372e0,5.463871001281782e0,1.040645870589607e-3,5.464911647152372e0 +2.454369260617026e0,4.728565783725616e0,4.728516833078941e0,4.895064667476134e-5,4.728565783725616e0 +2.485048876374739e0,3.976106069601268e0,3.976869996679484e0,-7.639270782160423e-4,3.976106069601268e0 +2.515728492132452e0,3.238888660984108e0,3.240207673360869e0,-1.319012376761020e-3,3.238888660984108e0 +2.546408107890165e0,2.544255832237022e0,2.545820338318451e0,-1.564506081429773e-3,2.544255832237022e0 +2.577087723647877e0,1.914203390896280e0,1.915667395558472e0,-1.464004662191876e-3,1.914203390896280e0 +2.607767339405590e0,1.364780581349432e0,1.365746689105934e0,-9.661077565021881e-4,1.364780581349432e0 +2.638446955163303e0,9.065953132385687e-1,9.065281295332590e-1,6.718370530967022e-5,9.065953132385687e-1 +2.669126570921016e0,5.477744504926644e-1,5.457278491961594e-1,2.046601296505024e-3,5.477744504926644e-1 +2.699806186678729e0,3.054887341212001e-1,2.995637851445563e-1,5.924948976643751e-3,3.054887341212001e-1 +2.730485802436442e0,2.263931592284399e-1,2.168737554915928e-1,9.519403736847037e-3,2.263931592284399e-1 +2.761165418194155e0,2.764597280540505e-1,2.686193902273983e-1,7.840337826652222e-3,2.764597280540505e-1 +2.791845033951867e0,3.387747125398984e-1,3.329778384071310e-1,5.796874132767360e-3,3.387747125398984e-1 +2.822524649709580e0,3.771583002997147e-1,3.728526645956100e-1,4.305635704104749e-3,3.771583002997147e-1 +2.853204265467293e0,3.905553784828427e-1,3.874305587762821e-1,3.124819706560644e-3,3.905553784828427e-1 +2.883883881225006e0,3.844590788721317e-1,3.823077963355339e-1,2.151282536597854e-3,3.844590788721317e-1 +2.914563496982719e0,3.650071942940938e-1,3.636196885703041e-1,1.387505723789706e-3,3.650071942940938e-1 +2.945243112740431e0,3.379002518113067e-1,3.370278655756987e-1,8.723862356079803e-4,3.379002518113067e-1 +2.975922728498144e0,1.156407585389740e-33,1.154059954646660e-33,2.347630743079634e-36,1.156407585389740e-33 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/02_multi_path_model.csv b/doc/plots/feff_vs_larch_data/02_multi_path_model.csv new file mode 100644 index 0000000..8392972 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/02_multi_path_model.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.004169364982455e-1,3.004169364982455e-1 +1.000000000000000e-1,0.000000000000000e0,-3.028599019623773e-1,3.028599019623773e-1 +1.500000000000000e-1,0.000000000000000e0,-3.053028674265091e-1,3.053028674265091e-1 +2.000000000000000e-1,0.000000000000000e0,-3.086716147668306e-1,3.086716147668306e-1 +2.500000000000000e-1,0.000000000000000e0,-3.129124878200045e-1,3.129124878200045e-1 +3.000000000000000e-1,0.000000000000000e0,-3.179532062114368e-1,3.179532062114368e-1 +3.500000000000000e-1,0.000000000000000e0,-3.237002129304355e-1,3.237002129304355e-1 +4.000000000000000e-1,0.000000000000000e0,-3.300350931702580e-1,3.300350931702580e-1 +4.500000000000000e-1,0.000000000000000e0,-3.368094875634737e-1,3.368094875634737e-1 +5.000000000000000e-1,0.000000000000000e0,-3.438366516251072e-1,3.438366516251072e-1 +5.500000000000000e-1,0.000000000000000e0,-3.508707890133191e-1,3.508707890133191e-1 +6.000000000000001e-1,0.000000000000000e0,-3.574452979919543e-1,3.574452979919543e-1 +6.500000000000000e-1,-3.491983609031817e-1,-3.501577306932779e-1,9.593697900961984e-4 +7.000000000000001e-1,-3.396950119633946e-1,-3.405942413177491e-1,8.992293543544916e-4 +7.500000000000000e-1,-3.292556241362941e-1,-3.300357874890825e-1,7.801633527884100e-4 +8.000000000000000e-1,-3.178318891380741e-1,-3.183303142416022e-1,4.984251035280995e-4 +8.500000000000001e-1,-3.052055993908445e-1,-3.053143758861092e-1,1.087764952647507e-4 +9.000000000000000e-1,-2.902323086670041e-1,-2.908142127027583e-1,5.819040357542549e-4 +9.500000000000001e-1,-2.741305066122910e-1,-2.746697006743047e-1,5.391940620136926e-4 +1.000000000000000e0,-2.565778904604241e-1,-2.566904091810707e-1,1.125187206466038e-4 +1.050000000000000e0,-2.360948707957810e-1,-2.366915795844709e-1,5.967087886899203e-4 +1.100000000000000e0,-2.142513896276857e-1,-2.146150108471137e-1,3.636212194279842e-4 +1.150000000000000e0,-1.899508178408731e-1,-1.903978999284350e-1,4.470820875618897e-4 +1.200000000000000e0,-1.633841758024533e-1,-1.639657785887687e-1,5.816027863154716e-4 +1.250000000000000e0,-1.352877938192326e-1,-1.354458407271037e-1,1.580469078711066e-4 +1.300000000000000e0,-1.045072174908770e-1,-1.050901753780835e-1,5.829578872064978e-4 +1.350000000000000e0,-7.308924154740068e-2,-7.321869693233499e-2,1.294553849343072e-4 +1.400000000000000e0,-3.975379792458848e-2,-4.024892562746904e-2,4.951277028805642e-4 +1.450000000000000e0,-6.412353456483361e-3,-6.700430123979782e-3,2.880766674964209e-4 +1.500000000000000e0,2.718693409833110e-2,2.680692382766853e-2,3.800102706625653e-4 +1.550000000000000e0,5.991054608797167e-2,5.961777704622420e-2,2.927690417474649e-4 +1.600000000000000e0,9.105523531367131e-2,9.087616707522274e-2,1.790682384485709e-4 +1.650000000000000e0,1.197398420275398e-1,1.195655016592855e-1,1.743403682543943e-4 +1.700000000000000e0,1.448967051689082e-1,1.448409228968288e-1,5.578227207941877e-5 +1.750000000000000e0,1.660691276104865e-1,1.659637995759865e-1,1.053280345000573e-4 +1.800000000000000e0,1.822582861058053e-1,1.822495368952257e-1,8.749210579611644e-6 +1.850000000000000e0,1.930151761640759e-1,1.931074963665654e-1,-9.232020248942097e-5 +1.900000000000000e0,1.979212759540252e-1,1.979268769105310e-1,-5.600956505841248e-6 +1.950000000000000e0,1.961065199345659e-1,1.963472264424164e-1,-2.407065078505188e-4 +2.000000000000000e0,1.884247056346568e-1,1.884735806610938e-1,-4.887502643705077e-5 +2.050000000000000e0,1.744067711204739e-1,1.746564628031881e-1,-2.496916827141871e-4 +2.100000000000000e0,1.551804918425035e-1,1.554951523414868e-1,-3.146604989832658e-4 +2.150000000000000e0,1.301967234596300e-1,1.316825343937293e-1,-1.485810934099302e-3 +2.200000000000000e0,1.023695981914217e-1,1.040714544493425e-1,-1.701856257920756e-3 +2.250000000000000e0,7.307760529358988e-2,7.400141872601719e-2,-9.238134324273117e-4 +2.300000000000000e0,4.307821746050125e-2,4.302716422678934e-2,5.105323371190629e-5 +2.350000000000000e0,1.351196146252312e-2,1.309155149630827e-2,4.204099662148512e-4 +2.400000000000000e0,-1.253263018858248e-2,-1.310367525509092e-2,5.710450665084368e-4 +2.450000000000000e0,-3.295384493975013e-2,-3.302927308564903e-2,7.542814589889951e-5 +2.500000000000000e0,-4.741343887007212e-2,-4.640763667407481e-2,-1.005802195997316e-3 +2.550000000000000e0,-5.857755193934153e-2,-5.581488933794546e-2,-2.762662601396071e-3 +2.600000000000000e0,-6.582935515203633e-2,-6.316030171637775e-2,-2.669053435658583e-3 +2.650000000000000e0,-6.926191710030548e-2,-6.841524811782886e-2,-8.466689824766227e-4 +2.700000000000000e0,-6.972603701708860e-2,-7.020515977365513e-2,4.791227565665301e-4 +2.750000000000000e0,-6.709414698228230e-2,-6.792518666129713e-2,8.310396790148222e-4 +2.800000000000000e0,-6.152743108084417e-2,-6.218768247809864e-2,6.602513972544660e-4 +2.850000000000000e0,-5.373934617283999e-2,-5.391038856201589e-2,1.710423891758961e-4 +2.900000000000000e0,-4.398447628209316e-2,-4.402784078806626e-2,4.336450597310082e-5 +2.950000000000000e0,-3.263767666487972e-2,-3.306749999586004e-2,4.298233309803223e-4 +3.000000000000000e0,-2.077214698615164e-2,-2.139550839460681e-2,6.233614084551684e-4 +3.050000000000000e0,-9.303049543195966e-3,-9.494087244318345e-3,1.910377011223787e-4 +3.100000000000000e0,2.497580812287743e-3,1.986307935410877e-3,5.112728768768659e-4 +3.150000000000000e0,1.314078641203213e-2,1.223227768008341e-2,9.085087319487192e-4 +3.200000000000000e0,2.147296536178511e-2,2.061319465981407e-2,8.597707019710465e-4 +3.250000000000000e0,2.698618938826624e-2,2.682767743475605e-2,1.585119535101910e-4 +3.300000000000000e0,3.153636151438162e-2,3.080642829899852e-2,7.299332153831023e-4 +3.350000000000000e0,3.350380817007133e-2,3.240420343293558e-2,1.099604737135745e-3 +3.400000000000000e0,3.231725723832418e-2,3.145052796512837e-2,8.667292731958098e-4 +3.450000000000000e0,2.800676664848346e-2,2.793031572819431e-2,7.645092028915265e-5 +3.500000000000000e0,2.273274416477415e-2,2.208217948402324e-2,6.505646807509098e-4 +3.550000000000000e0,1.518901702638021e-2,1.430805893604275e-2,8.809580903374626e-4 +3.600000000000000e0,5.691728032863530e-3,5.071568423474790e-3,6.201596093887395e-4 +3.650000000000000e0,-5.105145554847076e-3,-5.114776248795718e-3,9.630693948641661e-6 +3.700000000000000e0,-1.541129414098124e-2,-1.569654914697634e-2,2.852550059951053e-4 +3.750000000000000e0,-2.577608945812855e-2,-2.607612265720093e-2,3.000331990723817e-4 +3.800000000000000e0,-3.550501434552959e-2,-3.566079301176169e-2,1.557786662320926e-4 +3.850000000000000e0,-4.389655639591855e-2,-4.390194528857828e-2,5.388892659725919e-6 +3.900000000000000e0,-5.023443701094575e-2,-5.031916717402932e-2,8.473016308357256e-5 +3.950000000000000e0,-5.442233604283994e-2,-5.451108543180543e-2,8.874938896548390e-5 +4.000000000000000e0,-5.611196948215846e-2,-5.616685805409583e-2,5.488857193737540e-5 +4.050000000000000e0,-5.506965863573338e-2,-5.507776164441665e-2,8.103008683271740e-6 +4.100000000000001e0,-5.113551920000868e-2,-5.116981200038889e-2,3.429280038021176e-5 +4.150000000000000e0,-4.459099463761396e-2,-4.457573836426813e-2,-1.525627334583030e-5 +4.200000000000000e0,-3.564337419179663e-2,-3.559125171731317e-2,-5.212247448346113e-5 +4.250000000000000e0,-2.464484051915339e-2,-2.463226353660548e-2,-1.257698254791134e-5 +4.300000000000000e0,-1.223998426142313e-2,-1.217229435385378e-2,-6.768990756935225e-5 +4.350000000000001e0,1.258479713350642e-3,1.325784372530570e-3,-6.730465917992767e-5 +4.400000000000000e0,1.531973427366163e-2,1.535716815824066e-2,-3.743388457902973e-5 +4.450000000000000e0,2.937561194247524e-2,2.936615493296542e-2,9.457009509824393e-6 +4.500000000000000e0,4.276758691916657e-2,4.274594134592042e-2,2.164557324615263e-5 +4.550000000000000e0,5.486134223799236e-2,5.486448541991695e-2,-3.143181924583627e-6 +4.600000000000001e0,6.510426843852829e-2,6.512292880250635e-2,-1.866036397805970e-5 +4.650000000000000e0,7.296601970777372e-2,7.298261099723956e-2,-1.659128946583655e-5 +4.700000000000000e0,7.787296452534598e-2,7.797359943831612e-2,-1.006349129701462e-4 +4.750000000000000e0,7.956504249161518e-2,7.970604884231750e-2,-1.410063507023135e-4 +4.800000000000001e0,7.783443000099062e-2,7.792979811745450e-2,-9.536811646387866e-5 +4.850000000000001e0,7.254398825044242e-2,7.256811010372075e-2,-2.412185327832495e-5 +4.900000000000000e0,6.368062985150964e-2,6.374292834357240e-2,-6.229849206275395e-5 +4.950000000000000e0,5.172362183588739e-2,5.176424792215213e-2,-4.062608626474035e-5 +5.000000000000000e0,3.707744159680799e-2,3.708679445097439e-2,-9.352854166401470e-6 +5.050000000000001e0,2.026692238191084e-2,2.028890202940853e-2,-2.197964749768577e-5 +5.100000000000001e0,1.952170816148651e-3,2.043620105910488e-3,-9.144928976183731e-5 +5.150000000000000e0,-1.700989579757915e-2,-1.689608707626589e-2,-1.138087213132660e-4 +5.200000000000000e0,-3.575983219198860e-2,-3.569114462319386e-2,-6.868756879474525e-5 +5.250000000000000e0,-5.344184920049206e-2,-5.343881363381126e-2,-3.035566680804902e-6 +5.300000000000001e0,-6.914433162747530e-2,-6.918674245826684e-2,4.241083079153940e-5 +5.350000000000001e0,-8.189801064278987e-2,-8.199176590436191e-2,9.375526157204273e-5 +5.400000000000000e0,-9.097560237245129e-2,-9.104752414147881e-2,7.192176902751091e-5 +5.450000000000000e0,-9.573981344784095e-2,-9.576293313974685e-2,2.311969190589569e-5 +5.500000000000000e0,-9.577002699560939e-2,-9.582510348764021e-2,5.507649203081999e-5 +5.550000000000001e0,-9.111580576560233e-2,-9.117747200460113e-2,6.166623899880874e-5 +5.600000000000001e0,-8.191570551860239e-2,-8.196131420674235e-2,4.560868813996422e-5 +5.650000000000000e0,-6.846819447300656e-2,-6.850780851480594e-2,3.961404179937678e-5 +5.700000000000000e0,-5.125253392504378e-2,-5.136344085249149e-2,1.109069274477098e-4 +5.750000000000000e0,-3.124941797138702e-2,-3.134786704913027e-2,9.844907774324979e-5 +5.800000000000001e0,-9.484780366745851e-3,-9.517892503830238e-3,3.311213708438732e-5 +5.850000000000001e0,1.288776165058020e-2,1.290790471926332e-2,-2.014306868311673e-5 +5.900000000000000e0,3.462018491047508e-2,3.467740318976290e-2,-5.721827928781287e-5 +5.950000000000000e0,5.456082925429497e-2,5.462173699974320e-2,-6.090774544822986e-5 +6.000000000000000e0,7.165377289203903e-2,7.168550683085380e-2,-3.173393881476805e-5 +6.050000000000001e0,8.496068340951762e-2,8.497689966557199e-2,-1.621625605437160e-5 +6.100000000000001e0,9.369973095049633e-2,9.380451620196921e-2,-1.047852514728803e-4 +6.150000000000000e0,9.748997583644371e-2,9.771826242502329e-2,-2.282865885795821e-4 +6.200000000000000e0,9.620275218884232e-2,9.655034700885455e-2,-3.475948200122314e-4 +6.250000000000000e0,8.999378465965795e-2,9.042444162599965e-2,-4.306569663417026e-4 +6.300000000000001e0,7.928785513747602e-2,7.974471058205626e-2,-4.568554445802397e-4 +6.350000000000001e0,6.474714116072529e-2,6.516667031937531e-2,-4.195291586500255e-4 +6.400000000000000e0,4.722583387501166e-2,4.755225752158828e-2,-3.264236465766179e-4 +6.450000000000000e0,2.771454459319589e-2,2.791264198559455e-2,-1.980973923986634e-4 +6.500000000000000e0,7.278606333014379e-3,7.343161939455978e-3,-6.455560644159919e-5 +6.550000000000001e0,-1.306788312275481e-2,-1.304480497806292e-2,-2.307814469189144e-5 +6.600000000000001e0,-3.221906061939370e-2,-3.219083999017847e-2,-2.822062921522400e-5 +6.650000000000000e0,-4.912854153331825e-2,-4.914553666907882e-2,1.699513576057521e-5 +6.700000000000000e0,-6.302982568606752e-2,-6.311887298760602e-2,8.904730153849738e-5 +6.750000000000000e0,-7.335243896455468e-2,-7.351619187007080e-2,1.637529055161235e-4 +6.800000000000001e0,-7.974006304182819e-2,-7.995986094812153e-2,2.197979062933397e-4 +6.850000000000001e0,-8.205476651784185e-2,-8.229629580956938e-2,2.415292917275214e-4 +6.900000000000000e0,-8.036842156988430e-2,-8.058919906344893e-2,2.207774935646251e-4 +6.950000000000000e0,-7.494320365898834e-2,-7.510081705469535e-2,1.576133957070097e-4 +7.000000000000000e0,-6.620364227331556e-2,-6.626371511773414e-2,6.007284441858496e-5 +7.050000000000001e0,-5.459940946338553e-2,-5.464597211380164e-2,4.656265041611679e-5 +7.100000000000001e0,-4.079147483571333e-2,-4.091261535907783e-2,1.211405233644963e-4 +7.150000000000000e0,-2.562561221099070e-2,-2.578621339315133e-2,1.606011821606301e-4 +7.200000000000000e0,-9.843917660161627e-3,-1.000961466334053e-2,1.656970031789044e-4 +7.250000000000000e0,5.829932063587435e-3,5.687694874403858e-3,1.422371891835767e-4 +7.300000000000001e0,2.071835821673546e-2,2.061852607306291e-2,9.983214367255064e-5 +7.350000000000001e0,3.421216022441310e-2,3.416169392849584e-2,5.046629591726193e-5 +7.400000000000000e0,4.578754733005702e-2,4.578052771482832e-2,7.019615228698317e-6 +7.450000000000000e0,5.501845248403645e-2,5.503661933270341e-2,-1.816684866696311e-5 +7.500000000000000e0,6.158486823272165e-2,6.159947819025628e-2,-1.460995753462674e-5 +7.550000000000001e0,6.524267464136155e-2,6.525281269187035e-2,-1.013805050879835e-5 +7.600000000000001e0,6.585210256250768e-2,6.589806180341043e-2,-4.595924090275427e-5 +7.650000000000000e0,6.346373520351814e-2,6.355572798545993e-2,-9.199278194178817e-5 +7.700000000000000e0,5.822829208897003e-2,5.836432872040654e-2,-1.360366314365064e-4 +7.750000000000000e0,5.040877079809791e-2,5.057668810277387e-2,-1.679173046759616e-4 +7.800000000000001e0,4.037277531875717e-2,4.055322392412655e-2,-1.804486053693793e-4 +7.850000000000001e0,2.858153591566781e-2,2.875166014355713e-2,-1.701242278893123e-4 +7.900000000000000e0,1.557511483119511e-2,1.571260818020697e-2,-1.374933490118600e-4 +7.950000000000000e0,1.953458858162302e-3,2.040635690074977e-3,-8.717683191267417e-5 +8.000000000000000e0,-1.164673142735089e-2,-1.161923358825463e-2,-2.749783909626602e-5 +8.050000000000001e0,-2.462961146047463e-2,-2.460916373588093e-2,-2.044772459370084e-5 +8.100000000000000e0,-3.632848048783674e-2,-3.628880069227626e-2,-3.967979556047940e-5 +8.150000000000000e0,-4.610637796099417e-2,-4.606846109828023e-2,-3.791686271394090e-5 +8.200000000000001e0,-5.346447037269439e-2,-5.344319014553962e-2,-2.128022715476574e-5 +8.250000000000000e0,-5.802144090527036e-2,-5.802394625834032e-2,2.505353069962024e-6 +8.300000000000001e0,-5.953846857148080e-2,-5.956400130884991e-2,2.553273736910500e-5 +8.350000000000000e0,-5.793719855001068e-2,-5.797824662570020e-2,4.104807568951901e-5 +8.400000000000000e0,-5.330888128343401e-2,-5.335341712962859e-2,4.453584619457107e-5 +8.450000000000001e0,-4.591340262336865e-2,-4.594781832001561e-2,3.441569664695832e-5 +8.500000000000000e0,-3.616763733612088e-2,-3.617989765830226e-2,1.226032218137191e-5 +8.550000000000001e0,-2.459530048931392e-2,-2.460583248218271e-2,1.053199286879872e-5 +8.600000000000000e0,-1.185980646839407e-2,-1.188655892518760e-2,2.675245679352803e-5 +8.650000000000000e0,1.289957768951806e-3,1.252149569892617e-3,3.780819905918869e-5 +8.700000000000001e0,1.410561769290349e-2,1.406354259587437e-2,4.207509702911644e-5 +8.750000000000000e0,2.586536655730074e-2,2.582610436815986e-2,3.926218914088175e-5 +8.800000000000001e0,3.591898312663109e-2,3.588847223560181e-2,3.051089102928256e-5 +8.850000000000000e0,4.372808309814372e-2,4.370980205862922e-2,1.828103951449778e-5 +8.900000000000000e0,4.889867825250485e-2,4.889264819318998e-2,6.030059314869607e-6 +8.950000000000001e0,5.120370723128879e-2,5.120598732031820e-2,-2.280089029402244e-6 +9.000000000000000e0,5.059398936538503e-2,5.059677865335512e-2,-2.789287970081378e-6 +9.050000000000001e0,4.718714820358908e-2,4.718936501786623e-2,-2.216814277151979e-6 +9.100000000000000e0,4.126679303142348e-2,4.127336919480561e-2,-6.576163382128464e-6 +9.150000000000000e0,3.327177500024790e-2,3.328099287909089e-2,-9.217878842997240e-6 +9.200000000000001e0,2.374558501719455e-2,2.375442166148617e-2,-8.836644291611295e-6 +9.250000000000000e0,1.330093621084101e-2,1.330663439539874e-2,-5.698184557728636e-6 +9.300000000000001e0,2.577769048672776e-3,2.578933644436964e-3,-1.164595764188096e-6 +9.350000000000000e0,-7.798553295367355e-3,-7.801506838576524e-3,2.953543209168602e-6 +9.400000000000000e0,-1.725585245851822e-2,-1.726093010848120e-2,5.077649962974967e-6 +9.450000000000001e0,-2.530794546172513e-2,-2.531238596777028e-2,4.440506045151615e-6 +9.500000000000000e0,-3.157965963018407e-2,-3.158111769657664e-2,1.458066392567847e-6 +9.550000000000001e0,-3.582235660851261e-2,-3.582065422478199e-2,-1.702383730622925e-6 +9.600000000000001e0,-3.792676964965881e-2,-3.791928905386622e-2,-7.480595792593026e-6 +9.650000000000000e0,-3.790938451079114e-2,-3.789565765274304e-2,-1.372685804810342e-5 +9.700000000000001e0,-3.590393902807513e-2,-3.588634825141755e-2,-1.759077665757641e-5 +9.750000000000000e0,-3.214539344122772e-2,-3.212780033956540e-2,-1.759310166232070e-5 +9.800000000000001e0,-2.694750011146618e-2,-2.693374608299488e-2,-1.375402847130641e-5 +9.850000000000001e0,-2.067765565878801e-2,-2.067022516148691e-2,-7.430497301102318e-6 +9.900000000000000e0,-1.373108339165208e-2,-1.373016067368768e-2,-9.227179643914868e-7 +9.950000000000001e0,-6.506200704752087e-3,-6.509267104854669e-3,3.066400102582495e-6 +1.000000000000000e1,6.173050123482390e-4,6.152789012362301e-4,2.026111112008941e-6 +1.005000000000000e1,7.323234137911071e-3,7.302358590583296e-3,2.087554732777518e-5 +1.010000000000000e1,1.331457307231575e-2,1.325972964240328e-2,5.484342991247081e-5 +1.015000000000000e1,1.833849785463354e-2,1.825308506849581e-2,8.541278613772782e-5 +1.020000000000000e1,2.221970875381894e-2,2.211118322356765e-2,1.085255302512959e-4 +1.025000000000000e1,2.484844724757783e-2,2.472689265424967e-2,1.215545933281638e-4 +1.030000000000000e1,2.617842966857075e-2,2.605511906886627e-2,1.233105997044785e-4 +1.035000000000000e1,2.622234537739588e-2,2.610840712617058e-2,1.139382512252950e-4 +1.040000000000000e1,2.504572144779711e-2,2.495099023307391e-2,9.473121472319823e-5 +1.045000000000000e1,2.275985340554801e-2,2.269196134851711e-2,6.789205703089732e-5 +1.050000000000000e1,1.951433639524643e-2,1.947807689616761e-2,3.625949907882370e-5 +1.055000000000000e1,1.548953626762017e-2,1.548651581173615e-2,3.020455884017448e-6 +1.060000000000000e1,1.088914893546780e-2,1.091772869919564e-2,-2.857976372784045e-5 +1.065000000000000e1,5.932838580410636e-3,5.988356868860783e-3,-5.551828845014751e-5 +1.070000000000000e1,8.488431931221183e-4,9.240996723423827e-4,-7.525647922026438e-5 +1.075000000000000e1,-4.133598016368423e-3,-4.047626250061810e-3,-8.597176630661257e-5 +1.080000000000000e1,-8.792105017537532e-3,-8.705358193318769e-3,-8.674682421876308e-5 +1.085000000000000e1,-1.291931836175107e-2,-1.284161674919462e-2,-7.770161255644080e-5 +1.090000000000000e1,-1.633123561016335e-2,-1.627118251850052e-2,-6.005309166283446e-5 +1.095000000000000e1,-1.887543924988304e-2,-1.883935058800270e-2,-3.608866188033535e-5 +1.100000000000000e1,-2.043878379785987e-2,-2.042974061629809e-2,-9.043181561779745e-6 +1.105000000000000e1,-2.098709126776106e-2,-2.097111932397222e-2,-1.597194378883879e-5 +1.110000000000000e1,-2.047721831550625e-2,-2.044261908193109e-2,-3.459923357515549e-5 +1.115000000000000e1,-1.892169093723231e-2,-1.887677581293924e-2,-4.491512429306496e-5 +1.120000000000000e1,-1.640568525849711e-2,-1.635986214076925e-2,-4.582311772786604e-5 +1.125000000000000e1,-1.306652273742673e-2,-1.302913588531016e-2,-3.738685211657038e-5 +1.130000000000000e1,-9.087627734628274e-3,-9.066864128071334e-3,-2.076360655694012e-5 +1.135000000000000e1,-4.689275345040681e-3,-4.691240978768427e-3,1.965633727746101e-6 +1.140000000000000e1,-1.165394717391206e-4,-1.445949023572931e-4,2.805543061817255e-5 +1.145000000000000e1,4.374875492156894e-3,4.320454723196527e-3,5.442076896036707e-5 +1.150000000000000e1,8.534007497082153e-3,8.456011404361636e-3,7.799609272051734e-5 +1.155000000000000e1,1.213014501575748e-2,1.203405287472282e-2,9.609214103465519e-5 +1.160000000000000e1,1.496733473973177e-2,1.486062176532719e-2,1.067129744045815e-4 +1.165000000000000e1,1.689678721063114e-2,1.678798884481127e-2,1.087983658198746e-4 +1.170000000000000e1,1.782621384586831e-2,1.772385037507346e-2,1.023634707948452e-4 +1.175000000000000e1,1.772535413104633e-2,1.763683630385892e-2,8.851782718741555e-5 +1.180000000000000e1,1.662724746019813e-2,1.655788917865322e-2,6.935828154491439e-5 +1.185000000000000e1,1.462514308168207e-2,1.457739900690658e-2,4.774407477549196e-5 +1.190000000000000e1,1.186529231824356e-2,1.183831677503229e-2,2.697554321127657e-5 +1.195000000000000e1,8.536197023475991e-3,8.525787835432275e-3,1.040918804371543e-5 +1.200000000000000e1,4.855166706066986e-3,4.854116812889405e-3,1.049893177581737e-6 +1.205000000000000e1,1.046830165940458e-3,1.052064474702776e-3,-5.234308762318025e-6 +1.210000000000000e1,-2.671508209183838e-3,-2.652463426366250e-3,-1.904478281758827e-5 +1.215000000000000e1,-6.083875343702552e-3,-6.046951107058132e-3,-3.692423664442002e-5 +1.220000000000000e1,-9.002169898141931e-3,-8.947141658624402e-3,-5.502823951752944e-5 +1.225000000000000e1,-1.127735369036881e-2,-1.120748348649864e-2,-6.987020387016867e-5 +1.230000000000000e1,-1.280722029269028e-2,-1.272845816555719e-2,-7.876212713308663e-5 +1.235000000000000e1,-1.354053086492761e-2,-1.346042014195473e-2,-8.011072297287730e-5 +1.240000000000000e1,-1.347741070700745e-2,-1.340386655696342e-2,-7.354415004403279e-5 +1.245000000000000e1,-1.266620171615076e-2,-1.260633406837283e-2,-5.986764777792669e-5 +1.250000000000000e1,-1.119723386852147e-2,-1.115636598434161e-2,-4.086788417985605e-5 +1.255000000000000e1,-9.194190770330313e-3,-9.175187672835865e-3,-1.900309749444835e-5 +1.260000000000000e1,-6.803884534393614e-3,-6.806857230623699e-3,2.972696230085260e-6 +1.265000000000000e1,-4.185315791435312e-3,-4.207714771755740e-3,2.239898032042800e-5 +1.270000000000000e1,-1.498875722219570e-3,-1.535937536557823e-3,3.706181433825364e-5 +1.275000000000000e1,1.103543590585718e-3,1.058073841363182e-3,4.546974922253581e-5 +1.280000000000000e1,3.486912256608330e-3,3.439887640553301e-3,4.702461605502872e-5 +1.285000000000000e1,5.539467714973173e-3,5.497393321000198e-3,4.207439397297535e-5 +1.290000000000000e1,7.176935086871892e-3,7.145084565856943e-3,3.185052101494900e-5 +1.295000000000000e1,8.344537223203576e-3,8.326232021603229e-3,1.830520160034724e-5 +1.300000000000000e1,9.016948136464286e-3,9.013074121423440e-3,3.874015040846238e-6 +1.305000000000000e1,9.211919750749005e-3,9.205291975930155e-3,6.627774818850074e-6 +1.310000000000000e1,8.938976680438315e-3,8.927164167346876e-3,1.181251309143906e-5 +1.315000000000000e1,8.236343091932599e-3,8.223804933539193e-3,1.253815839340547e-5 +1.320000000000000e1,7.166218283957006e-3,7.156761502240076e-3,9.456781716929603e-6 +1.325000000000000e1,5.802882961741044e-3,5.799403831750808e-3,3.479129990236265e-6 +1.330000000000000e1,4.228091727447907e-3,4.232447376886653e-3,-4.355649438745994e-6 +1.335000000000000e1,2.526848802906531e-3,2.539839825621324e-3,-1.299102271479311e-5 +1.340000000000000e1,7.837070535469573e-4,8.051485986428118e-4,-2.144154509585449e-5 +1.345000000000000e1,-9.203609431323983e-4,-8.915021848384764e-4,-2.885875829392189e-5 +1.350000000000000e1,-2.510544623670535e-3,-2.475968066201228e-3,-3.457655746930740e-5 +1.355000000000000e1,-3.920303337806008e-3,-3.882164293975624e-3,-3.813904383038417e-5 +1.360000000000000e1,-5.093094145043389e-3,-5.053780223639464e-3,-3.931392140392453e-5 +1.365000000000000e1,-5.983806472524893e-3,-5.945712562378935e-3,-3.809391014595806e-5 +1.370000000000000e1,-6.559961613977261e-3,-6.525273849625062e-3,-3.468776435219898e-5 +1.375000000000000e1,-6.802691627365772e-3,-6.773190012935771e-3,-2.950161443000116e-5 +1.380000000000000e1,-6.707463804890710e-3,-6.684353071111121e-3,-2.311073377958897e-5 +1.385000000000000e1,-6.284473339733615e-3,-6.268251719093956e-3,-1.622162063965888e-5 +1.390000000000000e1,-5.558596863762739e-3,-5.548972335890281e-3,-9.624527872458162e-6 +1.395000000000000e1,-4.568789741127684e-3,-4.564652509074928e-3,-4.137232052755895e-6 +1.400000000000000e1,-3.366823884054985e-3,-3.366282087129052e-3,-5.417969259325327e-7 diff --git a/doc/plots/feff_vs_larch_data/02_multi_path_model_rspace.csv b/doc/plots/feff_vs_larch_data/02_multi_path_model_rspace.csv new file mode 100644 index 0000000..b3b0b8d --- /dev/null +++ b/doc/plots/feff_vs_larch_data/02_multi_path_model_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.540060197187081e-1,2.553850286629548e-1,-1.379008944246640e-3 +1.012427320004523e0,2.753720981015214e-1,2.773700692573147e-1,-1.997971155793365e-3 +1.043106935762236e0,2.717327131256034e-1,2.742770670542093e-1,-2.544353928605914e-3 +1.073786551519949e0,2.412550998326690e-1,2.441729641743932e-1,-2.917864341724197e-3 +1.104466167277662e0,1.859859393612390e-1,1.889918429470604e-1,-3.005903585821340e-3 +1.135145783035375e0,1.157919515253865e-1,1.182582178363633e-1,-2.466266310976767e-3 +1.165825398793087e0,7.885312271219243e-2,7.837947554052385e-2,4.736471716685758e-4 +1.196505014550800e0,1.448825393064433e-1,1.427294294079115e-1,2.153109898531819e-3 +1.227184630308513e0,2.409926417561092e-1,2.391737196053208e-1,1.818922150788327e-3 +1.257864246066226e0,3.297837621150675e-1,3.286532287453283e-1,1.130533369739228e-3 +1.288543861823939e0,3.967217161772927e-1,3.963912616020737e-1,3.304545752190191e-4 +1.319223477581652e0,4.321847670186574e-1,4.326909889509855e-1,-5.062219323280770e-4 +1.349903093339364e0,4.301799771043416e-1,4.315377812000465e-1,-1.357804095704906e-3 +1.380582709097077e0,3.890156418550046e-1,3.912867674815080e-1,-2.271125626503390e-3 +1.411262324854790e0,3.130259631674461e-1,3.164640346902656e-1,-3.438071522819497e-3 +1.441941940612503e0,2.193350517348692e-1,2.246797428410314e-1,-5.344691106162203e-3 +1.472621556370216e0,1.698430479841986e-1,1.770907230144649e-1,-7.247675030266298e-3 +1.503301172127929e0,2.503885211742414e-1,2.558046366909307e-1,-5.416115516689246e-3 +1.533980787885641e0,3.996623385292096e-1,4.036242613172282e-1,-3.961922788018601e-3 +1.564660403643354e0,5.598348128640122e-1,5.632972728087757e-1,-3.462459944763574e-3 +1.595340019401067e0,7.079828553062668e-1,7.113748343454036e-1,-3.391979039136794e-3 +1.626019635158780e0,8.305515912687177e-1,8.340567946636467e-1,-3.505203394928991e-3 +1.656699250916493e0,9.180068073441712e-1,9.217043406834635e-1,-3.697533339292347e-3 +1.687378866674206e0,9.639638917851899e-1,9.679124703544364e-1,-3.948578569246464e-3 +1.718058482431918e0,9.655883908010141e-1,9.699112280113334e-1,-4.322837210319341e-3 +1.748738098189631e0,9.256846127540328e-1,9.306825241621408e-1,-4.997911408108013e-3 +1.779417713947344e0,8.588482705141177e-1,8.651303088746435e-1,-6.282038360525766e-3 +1.810097329705057e0,8.055908508722817e-1,8.140013083598669e-1,-8.410457487585288e-3 +1.840776945462770e0,8.454376923654231e-1,8.561382465493879e-1,-1.070055418396476e-2 +1.871456561220483e0,1.055666019097279e0,1.067375423365470e0,-1.170940426819067e-2 +1.902136176978195e0,1.442216609203630e0,1.453719003110588e0,-1.150239390695806e-2 +1.932815792735908e0,1.969102441482596e0,1.979886036342371e0,-1.078359485977565e-2 +1.963495408493621e0,2.601615915466748e0,2.611399078447608e0,-9.783162980860016e-3 +1.994175024251334e0,3.309861360311007e0,3.318371059790075e0,-8.509699479068100e-3 +2.024854640009047e0,4.063881586023427e0,4.070843916057710e0,-6.962330034283148e-3 +2.055534255766760e0,4.831336178569493e0,4.836520335316854e0,-5.184156747361612e-3 +2.086213871524472e0,5.577534327642996e0,5.580798196562009e0,-3.263868919012758e-3 +2.116893487282185e0,6.266815582982720e0,6.268138522373226e0,-1.322939390505873e-3 +2.147573103039898e0,6.864628903630456e0,6.864127140187117e0,5.017634433395202e-4 +2.178252718797611e0,7.339873505462783e0,7.337796974752131e0,2.076530710652946e-3 +2.208932334555323e0,7.667165884475729e0,7.663877573900280e0,3.288310575449316e-3 +2.239611950313036e0,7.828761461454651e0,7.824702295865397e0,4.059165589254121e-3 +2.270291566070749e0,7.815920087756086e0,7.811564089002631e0,4.355998753455381e-3 +2.300971181828462e0,7.629572633006370e0,7.625378240483578e0,4.194392522792079e-3 +2.331650797586175e0,7.280221083850665e0,7.276584927693196e0,3.636156157469372e-3 +2.362330413343888e0,6.787082403543473e0,6.784301364735061e0,2.781038808412184e-3 +2.393010029101601e0,6.176560397357544e0,6.174806490396769e0,1.753906960774820e-3 +2.423689644859313e0,5.480193431914059e0,5.479504053047118e0,6.893788669408707e-4 +2.454369260617026e0,4.732273583907589e0,4.732557220530943e0,-2.836366233536225e-4 +2.485048876374739e0,3.967361238530924e0,3.968416095885512e0,-1.054857354588101e-3 +2.515728492132452e0,3.217928052881937e0,3.219468385324337e0,-1.540332442400150e-3 +2.546408107890165e0,2.512355423431360e0,2.514037462128713e0,-1.682038697353061e-3 +2.577087723647877e0,1.873511610918907e0,1.874946591812185e0,-1.434980893278093e-3 +2.607767339405590e0,1.318183422775963e0,1.318914615533435e0,-7.311927574722432e-4 +2.638446955163303e0,8.579752050564430e-1,8.573622136346003e-1,6.129914218426791e-4 +2.669126570921016e0,5.040731796491560e-1,5.009292718792376e-1,3.143907769918353e-3 +2.699806186678729e0,2.860261228246849e-1,2.783166476653689e-1,7.709475159315970e-3 +2.730485802436442e0,2.569081946386579e-1,2.474268256170372e-1,9.481369021620695e-3 +2.761165418194155e0,3.289904715226192e-1,3.218120248983861e-1,7.178446624233059e-3 +2.791845033951867e0,3.922800183600711e-1,3.868672855809198e-1,5.412732779151330e-3 +2.822524649709580e0,4.222225296291647e-1,4.179776638670318e-1,4.244865762132843e-3 +2.853204265467293e0,4.180446979458817e-1,4.146480962657721e-1,3.396601680109579e-3 +2.883883881225006e0,3.831524887364595e-1,3.804171695780840e-1,2.735319158375493e-3 +2.914563496982719e0,3.219355721838948e-1,3.197292981262581e-1,2.206274057636737e-3 +2.945243112740431e0,2.408644210479141e-1,2.390843214536085e-1,1.780099594305640e-3 +2.975922728498144e0,5.837642158968127e-34,5.786921330970920e-34,5.072082799720725e-36 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/02_multi_path_model_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/02_multi_path_model_rspace_contrib.csv new file mode 100644 index 0000000..bbf8953 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/02_multi_path_model_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00,feff0002dat_01 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.540060197187081e-1,2.553850286629548e-1,-1.379008944246640e-3,2.544195718850788e-1,7.852155216570079e-4 +1.012427320004523e0,2.753720981015214e-1,2.773700692573147e-1,-1.997971155793365e-3,2.752296078851635e-1,7.786392148578144e-4 +1.043106935762236e0,2.717327131256034e-1,2.742770670542093e-1,-2.544353928605914e-3,2.709449904649241e-1,1.084832202406689e-3 +1.073786551519949e0,2.412550998326690e-1,2.441729641743932e-1,-2.917864341724197e-3,2.398127187400496e-1,1.577946846114963e-3 +1.104466167277662e0,1.859859393612390e-1,1.889918429470604e-1,-3.005903585821340e-3,1.839786848730161e-1,2.087682574207708e-3 +1.135145783035375e0,1.157919515253865e-1,1.182582178363633e-1,-2.466266310976767e-3,1.135063290399351e-1,2.482854786575078e-3 +1.165825398793087e0,7.885312271219243e-2,7.837947554052385e-2,4.736471716685758e-4,7.805589598998386e-2,2.655251503849246e-3 +1.196505014550800e0,1.448825393064433e-1,1.427294294079115e-1,2.153109898531819e-3,1.457144432219958e-1,2.527444348245657e-3 +1.227184630308513e0,2.409926417561092e-1,2.391737196053208e-1,1.818922150788327e-3,2.416529387298946e-1,2.082636015872479e-3 +1.257864246066226e0,3.297837621150675e-1,3.286532287453283e-1,1.130533369739228e-3,3.296717442421275e-1,1.465918899182665e-3 +1.288543861823939e0,3.967217161772927e-1,3.963912616020737e-1,3.304545752190191e-4,3.955496908458901e-1,1.375503303861332e-3 +1.319223477581652e0,4.321847670186574e-1,4.326909889509855e-1,-5.062219323280770e-4,4.298439203530746e-1,2.353040444044764e-3 +1.349903093339364e0,4.301799771043416e-1,4.315377812000465e-1,-1.357804095704906e-3,4.267144479959524e-1,3.702137770043998e-3 +1.380582709097077e0,3.890156418550046e-1,3.912867674815080e-1,-2.271125626503390e-3,3.845797472245795e-1,4.974584595324298e-3 +1.411262324854790e0,3.130259631674461e-1,3.164640346902656e-1,-3.438071522819497e-3,3.077835269468379e-1,5.901105853455275e-3 +1.441941940612503e0,2.193350517348692e-1,2.246797428410314e-1,-5.344691106162203e-3,2.133321265031469e-1,6.273747498944831e-3 +1.472621556370216e0,1.698430479841986e-1,1.770907230144649e-1,-7.247675030266298e-3,1.642071719148660e-1,5.955895637951875e-3 +1.503301172127929e0,2.503885211742414e-1,2.558046366909307e-1,-5.416115516689246e-3,2.471711155793025e-1,4.930597961586023e-3 +1.533980787885641e0,3.996623385292096e-1,4.036242613172282e-1,-3.961922788018601e-3,3.971028057463870e-1,3.452958858198208e-3 +1.564660403643354e0,5.598348128640122e-1,5.632972728087757e-1,-3.462459944763574e-3,5.570787916875454e-1,2.766295588956445e-3 +1.595340019401067e0,7.079828553062668e-1,7.113748343454036e-1,-3.391979039136794e-3,7.050240838921245e-1,4.489647156648300e-3 +1.626019635158780e0,8.305515912687177e-1,8.340567946636467e-1,-3.505203394928991e-3,8.277612385924962e-1,7.246516475341184e-3 +1.656699250916493e0,9.180068073441712e-1,9.217043406834635e-1,-3.697533339292347e-3,9.158746254134836e-1,9.940155810488184e-3 +1.687378866674206e0,9.639638917851899e-1,9.679124703544364e-1,-3.948578569246464e-3,9.628794049797390e-1,1.202214652858885e-2 +1.718058482431918e0,9.655883908010141e-1,9.699112280113334e-1,-4.322837210319341e-3,9.656541123058654e-1,1.310202600355934e-2 +1.748738098189631e0,9.256846127540328e-1,9.306825241621408e-1,-4.997911408108013e-3,9.266204948977835e-1,1.292558300216578e-2 +1.779417713947344e0,8.588482705141177e-1,8.651303088746435e-1,-6.282038360525766e-3,8.601036588323087e-1,1.143504194819719e-2 +1.810097329705057e0,8.055908508722817e-1,8.140013083598669e-1,-8.410457487585288e-3,8.068928409471963e-1,8.922090034662470e-3 +1.840776945462770e0,8.454376923654231e-1,8.561382465493879e-1,-1.070055418396476e-2,8.478192696762338e-1,6.592622994661669e-3 +1.871456561220483e0,1.055666019097279e0,1.067375423365470e0,-1.170940426819067e-2,1.061311074414427e0,7.330750268853829e-3 +1.902136176978195e0,1.442216609203630e0,1.453719003110588e0,-1.150239390695806e-2,1.452630835439992e0,1.132538796574250e-2 +1.932815792735908e0,1.969102441482596e0,1.979886036342371e0,-1.078359485977565e-2,1.984591108477463e0,1.609893999995509e-2 +1.963495408493621e0,2.601615915466748e0,2.611399078447608e0,-9.783162980860016e-3,2.621529475668214e0,2.026050342955889e-2 +1.994175024251334e0,3.309861360311007e0,3.318371059790075e0,-8.509699479068100e-3,3.332744962391723e0,2.299325228394616e-2 +2.024854640009047e0,4.063881586023427e0,4.070843916057710e0,-6.962330034283148e-3,4.087631649863540e0,2.375010390950852e-2 +2.055534255766760e0,4.831336178569493e0,4.836520335316854e0,-5.184156747361612e-3,4.853436166589821e0,2.224319365292109e-2 +2.086213871524472e0,5.577534327642996e0,5.580798196562009e0,-3.263868919012758e-3,5.595359047349070e0,1.851133814917671e-2 +2.116893487282185e0,6.266815582982720e0,6.268138522373226e0,-1.322939390505873e-3,6.277967201738252e0,1.312231688232778e-2 +2.147573103039898e0,6.864628903630456e0,6.864127140187117e0,5.017634433395202e-4,6.867261314131377e0,8.319387493783031e-3 +2.178252718797611e0,7.339873505462783e0,7.337796974752131e0,2.076530710652946e-3,7.332962907802561e0,1.032231381085811e-2 +2.208932334555323e0,7.667165884475729e0,7.663877573900280e0,3.288310575449316e-3,7.650691766957828e0,1.759234447325233e-2 +2.239611950313036e0,7.828761461454651e0,7.824702295865397e0,4.059165589254121e-3,7.803772599720386e0,2.523715852097826e-2 +2.270291566070749e0,7.815920087756086e0,7.811564089002631e0,4.355998753455381e-3,7.784473759773748e0,3.144638165054546e-2 +2.300971181828462e0,7.629572633006370e0,7.625378240483578e0,4.194392522792079e-3,7.594550634918871e0,3.522640581922410e-2 +2.331650797586175e0,7.280221083850665e0,7.276584927693196e0,3.636156157469372e-3,7.245041673585752e0,3.596317354443459e-2 +2.362330413343888e0,6.787082403543473e0,6.784301364735061e0,2.781038808412184e-3,6.755341169163074e0,3.340822112215637e-2 +2.393010029101601e0,6.176560397357544e0,6.174806490396769e0,1.753906960774820e-3,6.151643446193118e0,2.772827455890307e-2 +2.423689644859313e0,5.480193431914059e0,5.479504053047118e0,6.893788669408707e-4,5.464911647152372e0,1.964974409057203e-2 +2.454369260617026e0,4.732273583907589e0,4.732557220530943e0,-2.836366233536225e-4,4.728565783725616e0,1.143866961260111e-2 +2.485048876374739e0,3.967361238530924e0,3.968416095885512e0,-1.054857354588101e-3,3.976106069601268e0,1.159693522387347e-2 +2.515728492132452e0,3.217928052881937e0,3.219468385324337e0,-1.540332442400150e-3,3.238888660984108e0,2.116922866609242e-2 +2.546408107890165e0,2.512355423431360e0,2.514037462128713e0,-1.682038697353061e-3,2.544255832237022e0,3.202390149624688e-2 +2.577087723647877e0,1.873511610918907e0,1.874946591812185e0,-1.434980893278093e-3,1.914203390896280e0,4.176939291454707e-2 +2.607767339405590e0,1.318183422775963e0,1.318914615533435e0,-7.311927574722432e-4,1.364780581349432e0,4.956853171621960e-2 +2.638446955163303e0,8.579752050564430e-1,8.573622136346003e-1,6.129914218426791e-4,9.065953132385687e-1,5.513634643614457e-2 +2.669126570921016e0,5.040731796491560e-1,5.009292718792376e-1,3.143907769918353e-3,5.477744504926644e-1,5.854302663348670e-2 +2.699806186678729e0,2.860261228246849e-1,2.783166476653689e-1,7.709475159315970e-3,3.054887341212001e-1,6.003068417820552e-2 +2.730485802436442e0,2.569081946386579e-1,2.474268256170372e-1,9.481369021620695e-3,2.263931592284399e-1,5.977708064656349e-2 +2.761165418194155e0,3.289904715226192e-1,3.218120248983861e-1,7.178446624233059e-3,2.764597280540505e-1,5.770818112340811e-2 +2.791845033951867e0,3.922800183600711e-1,3.868672855809198e-1,5.412732779151330e-3,3.387747125398984e-1,5.357469641948517e-2 +2.822524649709580e0,4.222225296291647e-1,4.179776638670318e-1,4.244865762132843e-3,3.771583002997147e-1,4.765254050044569e-2 +2.853204265467293e0,4.180446979458817e-1,4.146480962657721e-1,3.396601680109579e-3,3.905553784828427e-1,4.286027444778678e-2 +2.883883881225006e0,3.831524887364595e-1,3.804171695780840e-1,2.735319158375493e-3,3.844590788721317e-1,4.767910665051835e-2 +2.914563496982719e0,3.219355721838948e-1,3.197292981262581e-1,2.206274057636737e-3,3.650071942940938e-1,6.933105779523635e-2 +2.945243112740431e0,2.408644210479141e-1,2.390843214536085e-1,1.780099594305640e-3,3.379002518113067e-1,1.057438710491853e-1 +2.975922728498144e0,5.837642158968127e-34,5.786921330970920e-34,5.072082799720725e-36,1.156407585389740e-33,5.743535940781606e-34 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/03_single_dataset_fit.csv b/doc/plots/feff_vs_larch_data/03_single_dataset_fit.csv new file mode 100644 index 0000000..cb523d4 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/03_single_dataset_fit.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.268976448800761e-1,3.268976448800761e-1 +1.000000000000000e-1,0.000000000000000e0,-3.297673845053191e-1,3.297673845053191e-1 +1.500000000000000e-1,0.000000000000000e0,-3.326371241305622e-1,3.326371241305622e-1 +2.000000000000000e-1,0.000000000000000e0,-3.365758531351953e-1,3.365758531351953e-1 +2.500000000000000e-1,0.000000000000000e0,-3.415002267804358e-1,3.415002267804358e-1 +3.000000000000000e-1,0.000000000000000e0,-3.472967572297996e-1,3.472967572297996e-1 +3.500000000000000e-1,0.000000000000000e0,-3.538170121631239e-1,3.538170121631239e-1 +4.000000000000000e-1,0.000000000000000e0,-3.608714103737301e-1,3.608714103737301e-1 +4.500000000000000e-1,0.000000000000000e0,-3.682203485404715e-1,3.682203485404715e-1 +5.000000000000000e-1,0.000000000000000e0,-3.755559045179838e-1,3.755559045179838e-1 +5.500000000000000e-1,0.000000000000000e0,-3.823918834449200e-1,3.823918834449200e-1 +6.000000000000001e-1,-3.777836934979649e-1,-3.765380316269572e-1,-1.245661871007664e-3 +6.500000000000000e-1,-3.673890890960972e-1,-3.665482948089570e-1,-8.407942871402341e-4 +7.000000000000001e-1,-3.561863631527134e-1,-3.550976042516860e-1,-1.088758901027387e-3 +7.500000000000000e-1,-3.434853298507125e-1,-3.420263598189173e-1,-1.458970031795126e-3 +8.000000000000000e-1,-3.280333920315563e-1,-3.271845322484740e-1,-8.488597830823008e-4 +8.500000000000001e-1,-3.112087816733519e-1,-3.104299815207995e-1,-7.788001525523836e-4 +9.000000000000000e-1,-2.930066528755024e-1,-2.916511900433462e-1,-1.355462832156151e-3 +9.500000000000001e-1,-2.714635245138833e-1,-2.707575981465084e-1,-7.059263673748761e-4 +1.000000000000000e0,-2.483893574106130e-1,-2.476546850239839e-1,-7.346723866291094e-4 +1.050000000000000e0,-2.232454900356748e-1,-2.223597504113360e-1,-8.857396243387994e-4 +1.100000000000000e0,-1.954054563351977e-1,-1.949945922223872e-1,-4.108641128104940e-4 +1.150000000000000e0,-1.665637434307494e-1,-1.656435969740152e-1,-9.201464567342443e-4 +1.200000000000000e0,-1.347440696770415e-1,-1.345071799266582e-1,-2.368897503833012e-4 +1.250000000000000e0,-1.023950481444940e-1,-1.019760440441987e-1,-4.190041002952588e-4 +1.300000000000000e0,-6.864970230842622e-2,-6.850143370976029e-2,-1.482685986659293e-4 +1.350000000000000e0,-3.465669701298425e-2,-3.460195351519825e-2,-5.474349778600285e-5 +1.400000000000000e0,-9.120879116824690e-4,-8.615806808538847e-4,-5.050723082858431e-5 +1.450000000000000e0,3.229697238026218e-2,3.206234833169036e-2,2.346240485718160e-4 +1.500000000000000e0,6.360521522080574e-2,6.351361318496372e-2,9.160203584201998e-5 +1.550000000000000e0,9.322614888324421e-2,9.284197110179941e-2,3.841777814447972e-4 +1.600000000000000e0,1.194642650798598e-1,1.192198127752086e-1,2.444523046511993e-4 +1.650000000000000e0,1.423104579858520e-1,1.418467050590829e-1,4.637529267690343e-4 +1.700000000000000e0,1.606630733846053e-1,1.601845173882635e-1,4.785559963418340e-4 +1.750000000000000e0,1.743888121858084e-1,1.738060039588686e-1,5.828082269398183e-4 +1.800000000000000e0,1.830084364262453e-1,1.824037495155314e-1,6.046869107138864e-4 +1.850000000000000e0,1.862742104557097e-1,1.857441106062279e-1,5.300998494817966e-4 +1.900000000000000e0,1.842081964287167e-1,1.836149319892036e-1,5.932644395130471e-4 +1.950000000000000e0,1.766059888218384e-1,1.761228810568809e-1,4.831077649575521e-4 +2.000000000000000e0,1.642664515646077e-1,1.637107029454708e-1,5.557486191369032e-4 +2.050000000000000e0,1.474141922485638e-1,1.469631014485319e-1,4.510908000318337e-4 +2.100000000000000e0,1.265907365134247e-1,1.265940844774778e-1,-3.347964053046493e-6 +2.150000000000000e0,1.023822419612164e-1,1.032873219147697e-1,-9.050799535533227e-4 +2.200000000000000e0,7.701515080768678e-2,7.792269290600756e-2,-9.075420983207794e-4 +2.250000000000000e0,5.153745565652759e-2,5.168819766163117e-2,-1.507420051035865e-4 +2.300000000000000e0,2.617762796337823e-2,2.583526733293109e-2,3.423606304471319e-4 +2.350000000000000e0,2.446562661639488e-3,1.937783854416020e-3,5.087788072234683e-4 +2.400000000000000e0,-1.767512799686694e-2,-1.805664473956577e-2,3.815167426988349e-4 +2.450000000000000e0,-3.274346580877790e-2,-3.266170080267471e-2,-8.176500610319187e-5 +2.500000000000000e0,-4.382518032107124e-2,-4.246418058289012e-2,-1.360999738181122e-3 +2.550000000000000e0,-5.224890881855145e-2,-4.965295685678019e-2,-2.595951961771252e-3 +2.600000000000000e0,-5.753296098847314e-2,-5.537310699533237e-2,-2.159853993140774e-3 +2.650000000000000e0,-5.979977007843909e-2,-5.926234440639008e-2,-5.374256720490078e-4 +2.700000000000000e0,-5.986915341257627e-2,-6.014050353844529e-2,2.713501258690132e-4 +2.750000000000000e0,-5.731650595775321e-2,-5.778603735051647e-2,4.695313927632616e-4 +2.800000000000000e0,-5.247040781674955e-2,-5.274698990234171e-2,2.765820855921558e-4 +2.850000000000000e0,-4.589837153834385e-2,-4.575698675201088e-2,-1.413847863329654e-4 +2.900000000000000e0,-3.759679142597292e-2,-3.750691013416840e-2,-8.988129180452498e-5 +2.950000000000000e0,-2.804338735305627e-2,-2.833331387462459e-2,2.899265215683226e-4 +3.000000000000000e0,-1.808576821783272e-2,-1.851009792258654e-2,4.243297047538223e-4 +3.050000000000000e0,-8.463656138237236e-3,-8.421382331279287e-3,-4.227380695794904e-5 +3.100000000000000e0,1.875012609451600e-3,1.381231289104644e-3,4.937813203469556e-4 +3.150000000000000e0,1.104750691948046e-2,1.020198060718492e-2,8.455263122955428e-4 +3.200000000000000e0,1.829156034133850e-2,1.752911923062438e-2,7.624411107141175e-4 +3.250000000000000e0,2.319802479461397e-2,2.312507094381292e-2,7.295385080104827e-5 +3.300000000000000e0,2.775469750671906e-2,2.690607056251670e-2,8.486269442023638e-4 +3.350000000000000e0,2.981545728932617e-2,2.867044610332271e-2,1.145011186003457e-3 +3.400000000000000e0,2.906282750573905e-2,2.820179323716468e-2,8.610342685743712e-4 +3.450000000000000e0,2.559955079337264e-2,2.542907697057061e-2,1.704738228020253e-4 +3.500000000000000e0,2.130999948281507e-2,2.050865401010817e-2,8.013454727068964e-4 +3.550000000000000e0,1.467695230637272e-2,1.372672199524562e-2,9.502303111270996e-4 +3.600000000000000e0,6.053656213176244e-3,5.437329484330872e-3,6.163267288453724e-4 +3.650000000000000e0,-3.846303654411999e-3,-3.938729376983998e-3,9.242572257199934e-5 +3.700000000000000e0,-1.358776472872560e-2,-1.391388231518069e-2,3.261175864550832e-4 +3.750000000000000e0,-2.365154505088231e-2,-2.393674479228043e-2,2.851997413981164e-4 +3.800000000000000e0,-3.334724748035984e-2,-3.343339656035325e-2,8.614907999341531e-5 +3.850000000000000e0,-4.191147131317721e-2,-4.183807772938228e-2,-7.339358379492705e-5 +3.900000000000000e0,-4.864506263161088e-2,-4.861931616865383e-2,-2.574646295705474e-5 +3.950000000000000e0,-5.335856535183749e-2,-5.330192308686196e-2,-5.664226497553715e-5 +4.000000000000000e0,-5.560824185505071e-2,-5.548615110580379e-2,-1.220907492469198e-4 +4.050000000000000e0,-5.503707212165573e-2,-5.486899261853788e-2,-1.680795031178475e-4 +4.100000000000001e0,-5.145783717421721e-2,-5.129724543895667e-2,-1.605917352605346e-4 +4.150000000000000e0,-4.505502007891991e-2,-4.484421785377745e-2,-2.108022251424632e-4 +4.200000000000000e0,-3.599424329122679e-2,-3.577239847693825e-2,-2.218448142885382e-4 +4.250000000000000e0,-2.466155027850797e-2,-2.449871051825350e-2,-1.628397602544684e-4 +4.300000000000000e0,-1.170763451368862e-2,-1.152355668102802e-2,-1.840778326606032e-4 +4.350000000000001e0,2.486117963808274e-3,2.626782176498646e-3,-1.406642126903727e-4 +4.400000000000000e0,1.729191834856057e-2,1.735188489634286e-2,-5.996654778229679e-5 +4.450000000000000e0,3.201871017917022e-2,3.198087201971325e-2,3.783815945697377e-5 +4.500000000000000e0,4.587078910788958e-2,4.578415531956627e-2,8.663378832331203e-5 +4.550000000000000e0,5.812835205576917e-2,5.802278862975022e-2,1.055634260189453e-4 +4.600000000000001e0,6.815488406839490e-2,6.801860689814104e-2,1.362771702538568e-4 +4.650000000000000e0,7.535484627589885e-2,7.519095819326974e-2,1.638880826291128e-4 +4.700000000000000e0,7.917809803261584e-2,7.907050484280662e-2,1.075931898092269e-4 +4.750000000000000e0,7.941765533533991e-2,7.932352553295795e-2,9.412980238196478e-5 +4.800000000000001e0,7.596874121023779e-2,7.581138773824495e-2,1.573534719928465e-4 +4.850000000000001e0,6.881951284455116e-2,6.861441912830618e-2,2.050937162449834e-4 +4.900000000000000e0,5.820662740473165e-2,5.804021216658433e-2,1.664152381473244e-4 +4.950000000000000e0,4.475018635974530e-2,4.458470583490288e-2,1.654805248424221e-4 +5.000000000000000e0,2.902832377319497e-2,2.887273754616966e-2,1.555862270253110e-4 +5.050000000000001e0,1.170840970566180e-2,1.162056570605317e-2,8.784399960863089e-5 +5.100000000000001e0,-6.426912477534976e-3,-6.406409710856075e-3,-2.050276667890129e-5 +5.150000000000000e0,-2.449440770132130e-2,-2.441194969227496e-2,-8.245800904634060e-5 +5.200000000000000e0,-4.165696293965118e-2,-4.157383280565753e-2,-8.313013399365021e-5 +5.250000000000000e0,-5.714688946028895e-2,-5.707107233779914e-2,-7.581712248980882e-5 +5.300000000000001e0,-7.016778260112058e-2,-7.009799183556946e-2,-6.979076555112262e-5 +5.350000000000001e0,-7.999659799978627e-2,-7.992801141411650e-2,-6.858658566977205e-5 +5.400000000000000e0,-8.614731703388397e-2,-8.601348762715172e-2,-1.338294067322471e-4 +5.450000000000000e0,-8.822410022823196e-2,-8.803362520742250e-2,-1.904750208094608e-4 +5.500000000000000e0,-8.609740606899487e-2,-8.592152147300551e-2,-1.758845959893562e-4 +5.550000000000001e0,-7.998111624582313e-2,-7.981037259893245e-2,-1.707436468906809e-4 +5.600000000000001e0,-7.015446554961875e-2,-6.997406329368848e-2,-1.804022559302731e-4 +5.650000000000000e0,-5.696813982272479e-2,-5.681246321899181e-2,-1.556766037329738e-4 +5.700000000000000e0,-4.094810516589030e-2,-4.087629954781662e-2,-7.180561807367675e-5 +5.750000000000000e0,-2.296693290685217e-2,-2.290966780584851e-2,-5.726510100365415e-5 +5.800000000000001e0,-3.885508256232132e-3,-3.808900432877702e-3,-7.660782335443001e-5 +5.850000000000001e0,1.536042889997003e-2,1.543935053365181e-2,-7.892163368178329e-5 +5.900000000000000e0,3.379894468894724e-2,3.386380321041620e-2,-6.485852146895926e-5 +5.950000000000000e0,5.056333815108487e-2,5.058289229438075e-2,-1.955414329588012e-5 +6.000000000000000e0,6.486275317510251e-2,6.481106695652265e-2,5.168621857985778e-5 +6.050000000000001e0,7.598135851812213e-2,7.588596955876613e-2,9.538895935599923e-5 +6.100000000000001e0,8.333136799958563e-2,8.328577021902621e-2,4.559778055941710e-5 +6.150000000000000e0,8.661819104622505e-2,8.665803993284260e-2,-3.984888661755226e-5 +6.200000000000000e0,8.572128384020780e-2,8.585009751283547e-2,-1.288136726276673e-4 +6.250000000000000e0,8.072316419742299e-2,8.091784206598349e-2,-1.946778685604916e-4 +6.300000000000001e0,7.190338304253563e-2,7.212316170648757e-2,-2.197786639519389e-4 +6.350000000000001e0,5.972300433301267e-2,5.992053020274670e-2,-1.975258697340318e-4 +6.400000000000000e0,4.480045228870663e-2,4.493346601035843e-2,-1.330137216517951e-4 +6.450000000000000e0,2.787999480075992e-2,2.792209412932242e-2,-4.209932856249696e-5 +6.500000000000000e0,9.794475125467494e-3,9.743550193725685e-3,5.092493174180951e-5 +6.550000000000001e0,-8.649198550871437e-3,-8.692666098155817e-3,4.346754728437943e-5 +6.600000000000001e0,-2.647225723104365e-2,-2.647263444314461e-2,3.772121009680551e-7 +6.650000000000000e0,-4.272166432872623e-2,-4.272516798296610e-2,3.503654239872533e-6 +6.700000000000000e0,-5.663038526589935e-2,-5.666526066338105e-2,3.487539748169705e-5 +6.750000000000000e0,-6.755852480732918e-2,-6.763314417566683e-2,7.461936833765004e-5 +6.800000000000001e0,-7.502255435362017e-2,-7.512650645126018e-2,1.039520976400116e-4 +6.850000000000001e0,-7.871635375816982e-2,-7.882422771626518e-2,1.078739580953614e-4 +6.900000000000000e0,-7.852317668738376e-2,-7.860048152759019e-2,7.730484020643247e-5 +6.950000000000000e0,-7.451811204244330e-2,-7.452857121851109e-2,1.045917606778968e-5 +7.000000000000000e0,-6.696108993561121e-2,-6.687442348336112e-2,-8.666645225009761e-5 +7.050000000000001e0,-5.616112842540004e-2,-5.608020389949824e-2,-8.092452590179738e-5 +7.100000000000001e0,-4.273563741591717e-2,-4.273884800733656e-2,3.210591419389175e-6 +7.150000000000000e0,-2.750312924673055e-2,-2.756105371595664e-2,5.792446922608940e-5 +7.200000000000000e0,-1.125562947624377e-2,-1.133714942722469e-2,8.151995098091940e-5 +7.250000000000000e0,5.182346517647962e-3,5.104386225835111e-3,7.796029181285098e-5 +7.300000000000001e0,2.099546135161509e-2,2.093963023745358e-2,5.583111416150588e-5 +7.350000000000001e0,3.541780922423953e-2,3.539092969323673e-2,2.687953100279777e-5 +7.400000000000000e0,4.776978023521901e-2,4.776549937115418e-2,4.280864064828971e-6 +7.450000000000000e0,5.748977653453086e-2,5.748897616249763e-2,8.003720332258601e-7 +7.500000000000000e0,6.415932042403459e-2,6.413229924008720e-2,2.702118394738717e-5 +7.550000000000001e0,6.747503790421891e-2,6.743065703094737e-2,4.438087327153506e-5 +7.600000000000001e0,6.731100801016585e-2,6.729370051909321e-2,1.730749107263507e-5 +7.650000000000000e0,6.378462695705714e-2,6.380681338443571e-2,-2.218642737857046e-5 +7.700000000000000e0,5.716227814194382e-2,5.722324317634090e-2,-6.096503439707857e-5 +7.750000000000000e0,4.785912897245064e-2,4.794765928744400e-2,-8.853031499335418e-5 +7.800000000000001e0,3.641414929684673e-2,3.651224781276700e-2,-9.809851592026964e-5 +7.850000000000001e0,2.345953380963931e-2,2.354673555345971e-2,-8.720174382040313e-5 +7.900000000000000e0,9.686235524453524e-3,9.744023012530714e-3,-5.778748807718989e-5 +7.950000000000000e0,-4.192531505021911e-3,-4.176698780340420e-3,-1.583272468149051e-5 +8.000000000000000e0,-1.747791006610563e-2,-1.750738053289593e-2,2.947046679029758e-5 +8.050000000000001e0,-2.956922861691992e-2,-2.958708967504839e-2,1.786105812847175e-5 +8.100000000000000e0,-3.984352963508932e-2,-3.983413356577017e-2,-9.396069319156375e-6 +8.150000000000000e0,-4.779168518870353e-2,-4.777453075574801e-2,-1.715443295552399e-5 +8.200000000000001e0,-5.307700692485089e-2,-5.306483634664998e-2,-1.217057820090961e-5 +8.250000000000000e0,-5.550906208471146e-2,-5.550704943038630e-2,-2.012654325159180e-6 +8.300000000000001e0,-5.504910603755565e-2,-5.505545080616733e-2,6.344768611679652e-6 +8.350000000000000e0,-5.180753466185976e-2,-5.181518410597468e-2,7.649444114916915e-6 +8.400000000000000e0,-4.603372758248873e-2,-4.603283996400761e-2,-8.876184811185128e-7 +8.450000000000001e0,-3.809903676730234e-2,-3.807974011877129e-2,-1.929664853104335e-5 +8.500000000000000e0,-2.847400764720174e-2,-2.842900706416297e-2,-4.500058303876647e-5 +8.550000000000001e0,-1.767405632757939e-2,-1.762776604187867e-2,-4.629028570071400e-5 +8.600000000000000e0,-6.298276260873051e-3,-6.265467805123305e-3,-3.280845574974572e-5 +8.650000000000000e0,5.035769775153548e-3,5.058164119561192e-3,-2.239434440764413e-5 +8.700000000000001e0,1.574785565201123e-2,1.576394147457535e-2,-1.608582256411653e-5 +8.750000000000000e0,2.530843583208224e-2,2.532237674565548e-2,-1.394091357323143e-5 +8.800000000000001e0,3.326440291236927e-2,3.327940889963035e-2,-1.500598726107694e-5 +8.850000000000000e0,3.926004624517588e-2,3.927746259345387e-2,-1.741634827798905e-5 +8.900000000000000e0,4.305227439245696e-2,4.307090031615517e-2,-1.862592369820254e-5 +8.950000000000001e0,4.451949437841507e-2,4.453524239994800e-2,-1.574802153293114e-5 +9.000000000000000e0,4.366389209502932e-2,4.366986774922136e-2,-5.975654192039159e-6 +9.050000000000001e0,4.059788562553945e-2,4.059426945086783e-2,3.616174671622341e-6 +9.100000000000000e0,3.554789109497152e-2,3.553864066000119e-2,9.250434970332899e-6 +9.150000000000000e0,2.884498268968012e-2,2.882912985981000e-2,1.585282987012077e-5 +9.200000000000001e0,2.089187345384983e-2,2.086773967534297e-2,2.413377850686571e-5 +9.250000000000000e0,1.214221599717891e-2,1.210864596828999e-2,3.357002888891916e-5 +9.300000000000001e0,3.075233369286040e-3,3.032445262751691e-3,4.278810653434925e-5 +9.350000000000000e0,-5.830113931287500e-3,-5.880191165762418e-3,5.007723447491771e-5 +9.400000000000000e0,-1.412005297681689e-2,-1.417398943150237e-2,5.393645468548813e-5 +9.450000000000001e0,-2.138873848399320e-2,-2.144230031957713e-2,5.356183558392902e-5 +9.500000000000000e0,-2.729769011539622e-2,-2.734688254021515e-2,4.919242481893002e-5 +9.550000000000001e0,-3.159036470265274e-2,-3.163332810904462e-2,4.296340639187851e-5 +9.600000000000001e0,-3.410925680714499e-2,-3.414161229092184e-2,3.235548377684971e-5 +9.650000000000000e0,-3.479031120286476e-2,-3.480980713837347e-2,1.949593550870654e-5 +9.700000000000001e0,-3.366547946004795e-2,-3.367274827856154e-2,7.268818513588016e-6 +9.750000000000000e0,-3.085890102197518e-2,-3.085638761297102e-2,-2.513409004162998e-6 +9.800000000000001e0,-2.657709911368139e-2,-2.656777425911979e-2,-9.324854561596624e-6 +9.850000000000001e0,-2.109523402313100e-2,-2.108134575971436e-2,-1.388826341664276e-5 +9.900000000000000e0,-1.474027688967873e-2,-1.472237059660488e-2,-1.790629307384800e-5 +9.950000000000001e0,-7.872098130852358e-3,-7.848486265504509e-3,-2.361186534784870e-5 +1.000000000000000e1,-8.635384146493817e-4,-8.303299601267044e-4,-3.320845452267737e-5 +1.005000000000000e1,5.947142276767835e-3,5.967696203880666e-3,-2.055392711283049e-5 +1.010000000000000e1,1.221286025361106e-2,1.220524907322407e-2,7.611180386994654e-6 +1.015000000000000e1,1.761801384364678e-2,1.758270819396180e-2,3.530564968498226e-5 +1.020000000000000e1,2.191356089327073e-2,2.185545223720625e-2,5.810865606448515e-5 +1.025000000000000e1,2.491746252846702e-2,2.484456504442948e-2,7.289748403754154e-5 +1.030000000000000e1,2.652176639049448e-2,2.644376433561458e-2,7.800205487989292e-5 +1.035000000000000e1,2.669553241056507e-2,2.662232364887630e-2,7.320876168876583e-5 +1.040000000000000e1,2.548359784981041e-2,2.542397138460611e-2,5.962646520429188e-5 +1.045000000000000e1,2.300139923154883e-2,2.296196189734932e-2,3.943733419950815e-5 +1.050000000000000e1,1.942627014354850e-2,1.941070745512368e-2,1.556268842481737e-5 +1.055000000000000e1,1.498580562358155e-2,1.499452686579414e-2,-8.721242212589991e-6 +1.060000000000000e1,9.944017843054674e-3,9.974198693185289e-3,-3.018085013061465e-5 +1.065000000000000e1,4.586098266189178e-3,4.632098406151893e-3,-4.600013996271506e-5 +1.070000000000000e1,-7.973548735147222e-4,-7.432539632589710e-4,-5.410091025575116e-5 +1.075000000000000e1,-5.925788701517317e-3,-5.872407045088559e-3,-5.338165642875762e-5 +1.080000000000000e1,-1.054302160801406e-2,-1.049916537225566e-2,-4.385623575840249e-5 +1.085000000000000e1,-1.442972752757565e-2,-1.440304556185425e-2,-2.668196572140277e-5 +1.090000000000000e1,-1.741348841485288e-2,-1.740941248044334e-2,-4.075934409535076e-6 +1.095000000000000e1,-1.937597675854539e-2,-1.939684951854412e-2,2.087275999872878e-5 +1.100000000000000e1,-2.025699963517992e-2,-2.030147859947670e-2,4.447896429677495e-5 +1.105000000000000e1,-2.008713961387045e-2,-2.011811528014801e-2,3.097566627756343e-5 +1.110000000000000e1,-1.889026388537436e-2,-1.889830850113327e-2,8.044615758911328e-6 +1.115000000000000e1,-1.675362180628563e-2,-1.674550547151661e-2,-8.116334769020517e-6 +1.120000000000000e1,-1.382440145974300e-2,-1.380769691825404e-2,-1.670454148895544e-5 +1.125000000000000e1,-1.028594025413751e-2,-1.026801122849810e-2,-1.792902563940539e-5 +1.130000000000000e1,-6.346686555935120e-3,-6.333830322864506e-3,-1.285623307061348e-5 +1.135000000000000e1,-2.228242395724569e-3,-2.225052784712364e-3,-3.189611012205038e-6 +1.140000000000000e1,1.846841791299773e-3,1.837849005904521e-3,8.992785395251640e-6 +1.145000000000000e1,5.666861037338006e-3,5.645344587323338e-3,2.151645001466883e-5 +1.150000000000000e1,9.041725533810552e-3,9.009347291000334e-3,3.237824281021769e-5 +1.155000000000000e1,1.181217107782361e-2,1.177219120098477e-2,3.997987683884360e-5 +1.160000000000000e1,1.385697877077420e-2,1.381367178822808e-2,4.330698254612596e-5 +1.165000000000000e1,1.509789533074890e-2,1.505585633405458e-2,4.203899669432028e-5 +1.170000000000000e1,1.550208020779305e-2,1.546549873722254e-2,3.658147057051392e-5 +1.175000000000000e1,1.508204476642966e-2,1.505402551560786e-2,2.801925082179801e-5 +1.180000000000000e1,1.389318446268050e-2,1.387518862882983e-2,1.799583385067062e-5 +1.185000000000000e1,1.202913000178999e-2,1.202059948383338e-2,8.530517956604339e-6 +1.190000000000000e1,9.615251568498392e-3,9.613461261101122e-3,1.790307397270610e-6 +1.195000000000000e1,6.800736180625739e-3,6.800898714359591e-3,-1.625337338519856e-7 +1.200000000000000e1,3.749718230862121e-3,3.745342343972282e-3,4.375886889839819e-6 +1.205000000000000e1,6.256576090357862e-4,6.154456833254968e-4,1.021192571028934e-5 +1.210000000000000e1,-2.414106607878190e-3,-2.423018484298121e-3,8.911876419931755e-6 +1.215000000000000e1,-5.212595700662888e-3,-5.215595463044012e-3,2.999762381123566e-6 +1.220000000000000e1,-7.631604085326800e-3,-7.626646693406831e-3,-4.957391919969446e-6 +1.225000000000000e1,-9.558197720907992e-3,-9.545630894253658e-3,-1.256682665433384e-5 +1.230000000000000e1,-1.090975331231557e-2,-1.089185057317416e-2,-1.790273914141494e-5 +1.235000000000000e1,-1.163719381629453e-2,-1.161747977356186e-2,-1.971404273267037e-5 +1.240000000000000e1,-1.172631486250230e-2,-1.170878356362018e-2,-1.753129888211989e-5 +1.245000000000000e1,-1.119720304832548e-2,-1.118553490485767e-2,-1.166814346781168e-5 +1.250000000000000e1,-1.010184941713039e-2,-1.009872585316787e-2,-3.123563962521489e-6 +1.255000000000000e1,-8.520154404354179e-3,-8.526753148078050e-3,6.598743723870704e-6 +1.260000000000000e1,-6.554599458345555e-3,-6.570329299746829e-3,1.572984140127322e-5 +1.265000000000000e1,-4.323921670669172e-3,-4.346426179192378e-3,2.250450852320663e-5 +1.270000000000000e1,-1.956168444021761e-3,-1.981596596233264e-3,2.542815221150303e-5 +1.275000000000000e1,4.184719487488460e-4,3.949609158195311e-4,2.351103292931491e-5 +1.280000000000000e1,2.674671297837844e-3,2.658228262054358e-3,1.644303578348608e-5 +1.285000000000000e1,4.698425553763374e-3,4.693736937645331e-3,4.688616118042957e-6 +1.290000000000000e1,6.392656985658043e-3,6.403167136452872e-3,-1.051015079482891e-5 +1.295000000000000e1,7.681688395190683e-3,7.708913462767189e-3,-2.722506757650567e-5 +1.300000000000000e1,8.514394540980920e-3,8.557415386360352e-3,-4.302084537943264e-5 +1.305000000000000e1,8.882264352829357e-3,8.921120829288290e-3,-3.885647645893338e-5 +1.310000000000000e1,8.768340116873764e-3,8.799060733982397e-3,-3.072061710863300e-5 +1.315000000000000e1,8.191235811459027e-3,8.216056673385493e-3,-2.482086192646601e-5 +1.320000000000000e1,7.199550105252097e-3,7.220508775011014e-3,-2.095866975891734e-5 +1.325000000000000e1,5.862290726879617e-3,5.880972324172317e-3,-1.868159729269923e-5 +1.330000000000000e1,4.264375541101022e-3,4.281770028317760e-3,-1.739448721673788e-5 +1.335000000000000e1,2.501444368914018e-3,2.517910101342152e-3,-1.646573242813356e-5 +1.340000000000000e1,6.742893367682573e-4,6.896092953572842e-4,-1.531995858902692e-5 +1.345000000000000e1,-1.116779322556939e-3,-1.103268397111659e-3,-1.351092544528052e-5 +1.350000000000000e1,-2.777323617648995e-3,-2.766552601704902e-3,-1.077101594409253e-5 +1.355000000000000e1,-4.223640950116789e-3,-4.216604818136516e-3,-7.036131980273259e-6 +1.360000000000000e1,-5.386856318328236e-3,-5.384409353799396e-3,-2.446964528840176e-6 +1.365000000000000e1,-6.216051232020142e-3,-6.218721903467787e-3,2.670671447644636e-6 +1.370000000000000e1,-6.680296957334652e-3,-6.688139474115473e-3,7.842516780820485e-6 +1.375000000000000e1,-6.769524607447529e-3,-6.782019522012581e-3,1.249491456505221e-5 +1.380000000000000e1,-6.494230674139711e-3,-6.510241987221761e-3,1.601131308204967e-5 +1.385000000000000e1,-5.884080187217380e-3,-5.901871631962295e-3,1.779144474491502e-5 +1.390000000000000e1,-4.985527395400274e-3,-5.002836222723251e-3,1.730882732297635e-5 +1.395000000000000e1,-3.858622742049733e-3,-3.872785596563409e-3,1.416285451367625e-5 +1.400000000000000e1,-2.573212619240187e-3,-2.581335079556789e-3,8.122460316602274e-6 diff --git a/doc/plots/feff_vs_larch_data/03_single_dataset_fit_rspace.csv b/doc/plots/feff_vs_larch_data/03_single_dataset_fit_rspace.csv new file mode 100644 index 0000000..89eec86 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/03_single_dataset_fit_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.397685957215776e-1,2.409123029015491e-1,-1.143707179971559e-3 +1.012427320004523e0,2.588380250667334e-1,2.605886922824429e-1,-1.750667215709434e-3 +1.043106935762236e0,2.545050711502052e-1,2.567681663706514e-1,-2.263095220446154e-3 +1.073786551519949e0,2.252441091259201e-1,2.278088376348592e-1,-2.564728508939018e-3 +1.104466167277662e0,1.733119956830510e-1,1.757988182110101e-1,-2.486822527959148e-3 +1.135145783035375e0,1.088777097732234e-1,1.103665438221547e-1,-1.488834048931340e-3 +1.165825398793087e0,7.860879115213310e-2,7.658321498184889e-2,2.025576170284205e-3 +1.196505014550800e0,1.403397583008528e-1,1.372614617253993e-1,3.078296575453443e-3 +1.227184630308513e0,2.288498928554160e-1,2.264028406672066e-1,2.447052188209398e-3 +1.257864246066226e0,3.104289385865827e-1,3.088173477632749e-1,1.611590823307751e-3 +1.288543861823939e0,3.715272571332995e-1,3.708102751078699e-1,7.169820254295800e-4 +1.319223477581652e0,4.033081917881178e-1,4.034889956966823e-1,-1.808039085645641e-4 +1.349903093339364e0,4.004022409441514e-1,4.014481691814850e-1,-1.045928237333626e-3 +1.380582709097077e0,3.614986493383731e-1,3.633770026022773e-1,-1.878353263904231e-3 +1.411262324854790e0,2.909821584491694e-1,2.937379540530679e-1,-2.755795603898492e-3 +1.441941940612503e0,2.054373090046174e-1,2.093049608340782e-1,-3.867651829460778e-3 +1.472621556370216e0,1.625748703070399e-1,1.670299198304239e-1,-4.455049523384047e-3 +1.503301172127929e0,2.375178865659095e-1,2.404414166954815e-1,-2.923530129572055e-3 +1.533980787885641e0,3.751359625431157e-1,3.772291005505661e-1,-2.093138007450368e-3 +1.564660403643354e0,5.234777408439037e-1,5.254827380979332e-1,-2.004997254029472e-3 +1.595340019401067e0,6.615302401167752e-1,6.637614906041317e-1,-2.231250487356506e-3 +1.626019635158780e0,7.768867422263902e-1,7.794455673402823e-1,-2.558825113892049e-3 +1.656699250916493e0,8.607684445026451e-1,8.636364384173174e-1,-2.867993914672295e-3 +1.687378866674206e0,9.071655371027857e-1,9.102595613760353e-1,-3.094024273249563e-3 +1.718058482431918e0,9.132543532843417e-1,9.164822231699079e-1,-3.227869885566226e-3 +1.748738098189631e0,8.815090085300797e-1,8.848401076954205e-1,-3.331099165340801e-3 +1.779417713947344e0,8.256558462313073e-1,8.292024446822387e-1,-3.546598450931415e-3 +1.810097329705057e0,7.836001142178889e-1,7.876332721441474e-1,-4.033157926258468e-3 +1.840776945462770e0,8.281069105061698e-1,8.327873112583813e-1,-4.680400752211544e-3 +1.871456561220483e0,1.029407725304403e0,1.034476829757782e0,-5.069104453378825e-3 +1.902136176978195e0,1.394825829187524e0,1.399930852167290e0,-5.105022979765783e-3 +1.932815792735908e0,1.892431523747905e0,1.897313276989095e0,-4.881753241189779e-3 +1.963495408493621e0,2.489388042455383e0,2.493790268476423e0,-4.402226021039901e-3 +1.994175024251334e0,3.156598863282998e0,3.160243952751536e0,-3.645089468537588e-3 +2.024854640009047e0,3.864934778271949e0,3.867555845716836e0,-2.621067444886105e-3 +2.055534255766760e0,4.583326515781353e0,4.584709364912864e0,-1.382849131510433e-3 +2.086213871524472e0,5.278896441609142e0,5.278914680558266e0,-1.823894912433843e-5 +2.116893487282185e0,5.918283968435682e0,5.916921705149762e0,1.362263285919596e-3 +2.147573103039898e0,6.469574115883695e0,6.466934144321860e0,2.639971561835708e-3 +2.178252718797611e0,6.904425624643970e0,6.900722839281300e0,3.702785362670546e-3 +2.208932334555323e0,7.200091463750395e0,7.195632820899375e0,4.458642851020045e-3 +2.239611950313036e0,7.341088731399807e0,7.336242542898918e0,4.846188500889248e-3 +2.270291566070749e0,7.320335352726051e0,7.315493891447317e0,4.841461278734194e-3 +2.300971181828462e0,7.139636555879432e0,7.135176682072848e0,4.459873806583303e-3 +2.331650797586175e0,6.809474542677327e0,6.805721186746712e0,3.753355930614433e-3 +2.362330413343888e0,6.348125634445642e0,6.345322445284424e0,2.803189161218356e-3 +2.393010029101601e0,5.780194549676210e0,5.778484889174112e0,1.709660502098309e-3 +2.423689644859313e0,5.134709511339747e0,5.134129389824130e0,5.801215156173711e-4 +2.454369260617026e0,4.442959880595987e0,4.443442596668608e0,-4.827160726206259e-4 +2.485048876374739e0,3.736277190351551e0,3.737667594403934e0,-1.390404052382443e-3 +2.515728492132452e0,3.043960640572078e0,3.046035264387412e0,-2.074623815333965e-3 +2.546408107890165e0,2.391532817361640e0,2.394020597599347e0,-2.487780237706794e-3 +2.577087723647877e0,1.799490962160354e0,1.802087415198536e0,-2.596453038182123e-3 +2.607767339405590e0,1.282723829318990e0,1.285087195659020e0,-2.363366340029760e-3 +2.638446955163303e0,8.509075676757930e-1,8.526106328771027e-1,-1.703065201309695e-3 +2.669126570921016e0,5.110370465835189e-1,5.113926013932527e-1,-3.555548097338157e-4 +2.699806186678729e0,2.778646236404715e-1,2.754545120061561e-1,2.410111634315371e-3 +2.730485802436442e0,1.984697068781066e-1,1.928409080411060e-1,5.628798837000543e-3 +2.761165418194155e0,2.480149447813440e-1,2.431522288756423e-1,4.862715905701642e-3 +2.791845033951867e0,3.091322573127973e-1,3.057266784535115e-1,3.405578859285718e-3 +2.822524649709580e0,3.465850707138043e-1,3.443695463710728e-1,2.215524342731534e-3 +2.853204265467293e0,3.598382660775792e-1,3.586017937006246e-1,1.236472376954623e-3 +2.883883881225006e0,3.543661501387461e-1,3.539242906860658e-1,4.418594526802710e-4 +2.914563496982719e0,3.361601429574415e-1,3.363168452139482e-1,-1.567022565067133e-4 +2.945243112740431e0,3.107606329189587e-1,3.113046885704739e-1,-5.440556515152184e-4 +2.975922728498144e0,1.062129183550729e-33,1.064852553263229e-33,-2.723369712500417e-36 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/03_single_dataset_fit_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/03_single_dataset_fit_rspace_contrib.csv new file mode 100644 index 0000000..0cbf8aa --- /dev/null +++ b/doc/plots/feff_vs_larch_data/03_single_dataset_fit_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.397685957215776e-1,2.409123029015491e-1,-1.143707179971559e-3,2.397685957215776e-1 +1.012427320004523e0,2.588380250667334e-1,2.605886922824429e-1,-1.750667215709434e-3,2.588380250667334e-1 +1.043106935762236e0,2.545050711502052e-1,2.567681663706514e-1,-2.263095220446154e-3,2.545050711502052e-1 +1.073786551519949e0,2.252441091259201e-1,2.278088376348592e-1,-2.564728508939018e-3,2.252441091259201e-1 +1.104466167277662e0,1.733119956830510e-1,1.757988182110101e-1,-2.486822527959148e-3,1.733119956830510e-1 +1.135145783035375e0,1.088777097732234e-1,1.103665438221547e-1,-1.488834048931340e-3,1.088777097732234e-1 +1.165825398793087e0,7.860879115213310e-2,7.658321498184889e-2,2.025576170284205e-3,7.860879115213310e-2 +1.196505014550800e0,1.403397583008528e-1,1.372614617253993e-1,3.078296575453443e-3,1.403397583008528e-1 +1.227184630308513e0,2.288498928554160e-1,2.264028406672066e-1,2.447052188209398e-3,2.288498928554160e-1 +1.257864246066226e0,3.104289385865827e-1,3.088173477632749e-1,1.611590823307751e-3,3.104289385865827e-1 +1.288543861823939e0,3.715272571332995e-1,3.708102751078699e-1,7.169820254295800e-4,3.715272571332995e-1 +1.319223477581652e0,4.033081917881178e-1,4.034889956966823e-1,-1.808039085645641e-4,4.033081917881178e-1 +1.349903093339364e0,4.004022409441514e-1,4.014481691814850e-1,-1.045928237333626e-3,4.004022409441514e-1 +1.380582709097077e0,3.614986493383731e-1,3.633770026022773e-1,-1.878353263904231e-3,3.614986493383731e-1 +1.411262324854790e0,2.909821584491694e-1,2.937379540530679e-1,-2.755795603898492e-3,2.909821584491694e-1 +1.441941940612503e0,2.054373090046174e-1,2.093049608340782e-1,-3.867651829460778e-3,2.054373090046174e-1 +1.472621556370216e0,1.625748703070399e-1,1.670299198304239e-1,-4.455049523384047e-3,1.625748703070399e-1 +1.503301172127929e0,2.375178865659095e-1,2.404414166954815e-1,-2.923530129572055e-3,2.375178865659095e-1 +1.533980787885641e0,3.751359625431157e-1,3.772291005505661e-1,-2.093138007450368e-3,3.751359625431157e-1 +1.564660403643354e0,5.234777408439037e-1,5.254827380979332e-1,-2.004997254029472e-3,5.234777408439037e-1 +1.595340019401067e0,6.615302401167752e-1,6.637614906041317e-1,-2.231250487356506e-3,6.615302401167752e-1 +1.626019635158780e0,7.768867422263902e-1,7.794455673402823e-1,-2.558825113892049e-3,7.768867422263902e-1 +1.656699250916493e0,8.607684445026451e-1,8.636364384173174e-1,-2.867993914672295e-3,8.607684445026451e-1 +1.687378866674206e0,9.071655371027857e-1,9.102595613760353e-1,-3.094024273249563e-3,9.071655371027857e-1 +1.718058482431918e0,9.132543532843417e-1,9.164822231699079e-1,-3.227869885566226e-3,9.132543532843417e-1 +1.748738098189631e0,8.815090085300797e-1,8.848401076954205e-1,-3.331099165340801e-3,8.815090085300797e-1 +1.779417713947344e0,8.256558462313073e-1,8.292024446822387e-1,-3.546598450931415e-3,8.256558462313073e-1 +1.810097329705057e0,7.836001142178889e-1,7.876332721441474e-1,-4.033157926258468e-3,7.836001142178889e-1 +1.840776945462770e0,8.281069105061698e-1,8.327873112583813e-1,-4.680400752211544e-3,8.281069105061698e-1 +1.871456561220483e0,1.029407725304403e0,1.034476829757782e0,-5.069104453378825e-3,1.029407725304403e0 +1.902136176978195e0,1.394825829187524e0,1.399930852167290e0,-5.105022979765783e-3,1.394825829187524e0 +1.932815792735908e0,1.892431523747905e0,1.897313276989095e0,-4.881753241189779e-3,1.892431523747905e0 +1.963495408493621e0,2.489388042455383e0,2.493790268476423e0,-4.402226021039901e-3,2.489388042455383e0 +1.994175024251334e0,3.156598863282998e0,3.160243952751536e0,-3.645089468537588e-3,3.156598863282998e0 +2.024854640009047e0,3.864934778271949e0,3.867555845716836e0,-2.621067444886105e-3,3.864934778271949e0 +2.055534255766760e0,4.583326515781353e0,4.584709364912864e0,-1.382849131510433e-3,4.583326515781353e0 +2.086213871524472e0,5.278896441609142e0,5.278914680558266e0,-1.823894912433843e-5,5.278896441609142e0 +2.116893487282185e0,5.918283968435682e0,5.916921705149762e0,1.362263285919596e-3,5.918283968435682e0 +2.147573103039898e0,6.469574115883695e0,6.466934144321860e0,2.639971561835708e-3,6.469574115883695e0 +2.178252718797611e0,6.904425624643970e0,6.900722839281300e0,3.702785362670546e-3,6.904425624643970e0 +2.208932334555323e0,7.200091463750395e0,7.195632820899375e0,4.458642851020045e-3,7.200091463750395e0 +2.239611950313036e0,7.341088731399807e0,7.336242542898918e0,4.846188500889248e-3,7.341088731399807e0 +2.270291566070749e0,7.320335352726051e0,7.315493891447317e0,4.841461278734194e-3,7.320335352726051e0 +2.300971181828462e0,7.139636555879432e0,7.135176682072848e0,4.459873806583303e-3,7.139636555879432e0 +2.331650797586175e0,6.809474542677327e0,6.805721186746712e0,3.753355930614433e-3,6.809474542677327e0 +2.362330413343888e0,6.348125634445642e0,6.345322445284424e0,2.803189161218356e-3,6.348125634445642e0 +2.393010029101601e0,5.780194549676210e0,5.778484889174112e0,1.709660502098309e-3,5.780194549676210e0 +2.423689644859313e0,5.134709511339747e0,5.134129389824130e0,5.801215156173711e-4,5.134709511339747e0 +2.454369260617026e0,4.442959880595987e0,4.443442596668608e0,-4.827160726206259e-4,4.442959880595987e0 +2.485048876374739e0,3.736277190351551e0,3.737667594403934e0,-1.390404052382443e-3,3.736277190351551e0 +2.515728492132452e0,3.043960640572078e0,3.046035264387412e0,-2.074623815333965e-3,3.043960640572078e0 +2.546408107890165e0,2.391532817361640e0,2.394020597599347e0,-2.487780237706794e-3,2.391532817361640e0 +2.577087723647877e0,1.799490962160354e0,1.802087415198536e0,-2.596453038182123e-3,1.799490962160354e0 +2.607767339405590e0,1.282723829318990e0,1.285087195659020e0,-2.363366340029760e-3,1.282723829318990e0 +2.638446955163303e0,8.509075676757930e-1,8.526106328771027e-1,-1.703065201309695e-3,8.509075676757930e-1 +2.669126570921016e0,5.110370465835189e-1,5.113926013932527e-1,-3.555548097338157e-4,5.110370465835189e-1 +2.699806186678729e0,2.778646236404715e-1,2.754545120061561e-1,2.410111634315371e-3,2.778646236404715e-1 +2.730485802436442e0,1.984697068781066e-1,1.928409080411060e-1,5.628798837000543e-3,1.984697068781066e-1 +2.761165418194155e0,2.480149447813440e-1,2.431522288756423e-1,4.862715905701642e-3,2.480149447813440e-1 +2.791845033951867e0,3.091322573127973e-1,3.057266784535115e-1,3.405578859285718e-3,3.091322573127973e-1 +2.822524649709580e0,3.465850707138043e-1,3.443695463710728e-1,2.215524342731534e-3,3.465850707138043e-1 +2.853204265467293e0,3.598382660775792e-1,3.586017937006246e-1,1.236472376954623e-3,3.598382660775792e-1 +2.883883881225006e0,3.543661501387461e-1,3.539242906860658e-1,4.418594526802710e-4,3.543661501387461e-1 +2.914563496982719e0,3.361601429574415e-1,3.363168452139482e-1,-1.567022565067133e-4,3.361601429574415e-1 +2.945243112740431e0,3.107606329189587e-1,3.113046885704739e-1,-5.440556515152184e-4,3.107606329189587e-1 +2.975922728498144e0,1.062129183550729e-33,1.064852553263229e-33,-2.723369712500417e-36,1.062129183550729e-33 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/04_clone_template_path.csv b/doc/plots/feff_vs_larch_data/04_clone_template_path.csv new file mode 100644 index 0000000..c67ba88 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/04_clone_template_path.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.294014545590028e-1,3.294014545590028e-1 +1.000000000000000e-1,0.000000000000000e0,-3.325857487366470e-1,3.325857487366470e-1 +1.500000000000000e-1,0.000000000000000e0,-3.357700429142912e-1,3.357700429142912e-1 +2.000000000000000e-1,0.000000000000000e0,-3.401532904633558e-1,3.401532904633558e-1 +2.500000000000000e-1,0.000000000000000e0,-3.456560420239568e-1,3.456560420239568e-1 +3.000000000000000e-1,0.000000000000000e0,-3.521695009003528e-1,3.521695009003528e-1 +3.500000000000000e-1,0.000000000000000e0,-3.595505950839698e-1,3.595505950839698e-1 +4.000000000000000e-1,0.000000000000000e0,-3.676159293232869e-1,3.676159293232869e-1 +4.500000000000000e-1,0.000000000000000e0,-3.761342857813328e-1,3.761342857813328e-1 +5.000000000000000e-1,0.000000000000000e0,-3.848161215226475e-1,3.848161215226475e-1 +5.500000000000000e-1,0.000000000000000e0,-3.932912407666668e-1,3.932912407666668e-1 +6.000000000000001e-1,0.000000000000000e0,-4.009380735867983e-1,4.009380735867983e-1 +6.500000000000000e-1,-3.933498345221743e-1,-3.926716466366216e-1,-6.781878855526835e-4 +7.000000000000001e-1,-3.819963304667648e-1,-3.813331402971081e-1,-6.631901696566578e-4 +7.500000000000000e-1,-3.691062653461469e-1,-3.683470245398694e-1,-7.592408062774281e-4 +8.000000000000000e-1,-3.545935870248050e-1,-3.535384017595220e-1,-1.055185265282976e-3 +8.500000000000001e-1,-3.381666025946190e-1,-3.367438066643357e-1,-1.422795930283272e-3 +9.000000000000000e-1,-3.186261610789596e-1,-3.178195023572455e-1,-8.066587217140930e-4 +9.500000000000001e-1,-2.974758276102000e-1,-2.966649207098992e-1,-8.109069003007230e-4 +1.000000000000000e0,-2.744087729269208e-1,-2.731786232202901e-1,-1.230149706630712e-3 +1.050000000000000e0,-2.478787388919881e-1,-2.473011706388375e-1,-5.775682531505288e-4 +1.100000000000000e0,-2.199206390165607e-1,-2.191364633970085e-1,-7.841756195521854e-4 +1.150000000000000e0,-1.893718198361712e-1,-1.888065267837186e-1,-5.652930524525923e-4 +1.200000000000000e0,-1.567621911514822e-1,-1.564444046653403e-1,-3.177864861418356e-4 +1.250000000000000e0,-1.230615025467005e-1,-1.224036763166079e-1,-6.578262300926258e-4 +1.300000000000000e0,-8.722766658380751e-2,-8.715983524047755e-2,-6.783134332996599e-5 +1.350000000000000e0,-5.167820057250600e-2,-5.124494511630743e-2,-4.332554561985724e-4 +1.400000000000000e0,-1.516286950593998e-2,-1.526751063079347e-2,1.046411248534981e-4 +1.450000000000000e0,2.012033890098960e-2,2.009284886755197e-2,2.749003343762921e-5 +1.500000000000000e0,5.438331850205357e-2,5.411256444340888e-2,2.707540586446913e-4 +1.550000000000000e0,8.642868753739268e-2,8.611033042562016e-2,3.183571117725131e-4 +1.600000000000000e0,1.156195552608338e-1,1.152681180423988e-1,3.514372184350578e-4 +1.650000000000000e0,1.411293211276525e-1,1.406728273556015e-1,4.564937720509810e-4 +1.700000000000000e0,1.621493284822493e-1,1.616641557189680e-1,4.851727632812497e-4 +1.750000000000000e0,1.783657193472425e-1,1.777615901639631e-1,6.041291832793450e-4 +1.800000000000000e0,1.892311680251600e-1,1.885934374458280e-1,6.377305793320853e-4 +1.850000000000000e0,1.944670888632363e-1,1.939096951849520e-1,5.573936782842515e-4 +1.900000000000000e0,1.941933958023380e-1,1.934543094537796e-1,7.390863485584043e-4 +1.950000000000000e0,1.876983314896670e-1,1.872181652685968e-1,4.801662210701940e-4 +2.000000000000000e0,1.763021425903746e-1,1.756076414101513e-1,6.945011802232948e-4 +2.050000000000000e0,1.596507755761884e-1,1.592074863076734e-1,4.432892685150014e-4 +2.100000000000000e0,1.391123292150811e-1,1.387543676633363e-1,3.579615517447787e-4 +2.150000000000000e0,1.141847154213257e-1,1.149897343852503e-1,-8.050189639246391e-4 +2.200000000000000e0,8.772083663416394e-2,8.875688172901036e-2,-1.036045094846422e-3 +2.250000000000000e0,6.085995817376575e-2,6.126408875565007e-2,-4.041305818843210e-4 +2.300000000000000e0,3.416222623542854e-2,3.383069858273713e-2,3.315276526914129e-4 +2.350000000000000e0,8.499987859246530e-3,8.001530980010461e-3,4.984568792360689e-4 +2.400000000000000e0,-1.371518248646803e-2,-1.419485949073218e-2,4.796770042641459e-4 +2.450000000000000e0,-3.094965539969093e-2,-3.094240168596014e-2,-7.253713730788480e-6 +2.500000000000000e0,-4.324423750610622e-2,-4.224256148900268e-2,-1.001676017103541e-3 +2.550000000000000e0,-5.288094774908219e-2,-5.031380519059944e-2,-2.567142558482748e-3 +2.600000000000000e0,-5.919385014217095e-2,-5.670952968803743e-2,-2.484320454133521e-3 +2.650000000000000e0,-6.228250462395108e-2,-6.135428800005268e-2,-9.282166238984008e-4 +2.700000000000000e0,-6.286471188192082e-2,-6.305081412694059e-2,1.861022450197758e-4 +2.750000000000000e0,-6.079146395869075e-2,-6.127376324439794e-2,4.822992857071925e-4 +2.800000000000000e0,-5.617752327639013e-2,-5.652561559186974e-2,3.480923154796020e-4 +2.850000000000000e0,-4.961548384810257e-2,-4.955663879173896e-2,-5.884505636361004e-5 +2.900000000000000e0,-4.129042803196441e-2,-4.113529316986852e-2,-1.551348620958959e-4 +2.950000000000000e0,-3.144897676498536e-2,-3.168053048321991e-2,2.315537182345506e-4 +3.000000000000000e0,-2.101381875900931e-2,-2.146831418650914e-2,4.544954274998299e-4 +3.050000000000000e0,-1.078666968761761e-2,-1.087946208821198e-2,9.279240059436276e-5 +3.100000000000000e0,-3.658328612253402e-5,-4.587705779771952e-4,4.221872918546612e-4 +3.150000000000000e0,9.908778607543944e-3,9.061277594673041e-3,8.475010128709028e-4 +3.200000000000000e0,1.794161804680206e-2,1.708921245437348e-2,8.524055924285824e-4 +3.250000000000000e0,2.353788714038488e-2,2.332543994108142e-2,2.124471993034636e-4 +3.300000000000000e0,2.845993284754181e-2,2.767369495791551e-2,7.862378896262984e-4 +3.350000000000000e0,3.113273421708577e-2,2.994275657939049e-2,1.189977637695280e-3 +3.400000000000000e0,3.087844794678847e-2,2.989024823516422e-2,9.881997116242512e-4 +3.450000000000000e0,2.759802816960326e-2,2.740457688441883e-2,1.934512851844220e-4 +3.500000000000000e0,2.338274736300692e-2,2.261174459581147e-2,7.710027671954563e-4 +3.550000000000000e0,1.680649142113138e-2,1.579795282183295e-2,1.008538599298427e-3 +3.600000000000000e0,8.050019298092417e-3,7.323249415895688e-3,7.267698821967292e-4 +3.650000000000000e0,-2.326800026826028e-3,-2.380798998970953e-3,5.399897214492487e-5 +3.700000000000000e0,-1.248343460374727e-2,-1.281254498424808e-2,3.291103805008119e-4 +3.750000000000000e0,-2.307693654499889e-2,-2.339859823437767e-2,3.216616893787841e-4 +3.800000000000000e0,-3.340851867758332e-2,-3.353472147970279e-2,1.262028021194669e-4 +3.850000000000000e0,-4.271392486906688e-2,-4.262032967414725e-2,-9.359519491963092e-5 +3.900000000000000e0,-5.011298508177037e-2,-5.008641634667832e-2,-2.656873509205432e-5 +3.950000000000000e0,-5.547056870710668e-2,-5.541970665377990e-2,-5.086205332677923e-5 +4.000000000000000e0,-5.829997533584177e-2,-5.818284346494816e-2,-1.171318708936067e-4 +4.050000000000000e0,-5.822272468551810e-2,-5.803659160936112e-2,-1.861330761569885e-4 +4.100000000000001e0,-5.495009602229306e-2,-5.478653800353910e-2,-1.635580187539648e-4 +4.150000000000000e0,-4.868771567433998e-2,-4.847398543699171e-2,-2.137302373482683e-4 +4.200000000000000e0,-3.958346486722042e-2,-3.934649815839190e-2,-2.369667088285218e-4 +4.250000000000000e0,-2.798266148958015e-2,-2.782024409440195e-2,-1.624173951782007e-4 +4.300000000000000e0,-1.460905966157163e-2,-1.441432204924694e-2,-1.947376123246844e-4 +4.350000000000001e0,1.708154604113795e-4,3.265218023979571e-4,-1.557063419865776e-4 +4.400000000000000e0,1.570738195222854e-2,1.578191918956779e-2,-7.453723733925541e-5 +4.450000000000000e0,3.128333547122161e-2,3.125449153850474e-2,2.884393271686964e-5 +4.500000000000000e0,4.606982833697840e-2,4.598155098922993e-2,8.827734774847357e-5 +4.550000000000000e0,5.928839320149019e-2,5.917879554031483e-2,1.095976611753605e-4 +4.600000000000001e0,7.025617461902996e-2,7.011813343809929e-2,1.380411809306648e-4 +4.650000000000000e0,7.834759559880523e-2,7.816915293860129e-2,1.784426602039479e-4 +4.700000000000000e0,8.293599103796272e-2,8.281759304920717e-2,1.183979887555420e-4 +4.750000000000000e0,8.378075091735306e-2,8.368420542837066e-2,9.654548898239967e-5 +4.800000000000001e0,8.074332010516154e-2,8.058963229390792e-2,1.536878112536194e-4 +4.850000000000001e0,7.380818147708089e-2,7.358342092383775e-2,2.247605532431363e-4 +4.900000000000000e0,6.313132959213819e-2,6.295556973109265e-2,1.757598610455380e-4 +4.950000000000000e0,4.937709470557543e-2,4.920365892816373e-2,1.734357774117040e-4 +5.000000000000000e0,3.313406150086646e-2,3.296768579203947e-2,1.663757088269865e-4 +5.050000000000001e0,1.509638461233187e-2,1.498984481746126e-2,1.065397948706182e-4 +5.100000000000001e0,-3.940298406278003e-3,-3.929514776377779e-3,-1.078362990022431e-5 +5.150000000000000e0,-2.303873633895637e-2,-2.295628888039202e-2,-8.244745856434560e-5 +5.200000000000000e0,-4.131448910104496e-2,-4.122508671583548e-2,-8.940238520948468e-5 +5.250000000000000e0,-5.794288791419869e-2,-5.786692630852265e-2,-7.596160567603649e-5 +5.300000000000001e0,-7.210043550652176e-2,-7.202556967489648e-2,-7.486583162527594e-5 +5.350000000000001e0,-8.298292421327627e-2,-8.291373033798419e-2,-6.919387529208398e-5 +5.400000000000000e0,-9.005282880846696e-2,-8.992350683799055e-2,-1.293219704764093e-4 +5.450000000000000e0,-9.288373785682220e-2,-9.268088631045045e-2,-2.028515463717573e-4 +5.500000000000000e0,-9.126446851840538e-2,-9.107908727781257e-2,-1.853812405928079e-4 +5.550000000000001e0,-8.541253225989441e-2,-8.523224567628562e-2,-1.802865836087880e-4 +5.600000000000001e0,-7.559400546510658e-2,-7.540638119559814e-2,-1.876242695084407e-4 +5.650000000000000e0,-6.217813289571146e-2,-6.200189369554369e-2,-1.762392001677729e-4 +5.700000000000000e0,-4.565476476010333e-2,-4.557316986790264e-2,-8.159489220068566e-5 +5.750000000000000e0,-2.693981985488051e-2,-2.687967771539055e-2,-6.014213948996733e-5 +5.800000000000001e0,-6.929623010048761e-3,-6.849405836761214e-3,-8.021717328754712e-5 +5.850000000000001e0,1.340022856928914e-2,1.348432009170464e-2,-8.409152241549769e-5 +5.900000000000000e0,3.301707185799752e-2,3.308903116410555e-2,-7.195930610803120e-5 +5.950000000000000e0,5.099550992436262e-2,5.102264616099141e-2,-2.713623662878306e-5 +6.000000000000000e0,6.648579764560521e-2,6.644019174355857e-2,4.560590204663595e-5 +6.050000000000001e0,7.872363632996758e-2,7.862235679434557e-2,1.012795356220147e-4 +6.100000000000001e0,8.705038804368062e-2,8.699505008224447e-2,5.533796143615544e-5 +6.150000000000000e0,9.112583571099857e-2,9.115787654823546e-2,-3.204083723688800e-5 +6.200000000000000e0,9.079222393950741e-2,9.091884418325794e-2,-1.266202437505276e-4 +6.250000000000000e0,8.610618093899636e-2,8.630565955985785e-2,-1.994786208614902e-4 +6.300000000000001e0,7.733386279046547e-2,7.756464886558304e-2,-2.307860751175617e-4 +6.350000000000001e0,6.493598321455432e-2,6.514820479733918e-2,-2.122215827848606e-4 +6.400000000000000e0,4.954356683952801e-2,4.969138238178368e-2,-1.478155422556734e-4 +6.450000000000000e0,3.192570572354201e-2,3.197887233777263e-2,-5.316661423062502e-5 +6.500000000000000e0,1.295097297332003e-2,1.290412019320335e-2,4.685278011667612e-5 +6.550000000000001e0,-6.524375195506374e-3,-6.577220900253045e-3,5.284570474667089e-5 +6.600000000000001e0,-2.549604552574507e-2,-2.549764026540373e-2,1.594739658661304e-6 +6.650000000000000e0,-4.292720476567800e-2,-4.292794882956833e-2,7.440638903344343e-7 +6.700000000000000e0,-5.799193348621687e-2,-5.802370193848817e-2,3.176845227130520e-5 +6.750000000000000e0,-6.999355048299137e-2,-7.006731498927628e-2,7.376450628490683e-5 +6.800000000000001e0,-7.839662335123905e-2,-7.850324998118982e-2,1.066266299507707e-4 +6.850000000000001e0,-8.285050972351120e-2,-8.296445633348552e-2,1.139466099743247e-4 +6.900000000000000e0,-8.320341867729769e-2,-8.328877256613433e-2,8.535388883663952e-5 +6.950000000000000e0,-7.950646723858283e-2,-7.952454115866209e-2,1.807392007925623e-5 +7.000000000000000e0,-7.200770927345873e-2,-7.192526911410060e-2,-8.244015935812699e-5 +7.050000000000001e0,-6.102663679501834e-2,-6.093374572850791e-2,-9.289106651042683e-5 +7.100000000000001e0,-4.715822447977084e-2,-4.715640700691572e-2,-1.817472855117352e-6 +7.150000000000000e0,-3.127057586350327e-2,-3.132942550937055e-2,5.884964586727603e-5 +7.200000000000000e0,-1.419245366789403e-2,-1.427907649474588e-2,8.662282685185409e-5 +7.250000000000000e0,3.206818632528505e-3,3.121734130525496e-3,8.508450200300907e-5 +7.300000000000001e0,2.006142877389405e-2,1.999857567972660e-2,6.285309416745322e-5 +7.350000000000001e0,3.555196943392013e-2,3.551988516577422e-2,3.208426814590992e-5 +7.400000000000000e0,4.894504125748482e-2,4.893837819426151e-2,6.663063223305565e-6 +7.450000000000000e0,5.962766676612984e-2,5.962740437407831e-2,2.623920515240630e-7 +7.500000000000000e0,6.713492074604013e-2,6.711047149618247e-2,2.444924985765817e-5 +7.550000000000001e0,7.112971277945987e-2,7.108254557408521e-2,4.716720537466246e-5 +7.600000000000001e0,7.144312975794082e-2,7.142219975837473e-2,2.092999956608554e-5 +7.650000000000000e0,6.817442473409439e-2,6.819433118481183e-2,-1.990645071743569e-5 +7.700000000000000e0,6.158192913197427e-2,6.164319123625330e-2,-6.126210427902928e-5 +7.750000000000000e0,5.208452476067007e-2,5.217621235581463e-2,-9.168759514455865e-5 +7.800000000000001e0,4.023619778008427e-2,4.033975560878329e-2,-1.035578286990232e-4 +7.850000000000001e0,2.669443072041677e-2,2.678820095319883e-2,-9.377023278206095e-5 +7.900000000000000e0,1.218420590847094e-2,1.224811874907342e-2,-6.391284060248623e-5 +7.950000000000000e0,-2.540431272377477e-3,-2.520517219241452e-3,-1.991405313602531e-5 +8.000000000000000e0,-1.673523012414278e-2,-1.676400091345857e-2,2.877078931579763e-5 +8.050000000000001e0,-2.975086787274454e-2,-2.977333293763550e-2,2.246506489095995e-5 +8.100000000000000e0,-4.092721027658127e-2,-4.091886099415020e-2,-8.349282431069360e-6 +8.150000000000000e0,-4.969916393622173e-2,-4.968110509181467e-2,-1.805884440705952e-5 +8.200000000000001e0,-5.568962549830195e-2,-5.567600701799864e-2,-1.361848030331098e-5 +8.250000000000000e0,-5.867490312493456e-2,-5.867189565488429e-2,-3.007470050268857e-6 +8.300000000000001e0,-5.859168608235413e-2,-5.859796531610711e-2,6.279233752987112e-6 +8.350000000000000e0,-5.553554327085353e-2,-5.554400703826384e-2,8.463767410309131e-6 +8.400000000000000e0,-4.975128011782830e-2,-4.975159818027985e-2,3.180624515569663e-7 +8.450000000000001e0,-4.161589559815660e-2,-4.159742424055457e-2,-1.847135760203039e-5 +8.500000000000000e0,-3.161524255798577e-2,-3.156982764134590e-2,-4.541491663986874e-5 +8.550000000000001e0,-2.028975834514858e-2,-2.023998357483600e-2,-4.977477031258004e-5 +8.600000000000000e0,-8.264233547429799e-3,-8.228727770454299e-3,-3.550577697549948e-5 +8.650000000000000e0,3.803164324225128e-3,3.827479727038068e-3,-2.431540281294014e-5 +8.700000000000001e0,1.529196788800869e-2,1.530936795006152e-2,-1.740006205282890e-5 +8.750000000000000e0,2.563125240698433e-2,2.564617866034529e-2,-1.492625336095912e-5 +8.800000000000001e0,3.432757995700614e-2,3.434356122040055e-2,-1.598126339440870e-5 +8.850000000000000e0,4.098802886232267e-2,4.100669307998268e-2,-1.866421766000270e-5 +8.900000000000000e0,4.533726590003823e-2,4.535758178295143e-2,-2.031588291320080e-5 +8.950000000000001e0,4.722796354829686e-2,4.724583343258998e-2,-1.786988429312159e-5 +9.000000000000000e0,4.664423487694891e-2,4.665252827378931e-2,-8.293396840400313e-6 +9.050000000000001e0,4.368960656318698e-2,4.368722123280012e-2,2.385330386850404e-6 +9.100000000000000e0,3.858732198377435e-2,3.857880239993067e-2,8.519583843680234e-6 +9.150000000000000e0,3.167624995499012e-2,3.166068225402761e-2,1.556770096251131e-5 +9.200000000000001e0,2.337453014424528e-2,2.335012603780156e-2,2.440410644372754e-5 +9.250000000000000e0,1.415811488075553e-2,1.412354756874768e-2,3.456731200784761e-5 +9.300000000000001e0,4.534027584348971e-3,4.489379393336292e-3,4.464819101267919e-5 +9.350000000000000e0,-4.987091073128055e-3,-5.039917047772023e-3,5.282597464396823e-5 +9.400000000000000e0,-1.391768453832066e-2,-1.397513594748538e-2,5.745140916472470e-5 +9.450000000000001e0,-2.181785393071981e-2,-2.187543016706310e-2,5.757623634328884e-5 +9.500000000000000e0,-2.831658749209725e-2,-2.836992789242949e-2,5.334040033224546e-5 +9.550000000000001e0,-3.312774104552564e-2,-3.317484174443213e-2,4.710069890648955e-5 +9.600000000000001e0,-3.606926281188422e-2,-3.610552971219381e-2,3.626690030958390e-5 +9.650000000000000e0,-3.705866643648986e-2,-3.708136689927710e-2,2.270046278723958e-5 +9.700000000000001e0,-3.611551324914904e-2,-3.612505751102309e-2,9.544261874050441e-6 +9.750000000000000e0,-3.335853167489415e-2,-3.335737150533307e-2,-1.160169561080504e-6 +9.800000000000001e0,-2.899587663527535e-2,-2.898714746713086e-2,-8.729168144486904e-6 +9.850000000000001e0,-2.331107485485715e-2,-2.329725107638915e-2,-1.382377846800148e-5 +9.900000000000000e0,-1.664554704040209e-2,-1.662736038323953e-2,-1.818665716255691e-5 +9.950000000000001e0,-9.378746196795551e-3,-9.354567131054040e-3,-2.417906574151037e-5 +1.000000000000000e1,-1.907039491318586e-3,-1.872848172190767e-3,-3.419131912781861e-5 +1.005000000000000e1,5.404235166710302e-3,5.427492164462626e-3,-2.325699775232361e-5 +1.010000000000000e1,1.218533646774508e-2,1.217902825553127e-2,6.308212213805564e-6 +1.015000000000000e1,1.809120019085708e-2,1.805524144004871e-2,3.595875080837641e-5 +1.020000000000000e1,2.284708094427988e-2,2.278621937645637e-2,6.086156782351276e-5 +1.025000000000000e1,2.624816217274957e-2,2.617062965873060e-2,7.753251401897837e-5 +1.030000000000000e1,2.816774770982349e-2,2.808372682602689e-2,8.402088379659903e-5 +1.035000000000000e1,2.856104774863318e-2,2.848111496202296e-2,7.993278661022271e-5 +1.040000000000000e1,2.746451802482653e-2,2.739821257867673e-2,6.630544614980374e-5 +1.045000000000000e1,2.499094833124693e-2,2.494559303993540e-2,4.535529131152738e-5 +1.050000000000000e1,2.132071490286164e-2,2.130058386675655e-2,2.013103610509076e-5 +1.055000000000000e1,1.668979972203823e-2,1.669569129211092e-2,-5.891570072687896e-6 +1.060000000000000e1,1.137532938804813e-2,1.140456359473908e-2,-2.923420669094165e-5 +1.065000000000000e1,5.679490265444759e-3,5.726311416106131e-3,-4.682115066137211e-5 +1.070000000000000e1,-8.726875503420002e-5,-3.093868396967467e-5,-5.633007106452535e-5 +1.075000000000000e1,-5.622830517286351e-3,-5.566371271701225e-3,-5.645924558512604e-5 +1.080000000000000e1,-1.064893045034463e-2,-1.060184066582380e-2,-4.708978452082693e-5 +1.085000000000000e1,-1.492482328374384e-2,-1.489549275332029e-2,-2.933053042354812e-5 +1.090000000000000e1,-1.825844293772490e-2,-1.825299994212069e-2,-5.442995604204581e-6 +1.095000000000000e1,-2.051456098861919e-2,-2.053590767384609e-2,2.134668522689107e-5 +1.100000000000000e1,-2.161962766968572e-2,-2.166676060250415e-2,4.713293281843542e-5 +1.105000000000000e1,-2.159559534864929e-2,-2.163085686820075e-2,3.526151955146606e-5 +1.110000000000000e1,-2.046443938993497e-2,-2.047465442990558e-2,1.021503997061454e-5 +1.115000000000000e1,-1.830885617145468e-2,-1.830105771378189e-2,-7.798457672784920e-6 +1.120000000000000e1,-1.527973434119426e-2,-1.526194409035614e-2,-1.779025083811954e-5 +1.125000000000000e1,-1.156827494099190e-2,-1.154841037692295e-2,-1.986456406894745e-5 +1.130000000000000e1,-7.394402668203151e-3,-7.379338145569930e-3,-1.506452263322095e-5 +1.135000000000000e1,-2.994083168393990e-3,-2.988938879825488e-3,-5.144288568501455e-6 +1.140000000000000e1,1.393738318987807e-3,1.386031097737146e-3,7.707221250661265e-6 +1.145000000000000e1,5.539867629122553e-3,5.518704446114999e-3,2.116318300755381e-5 +1.150000000000000e1,9.236596131998970e-3,9.203547913928561e-3,3.304821807040975e-5 +1.155000000000000e1,1.230785136774734e-2,1.226625721756981e-2,4.159415017753083e-5 +1.160000000000000e1,1.461728280938584e-2,1.457164282457137e-2,4.563998481447139e-5 +1.165000000000000e1,1.607393015181462e-2,1.602917070210778e-2,4.475944970683612e-5 +1.170000000000000e1,1.663526412877974e-2,1.659595801810001e-2,3.930611067973905e-5 +1.175000000000000e1,1.630753841299902e-2,1.627716503008925e-2,3.037338290977007e-5 +1.180000000000000e1,1.514353743089125e-2,1.512386329484178e-2,1.967413604946761e-5 +1.185000000000000e1,1.323794111962595e-2,1.322858963079862e-2,9.351488827333970e-6 +1.190000000000000e1,1.072064680072079e-2,1.071890850872551e-2,1.738291995279778e-6 +1.195000000000000e1,7.748484652273935e-3,7.749397380750424e-3,-9.127284764888152e-7 +1.200000000000000e1,4.495832394312762e-3,4.492535878338436e-3,3.296515974326487e-6 +1.205000000000000e1,1.139103392292570e-3,1.129009678268843e-3,1.009371402372673e-5 +1.210000000000000e1,-2.152714439122786e-3,-2.162096817035537e-3,9.382377912751060e-6 +1.215000000000000e1,-5.209025567594740e-3,-5.212481968576560e-3,3.456400981819568e-6 +1.220000000000000e1,-7.877793579754848e-3,-7.872854994341653e-3,-4.938585413194821e-6 +1.225000000000000e1,-1.003312274718069e-2,-1.001991949450199e-2,-1.320325267870591e-5 +1.230000000000000e1,-1.158096075180669e-2,-1.156175306398890e-2,-1.920768781778735e-5 +1.235000000000000e1,-1.246289461516993e-2,-1.244136833240152e-2,-2.152628276840506e-5 +1.240000000000000e1,-1.265790760643554e-2,-1.263834178303834e-2,-1.956582339720549e-5 +1.245000000000000e1,-1.218207909792797e-2,-1.216849891701549e-2,-1.358018091248206e-5 +1.250000000000000e1,-1.108632031638649e-2,-1.108174336415266e-2,-4.576952233832643e-6 +1.255000000000000e1,-9.452340830374956e-3,-9.458208599265975e-3,5.867768891018241e-6 +1.260000000000000e1,-7.387128250522685e-3,-7.402989761817498e-3,1.586151129481361e-5 +1.265000000000000e1,-5.016292790597563e-3,-5.039776205606521e-3,2.348341500895725e-5 +1.270000000000000e1,-2.476675988617283e-3,-2.503750219292607e-3,2.707423067532409e-5 +1.275000000000000e1,9.135275883202123e-5,6.585776105391020e-5,2.549499777811103e-5 +1.280000000000000e1,2.551487588066863e-3,2.533162767047225e-3,1.832482101963824e-5 +1.285000000000000e1,4.778563507462853e-3,4.772588782592042e-3,5.974724870810681e-6 +1.290000000000000e1,6.664760814444041e-3,6.675057528337165e-3,-1.029671389312335e-5 +1.295000000000000e1,8.124638535517937e-3,8.153108738198085e-3,-2.847020268014790e-5 +1.300000000000000e1,9.098773393316471e-3,9.144722221219244e-3,-4.594882790277290e-5 +1.305000000000000e1,9.573023736130859e-3,9.615685819962095e-3,-4.266208383123596e-5 +1.310000000000000e1,9.526684153379480e-3,9.560466761592517e-3,-3.378260821303679e-5 +1.315000000000000e1,8.974337933570173e-3,9.001610557677649e-3,-2.727262410747583e-5 +1.320000000000000e1,7.964629733618809e-3,7.987590027620914e-3,-2.296029400210460e-5 +1.325000000000000e1,6.568921351944213e-3,6.589308887028172e-3,-2.038753508395823e-5 +1.330000000000000e1,4.876591077805821e-3,4.895520112888521e-3,-1.892903508269976e-5 +1.335000000000000e1,2.989535759130863e-3,3.007443206001367e-3,-1.790744687050474e-5 +1.340000000000000e1,1.016203720257591e-3,1.032898863024424e-3,-1.669514276683324e-5 +1.345000000000000e1,-9.345000515235114e-4,-9.197045512599945e-4,-1.479550026351687e-5 +1.350000000000000e1,-2.759100880277500e-3,-2.747201441313184e-3,-1.189943896431553e-5 +1.355000000000000e1,-4.364921923760323e-3,-4.357006341400600e-3,-7.915582359723644e-6 +1.360000000000000e1,-5.674660713431775e-3,-5.671685938644051e-3,-2.974774787724635e-6 +1.365000000000000e1,-6.629956592174362e-3,-6.632544991951675e-3,2.588399777313233e-6 +1.370000000000000e1,-7.193794241917706e-3,-7.202067296267993e-3,8.273054350286906e-6 +1.375000000000000e1,-7.351657864052230e-3,-7.365121355367849e-3,1.346349131561928e-5 +1.380000000000000e1,-7.111421971584849e-3,-7.128911471144582e-3,1.748949955973373e-5 +1.385000000000000e1,-6.502034179882653e-3,-6.521724465611306e-3,1.969028572865270e-5 +1.390000000000000e1,-5.571109107509659e-3,-5.590586389117912e-3,1.947728160825359e-5 +1.395000000000000e1,-4.381607239977331e-3,-4.397998944792540e-3,1.639170481520895e-5 +1.400000000000000e1,-3.007815706148290e-3,-3.017969208148637e-3,1.015350200034770e-5 diff --git a/doc/plots/feff_vs_larch_data/04_clone_template_path_rspace.csv b/doc/plots/feff_vs_larch_data/04_clone_template_path_rspace.csv new file mode 100644 index 0000000..0037358 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/04_clone_template_path_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.546203145149475e-1,2.558747282920494e-1,-1.254413777101893e-3 +1.012427320004523e0,2.753724348576841e-1,2.773025376727473e-1,-1.930102815063228e-3 +1.043106935762236e0,2.710659195751594e-1,2.735683477047668e-1,-2.502428129607492e-3 +1.073786551519949e0,2.399684267309739e-1,2.428152699477845e-1,-2.846843216810585e-3 +1.104466167277662e0,1.842789420687291e-1,1.870736439246672e-1,-2.794701855938109e-3 +1.135145783035375e0,1.142395046169686e-1,1.160528621453687e-1,-1.813357528400061e-3 +1.165825398793087e0,7.950281447883585e-2,7.754852264437105e-2,1.954291834464800e-3 +1.196505014550800e0,1.466486759838940e-1,1.435394888017387e-1,3.109187182155304e-3 +1.227184630308513e0,2.422436508506543e-1,2.398246866727718e-1,2.418964177882510e-3 +1.257864246066226e0,3.300682084895740e-1,3.285448278308771e-1,1.523380658696893e-3 +1.288543861823939e0,3.958183098329409e-1,3.952356005942735e-1,5.827092386673227e-4 +1.319223477581652e0,4.300376510725755e-1,4.303765632963322e-1,-3.389122237567044e-4 +1.349903093339364e0,4.269003312840998e-1,4.281042025947471e-1,-1.203871310647309e-3 +1.380582709097077e0,3.848640041108425e-1,3.868824236805590e-1,-2.018419569716490e-3 +1.411262324854790e0,3.083653777237352e-1,3.112457492914950e-1,-2.880371567759832e-3 +1.441941940612503e0,2.146486763618893e-1,2.186900221436502e-1,-4.041345781760908e-3 +1.472621556370216e0,1.666041325825462e-1,1.713715343640317e-1,-4.767401781485520e-3 +1.503301172127929e0,2.491666009330652e-1,2.522984049733616e-1,-3.131804040296393e-3 +1.533980787885641e0,3.984874247992353e-1,4.007499536517847e-1,-2.262528852549406e-3 +1.564660403643354e0,5.580611337316297e-1,5.602156878439984e-1,-2.154554112368756e-3 +1.595340019401067e0,7.057207146997573e-1,7.080747496897777e-1,-2.354034990020404e-3 +1.626019635158780e0,8.282600631355436e-1,8.309103089696968e-1,-2.650245834153186e-3 +1.656699250916493e0,9.162776160311931e-1,9.192091106321986e-1,-2.931494601005502e-3 +1.687378866674206e0,9.633313560527729e-1,9.664718537914971e-1,-3.140497738724268e-3 +1.718058482431918e0,9.663738905335385e-1,9.696463180008973e-1,-3.272427467358785e-3 +1.748738098189631e0,9.279460784947391e-1,9.313364995536739e-1,-3.390421058934834e-3 +1.779417713947344e0,8.625421043749649e-1,8.661831888946288e-1,-3.641084519663829e-3 +1.810097329705057e0,8.110273542230583e-1,8.152192139578609e-1,-4.191859734802628e-3 +1.840776945462770e0,8.536525765633464e-1,8.585669246158346e-1,-4.914348052488249e-3 +1.871456561220483e0,1.067804855685875e0,1.073147035846165e0,-5.342180160289534e-3 +1.902136176978195e0,1.458889149342183e0,1.464292537682443e0,-5.403388340259552e-3 +1.932815792735908e0,1.990340640185031e0,1.995552166800125e0,-5.211526615094275e-3 +1.963495408493621e0,2.626748917733633e0,2.631504866577784e0,-4.755948844150648e-3 +1.994175024251334e0,3.337460939865471e0,3.341457869106104e0,-3.996929240632330e-3 +2.024854640009047e0,4.091867683335625e0,4.094800195811356e0,-2.932512475730675e-3 +2.055534255766760e0,4.857205988854597e0,4.858817085637143e0,-1.611096782546007e-3 +2.086213871524472e0,5.598669461181842e0,5.598794766069281e0,-1.253048874385598e-4 +2.116893487282185e0,6.280822155883628e0,6.279420966997848e0,1.401188885780336e-3 +2.147573103039898e0,6.869665429161137e0,6.866835054406098e0,2.830374755038889e-3 +2.178252718797611e0,7.334924148440357e0,7.330896104199549e0,4.028044240808271e-3 +2.208932334555323e0,7.652223251191698e0,7.647342037861583e0,4.881213330114598e-3 +2.239611950313036e0,7.804893587202047e0,7.799580915633002e0,5.312671569044802e-3 +2.270291566070749e0,7.785209881133103e0,7.779919120036420e0,5.290761096683028e-3 +2.300971181828462e0,7.594933446364883e0,7.590100373557053e0,4.833072807829630e-3 +2.331650797586175e0,7.245107644921293e0,7.241104068945938e0,4.003575975355389e-3 +2.362330413343888e0,6.755130228634944e0,6.752226580629729e0,2.903648005214698e-3 +2.393010029101601e0,6.151197203472901e0,6.149538810225253e0,1.658393247647716e-3 +2.423689644859313e0,5.464271388218758e0,5.463871001281782e0,4.003869369757496e-4 +2.454369260617026e0,4.727770268701335e0,4.728516833078941e0,-7.465643776054520e-4 +2.485048876374739e0,3.975189047840169e0,3.976869996679484e0,-1.680948839315466e-3 +2.515728492132452e0,3.237875800909347e0,3.240207673360869e0,-2.331872451521999e-3 +2.546408107890165e0,2.543160324118626e0,2.545820338318451e0,-2.660014199825422e-3 +2.577087723647877e0,1.913018471756848e0,1.915667395558472e0,-2.648923801624292e-3 +2.607767339405590e0,1.363464597894800e0,1.365746689105934e0,-2.282091211133874e-3 +2.638446955163303e0,9.050373637189095e-1,9.065281295332590e-1,-1.490765814349482e-3 +2.669126570921016e0,5.457090620129530e-1,5.457278491961594e-1,-1.878718320635908e-5 +2.699806186678729e0,3.023906071866486e-1,2.995637851445563e-1,2.826822042092281e-3 +2.730485802436442e0,2.227060937535121e-1,2.168737554915928e-1,5.832338261919257e-3 +2.761165418194155e0,2.736872138780236e-1,2.686193902273983e-1,5.067823650625358e-3 +2.791845033951867e0,3.366369968819434e-1,3.329778384071310e-1,3.659158474812352e-3 +2.822524649709580e0,3.753305402417017e-1,3.728526645956100e-1,2.477875646091754e-3 +2.853204265467293e0,3.888889839518445e-1,3.874305587762821e-1,1.458425175562439e-3 +2.883883881225006e0,3.828854471353992e-1,3.823077963355339e-1,5.776507998653257e-4 +2.914563496982719e0,3.634906344773108e-1,3.636196885703041e-1,-1.290540929932971e-4 +2.945243112740431e0,3.364184483267424e-1,3.370278655756987e-1,-6.094172489563010e-4 +2.975922728498144e0,1.150928643638150e-33,1.154059954646660e-33,-3.131311008509900e-36 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/04_clone_template_path_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/04_clone_template_path_rspace_contrib.csv new file mode 100644 index 0000000..7f95c04 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/04_clone_template_path_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.546203145149475e-1,2.558747282920494e-1,-1.254413777101893e-3,2.546203145149475e-1 +1.012427320004523e0,2.753724348576841e-1,2.773025376727473e-1,-1.930102815063228e-3,2.753724348576841e-1 +1.043106935762236e0,2.710659195751594e-1,2.735683477047668e-1,-2.502428129607492e-3,2.710659195751594e-1 +1.073786551519949e0,2.399684267309739e-1,2.428152699477845e-1,-2.846843216810585e-3,2.399684267309739e-1 +1.104466167277662e0,1.842789420687291e-1,1.870736439246672e-1,-2.794701855938109e-3,1.842789420687291e-1 +1.135145783035375e0,1.142395046169686e-1,1.160528621453687e-1,-1.813357528400061e-3,1.142395046169686e-1 +1.165825398793087e0,7.950281447883585e-2,7.754852264437105e-2,1.954291834464800e-3,7.950281447883585e-2 +1.196505014550800e0,1.466486759838940e-1,1.435394888017387e-1,3.109187182155304e-3,1.466486759838940e-1 +1.227184630308513e0,2.422436508506543e-1,2.398246866727718e-1,2.418964177882510e-3,2.422436508506543e-1 +1.257864246066226e0,3.300682084895740e-1,3.285448278308771e-1,1.523380658696893e-3,3.300682084895740e-1 +1.288543861823939e0,3.958183098329409e-1,3.952356005942735e-1,5.827092386673227e-4,3.958183098329409e-1 +1.319223477581652e0,4.300376510725755e-1,4.303765632963322e-1,-3.389122237567044e-4,4.300376510725755e-1 +1.349903093339364e0,4.269003312840998e-1,4.281042025947471e-1,-1.203871310647309e-3,4.269003312840998e-1 +1.380582709097077e0,3.848640041108425e-1,3.868824236805590e-1,-2.018419569716490e-3,3.848640041108425e-1 +1.411262324854790e0,3.083653777237352e-1,3.112457492914950e-1,-2.880371567759832e-3,3.083653777237352e-1 +1.441941940612503e0,2.146486763618893e-1,2.186900221436502e-1,-4.041345781760908e-3,2.146486763618893e-1 +1.472621556370216e0,1.666041325825462e-1,1.713715343640317e-1,-4.767401781485520e-3,1.666041325825462e-1 +1.503301172127929e0,2.491666009330652e-1,2.522984049733616e-1,-3.131804040296393e-3,2.491666009330652e-1 +1.533980787885641e0,3.984874247992353e-1,4.007499536517847e-1,-2.262528852549406e-3,3.984874247992353e-1 +1.564660403643354e0,5.580611337316297e-1,5.602156878439984e-1,-2.154554112368756e-3,5.580611337316297e-1 +1.595340019401067e0,7.057207146997573e-1,7.080747496897777e-1,-2.354034990020404e-3,7.057207146997573e-1 +1.626019635158780e0,8.282600631355436e-1,8.309103089696968e-1,-2.650245834153186e-3,8.282600631355436e-1 +1.656699250916493e0,9.162776160311931e-1,9.192091106321986e-1,-2.931494601005502e-3,9.162776160311931e-1 +1.687378866674206e0,9.633313560527729e-1,9.664718537914971e-1,-3.140497738724268e-3,9.633313560527729e-1 +1.718058482431918e0,9.663738905335385e-1,9.696463180008973e-1,-3.272427467358785e-3,9.663738905335385e-1 +1.748738098189631e0,9.279460784947391e-1,9.313364995536739e-1,-3.390421058934834e-3,9.279460784947391e-1 +1.779417713947344e0,8.625421043749649e-1,8.661831888946288e-1,-3.641084519663829e-3,8.625421043749649e-1 +1.810097329705057e0,8.110273542230583e-1,8.152192139578609e-1,-4.191859734802628e-3,8.110273542230583e-1 +1.840776945462770e0,8.536525765633464e-1,8.585669246158346e-1,-4.914348052488249e-3,8.536525765633464e-1 +1.871456561220483e0,1.067804855685875e0,1.073147035846165e0,-5.342180160289534e-3,1.067804855685875e0 +1.902136176978195e0,1.458889149342183e0,1.464292537682443e0,-5.403388340259552e-3,1.458889149342183e0 +1.932815792735908e0,1.990340640185031e0,1.995552166800125e0,-5.211526615094275e-3,1.990340640185031e0 +1.963495408493621e0,2.626748917733633e0,2.631504866577784e0,-4.755948844150648e-3,2.626748917733633e0 +1.994175024251334e0,3.337460939865471e0,3.341457869106104e0,-3.996929240632330e-3,3.337460939865471e0 +2.024854640009047e0,4.091867683335625e0,4.094800195811356e0,-2.932512475730675e-3,4.091867683335625e0 +2.055534255766760e0,4.857205988854597e0,4.858817085637143e0,-1.611096782546007e-3,4.857205988854597e0 +2.086213871524472e0,5.598669461181842e0,5.598794766069281e0,-1.253048874385598e-4,5.598669461181842e0 +2.116893487282185e0,6.280822155883628e0,6.279420966997848e0,1.401188885780336e-3,6.280822155883628e0 +2.147573103039898e0,6.869665429161137e0,6.866835054406098e0,2.830374755038889e-3,6.869665429161137e0 +2.178252718797611e0,7.334924148440357e0,7.330896104199549e0,4.028044240808271e-3,7.334924148440357e0 +2.208932334555323e0,7.652223251191698e0,7.647342037861583e0,4.881213330114598e-3,7.652223251191698e0 +2.239611950313036e0,7.804893587202047e0,7.799580915633002e0,5.312671569044802e-3,7.804893587202047e0 +2.270291566070749e0,7.785209881133103e0,7.779919120036420e0,5.290761096683028e-3,7.785209881133103e0 +2.300971181828462e0,7.594933446364883e0,7.590100373557053e0,4.833072807829630e-3,7.594933446364883e0 +2.331650797586175e0,7.245107644921293e0,7.241104068945938e0,4.003575975355389e-3,7.245107644921293e0 +2.362330413343888e0,6.755130228634944e0,6.752226580629729e0,2.903648005214698e-3,6.755130228634944e0 +2.393010029101601e0,6.151197203472901e0,6.149538810225253e0,1.658393247647716e-3,6.151197203472901e0 +2.423689644859313e0,5.464271388218758e0,5.463871001281782e0,4.003869369757496e-4,5.464271388218758e0 +2.454369260617026e0,4.727770268701335e0,4.728516833078941e0,-7.465643776054520e-4,4.727770268701335e0 +2.485048876374739e0,3.975189047840169e0,3.976869996679484e0,-1.680948839315466e-3,3.975189047840169e0 +2.515728492132452e0,3.237875800909347e0,3.240207673360869e0,-2.331872451521999e-3,3.237875800909347e0 +2.546408107890165e0,2.543160324118626e0,2.545820338318451e0,-2.660014199825422e-3,2.543160324118626e0 +2.577087723647877e0,1.913018471756848e0,1.915667395558472e0,-2.648923801624292e-3,1.913018471756848e0 +2.607767339405590e0,1.363464597894800e0,1.365746689105934e0,-2.282091211133874e-3,1.363464597894800e0 +2.638446955163303e0,9.050373637189095e-1,9.065281295332590e-1,-1.490765814349482e-3,9.050373637189095e-1 +2.669126570921016e0,5.457090620129530e-1,5.457278491961594e-1,-1.878718320635908e-5,5.457090620129530e-1 +2.699806186678729e0,3.023906071866486e-1,2.995637851445563e-1,2.826822042092281e-3,3.023906071866486e-1 +2.730485802436442e0,2.227060937535121e-1,2.168737554915928e-1,5.832338261919257e-3,2.227060937535121e-1 +2.761165418194155e0,2.736872138780236e-1,2.686193902273983e-1,5.067823650625358e-3,2.736872138780236e-1 +2.791845033951867e0,3.366369968819434e-1,3.329778384071310e-1,3.659158474812352e-3,3.366369968819434e-1 +2.822524649709580e0,3.753305402417017e-1,3.728526645956100e-1,2.477875646091754e-3,3.753305402417017e-1 +2.853204265467293e0,3.888889839518445e-1,3.874305587762821e-1,1.458425175562439e-3,3.888889839518445e-1 +2.883883881225006e0,3.828854471353992e-1,3.823077963355339e-1,5.776507998653257e-4,3.828854471353992e-1 +2.914563496982719e0,3.634906344773108e-1,3.636196885703041e-1,-1.290540929932971e-4,3.634906344773108e-1 +2.945243112740431e0,3.364184483267424e-1,3.370278655756987e-1,-6.094172489563010e-4,3.364184483267424e-1 +2.975922728498144e0,1.150928643638150e-33,1.154059954646660e-33,-3.131311008509900e-36,1.150928643638150e-33 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi.csv b/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi.csv new file mode 100644 index 0000000..faf4f64 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.004169364982455e-1,3.004169364982455e-1 +1.000000000000000e-1,0.000000000000000e0,-3.028599019623773e-1,3.028599019623773e-1 +1.500000000000000e-1,0.000000000000000e0,-3.053028674265091e-1,3.053028674265091e-1 +2.000000000000000e-1,0.000000000000000e0,-3.086716147668306e-1,3.086716147668306e-1 +2.500000000000000e-1,0.000000000000000e0,-3.129124878200045e-1,3.129124878200045e-1 +3.000000000000000e-1,0.000000000000000e0,-3.179532062114368e-1,3.179532062114368e-1 +3.500000000000000e-1,0.000000000000000e0,-3.237002129304355e-1,3.237002129304355e-1 +4.000000000000000e-1,0.000000000000000e0,-3.300350931702580e-1,3.300350931702580e-1 +4.500000000000000e-1,0.000000000000000e0,-3.368094875634737e-1,3.368094875634737e-1 +5.000000000000000e-1,0.000000000000000e0,-3.438366516251072e-1,3.438366516251072e-1 +5.500000000000000e-1,0.000000000000000e0,-3.508707890133191e-1,3.508707890133191e-1 +6.000000000000001e-1,0.000000000000000e0,-3.574452979919543e-1,3.574452979919543e-1 +6.500000000000000e-1,-3.523174930975022e-1,-3.501577306932779e-1,-2.159762404224219e-3 +7.000000000000001e-1,-3.426913910382841e-1,-3.405942413177491e-1,-2.097149720534930e-3 +7.500000000000000e-1,-3.321288078791633e-1,-3.300357874890825e-1,-2.093020390080802e-3 +8.000000000000000e-1,-3.205578100829343e-1,-3.183303142416022e-1,-2.227495841332083e-3 +8.500000000000001e-1,-3.077196476335505e-1,-3.053143758861092e-1,-2.405271747441262e-3 +9.000000000000000e-1,-2.925367362671389e-1,-2.908142127027583e-1,-1.722523564380574e-3 +9.500000000000001e-1,-2.762021936793450e-1,-2.746697006743047e-1,-1.532493005040270e-3 +1.000000000000000e0,-2.583705085176175e-1,-2.566904091810707e-1,-1.680099336546836e-3 +1.050000000000000e0,-2.376030033086623e-1,-2.366915795844709e-1,-9.114237241913681e-4 +1.100000000000000e0,-2.154663255101087e-1,-2.146150108471137e-1,-8.513146629950674e-4 +1.150000000000000e0,-1.908389421422844e-1,-1.903978999284350e-1,-4.410422138493852e-4 +1.200000000000000e0,-1.639641168586428e-1,-1.639657785887687e-1,1.661730125918082e-6 +1.250000000000000e0,-1.355508689836914e-1,-1.354458407271037e-1,-1.050282565877025e-4 +1.300000000000000e0,-1.044795325323050e-1,-1.050901753780835e-1,6.106428457785112e-4 +1.350000000000000e0,-7.279942429658820e-2,-7.321869693233499e-2,4.192726357467869e-4 +1.400000000000000e0,-3.921386285805459e-2,-4.024892562746904e-2,1.035062769414445e-3 +1.450000000000000e0,-5.678315225520404e-3,-6.700430123979782e-3,1.022114898459377e-3 +1.500000000000000e0,2.808321888030793e-2,2.680692382766853e-2,1.276295052639403e-3 +1.550000000000000e0,6.090933208024793e-2,5.961777704622420e-2,1.291555034023728e-3 +1.600000000000000e0,9.211557743199089e-2,9.087616707522274e-2,1.239410356768153e-3 +1.650000000000000e0,1.208056843233354e-1,1.195655016592855e-1,1.240182664049932e-3 +1.700000000000000e0,1.459264013205887e-1,1.448409228968288e-1,1.085478423759972e-3 +1.750000000000000e0,1.670183060977718e-1,1.659637995759865e-1,1.054506521785292e-3 +1.800000000000000e0,1.830987078574464e-1,1.822495368952257e-1,8.491709622207300e-4 +1.850000000000000e0,1.937216863534724e-1,1.931074963665654e-1,6.141899869070988e-4 +1.900000000000000e0,1.984880167109840e-1,1.979268769105310e-1,5.611398004529422e-4 +1.950000000000000e0,1.965246740235040e-1,1.963472264424164e-1,1.774475810875920e-4 +2.000000000000000e0,1.887100052415502e-1,1.884735806610938e-1,2.364245804563347e-4 +2.050000000000000e0,1.745704065795553e-1,1.746564628031881e-1,-8.605622363277998e-5 +2.100000000000000e0,1.552561542835773e-1,1.554951523414868e-1,-2.389980579095008e-4 +2.150000000000000e0,1.302021674622118e-1,1.316825343937293e-1,-1.480366931517541e-3 +2.200000000000000e0,1.023365098715386e-1,1.040714544493425e-1,-1.734944577803904e-3 +2.250000000000000e0,7.303392593056107e-2,7.400141872601719e-2,-9.674927954561180e-4 +2.300000000000000e0,4.305280393452467e-2,4.302716422678934e-2,2.563970773532265e-5 +2.350000000000000e0,1.351500459899473e-2,1.309155149630827e-2,4.234531026864555e-4 +2.400000000000000e0,-1.250011036871016e-2,-1.310367525509092e-2,6.035648863807596e-4 +2.450000000000000e0,-3.290390532982276e-2,-3.302927308564903e-2,1.253677558262778e-4 +2.500000000000000e0,-4.735376800463570e-2,-4.640763667407481e-2,-9.461313305608940e-4 +2.550000000000000e0,-5.851912751425480e-2,-5.581488933794546e-2,-2.704238176309333e-3 +2.600000000000000e0,-6.578008221479126e-2,-6.316030171637775e-2,-2.619780498413507e-3 +2.650000000000000e0,-6.922943690873228e-2,-6.841524811782886e-2,-8.141887909034196e-4 +2.700000000000000e0,-6.971340830033083e-2,-7.020515977365513e-2,4.917514733242950e-4 +2.750000000000000e0,-6.710820133979953e-2,-6.792518666129713e-2,8.169853214975986e-4 +2.800000000000000e0,-6.156948369775896e-2,-6.218768247809864e-2,6.181987803396752e-4 +2.850000000000000e0,-5.380854918798672e-2,-5.391038856201589e-2,1.018393740291682e-4 +2.900000000000000e0,-4.408146748569393e-2,-4.402784078806626e-2,-5.362669762767197e-5 +2.950000000000000e0,-3.275562696930048e-2,-3.306749999586004e-2,3.118730265595573e-4 +3.000000000000000e0,-2.090255892147178e-2,-2.139550839460681e-2,4.929494731350306e-4 +3.050000000000000e0,-9.436937233394711e-3,-9.494087244318345e-3,5.715001092363413e-5 +3.100000000000000e0,2.365857211130369e-3,1.986307935410877e-3,3.795492757194922e-4 +3.150000000000000e0,1.302744832415575e-2,1.223227768008341e-2,7.951706440723384e-4 +3.200000000000000e0,2.138714961959674e-2,2.061319465981407e-2,7.739549597826703e-4 +3.250000000000000e0,2.693355373914871e-2,2.682767743475605e-2,1.058763043926582e-4 +3.300000000000000e0,3.151855376255715e-2,3.080642829899852e-2,7.121254635586369e-4 +3.350000000000000e0,3.353025412445557e-2,3.240420343293558e-2,1.126050691519984e-3 +3.400000000000000e0,3.238564099431517e-2,3.145052796512837e-2,9.351130291868001e-4 +3.450000000000000e0,2.810910682243808e-2,2.793031572819431e-2,1.787910942437701e-4 +3.500000000000000e0,2.286086179655019e-2,2.208217948402324e-2,7.786823125269481e-4 +3.550000000000000e0,1.533460920846680e-2,1.430805893604275e-2,1.026550272424055e-3 +3.600000000000000e0,5.837712265447766e-3,5.071568423474790e-3,7.661438419729761e-4 +3.650000000000000e0,-4.977537390997671e-3,-5.114776248795718e-3,1.372388577980475e-4 +3.700000000000000e0,-1.531449090783921e-2,-1.569654914697634e-2,3.820582391371296e-4 +3.750000000000000e0,-2.572410968980578e-2,-2.607612265720093e-2,3.520129673951454e-4 +3.800000000000000e0,-3.551169752084724e-2,-3.566079301176169e-2,1.490954909144498e-4 +3.850000000000000e0,-4.397133267416509e-2,-4.390194528857828e-2,-6.938738558681656e-5 +3.900000000000000e0,-5.037615737669032e-2,-5.031916717402932e-2,-5.699020266099197e-5 +3.950000000000000e0,-5.462892468167802e-2,-5.451108543180543e-2,-1.178392498725964e-4 +4.000000000000000e0,-5.637474066570291e-2,-5.616685805409583e-2,-2.078826116070770e-4 +4.050000000000000e0,-5.537378804592285e-2,-5.507776164441665e-2,-2.960264015061942e-4 +4.100000000000001e0,-5.145972682116273e-2,-5.116981200038889e-2,-2.899148207738331e-4 +4.150000000000000e0,-4.491240865432834e-2,-4.457573836426813e-2,-3.366702900602092e-4 +4.200000000000000e0,-3.593743891603053e-2,-3.559125171731317e-2,-3.461871987173598e-4 +4.250000000000000e0,-2.488732712517419e-2,-2.463226353660548e-2,-2.550635885687179e-4 +4.300000000000000e0,-1.241221563228704e-2,-1.217229435385378e-2,-2.399212784332614e-4 +4.350000000000001e0,1.172407309267463e-3,1.325784372530570e-3,-1.533770632631069e-4 +4.400000000000000e0,1.532970527787676e-2,1.535716815824066e-2,-2.746288036389703e-5 +4.450000000000000e0,2.948432055060255e-2,2.936615493296542e-2,1.181656176371393e-4 +4.500000000000000e0,4.296975862764872e-2,4.274594134592042e-2,2.238172817283016e-4 +4.550000000000000e0,5.514423471721199e-2,5.486448541991695e-2,2.797492972950455e-4 +4.600000000000001e0,6.544876955909414e-2,6.512292880250635e-2,3.258407565877863e-4 +4.650000000000000e0,7.334830040694645e-2,7.298261099723956e-2,3.656894097068958e-4 +4.700000000000000e0,7.826540615255365e-2,7.797359943831612e-2,2.918067142375219e-4 +4.750000000000000e0,7.994001989263896e-2,7.970604884231750e-2,2.339710503214687e-4 +4.800000000000001e0,7.816628636281601e-2,7.792979811745450e-2,2.364882453615158e-4 +4.850000000000001e0,7.281147731869930e-2,7.256811010372075e-2,2.433672149785571e-4 +4.900000000000000e0,6.386754914765569e-2,6.374292834357240e-2,1.246208040832919e-4 +4.950000000000000e0,5.182218520684885e-2,5.176424792215213e-2,5.793728469671855e-5 +5.000000000000000e0,3.708740508695731e-2,3.708679445097439e-2,6.106359829241570e-7 +5.050000000000001e0,2.019536980399582e-2,2.028890202940853e-2,-9.353222541270620e-5 +5.100000000000001e0,1.812145453781865e-3,2.043620105910488e-3,-2.314746521286234e-4 +5.150000000000000e0,-1.720044262733132e-2,-1.689608707626589e-2,-3.043555510654321e-4 +5.200000000000000e0,-3.598025897859355e-2,-3.569114462319386e-2,-2.891143553996889e-4 +5.250000000000000e0,-5.367073424014730e-2,-5.343881363381126e-2,-2.319206063360474e-4 +5.300000000000001e0,-6.936203244498834e-2,-6.918674245826684e-2,-1.752899867215052e-4 +5.350000000000001e0,-8.208823359172822e-2,-8.199176590436191e-2,-9.646768736630562e-5 +5.400000000000000e0,-9.112713767803990e-2,-9.104752414147881e-2,-7.961353656109338e-5 +5.450000000000000e0,-9.584763871955693e-2,-9.576293313974685e-2,-8.470557981007931e-5 +5.500000000000000e0,-9.583459404856744e-2,-9.582510348764021e-2,-9.490560927222225e-6 +5.550000000000001e0,-9.114351443863029e-2,-9.117747200460113e-2,3.395756597084076e-5 +5.600000000000001e0,-8.191717407777094e-2,-8.196131420674235e-2,4.414012897141495e-5 +5.650000000000000e0,-6.845687503128739e-2,-6.850780851480594e-2,5.093348351854765e-5 +5.700000000000000e0,-5.124191578450698e-2,-5.136344085249149e-2,1.215250679845112e-4 +5.750000000000000e0,-3.125209644757724e-2,-3.134786704913027e-2,9.577060155303158e-5 +5.800000000000001e0,-9.510198590533142e-3,-9.517892503830238e-3,7.693913297095525e-6 +5.850000000000001e0,1.283474901038389e-2,1.290790471926332e-2,-7.315570887942748e-5 +5.900000000000000e0,3.454010991582825e-2,3.467740318976290e-2,-1.372932739346494e-4 +5.950000000000000e0,5.445986882889496e-2,5.462173699974320e-2,-1.618681708482339e-4 +6.000000000000000e0,7.154307307600358e-2,7.168550683085380e-2,-1.424337548502214e-4 +6.050000000000001e0,8.485542237823678e-2,8.497689966557199e-2,-1.214772873352199e-4 +6.100000000000001e0,9.361696855460612e-2,9.380451620196921e-2,-1.875476473630899e-4 +6.150000000000000e0,9.744638540096442e-2,9.771826242502329e-2,-2.718770240588697e-4 +6.200000000000000e0,9.621260986366900e-2,9.655034700885455e-2,-3.377371451855488e-4 +6.250000000000000e0,9.006699153485827e-2,9.042444162599965e-2,-3.574500911413814e-4 +6.300000000000001e0,7.942838145635629e-2,7.974471058205626e-2,-3.163291256999684e-4 +6.350000000000001e0,6.495208041964422e-2,6.516667031937531e-2,-2.145898997310963e-4 +6.400000000000000e0,4.748518981686638e-2,4.755225752158828e-2,-6.706770472190288e-5 +6.450000000000000e0,2.801179539934751e-2,2.791264198559455e-2,9.915341375295317e-5 +6.500000000000000e0,7.592006140396590e-3,7.343161939455978e-3,2.488442009406120e-4 +6.550000000000001e0,-1.276369327680318e-2,-1.304480497806292e-2,2.811117012597349e-4 +6.600000000000001e0,-3.195110986306779e-2,-3.219083999017847e-2,2.397301271106836e-4 +6.650000000000000e0,-4.892121893553692e-2,-4.914553666907882e-2,2.243177335419025e-4 +6.700000000000000e0,-6.290316499904360e-2,-6.311887298760602e-2,2.157079885624219e-4 +6.750000000000000e0,-7.332000616049378e-2,-7.351619187007080e-2,1.961857095770236e-4 +6.800000000000001e0,-7.980744935248019e-2,-7.995986094812153e-2,1.524115956413469e-4 +6.850000000000001e0,-8.221885137169524e-2,-8.229629580956938e-2,7.744443787413569e-5 +6.900000000000000e0,-8.061749015642183e-2,-8.058919906344893e-2,-2.829109297290688e-5 +6.950000000000000e0,-7.525791516222036e-2,-7.510081705469535e-2,-1.570981075250111e-4 +7.000000000000000e0,-6.655875652830517e-2,-6.626371511773414e-2,-2.950414105710314e-4 +7.050000000000001e0,-5.496591069021932e-2,-5.464597211380164e-2,-3.199385764176763e-4 +7.100000000000001e0,-4.113866969848625e-2,-4.091261535907783e-2,-2.260543394084213e-4 +7.150000000000000e0,-2.592553930245547e-2,-2.578621339315133e-2,-1.393259093041416e-4 +7.200000000000000e0,-1.007331670117141e-2,-1.000961466334053e-2,-6.370203783087960e-5 +7.250000000000000e0,5.687517442674444e-3,5.687694874403858e-3,-1.774317294148814e-7 +7.300000000000001e0,2.067117268811830e-2,2.061852607306291e-2,5.264661505539545e-5 +7.350000000000001e0,3.425965640460694e-2,3.416169392849584e-2,9.796247611110198e-5 +7.400000000000000e0,4.592067844052399e-2,4.578052771482832e-2,1.401507256956688e-4 +7.450000000000000e0,5.522079321647071e-2,5.503661933270341e-2,1.841738837673051e-4 +7.500000000000000e0,6.183443460689673e-2,6.159947819025628e-2,2.349564166404597e-4 +7.550000000000001e0,6.551415909738761e-2,6.525281269187035e-2,2.613464055172682e-4 +7.600000000000001e0,6.611916877888760e-2,6.589806180341043e-2,2.211069754771700e-4 +7.650000000000000e0,6.370219027563712e-2,6.355572798545993e-2,1.464622901771878e-4 +7.700000000000000e0,5.841832232310374e-2,5.836432872040654e-2,5.399360269719988e-5 +7.750000000000000e0,5.053672475002929e-2,5.057668810277387e-2,-3.996335274457363e-5 +7.800000000000001e0,4.043224125439981e-2,4.055322392412655e-2,-1.209826697267449e-4 +7.850000000000001e0,2.857362353110716e-2,2.875166014355713e-2,-1.780366124499652e-4 +7.900000000000000e0,1.550793754275537e-2,1.571260818020697e-2,-2.046706374515955e-4 +7.950000000000000e0,1.840897687362917e-3,2.040635690074977e-3,-1.997380027120598e-4 +8.000000000000000e0,-1.178682739873464e-2,-1.161923358825463e-2,-1.675938104800101e-4 +8.050000000000001e0,-2.477744122781099e-2,-2.460916373588093e-2,-1.682774919300571e-4 +8.100000000000000e0,-3.646474953984656e-2,-3.628880069227626e-2,-1.759488475703008e-4 +8.150000000000000e0,-4.621432971362344e-2,-4.606846109828023e-2,-1.458686153432143e-4 +8.200000000000001e0,-5.353180648529583e-2,-5.344319014553962e-2,-8.861633975620897e-5 +8.250000000000000e0,-5.804154906095222e-2,-5.802394625834032e-2,-1.760280261189906e-5 +8.300000000000001e0,-5.951096757566483e-2,-5.956400130884991e-2,5.303373318507609e-5 +8.350000000000000e0,-5.786776160991770e-2,-5.797824662570020e-2,1.104850157824938e-4 +8.400000000000000e0,-5.320837859811499e-2,-5.335341712962859e-2,1.450385315135971e-4 +8.450000000000001e0,-4.579647800385429e-2,-4.594781832001561e-2,1.513403161613122e-4 +8.500000000000000e0,-3.605089264111588e-2,-3.617989765830226e-2,1.290050171863719e-4 +8.550000000000001e0,-2.449542140922279e-2,-2.460583248218271e-2,1.104110729599206e-4 +8.600000000000000e0,-1.179142645424995e-2,-1.188655892518760e-2,9.513247093764603e-5 +8.650000000000000e0,1.315930340848033e-3,1.252149569892617e-3,6.378077095541609e-5 +8.700000000000001e0,1.408325396472534e-2,1.406354259587437e-2,1.971136885096751e-5 +8.750000000000000e0,2.579438138369362e-2,2.582610436815986e-2,-3.172298446623908e-5 +8.800000000000001e0,3.580475381007248e-2,3.588847223560181e-2,-8.371842552932357e-5 +8.850000000000000e0,4.358103405937584e-2,4.370980205862922e-2,-1.287679992533833e-4 +8.900000000000000e0,4.873311261869357e-2,4.889264819318998e-2,-1.595355744964111e-4 +8.950000000000001e0,5.103622519353237e-2,5.120598732031820e-2,-1.697621267858287e-4 +9.000000000000000e0,5.044167513676719e-2,5.059677865335512e-2,-1.551035165879289e-4 +9.050000000000001e0,4.706581326671163e-2,4.718936501786623e-2,-1.235517511546033e-4 +9.100000000000000e0,4.118920692096585e-2,4.127336919480561e-2,-8.416227383975516e-5 +9.150000000000000e0,3.324629165296939e-2,3.328099287909089e-2,-3.470122612150156e-5 +9.200000000000001e0,2.377533337387406e-2,2.375442166148617e-2,2.091171238789366e-5 +9.250000000000000e0,1.338355348690712e-2,1.330663439539874e-2,7.691909150837895e-5 +9.300000000000001e0,2.705720060008067e-3,2.578933644436964e-3,1.267864155711030e-4 +9.350000000000000e0,-7.637119709717191e-3,-7.801506838576524e-3,1.643871288593331e-4 +9.400000000000000e0,-1.707581566873749e-2,-1.726093010848120e-2,1.851144397437103e-4 +9.450000000000001e0,-2.512564324924380e-2,-2.531238596777028e-2,1.867427185264781e-4 +9.500000000000000e0,-3.141121163093057e-2,-3.158111769657664e-2,1.699060656460624e-4 +9.550000000000001e0,-3.568203344430906e-2,-3.582065422478199e-2,1.386207804729284e-4 +9.600000000000001e0,-3.782566118582270e-2,-3.791928905386622e-2,9.362786804351791e-5 +9.650000000000000e0,-3.785444995017032e-2,-3.789565765274304e-2,4.120770257271672e-5 +9.700000000000001e0,-3.589747349732655e-2,-3.588634825141755e-2,-1.112524590900221e-5 +9.750000000000000e0,-3.218501628516569e-2,-3.212780033956540e-2,-5.721594560028492e-5 +9.800000000000001e0,-2.702662749357896e-2,-2.693374608299488e-2,-9.288141058408361e-5 +9.850000000000001e0,-2.078638723050587e-2,-2.067022516148691e-2,-1.161620690189567e-4 +9.900000000000000e0,-1.385739077853500e-2,-1.373016067368768e-2,-1.272301048473121e-4 +9.950000000000001e0,-6.637277356536296e-3,-6.509267104854669e-3,-1.280102516816265e-4 +1.000000000000000e1,4.936848362713869e-4,6.152789012362301e-4,-1.215940649648432e-4 +1.005000000000000e1,7.217421346723776e-3,7.302358590583296e-3,-8.493724385951959e-5 +1.010000000000000e1,1.323433089555362e-2,1.325972964240328e-2,-2.539874684966310e-5 +1.015000000000000e1,1.828822404143140e-2,1.825308506849581e-2,3.513897293559026e-5 +1.020000000000000e1,2.220020059308895e-2,2.211118322356765e-2,8.901736952130271e-5 +1.025000000000000e1,2.485709458526331e-2,2.472689265424967e-2,1.302019310136376e-4 +1.030000000000000e1,2.620977842944541e-2,2.605511906886627e-2,1.546593605791340e-4 +1.035000000000000e1,2.626895000971096e-2,2.610840712617058e-2,1.605428835403759e-4 +1.040000000000000e1,2.509917552722334e-2,2.495099023307391e-2,1.481852941494291e-4 +1.045000000000000e1,2.281187200846923e-2,2.269196134851711e-2,1.199106599521112e-4 +1.050000000000000e1,1.955776306662603e-2,1.947807689616761e-2,7.968617045842064e-5 +1.055000000000000e1,1.551916104294761e-2,1.548651581173615e-2,3.264523121145925e-5 +1.060000000000000e1,1.090224990134181e-2,1.091772869919564e-2,-1.547879785383267e-5 +1.065000000000000e1,5.929394519287480e-3,5.988356868860783e-3,-5.896234957330267e-5 +1.070000000000000e1,8.314046925713137e-4,9.240996723423827e-4,-9.269497977106901e-5 +1.075000000000000e1,-4.160351662479628e-3,-4.047626250061810e-3,-1.127254124178179e-4 +1.080000000000000e1,-8.822060253757463e-3,-8.705358193318769e-3,-1.167020604386938e-4 +1.085000000000000e1,-1.294578306080581e-2,-1.284161674919462e-2,-1.041663116111806e-4 +1.090000000000000e1,-1.634784979092982e-2,-1.627118251850052e-2,-7.666727242929688e-5 +1.095000000000000e1,-1.887703109886209e-2,-1.883935058800270e-2,-3.768051085938431e-5 +1.100000000000000e1,-2.042207038904027e-2,-2.042974061629809e-2,7.670227257824958e-6 +1.105000000000000e1,-2.095100882808711e-2,-2.097111932397222e-2,2.011049588511449e-5 +1.110000000000000e1,-2.042331566378722e-2,-2.044261908193109e-2,1.930341814387199e-5 +1.115000000000000e1,-1.885397015110354e-2,-1.887677581293924e-2,2.280566183569810e-5 +1.120000000000000e1,-1.633020261333360e-2,-1.635986214076925e-2,2.965952743564162e-5 +1.125000000000000e1,-1.299074151023742e-2,-1.302913588531016e-2,3.839437507274432e-5 +1.130000000000000e1,-9.019599751964796e-3,-9.066864128071334e-3,4.726437610653826e-5 +1.135000000000000e1,-4.636744887224663e-3,-4.691240978768427e-3,5.449609154376325e-5 +1.140000000000000e1,-8.607068457794288e-5,-1.445949023572931e-4,5.852421777935023e-5 +1.145000000000000e1,4.378650435607707e-3,4.320454723196527e-3,5.819571241118000e-5 +1.150000000000000e1,8.508936893908466e-3,8.456011404361636e-3,5.292548954683070e-5 +1.155000000000000e1,1.207684371131565e-2,1.203405287472282e-2,4.279083659282715e-5 +1.160000000000000e1,1.488917826380123e-2,1.486062176532719e-2,2.855649847403538e-5 +1.165000000000000e1,1.679961663623509e-2,1.678798884481127e-2,1.162779142381901e-5 +1.170000000000000e1,1.771778524508945e-2,1.772385037507346e-2,-6.065129984012679e-6 +1.175000000000000e1,1.761459333368842e-2,1.763683630385892e-2,-2.224297017050167e-5 +1.180000000000000e1,1.652339045370649e-2,1.655788917865322e-2,-3.449872494672157e-5 +1.185000000000000e1,1.453685287800350e-2,1.457739900690658e-2,-4.054612890308160e-5 +1.190000000000000e1,1.179984357161269e-2,1.183831677503229e-2,-3.847320341959434e-5 +1.195000000000000e1,8.498810355642096e-3,8.525787835432275e-3,-2.697747979017902e-5 +1.200000000000000e1,4.848556889160125e-3,4.854116812889405e-3,-5.559923729279298e-6 +1.205000000000000e1,1.071112370074364e-3,1.052064474702776e-3,1.904789537158819e-5 +1.210000000000000e1,-2.618803681929395e-3,-2.652463426366250e-3,3.365974443685473e-5 +1.215000000000000e1,-6.007603124096208e-3,-6.046951107058132e-3,3.934798296192313e-5 +1.220000000000000e1,-8.909035527598662e-3,-8.947141658624402e-3,3.810613102574016e-5 +1.225000000000000e1,-1.117524115730613e-2,-1.120748348649864e-2,3.224232919250662e-5 +1.230000000000000e1,-1.270443388852490e-2,-1.272845816555719e-2,2.402427703229910e-5 +1.235000000000000e1,-1.344503028618677e-2,-1.346042014195473e-2,1.538985576795583e-5 +1.240000000000000e1,-1.339611574615971e-2,-1.340386655696342e-2,7.750810803714911e-6 +1.245000000000000e1,-1.260443235120401e-2,-1.260633406837283e-2,1.901717168828129e-6 +1.250000000000000e1,-1.115833453019354e-2,-1.115636598434161e-2,-1.968545851931125e-6 +1.255000000000000e1,-9.179366137881813e-3,-9.175187672835865e-3,-4.178465045948446e-6 +1.260000000000000e1,-6.812250885410532e-3,-6.806857230623699e-3,-5.393654786832631e-6 +1.265000000000000e1,-4.214149310908996e-3,-4.207714771755740e-3,-6.434539153256369e-6 +1.270000000000000e1,-1.544019680169475e-3,-1.535937536557823e-3,-8.082143611651618e-6 +1.275000000000000e1,1.047165283848156e-3,1.058073841363182e-3,-1.090855751502656e-5 +1.280000000000000e1,3.424735586784660e-3,3.439887640553301e-3,-1.515205376864150e-5 +1.285000000000000e1,5.476744658267970e-3,5.497393321000198e-3,-2.064866273222745e-5 +1.290000000000000e1,7.118260983911896e-3,7.145084565856943e-3,-2.682358194504731e-5 +1.295000000000000e1,8.293493640786399e-3,8.326232021603229e-3,-3.273838081683036e-5 +1.300000000000000e1,8.975889717607381e-3,9.013074121423440e-3,-3.718440381605959e-5 +1.305000000000000e1,9.181908185759809e-3,9.205291975930155e-3,-2.338379017034591e-5 +1.310000000000000e1,8.919949845499587e-3,8.927164167346876e-3,-7.214321847288582e-6 +1.315000000000000e1,8.227221228219655e-3,8.223804933539193e-3,3.416294680461465e-6 +1.320000000000000e1,7.165211040884318e-3,7.156761502240076e-3,8.449538644241840e-6 +1.325000000000000e1,5.807837565574564e-3,5.799403831750808e-3,8.433733823756499e-6 +1.330000000000000e1,4.236842999812234e-3,4.232447376886653e-3,4.395622925580829e-6 +1.335000000000000e1,2.537526907317249e-3,2.539839825621324e-3,-2.312918304075116e-6 +1.340000000000000e1,7.949668451990251e-4,8.051485986428118e-4,-1.018175344378669e-5 +1.345000000000000e1,-9.092131540584962e-4,-8.915021848384764e-4,-1.771096922001977e-5 +1.350000000000000e1,-2.499536795114786e-3,-2.475968066201228e-3,-2.356872891355827e-5 +1.355000000000000e1,-3.908890957219708e-3,-3.882164293975624e-3,-2.672666324408414e-5 +1.360000000000000e1,-5.080342468301071e-3,-5.053780223639464e-3,-2.656224466160602e-5 +1.365000000000000e1,-5.968632384940492e-3,-5.945712562378935e-3,-2.291982256155765e-5 +1.370000000000000e1,-6.541398976095365e-3,-6.525273849625062e-3,-1.612512647030263e-5 +1.375000000000000e1,-6.780141880140730e-3,-6.773190012935771e-3,-6.951867204959584e-6 +1.380000000000000e1,-6.680896319911029e-3,-6.684353071111121e-3,3.456751200092353e-6 +1.385000000000000e1,-6.254547046105320e-3,-6.268251719093956e-3,1.370467298863597e-5 +1.390000000000000e1,-5.526685102599819e-3,-5.548972335890281e-3,2.228723329046178e-5 +1.395000000000000e1,-4.536902759721874e-3,-4.564652509074928e-3,2.774974935305409e-5 +1.400000000000000e1,-3.337436349157227e-3,-3.366282087129052e-3,2.884573797182557e-5 diff --git a/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi_rspace.csv b/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi_rspace.csv new file mode 100644 index 0000000..d0552e2 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.542275124531819e-1,2.553850286629548e-1,-1.157516209772835e-3 +1.012427320004523e0,2.755066859299396e-1,2.773700692573147e-1,-1.863383327375123e-3 +1.043106935762236e0,2.718140979780035e-1,2.742770670542093e-1,-2.462969076205801e-3 +1.073786551519949e0,2.413419813862486e-1,2.441729641743932e-1,-2.830982788144615e-3 +1.104466167277662e0,1.861955244389259e-1,1.889918429470604e-1,-2.796318508134471e-3 +1.135145783035375e0,1.164297413354025e-1,1.182582178363633e-1,-1.828476500960838e-3 +1.165825398793087e0,8.030762937032303e-2,7.837947554052385e-2,1.928153829799176e-3 +1.196505014550800e0,1.459046996427647e-1,1.427294294079115e-1,3.175270234853228e-3 +1.227184630308513e0,2.416483911789112e-1,2.391737196053208e-1,2.474671573590409e-3 +1.257864246066226e0,3.302029510747190e-1,3.286532287453283e-1,1.549722329390713e-3 +1.288543861823939e0,3.969622364222018e-1,3.963912616020737e-1,5.709748201280784e-4 +1.319223477581652e0,4.322981224604749e-1,4.326909889509855e-1,-3.928664905105128e-4 +1.349903093339364e0,4.302388019973405e-1,4.315377812000465e-1,-1.298979202706052e-3 +1.380582709097077e0,3.891378310989247e-1,3.912867674815080e-1,-2.148936382583289e-3 +1.411262324854790e0,3.134253514573561e-1,3.164640346902656e-1,-3.038683232909511e-3 +1.441941940612503e0,2.204589188197808e-1,2.246797428410314e-1,-4.220824021250569e-3 +1.472621556370216e0,1.720873092507655e-1,1.770907230144649e-1,-5.003413763699477e-3 +1.503301172127929e0,2.523582569058126e-1,2.558046366909307e-1,-3.446379785118081e-3 +1.533980787885641e0,4.010291670583058e-1,4.036242613172282e-1,-2.595094258922459e-3 +1.564660403643354e0,5.607739174576459e-1,5.632972728087757e-1,-2.523355351129797e-3 +1.595340019401067e0,7.086161476957871e-1,7.113748343454036e-1,-2.758686649616537e-3 +1.626019635158780e0,8.309864128888684e-1,8.340567946636467e-1,-3.070381774778252e-3 +1.656699250916493e0,9.183690382774816e-1,9.217043406834635e-1,-3.335302405981899e-3 +1.687378866674206e0,9.644187737292348e-1,9.679124703544364e-1,-3.493696625201603e-3 +1.718058482431918e0,9.663650691272092e-1,9.699112280113334e-1,-3.546158884124240e-3 +1.748738098189631e0,9.271181015876662e-1,9.306825241621408e-1,-3.564422574474646e-3 +1.779417713947344e0,8.614339447739705e-1,8.651303088746435e-1,-3.696364100672977e-3 +1.810097329705057e0,8.099102901996458e-1,8.140013083598669e-1,-4.091018160221171e-3 +1.840776945462770e0,8.515358395121746e-1,8.561382465493879e-1,-4.602407037213263e-3 +1.871456561220483e0,1.062578352290379e0,1.067375423365470e0,-4.797071075090642e-3 +1.902136176978195e0,1.449088181661282e0,1.453719003110588e0,-4.630821449306932e-3 +1.932815792735908e0,1.975663420131147e0,1.979886036342371e0,-4.222616211223773e-3 +1.963495408493621e0,2.607817846602688e0,2.611399078447608e0,-3.581231844919763e-3 +1.994175024251334e0,3.315673170319335e0,3.318371059790075e0,-2.697889470739678e-3 +2.024854640009047e0,4.069242500403338e0,4.070843916057710e0,-1.601415654371330e-3 +2.055534255766760e0,4.836157852213509e0,4.836520335316854e0,-3.624831033457454e-4 +2.086213871524472e0,5.581715774618575e0,5.580798196562009e0,9.175780565655600e-4 +2.116893487282185e0,6.270260751118444e0,6.268138522373226e0,2.122228745218280e-3 +2.147573103039898e0,6.867263309439259e0,6.864127140187117e0,3.136169252142551e-3 +2.178252718797611e0,7.341657939998039e0,7.337796974752131e0,3.860965245908510e-3 +2.208932334555323e0,7.668105766610665e0,7.663877573900280e0,4.228192710385770e-3 +2.239611950313036e0,7.828910881141583e0,7.824702295865397e0,4.208585276185950e-3 +2.270291566070749e0,7.815380128445641e0,7.811564089002631e0,3.816039443010233e-3 +2.300971181828462e0,7.628484177703710e0,7.625378240483578e0,3.105937220131416e-3 +2.331650797586175e0,7.278752928168431e0,7.276584927693196e0,2.168000475235132e-3 +2.362330413343888e0,6.785416042841181e0,6.784301364735061e0,1.114678106119982e-3 +2.393010029101601e0,6.174873246266149e0,6.174806490396769e0,6.675586937987532e-5 +2.423689644859313e0,5.478642404474221e0,5.479504053047118e0,-8.616485728971668e-4 +2.454369260617026e0,4.730980852074667e0,4.732557220530943e0,-1.576368456275290e-3 +2.485048876374739e0,3.966403536083073e0,3.968416095885512e0,-2.012559802439640e-3 +2.515728492132452e0,3.217330002293668e0,3.219468385324337e0,-2.138383030668489e-3 +2.546408107890165e0,2.512085779832152e0,2.514037462128713e0,-1.951682296561508e-3 +2.577087723647877e0,1.873478238224464e0,1.874946591812185e0,-1.468353587721127e-3 +2.607767339405590e0,1.318215448037726e0,1.318914615533435e0,-6.991674957086413e-4 +2.638446955163303e0,8.577584787684803e-1,8.573622136346003e-1,3.962651338800249e-4 +2.669126570921016e0,5.029320904268886e-1,5.009292718792376e-1,2.002818547650942e-3 +2.699806186678729e0,2.825445575468918e-1,2.783166476653689e-1,4.227909881522940e-3 +2.730485802436442e0,2.516334410013912e-1,2.474268256170372e-1,4.206615384353990e-3 +2.761165418194155e0,3.241866233434724e-1,3.218120248983861e-1,2.374598445086307e-3 +2.791845033951867e0,3.881081261549684e-1,3.868672855809198e-1,1.240840574048607e-3 +2.822524649709580e0,4.186908811802824e-1,4.179776638670318e-1,7.132173132505804e-4 +2.853204265467293e0,4.153285143250289e-1,4.146480962657721e-1,6.804180592568376e-4 +2.883883881225006e0,3.815591168508575e-1,3.804171695780840e-1,1.141947272773502e-3 +2.914563496982719e0,3.218485982682083e-1,3.197292981262581e-1,2.119300141950164e-3 +2.945243112740431e0,2.426343066595474e-1,2.390843214536085e-1,3.549985205938855e-3 +2.975922728498144e0,5.962709216404098e-34,5.786921330970920e-34,1.757878854331785e-35 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi_rspace_contrib.csv new file mode 100644 index 0000000..7fa93ad --- /dev/null +++ b/doc/plots/feff_vs_larch_data/05_clone_template_ff2chi_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00,feff0002dat_01 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.542275124531819e-1,2.553850286629548e-1,-1.157516209772835e-3,2.546257784115848e-1,7.608322697658940e-4 +1.012427320004523e0,2.755066859299396e-1,2.773700692573147e-1,-1.863383327375123e-3,2.753686185940593e-1,7.564103582342583e-4 +1.043106935762236e0,2.718140979780035e-1,2.742770670542093e-1,-2.462969076205801e-3,2.710539686368714e-1,1.051842648416796e-3 +1.073786551519949e0,2.413419813862486e-1,2.441729641743932e-1,-2.830982788144615e-3,2.399511398717190e-1,1.526356746269983e-3 +1.104466167277662e0,1.861955244389259e-1,1.889918429470604e-1,-2.796318508134471e-3,1.842618422624777e-1,2.016443012322473e-3 +1.135145783035375e0,1.164297413354025e-1,1.182582178363633e-1,-1.828476500960838e-3,1.142360421809327e-1,2.395790696850913e-3 +1.165825398793087e0,8.030762937032303e-2,7.837947554052385e-2,1.928153829799176e-3,7.954210731722501e-2,2.560357054238903e-3 +1.196505014550800e0,1.459046996427647e-1,1.427294294079115e-1,3.175270234853228e-3,1.466888144811293e-1,2.436081847322947e-3 +1.227184630308513e0,2.416483911789112e-1,2.391737196053208e-1,2.474671573590409e-3,2.422703195991794e-1,2.008023338403484e-3 +1.257864246066226e0,3.302029510747190e-1,3.286532287453283e-1,1.549722329390713e-3,3.300808905036974e-1,1.419330180477046e-3 +1.288543861823939e0,3.969622364222018e-1,3.963912616020737e-1,5.709748201280784e-4,3.958173086719548e-1,1.342546409111242e-3 +1.319223477581652e0,4.322981224604749e-1,4.326909889509855e-1,-3.928664905105128e-4,4.300246180001078e-1,2.284067445947694e-3 +1.349903093339364e0,4.302388019973405e-1,4.315377812000465e-1,-1.298979202706052e-3,4.268787673985743e-1,3.580808604449247e-3 +1.380582709097077e0,3.891378310989247e-1,3.912867674815080e-1,-2.148936382583289e-3,3.848397595573680e-1,4.803196051996079e-3 +1.411262324854790e0,3.134253514573561e-1,3.164640346902656e-1,-3.038683232909511e-3,3.083480402888782e-1,5.691882833773133e-3 +1.441941940612503e0,2.204589188197808e-1,2.246797428410314e-1,-4.220824021250569e-3,2.146567325925161e-1,6.047009725705450e-3 +1.472621556370216e0,1.720873092507655e-1,1.770907230144649e-1,-5.003413763699477e-3,1.666611087791446e-1,5.738052241767130e-3 +1.503301172127929e0,2.523582569058126e-1,2.558046366909307e-1,-3.446379785118081e-3,2.492270799312153e-1,4.750980033217733e-3 +1.533980787885641e0,4.010291670583058e-1,4.036242613172282e-1,-2.595094258922459e-3,3.985283492380998e-1,3.337735973045299e-3 +1.564660403643354e0,5.607739174576459e-1,5.632972728087757e-1,-2.523355351129797e-3,5.580840194251778e-1,2.701510897855555e-3 +1.595340019401067e0,7.086161476957871e-1,7.113748343454036e-1,-2.758686649616537e-3,7.057293412394020e-1,4.364017986956138e-3 +1.626019635158780e0,8.309864128888684e-1,8.340567946636467e-1,-3.070381774778252e-3,8.282594431113243e-1,7.012716131865006e-3 +1.656699250916493e0,9.183690382774816e-1,9.217043406834635e-1,-3.335302405981899e-3,9.162740736683994e-1,9.600052554118088e-3 +1.687378866674206e0,9.644187737292348e-1,9.679124703544364e-1,-3.493696625201603e-3,9.633325270402741e-1,1.159783804790670e-2 +1.718058482431918e0,9.663650691272092e-1,9.699112280113334e-1,-3.546158884124240e-3,9.663891155082631e-1,1.263064036041414e-2 +1.748738098189631e0,9.271181015876662e-1,9.306825241621408e-1,-3.564422574474646e-3,9.279878703883410e-1,1.245527927603815e-2 +1.779417713947344e0,8.614339447739705e-1,8.651303088746435e-1,-3.696364100672977e-3,8.626288713067385e-1,1.101932687182098e-2 +1.810097329705057e0,8.099102901996458e-1,8.140013083598669e-1,-4.091018160221171e-3,8.111825700470537e-1,8.610657051043804e-3 +1.840776945462770e0,8.515358395121746e-1,8.561382465493879e-1,-4.602407037213263e-3,8.538832708247479e-1,6.403009447720352e-3 +1.871456561220483e0,1.062578352290379e0,1.067375423365470e0,-4.797071075090642e-3,1.068080277511586e0,7.143675483603826e-3 +1.902136176978195e0,1.449088181661282e0,1.453719003110588e0,-4.630821449306932e-3,1.459178331289264e0,1.098237266088773e-2 +1.932815792735908e0,1.975663420131147e0,1.979886036342371e0,-4.222616211223773e-3,1.990631702270380e0,1.556469037146073e-2 +1.963495408493621e0,2.607817846602688e0,2.611399078447608e0,-3.581231844919763e-3,2.627036763244881e0,1.955687503128902e-2 +1.994175024251334e0,3.315673170319335e0,3.318371059790075e0,-2.697889470739678e-3,3.337739757335858e0,2.217275365986365e-2 +2.024854640009047e0,4.069242500403338e0,4.070843916057710e0,-1.601415654371330e-3,4.092129311863472e0,2.288682950520858e-2 +2.055534255766760e0,4.836157852213509e0,4.836520335316854e0,-3.624831033457454e-4,4.857440354425723e0,2.142460167680882e-2 +2.086213871524472e0,5.581715774618575e0,5.580798196562009e0,9.175780565655600e-4,5.598865654260220e0,1.782856532794795e-2 +2.116893487282185e0,6.270260751118444e0,6.268138522373226e0,2.122228745218280e-3,6.280969675881972e0,1.265804959868809e-2 +2.147573103039898e0,6.867263309439259e0,6.864127140187117e0,3.136169252142551e-3,6.869755382393032e0,8.105292025194133e-3 +2.178252718797611e0,7.341657939998039e0,7.337796974752131e0,3.860965245908510e-3,7.334950264102077e0,1.007493771336475e-2 +2.208932334555323e0,7.668105766610665e0,7.663877573900280e0,4.228192710385770e-3,7.652182618690939e0,1.704849718738714e-2 +2.239611950313036e0,7.828910881141583e0,7.824702295865397e0,4.208585276185950e-3,7.804787052324251e0,2.438420747686887e-2 +2.270291566070749e0,7.815380128445641e0,7.811564089002631e0,3.816039443010233e-3,7.785042074449588e0,3.033873848995566e-2 +2.300971181828462e0,7.628484177703710e0,7.625378240483578e0,3.105937220131416e-3,7.594712453851676e0,3.395455176945337e-2 +2.331650797586175e0,7.278752928168431e0,7.276584927693196e0,2.168000475235132e-3,7.244844364969165e0,3.464204610235275e-2 +2.362330413343888e0,6.785416042841181e0,6.784301364735061e0,1.114678106119982e-3,6.754837488272837e0,3.216546331500406e-2 +2.393010029101601e0,6.174873246266149e0,6.174806490396769e0,6.675586937987532e-5,6.150888726959490e0,2.669144022055613e-2 +2.423689644859313e0,5.478642404474221e0,5.479504053047118e0,-8.616485728971668e-4,5.463960721262562e0,1.893355743774615e-2 +2.454369260617026e0,4.730980852074667e0,4.732557220530943e0,-1.576368456275290e-3,4.727469760481891e0,1.111972305213112e-2 +2.485048876374739e0,3.966403536083073e0,3.968416095885512e0,-2.012559802439640e-3,3.974908980596900e0,1.136632795848122e-2 +2.515728492132452e0,3.217330002293668e0,3.219468385324337e0,-2.138383030668489e-3,3.237623733373593e0,2.053478285170073e-2 +2.546408107890165e0,2.512085779832152e0,2.514037462128713e0,-1.951682296561508e-3,2.542940679790775e0,3.094384244515060e-2 +2.577087723647877e0,1.873478238224464e0,1.874946591812185e0,-1.468353587721127e-3,1.912832350919592e0,4.029029638327815e-2 +2.607767339405590e0,1.318215448037726e0,1.318914615533435e0,-6.991674957086413e-4,1.363309704144826e0,4.776492864822671e-2 +2.638446955163303e0,8.577584787684803e-1,8.573622136346003e-1,3.962651338800249e-4,9.049077539996708e-1,5.309436660362967e-2 +2.669126570921016e0,5.029320904268886e-1,5.009292718792376e-1,2.002818547650942e-3,5.455941161732399e-1,5.634875764747396e-2 +2.699806186678729e0,2.825445575468918e-1,2.783166476653689e-1,4.227909881522940e-3,3.022752376595276e-1,5.776409886250245e-2 +2.730485802436442e0,2.516334410013912e-1,2.474268256170372e-1,4.206615384353990e-3,2.226026855418740e-1,5.751443653807381e-2 +2.761165418194155e0,3.241866233434724e-1,3.218120248983861e-1,2.374598445086307e-3,2.736160612593715e-1,5.553274500708590e-2 +2.791845033951867e0,3.881081261549684e-1,3.868672855809198e-1,1.240840574048607e-3,3.365789039785991e-1,5.158934814507291e-2 +2.822524649709580e0,4.186908811802824e-1,4.179776638670318e-1,7.132173132505804e-4,3.752750183975347e-1,4.597652573082496e-2 +2.853204265467293e0,4.153285143250289e-1,4.146480962657721e-1,6.804180592568376e-4,3.888320060850228e-1,4.154885509647410e-2 +2.883883881225006e0,3.815591168508575e-1,3.804171695780840e-1,1.141947272773502e-3,3.828256268222396e-1,4.642080093705236e-2 +2.914563496982719e0,3.218485982682083e-1,3.197292981262581e-1,2.119300141950164e-3,3.634282197800583e-1,6.738239100721634e-2 +2.945243112740431e0,2.426343066595474e-1,2.390843214536085e-1,3.549985205938855e-3,3.363551153720047e-1,1.024790958399520e-1 +2.975922728498144e0,5.962709216404098e-34,5.786921330970920e-34,1.757878854331785e-35,1.150698442414293e-33,5.555721855598404e-34 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1.csv b/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1.csv new file mode 100644 index 0000000..06b82b3 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.294014545590028e-1,3.294014545590028e-1 +1.000000000000000e-1,0.000000000000000e0,-3.325857487366470e-1,3.325857487366470e-1 +1.500000000000000e-1,0.000000000000000e0,-3.357700429142912e-1,3.357700429142912e-1 +2.000000000000000e-1,0.000000000000000e0,-3.401532904633558e-1,3.401532904633558e-1 +2.500000000000000e-1,0.000000000000000e0,-3.456560420239568e-1,3.456560420239568e-1 +3.000000000000000e-1,0.000000000000000e0,-3.521695009003528e-1,3.521695009003528e-1 +3.500000000000000e-1,0.000000000000000e0,-3.595505950839698e-1,3.595505950839698e-1 +4.000000000000000e-1,0.000000000000000e0,-3.676159293232869e-1,3.676159293232869e-1 +4.500000000000000e-1,0.000000000000000e0,-3.761342857813328e-1,3.761342857813328e-1 +5.000000000000000e-1,0.000000000000000e0,-3.848161215226475e-1,3.848161215226475e-1 +5.500000000000000e-1,0.000000000000000e0,-3.932912407666668e-1,3.932912407666668e-1 +6.000000000000001e-1,0.000000000000000e0,-4.009380735867983e-1,4.009380735867983e-1 +6.500000000000000e-1,-3.933364678422223e-1,-3.926716466366216e-1,-6.648212056007408e-4 +7.000000000000001e-1,-3.819860117922665e-1,-3.813331402971081e-1,-6.528714951584136e-4 +7.500000000000000e-1,-3.690918332022263e-1,-3.683470245398694e-1,-7.448086623568773e-4 +8.000000000000000e-1,-3.545741254440217e-1,-3.535384017595220e-1,-1.035723684499668e-3 +8.500000000000001e-1,-3.381519406981514e-1,-3.367438066643357e-1,-1.408134033815622e-3 +9.000000000000000e-1,-3.186050081739567e-1,-3.178195023572455e-1,-7.855058167112183e-4 +9.500000000000001e-1,-2.974487265105402e-1,-2.966649207098992e-1,-7.838058006409687e-4 +1.000000000000000e0,-2.743828723338870e-1,-2.731786232202901e-1,-1.204249113596900e-3 +1.050000000000000e0,-2.478469059519341e-1,-2.473011706388375e-1,-5.457353130965403e-4 +1.100000000000000e0,-2.198835691501629e-1,-2.191364633970085e-1,-7.471057531544256e-4 +1.150000000000000e0,-1.893352717860581e-1,-1.888065267837186e-1,-5.287450023395146e-4 +1.200000000000000e0,-1.567210152085331e-1,-1.564444046653403e-1,-2.766105431927235e-4 +1.250000000000000e0,-1.230211586266598e-1,-1.224036763166079e-1,-6.174823100518340e-4 +1.300000000000000e0,-8.718413567460374e-2,-8.715983524047755e-2,-2.430043412619820e-5 +1.350000000000000e0,-5.163257718289522e-2,-5.124494511630743e-2,-3.876320665877897e-4 +1.400000000000000e0,-1.511931781214598e-2,-1.526751063079347e-2,1.481928186474902e-4 +1.450000000000000e0,2.016424721405009e-2,2.009284886755197e-2,7.139834649811175e-5 +1.500000000000000e0,5.442416492035251e-2,5.411256444340888e-2,3.116004769436326e-4 +1.550000000000000e0,8.646809897062419e-2,8.611033042562016e-2,3.577685450040224e-4 +1.600000000000000e0,1.156549738933264e-1,1.152681180423988e-1,3.868558509276671e-4 +1.650000000000000e0,1.411611805102567e-1,1.406728273556015e-1,4.883531546551745e-4 +1.700000000000000e0,1.621765051133490e-1,1.616641557189680e-1,5.123493943809954e-4 +1.750000000000000e0,1.783881525827032e-1,1.777615901639631e-1,6.265624187400398e-4 +1.800000000000000e0,1.892485659473870e-1,1.885934374458280e-1,6.551285015590769e-4 +1.850000000000000e0,1.944790610906092e-1,1.939096951849520e-1,5.693659056572042e-4 +1.900000000000000e0,1.941995100995663e-1,1.934543094537796e-1,7.452006457866756e-4 +1.950000000000000e0,1.876996316535738e-1,1.872181652685968e-1,4.814663849770084e-4 +2.000000000000000e0,1.762981762821283e-1,1.756076414101513e-1,6.905348719769833e-4 +2.050000000000000e0,1.596429754387371e-1,1.592074863076734e-1,4.354891310636433e-4 +2.100000000000000e0,1.390995292208499e-1,1.387543676633363e-1,3.451615575136291e-4 +2.150000000000000e0,1.141694398177267e-1,1.149897343852503e-1,-8.202945675235829e-4 +2.200000000000000e0,8.770401147309473e-2,8.875688172901036e-2,-1.052870255915633e-3 +2.250000000000000e0,6.084242534209809e-2,6.126408875565007e-2,-4.216634135519801e-4 +2.300000000000000e0,3.414371331189037e-2,3.383069858273713e-2,3.130147291532451e-4 +2.350000000000000e0,8.482677356315688e-3,8.001530980010461e-3,4.811463763052266e-4 +2.400000000000000e0,-1.373010675620613e-2,-1.419485949073218e-2,4.647527345260465e-4 +2.450000000000000e0,-3.096099229911546e-2,-3.094240168596014e-2,-1.859061315531707e-5 +2.500000000000000e0,-4.325394474697131e-2,-4.224256148900268e-2,-1.011383257968637e-3 +2.550000000000000e0,-5.288870100491437e-2,-5.031380519059944e-2,-2.574895814314929e-3 +2.600000000000000e0,-5.919960919307867e-2,-5.670952968803743e-2,-2.490079505041244e-3 +2.650000000000000e0,-6.228631704070661e-2,-6.135428800005268e-2,-9.320290406539256e-4 +2.700000000000000e0,-6.286718114059718e-2,-6.305081412694059e-2,1.836329863434127e-4 +2.750000000000000e0,-6.079208619752933e-2,-6.127376324439794e-2,4.816770468686130e-4 +2.800000000000000e0,-5.617659786201468e-2,-5.652561559186974e-2,3.490177298550515e-4 +2.850000000000000e0,-4.961333928535588e-2,-4.955663879173896e-2,-5.670049361692492e-5 +2.900000000000000e0,-4.128683795612544e-2,-4.113529316986852e-2,-1.515447862569172e-4 +2.950000000000000e0,-3.144444229255648e-2,-3.168053048321991e-2,2.360881906634318e-4 +3.000000000000000e0,-2.100881796172321e-2,-2.146831418650914e-2,4.594962247859297e-4 +3.050000000000000e0,-1.078163524290504e-2,-1.087946208821198e-2,9.782684530693780e-5 +3.100000000000000e0,-3.069348339932706e-5,-4.587705779771952e-4,4.280770945778682e-4 +3.150000000000000e0,9.914164414804224e-3,9.061277594673041e-3,8.528868201311823e-4 +3.200000000000000e0,1.794609021427410e-2,1.708921245437348e-2,8.568777599006240e-4 +3.250000000000000e0,2.354117199656585e-2,2.332543994108142e-2,2.157320554844293e-4 +3.300000000000000e0,2.846332419993366e-2,2.767369495791551e-2,7.896292420181486e-4 +3.350000000000000e0,3.113479162564977e-2,2.994275657939049e-2,1.192035046259286e-3 +3.400000000000000e0,3.087895946040832e-2,2.989024823516422e-2,9.887112252441009e-4 +3.450000000000000e0,2.759693099381686e-2,2.740457688441883e-2,1.923541093980310e-4 +3.500000000000000e0,2.338124633163244e-2,2.261174459581147e-2,7.695017358209724e-4 +3.550000000000000e0,1.680358945814981e-2,1.579795282183295e-2,1.005636636316861e-3 +3.600000000000000e0,8.045866919473170e-3,7.323249415895688e-3,7.226175035774818e-4 +3.650000000000000e0,-2.331938759021662e-3,-2.380798998970953e-3,4.886023994929130e-5 +3.700000000000000e0,-1.248870274288472e-2,-1.281254498424808e-2,3.238422413633559e-4 +3.750000000000000e0,-2.308265152946325e-2,-2.339859823437767e-2,3.159467049144264e-4 +3.800000000000000e0,-3.341433664606457e-2,-3.353472147970279e-2,1.203848336382221e-4 +3.850000000000000e0,-4.271932803975675e-2,-4.262032967414725e-2,-9.899836560949699e-5 +3.900000000000000e0,-5.011790202354126e-2,-5.008641634667832e-2,-3.148567686293846e-5 +3.950000000000000e0,-5.547470551560178e-2,-5.541970665377990e-2,-5.499886182187830e-5 +4.000000000000000e0,-5.830307224982125e-2,-5.818284346494816e-2,-1.202287848730901e-4 +4.050000000000000e0,-5.822449252474706e-2,-5.803659160936112e-2,-1.879009153859454e-4 +4.100000000000001e0,-5.495052302585778e-2,-5.478653800353910e-2,-1.639850223186801e-4 +4.150000000000000e0,-4.868673827251153e-2,-4.847398543699171e-2,-2.127528355198166e-4 +4.200000000000000e0,-3.958109007881210e-2,-3.934649815839190e-2,-2.345919204201977e-4 +4.250000000000000e0,-2.797908757281363e-2,-2.782024409440195e-2,-1.588434784116771e-4 +4.300000000000000e0,-1.460436139697236e-2,-1.441432204924694e-2,-1.900393477254191e-4 +4.350000000000001e0,1.764455273480705e-4,3.265218023979571e-4,-1.500762750498866e-4 +4.400000000000000e0,1.571370376507279e-2,1.578191918956779e-2,-6.821542449500159e-5 +4.450000000000000e0,3.129006397787008e-2,3.125449153850474e-2,3.557243936533339e-5 +4.500000000000000e0,4.607662173455388e-2,4.598155098922993e-2,9.507074532395104e-5 +4.550000000000000e0,5.929494315412962e-2,5.917879554031483e-2,1.161476138147946e-4 +4.600000000000001e0,7.026218183033477e-2,7.011813343809929e-2,1.440483922354741e-4 +4.650000000000000e0,7.835272305096595e-2,7.816915293860129e-2,1.835701123646671e-4 +4.700000000000000e0,8.294001719785886e-2,8.281759304920717e-2,1.224241486516842e-4 +4.750000000000000e0,8.378349010112382e-2,8.368420542837066e-2,9.928467275316377e-5 +4.800000000000001e0,8.074464670676472e-2,8.058963229390792e-2,1.550144128567993e-4 +4.850000000000001e0,7.380794223529427e-2,7.358342092383775e-2,2.245213114565187e-4 +4.900000000000000e0,6.312965768932952e-2,6.295556973109265e-2,1.740879582368682e-4 +4.950000000000000e0,4.937407878338891e-2,4.920365892816373e-2,1.704198552251804e-4 +5.000000000000000e0,3.312985097895305e-2,3.296768579203947e-2,1.621651869135807e-4 +5.050000000000001e0,1.509115669526728e-2,1.498984481746126e-2,1.013118778060238e-4 +5.100000000000001e0,-3.946260641197281e-3,-3.929514776377779e-3,-1.674586481950190e-5 +5.150000000000000e0,-2.304515163722502e-2,-2.295628888039202e-2,-8.886275683299416e-5 +5.200000000000000e0,-4.132105879520972e-2,-4.122508671583548e-2,-9.597207937424301e-5 +5.250000000000000e0,-5.794934187946500e-2,-5.786692630852265e-2,-8.241557094235130e-5 +5.300000000000001e0,-7.210641109574137e-2,-7.202556967489648e-2,-8.084142084488488e-5 +5.350000000000001e0,-8.298814986246951e-2,-8.291373033798419e-2,-7.441952448532241e-5 +5.400000000000000e0,-9.005707286378975e-2,-8.992350683799055e-2,-1.335660257991977e-4 +5.450000000000000e0,-9.288674998084803e-2,-9.268088631045045e-2,-2.058636703975852e-4 +5.500000000000000e0,-9.126620406348990e-2,-9.107908727781257e-2,-1.871167856773298e-4 +5.550000000000001e0,-8.541293971886052e-2,-8.523224567628562e-2,-1.806940425748971e-4 +5.600000000000001e0,-7.559309665749203e-2,-7.540638119559814e-2,-1.867154618938882e-4 +5.650000000000000e0,-6.217589859645557e-2,-6.200189369554369e-2,-1.740049009118783e-4 +5.700000000000000e0,-4.565139040709371e-2,-4.557316986790264e-2,-7.822053919107064e-5 +5.750000000000000e0,-2.693549564562055e-2,-2.687967771539055e-2,-5.581793023000034e-5 +5.800000000000001e0,-6.924580849920783e-3,-6.849405836761214e-3,-7.517501315956916e-5 +5.850000000000001e0,1.340570938210975e-2,1.348432009170464e-2,-7.861070959488785e-5 +5.900000000000000e0,3.302271158883728e-2,3.308903116410555e-2,-6.631957526827270e-5 +5.950000000000000e0,5.100103156381335e-2,5.102264616099141e-2,-2.161459717806014e-5 +6.000000000000000e0,6.649093746103298e-2,6.644019174355857e-2,5.074571747440415e-5 +6.050000000000001e0,7.872812222143294e-2,7.862235679434557e-2,1.057654270873731e-4 +6.100000000000001e0,8.705402469344249e-2,8.699505008224447e-2,5.897461119802605e-5 +6.150000000000000e0,9.112847246117826e-2,9.115787654823546e-2,-2.940408705719155e-5 +6.200000000000000e0,9.079376450196382e-2,9.091884418325794e-2,-1.250796812941185e-4 +6.250000000000000e0,8.610658651583034e-2,8.630565955985785e-2,-1.990730440275118e-4 +6.300000000000001e0,7.733315223758006e-2,7.756464886558304e-2,-2.314966280029807e-4 +6.350000000000001e0,6.493423032247239e-2,6.514820479733918e-2,-2.139744748667904e-4 +6.400000000000000e0,4.954089494778430e-2,4.969138238178368e-2,-1.504874339993828e-4 +6.450000000000000e0,3.192228001266886e-2,3.197887233777263e-2,-5.659232510377143e-5 +6.500000000000000e0,1.294699088569694e-2,1.290412019320335e-2,4.287069249359586e-5 +6.550000000000001e0,-6.528733841268858e-3,-6.577220900253045e-3,4.848705898418716e-5 +6.600000000000001e0,-2.550048303339753e-2,-2.549764026540373e-2,-2.842767993799927e-6 +6.650000000000000e0,-4.293149082315700e-2,-4.292794882956833e-2,-3.541993588665471e-6 +6.700000000000000e0,-5.799585450253639e-2,-5.802370193848817e-2,2.784743595177913e-5 +6.750000000000000e0,-6.999691997213742e-2,-7.006731498927628e-2,7.039501713886065e-5 +6.800000000000001e0,-7.839929055438141e-2,-7.850324998118982e-2,1.039594268084088e-4 +6.850000000000001e0,-8.285236608331778e-2,-8.296445633348552e-2,1.120902501677429e-4 +6.900000000000000e0,-8.320440190124846e-2,-8.328877256613433e-2,8.437066488586886e-5 +6.950000000000000e0,-7.950656282115315e-2,-7.952454115866209e-2,1.797833750893929e-5 +7.000000000000000e0,-7.200694948266893e-2,-7.192526911410060e-2,-8.168036856832928e-5 +7.050000000000001e0,-6.102503764931893e-2,-6.093374572850791e-2,-9.129192081101800e-5 +7.100000000000001e0,-4.715596460975839e-2,-4.715640700691572e-2,4.423971573311314e-7 +7.150000000000000e0,-3.126780653754609e-2,-3.132942550937055e-2,6.161897182446058e-5 +7.200000000000000e0,-1.418934674330234e-2,-1.427907649474588e-2,8.972975144354300e-5 +7.250000000000000e0,3.210080746657780e-3,3.121734130525496e-3,8.834661613228408e-5 +7.300000000000001e0,2.006466332493347e-2,1.999857567972660e-2,6.608764520687344e-5 +7.350000000000001e0,3.555500315365531e-2,3.551988516577422e-2,3.511798788109061e-5 +7.400000000000000e0,4.894771929816903e-2,4.893837819426151e-2,9.341103907517523e-6 +7.450000000000000e0,5.962986029885618e-2,5.962740437407831e-2,2.455924777863827e-6 +7.500000000000000e0,6.713653286287868e-2,6.711047149618247e-2,2.606136669620895e-5 +7.550000000000001e0,7.113066020430946e-2,7.108254557408521e-2,4.811463022424967e-5 +7.600000000000001e0,7.144339742150581e-2,7.142219975837473e-2,2.119766313107840e-5 +7.650000000000000e0,6.817403092691227e-2,6.819433118481183e-2,-2.030025789956369e-5 +7.700000000000000e0,6.158092832307076e-2,6.164319123625330e-2,-6.226291318254390e-5 +7.750000000000000e0,5.208300300771936e-2,5.217621235581463e-2,-9.320934809527170e-5 +7.800000000000001e0,4.023426656770648e-2,4.033975560878329e-2,-1.054890410768089e-4 +7.850000000000001e0,2.669221962890589e-2,2.678820095319883e-2,-9.598132429294512e-5 +7.900000000000000e0,1.218185456513308e-2,1.224811874907342e-2,-6.626418394034377e-5 +7.950000000000000e0,-2.542781483896941e-3,-2.520517219241452e-3,-2.226426465548950e-5 +8.000000000000000e0,-1.673744412505803e-2,-1.676400091345857e-2,2.655678840054326e-5 +8.050000000000001e0,-2.975284207259603e-2,-2.977333293763550e-2,2.049086503946862e-5 +8.100000000000000e0,-4.092881577012762e-2,-4.091886099415020e-2,-9.954775977420727e-6 +8.150000000000000e0,-4.970032327478457e-2,-4.968110509181467e-2,-1.921818296989758e-5 +8.200000000000001e0,-5.569029072838668e-2,-5.567600701799864e-2,-1.428371038803694e-5 +8.250000000000000e0,-5.867505736719136e-2,-5.867189565488429e-2,-3.161712307069020e-6 +8.300000000000001e0,-5.859134325493867e-2,-5.859796531610711e-2,6.622061168443105e-6 +8.350000000000000e0,-5.553474604189492e-2,-5.554400703826384e-2,9.260996368914975e-6 +8.400000000000000e0,-4.975009626985154e-2,-4.975159818027985e-2,1.501910428310105e-6 +8.450000000000001e0,-4.161441307168446e-2,-4.159742424055457e-2,-1.698883112988964e-5 +8.500000000000000e0,-3.161356350781516e-2,-3.156982764134590e-2,-4.373586646925359e-5 +8.550000000000001e0,-2.028798317391288e-2,-2.023998357483600e-2,-4.799959907687487e-5 +8.600000000000000e0,-8.262483752769580e-3,-8.228727770454299e-3,-3.375598231528110e-5 +8.650000000000000e0,3.804782603598307e-3,3.827479727038068e-3,-2.269712343976049e-5 +8.700000000000001e0,1.529336049369358e-2,1.530936795006152e-2,-1.600745636794361e-5 +8.750000000000000e0,2.563234234078362e-2,2.564617866034529e-2,-1.383631956167197e-5 +8.800000000000001e0,3.432831136526431e-2,3.434356122040055e-2,-1.524985513624844e-5 +8.850000000000000e0,4.098836963189501e-2,4.100669307998268e-2,-1.832344808767178e-5 +8.900000000000000e0,4.533720876030186e-2,4.535758178295143e-2,-2.037302264957380e-5 +8.950000000000001e0,4.722752566413469e-2,4.724583343258998e-2,-1.830776845528764e-5 +9.000000000000000e0,4.664345600611968e-2,4.665252827378931e-2,-9.072267669628375e-6 +9.050000000000001e0,4.368854266449609e-2,4.368722123280012e-2,1.321431695962272e-6 +9.100000000000000e0,3.858604938753427e-2,3.857880239993067e-2,7.246987603598543e-6 +9.150000000000000e0,3.167485432792515e-2,3.166068225402761e-2,1.417207389754066e-5 +9.200000000000001e0,2.337310210678788e-2,2.335012603780156e-2,2.297606898632107e-5 +9.250000000000000e0,1.415674437647669e-2,1.412354756874768e-2,3.319680772900443e-5 +9.300000000000001e0,4.532798459791320e-3,4.489379393336292e-3,4.341906645502751e-5 +9.350000000000000e0,-4.988105962925169e-3,-5.039917047772023e-3,5.181108484685407e-5 +9.400000000000000e0,-1.391842742374786e-2,-1.397513594748538e-2,5.670852373751770e-5 +9.450000000000001e0,-2.181828520144345e-2,-2.187543016706310e-2,5.714496561964877e-5 +9.500000000000000e0,-2.831668759783673e-2,-2.836992789242949e-2,5.324029459276292e-5 +9.550000000000001e0,-3.312751109350938e-2,-3.317484174443213e-2,4.733065092275140e-5 +9.600000000000001e0,-3.606872494358515e-2,-3.610552971219381e-2,3.680476860865728e-5 +9.650000000000000e0,-3.705785995327456e-2,-3.708136689927710e-2,2.350694600254666e-5 +9.700000000000001e0,-3.611449287345078e-2,-3.612505751102309e-2,1.056463757231202e-5 +9.750000000000000e0,-3.335736389554454e-2,-3.335737150533307e-2,7.609788535423156e-9 +9.800000000000001e0,-2.899463544488601e-2,-2.898714746713086e-2,-7.487977755151615e-6 +9.850000000000001e0,-2.330983714691416e-2,-2.329725107638915e-2,-1.258607052501831e-5 +9.900000000000000e0,-1.664438794660699e-2,-1.662736038323953e-2,-1.702756336745270e-5 +9.950000000000001e0,-9.377734641297149e-3,-9.354567131054040e-3,-2.316751024310920e-5 +1.000000000000000e1,-1.906234218514638e-3,-1.872848172190767e-3,-3.338604632387122e-5 +1.005000000000000e1,5.404796040903769e-3,5.427492164462626e-3,-2.269612355885672e-5 +1.010000000000000e1,1.218561599515491e-2,1.217902825553127e-2,6.587739623637248e-6 +1.015000000000000e1,1.809118501014629e-2,1.805524144004871e-2,3.594357009758034e-5 +1.020000000000000e1,2.284677558689733e-2,2.278621937645637e-2,6.055621044095960e-5 +1.025000000000000e1,2.624758846704553e-2,2.617062965873060e-2,7.695880831493085e-5 +1.030000000000000e1,2.816694317167555e-2,2.808372682602689e-2,8.321634564866301e-5 +1.035000000000000e1,2.856006307540235e-2,2.848111496202296e-2,7.894811337938804e-5 +1.040000000000000e1,2.746341385955214e-2,2.739821257867673e-2,6.520128087540711e-5 +1.045000000000000e1,2.498979150310286e-2,2.494559303993540e-2,4.419846316745107e-5 +1.050000000000000e1,2.131957437603059e-2,2.130058386675655e-2,1.899050927403959e-5 +1.055000000000000e1,1.668874249709744e-2,1.669569129211092e-2,-6.948795013474868e-6 +1.060000000000000e1,1.137441659733109e-2,1.140456359473908e-2,-3.014699740798779e-5 +1.065000000000000e1,5.678773687167644e-3,5.726311416106131e-3,-4.753772893848710e-5 +1.070000000000000e1,-8.774956853821884e-5,-3.093868396967467e-5,-5.681088456854417e-5 +1.075000000000000e1,-5.623050342041670e-3,-5.566371271701225e-3,-5.667907034044573e-5 +1.080000000000000e1,-1.064887961703624e-2,-1.060184066582380e-2,-4.703895121244660e-5 +1.085000000000000e1,-1.492450797441384e-2,-1.489549275332029e-2,-2.901522109354827e-5 +1.090000000000000e1,-1.825788455474375e-2,-1.825299994212069e-2,-4.884612623056589e-6 +1.095000000000000e1,-2.051379465178299e-2,-2.053590767384609e-2,2.211302206309163e-5 +1.100000000000000e1,-2.161869994676633e-2,-2.166676060250415e-2,4.806065573782076e-5 +1.105000000000000e1,-2.159456744100995e-2,-2.163085686820075e-2,3.628942719080541e-5 +1.110000000000000e1,-2.046336188397524e-2,-2.047465442990558e-2,1.129254593033868e-5 +1.115000000000000e1,-1.830779148453950e-2,-1.830105771378189e-2,-6.733770757612334e-6 +1.120000000000000e1,-1.527874342525686e-2,-1.526194409035614e-2,-1.679933490072484e-5 +1.125000000000000e1,-1.156741378408689e-2,-1.154841037692295e-2,-1.900340716393979e-5 +1.130000000000000e1,-7.393719137940621e-3,-7.379338145569930e-3,-1.438099237069043e-5 +1.135000000000000e1,-2.993614373945278e-3,-2.988938879825488e-3,-4.675494119789781e-6 +1.140000000000000e1,1.393968002930263e-3,1.386031097737146e-3,7.936905193117565e-6 +1.145000000000000e1,5.539847773998297e-3,5.518704446114999e-3,2.114332788329815e-5 +1.150000000000000e1,9.236330646290725e-3,9.203547913928561e-3,3.278273236216427e-5 +1.155000000000000e1,1.230735805921599e-2,1.226625721756981e-2,4.110084164617861e-5 +1.160000000000000e1,1.461659215860809e-2,1.457164282457137e-2,4.494933403672609e-5 +1.165000000000000e1,1.607308338166130e-2,1.602917070210778e-2,4.391267955351774e-5 +1.170000000000000e1,1.663431069334359e-2,1.659595801810001e-2,3.835267524358171e-5 +1.175000000000000e1,1.630653306045604e-2,1.627716503008925e-2,2.936803036679425e-5 +1.180000000000000e1,1.514253701622722e-2,1.512386329484178e-2,1.867372138543433e-5 +1.185000000000000e1,1.323700135404695e-2,1.322858963079862e-2,8.411723248329117e-6 +1.190000000000000e1,1.071981912448925e-2,1.071890850872551e-2,9.106157637401441e-7 +1.195000000000000e1,7.747813406902977e-3,7.749397380750424e-3,-1.583973847447441e-6 +1.200000000000000e1,4.495352449372509e-3,4.492535878338436e-3,2.816571034073428e-6 +1.205000000000000e1,1.138837183365182e-3,1.129009678268843e-3,9.827505096338682e-6 +1.210000000000000e1,-2.152754680677382e-3,-2.162096817035537e-3,9.342136358155527e-6 +1.215000000000000e1,-5.208840147713914e-3,-5.212481968576560e-3,3.641820862645626e-6 +1.220000000000000e1,-7.877395423745761e-3,-7.872854994341653e-3,-4.540429404108551e-6 +1.225000000000000e1,-1.003253649442246e-2,-1.001991949450199e-2,-1.261699992046762e-5 +1.230000000000000e1,-1.158022120343713e-2,-1.156175306398890e-2,-1.846813944823139e-5 +1.235000000000000e1,-1.246204463338298e-2,-1.244136833240152e-2,-2.067630098145576e-5 +1.240000000000000e1,-1.265699559344238e-2,-1.263834178303834e-2,-1.865381040404117e-5 +1.245000000000000e1,-1.218115620421604e-2,-1.216849891701549e-2,-1.265728720055426e-5 +1.250000000000000e1,-1.108543754057782e-2,-1.108174336415266e-2,-3.694176425156001e-6 +1.255000000000000e1,-9.451546176179111e-3,-9.458208599265975e-3,6.662423086863448e-6 +1.260000000000000e1,-7.386464100005590e-3,-7.402989761817498e-3,1.652566181190810e-5 +1.265000000000000e1,-5.015793637789055e-3,-5.039776205606521e-3,2.398256781746544e-5 +1.270000000000000e1,-2.476366654400819e-3,-2.503750219292607e-3,2.738356489178804e-5 +1.275000000000000e1,9.145833909877638e-5,6.585776105391020e-5,2.560057804486618e-5 +1.280000000000000e1,2.551386946843573e-3,2.533162767047225e-3,1.822417979634866e-5 +1.285000000000000e1,4.778265576537009e-3,4.772588782592042e-3,5.676793944966660e-6 +1.290000000000000e1,6.664285222067114e-3,6.675057528337165e-3,-1.077230627005103e-5 +1.295000000000000e1,8.124014320982059e-3,8.153108738198085e-3,-2.909441721602596e-5 +1.300000000000000e1,9.098037222539896e-3,9.144722221219244e-3,-4.668499867934751e-5 +1.305000000000000e1,9.572219428705047e-3,9.615685819962095e-3,-4.346639125704828e-5 +1.310000000000000e1,9.525852888385301e-3,9.560466761592517e-3,-3.461387320721591e-5 +1.315000000000000e1,8.973526119073110e-3,9.001610557677649e-3,-2.808443860453924e-5 +1.320000000000000e1,7.963881966792700e-3,7.987590027620914e-3,-2.370806082821302e-5 +1.325000000000000e1,6.568277953887702e-3,6.589308887028172e-3,-2.103093314046942e-5 +1.330000000000000e1,4.876085911404945e-3,4.895520112888521e-3,-1.943420148357595e-5 +1.335000000000000e1,2.989194448085131e-3,3.007443206001367e-3,-1.824875791623607e-5 +1.340000000000000e1,1.016042362438267e-3,1.032898863024424e-3,-1.685650058615715e-5 +1.345000000000000e1,-9.344756129877832e-4,-9.197045512599945e-4,-1.477106172778869e-5 +1.350000000000000e1,-2.758895197590983e-3,-2.747201441313184e-3,-1.169375627779832e-5 +1.355000000000000e1,-4.364549500022622e-3,-4.357006341400600e-3,-7.543158622022247e-6 +1.360000000000000e1,-5.674145009500480e-3,-5.671685938644051e-3,-2.459070856429026e-6 +1.365000000000000e1,-6.629328551459121e-3,-6.632544991951675e-3,3.216440492554221e-6 +1.370000000000000e1,-7.193090425637451e-3,-7.202067296267993e-3,8.976870630542436e-6 +1.375000000000000e1,-7.350918309610118e-3,-7.365121355367849e-3,1.420304575773176e-5 +1.380000000000000e1,-7.110687900018784e-3,-7.128911471144582e-3,1.822357112579893e-5 +1.385000000000000e1,-6.501345684238788e-3,-6.521724465611306e-3,2.037878137251849e-5 +1.390000000000000e1,-5.570502952270244e-3,-5.590586389117912e-3,2.008343684766802e-5 +1.395000000000000e1,-4.381114892623029e-3,-4.397998944792540e-3,1.688405216951003e-5 +1.400000000000000e1,-3.007461706224606e-3,-3.017969208148637e-3,1.050750192403086e-5 diff --git a/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1_rspace.csv b/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1_rspace.csv new file mode 100644 index 0000000..629b790 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.546230474567035e-1,2.558747282920494e-1,-1.251680835345881e-3 +1.012427320004523e0,2.753705451928694e-1,2.773025376727473e-1,-1.931992479877964e-3 +1.043106935762236e0,2.710599706886452e-1,2.735683477047668e-1,-2.508377016121610e-3 +1.073786551519949e0,2.399598042637487e-1,2.428152699477845e-1,-2.855465684035774e-3 +1.104466167277662e0,1.842703847005595e-1,1.870736439246672e-1,-2.803259224107679e-3 +1.135145783035375e0,1.142376860787416e-1,1.160528621453687e-1,-1.815176066627039e-3 +1.165825398793087e0,7.952224653313605e-2,7.754852264437105e-2,1.973723888765003e-3 +1.196505014550800e0,1.466686126783009e-1,1.435394888017387e-1,3.129123876562195e-3 +1.227184630308513e0,2.422569230669940e-1,2.398246866727718e-1,2.432236394222187e-3 +1.257864246066226e0,3.300745360178775e-1,3.285448278308771e-1,1.529708187000378e-3 +1.288543861823939e0,3.958178311975412e-1,3.952356005942735e-1,5.822306032676194e-4 +1.319223477581652e0,4.300311780122739e-1,4.303765632963322e-1,-3.453852840582528e-4 +1.349903093339364e0,4.268895963203056e-1,4.281042025947471e-1,-1.214606274441532e-3 +1.380582709097077e0,3.848519071676677e-1,3.868824236805590e-1,-2.030516512891323e-3 +1.411262324854790e0,3.083566733733141e-1,3.112457492914950e-1,-2.889075918180883e-3 +1.441941940612503e0,2.146525350689777e-1,2.186900221436502e-1,-4.037487074672497e-3 +1.472621556370216e0,1.666322769265994e-1,1.713715343640317e-1,-4.739257437432309e-3 +1.503301172127929e0,2.491965763805419e-1,2.522984049733616e-1,-3.101828592819739e-3 +1.533980787885641e0,3.985077453425581e-1,4.007499536517847e-1,-2.242208309226668e-3 +1.564660403643354e0,5.580725240932709e-1,5.602156878439984e-1,-2.143163750727539e-3 +1.595340019401067e0,7.057250400256482e-1,7.080747496897777e-1,-2.349709664129507e-3 +1.626019635158780e0,8.282598063289669e-1,8.309103089696968e-1,-2.650502640729857e-3 +1.656699250916493e0,9.162759119910453e-1,9.192091106321986e-1,-2.933198641153267e-3 +1.687378866674206e0,9.633319885384484e-1,9.664718537914971e-1,-3.139865253048768e-3 +1.718058482431918e0,9.663814853015655e-1,9.696463180008973e-1,-3.264832699331754e-3 +1.748738098189631e0,9.279668310790767e-1,9.313364995536739e-1,-3.369668474597187e-3 +1.779417713947344e0,8.625851357136251e-1,8.661831888946288e-1,-3.598053181003702e-3 +1.810097329705057e0,8.111043165614866e-1,8.152192139578609e-1,-4.114897396374273e-3 +1.840776945462770e0,8.537670098622300e-1,8.585669246158346e-1,-4.799914753604639e-3 +1.871456561220483e0,1.067941579479174e0,1.073147035846165e0,-5.205456366990102e-3 +1.902136176978195e0,1.459032840178840e0,1.464292537682443e0,-5.259697503602778e-3 +1.932815792735908e0,1.990485412443446e0,1.995552166800125e0,-5.066754356678915e-3 +1.963495408493621e0,2.626892236314216e0,2.631504866577784e0,-4.612630263567841e-3 +1.994175024251334e0,3.337599905042101e0,3.341457869106104e0,-3.857964064002406e-3 +2.024854640009047e0,4.091998220894070e0,4.094800195811356e0,-2.801974917286287e-3 +2.055534255766760e0,4.857323067979843e0,4.858817085637143e0,-1.494017657299729e-3 +2.086213871524472e0,5.598767631332963e0,5.598794766069281e0,-2.713473631743568e-5 +2.116893487282185e0,6.280896167083924e0,6.279420966997848e0,1.475200086075823e-3 +2.147573103039898e0,6.869710829478365e0,6.866835054406098e0,2.875775072266329e-3 +2.178252718797611e0,7.334937791103841e0,7.330896104199549e0,4.041686904292519e-3 +2.208932334555323e0,7.652203663068011e0,7.647342037861583e0,4.861625206427966e-3 +2.239611950313036e0,7.804841167367546e0,7.799580915633002e0,5.260251734544141e-3 +2.270291566070749e0,7.785126916177555e0,7.779919120036420e0,5.207796141134757e-3 +2.300971181828462e0,7.594823947289765e0,7.590100373557053e0,4.723573732711372e-3 +2.331650797586175e0,7.244977027561553e0,7.241104068945938e0,3.872958615614763e-3 +2.362330413343888e0,6.754984873830030e0,6.752226580629729e0,2.758293200300521e-3 +2.393010029101601e0,6.151043943375170e0,6.149538810225253e0,1.505133149916738e-3 +2.423689644859313e0,5.464116970197089e0,5.463871001281782e0,2.459689153067046e-4 +2.454369260617026e0,4.727620847791227e0,4.728516833078941e0,-8.959852877135077e-4 +2.485048876374739e0,3.975049752546514e0,3.976869996679484e0,-1.820244132970661e-3 +2.515728492132452e0,3.237750405503932e0,3.240207673360869e0,-2.457267856936785e-3 +2.546408107890165e0,2.543051043057968e0,2.545820338318451e0,-2.769295260483418e-3 +2.577087723647877e0,1.912925866002298e0,1.915667395558472e0,-2.741529556173905e-3 +2.607767339405590e0,1.363387539337986e0,1.365746689105934e0,-2.359149767947821e-3 +2.638446955163303e0,9.049729143250297e-1,9.065281295332590e-1,-1.555215208229321e-3 +2.669126570921016e0,5.456519713837195e-1,5.457278491961594e-1,-7.587781243989511e-5 +2.699806186678729e0,3.023334372290988e-1,2.995637851445563e-1,2.769652084542495e-3 +2.730485802436442e0,2.226549970601994e-1,2.168737554915928e-1,5.781241568606543e-3 +2.761165418194155e0,2.736521103842465e-1,2.686193902273983e-1,5.032720156848247e-3 +2.791845033951867e0,3.366083323547611e-1,3.329778384071310e-1,3.630493947630042e-3 +2.822524649709580e0,3.753031188003854e-1,3.728526645956100e-1,2.450454204775465e-3 +2.853204265467293e0,3.888608137005197e-1,3.874305587762821e-1,1.430254924237651e-3 +2.883883881225006e0,3.828558444491955e-1,3.823077963355339e-1,5.480481136616033e-4 +2.914563496982719e0,3.634597273021040e-1,3.636196885703041e-1,-1.599612682000595e-4 +2.945243112740431e0,3.363870753876250e-1,3.370278655756987e-1,-6.407901880737255e-4 +2.975922728498144e0,1.150814612633580e-33,1.154059954646660e-33,-3.245342013079871e-36 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1_rspace_contrib.csv new file mode 100644 index 0000000..099986d --- /dev/null +++ b/doc/plots/feff_vs_larch_data/06_multi_dataset_ds1_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.546230474567035e-1,2.558747282920494e-1,-1.251680835345881e-3,2.546230474567035e-1 +1.012427320004523e0,2.753705451928694e-1,2.773025376727473e-1,-1.931992479877964e-3,2.753705451928694e-1 +1.043106935762236e0,2.710599706886452e-1,2.735683477047668e-1,-2.508377016121610e-3,2.710599706886452e-1 +1.073786551519949e0,2.399598042637487e-1,2.428152699477845e-1,-2.855465684035774e-3,2.399598042637487e-1 +1.104466167277662e0,1.842703847005595e-1,1.870736439246672e-1,-2.803259224107679e-3,1.842703847005595e-1 +1.135145783035375e0,1.142376860787416e-1,1.160528621453687e-1,-1.815176066627039e-3,1.142376860787416e-1 +1.165825398793087e0,7.952224653313605e-2,7.754852264437105e-2,1.973723888765003e-3,7.952224653313605e-2 +1.196505014550800e0,1.466686126783009e-1,1.435394888017387e-1,3.129123876562195e-3,1.466686126783009e-1 +1.227184630308513e0,2.422569230669940e-1,2.398246866727718e-1,2.432236394222187e-3,2.422569230669940e-1 +1.257864246066226e0,3.300745360178775e-1,3.285448278308771e-1,1.529708187000378e-3,3.300745360178775e-1 +1.288543861823939e0,3.958178311975412e-1,3.952356005942735e-1,5.822306032676194e-4,3.958178311975412e-1 +1.319223477581652e0,4.300311780122739e-1,4.303765632963322e-1,-3.453852840582528e-4,4.300311780122739e-1 +1.349903093339364e0,4.268895963203056e-1,4.281042025947471e-1,-1.214606274441532e-3,4.268895963203056e-1 +1.380582709097077e0,3.848519071676677e-1,3.868824236805590e-1,-2.030516512891323e-3,3.848519071676677e-1 +1.411262324854790e0,3.083566733733141e-1,3.112457492914950e-1,-2.889075918180883e-3,3.083566733733141e-1 +1.441941940612503e0,2.146525350689777e-1,2.186900221436502e-1,-4.037487074672497e-3,2.146525350689777e-1 +1.472621556370216e0,1.666322769265994e-1,1.713715343640317e-1,-4.739257437432309e-3,1.666322769265994e-1 +1.503301172127929e0,2.491965763805419e-1,2.522984049733616e-1,-3.101828592819739e-3,2.491965763805419e-1 +1.533980787885641e0,3.985077453425581e-1,4.007499536517847e-1,-2.242208309226668e-3,3.985077453425581e-1 +1.564660403643354e0,5.580725240932709e-1,5.602156878439984e-1,-2.143163750727539e-3,5.580725240932709e-1 +1.595340019401067e0,7.057250400256482e-1,7.080747496897777e-1,-2.349709664129507e-3,7.057250400256482e-1 +1.626019635158780e0,8.282598063289669e-1,8.309103089696968e-1,-2.650502640729857e-3,8.282598063289669e-1 +1.656699250916493e0,9.162759119910453e-1,9.192091106321986e-1,-2.933198641153267e-3,9.162759119910453e-1 +1.687378866674206e0,9.633319885384484e-1,9.664718537914971e-1,-3.139865253048768e-3,9.633319885384484e-1 +1.718058482431918e0,9.663814853015655e-1,9.696463180008973e-1,-3.264832699331754e-3,9.663814853015655e-1 +1.748738098189631e0,9.279668310790767e-1,9.313364995536739e-1,-3.369668474597187e-3,9.279668310790767e-1 +1.779417713947344e0,8.625851357136251e-1,8.661831888946288e-1,-3.598053181003702e-3,8.625851357136251e-1 +1.810097329705057e0,8.111043165614866e-1,8.152192139578609e-1,-4.114897396374273e-3,8.111043165614866e-1 +1.840776945462770e0,8.537670098622300e-1,8.585669246158346e-1,-4.799914753604639e-3,8.537670098622300e-1 +1.871456561220483e0,1.067941579479174e0,1.073147035846165e0,-5.205456366990102e-3,1.067941579479174e0 +1.902136176978195e0,1.459032840178840e0,1.464292537682443e0,-5.259697503602778e-3,1.459032840178840e0 +1.932815792735908e0,1.990485412443446e0,1.995552166800125e0,-5.066754356678915e-3,1.990485412443446e0 +1.963495408493621e0,2.626892236314216e0,2.631504866577784e0,-4.612630263567841e-3,2.626892236314216e0 +1.994175024251334e0,3.337599905042101e0,3.341457869106104e0,-3.857964064002406e-3,3.337599905042101e0 +2.024854640009047e0,4.091998220894070e0,4.094800195811356e0,-2.801974917286287e-3,4.091998220894070e0 +2.055534255766760e0,4.857323067979843e0,4.858817085637143e0,-1.494017657299729e-3,4.857323067979843e0 +2.086213871524472e0,5.598767631332963e0,5.598794766069281e0,-2.713473631743568e-5,5.598767631332963e0 +2.116893487282185e0,6.280896167083924e0,6.279420966997848e0,1.475200086075823e-3,6.280896167083924e0 +2.147573103039898e0,6.869710829478365e0,6.866835054406098e0,2.875775072266329e-3,6.869710829478365e0 +2.178252718797611e0,7.334937791103841e0,7.330896104199549e0,4.041686904292519e-3,7.334937791103841e0 +2.208932334555323e0,7.652203663068011e0,7.647342037861583e0,4.861625206427966e-3,7.652203663068011e0 +2.239611950313036e0,7.804841167367546e0,7.799580915633002e0,5.260251734544141e-3,7.804841167367546e0 +2.270291566070749e0,7.785126916177555e0,7.779919120036420e0,5.207796141134757e-3,7.785126916177555e0 +2.300971181828462e0,7.594823947289765e0,7.590100373557053e0,4.723573732711372e-3,7.594823947289765e0 +2.331650797586175e0,7.244977027561553e0,7.241104068945938e0,3.872958615614763e-3,7.244977027561553e0 +2.362330413343888e0,6.754984873830030e0,6.752226580629729e0,2.758293200300521e-3,6.754984873830030e0 +2.393010029101601e0,6.151043943375170e0,6.149538810225253e0,1.505133149916738e-3,6.151043943375170e0 +2.423689644859313e0,5.464116970197089e0,5.463871001281782e0,2.459689153067046e-4,5.464116970197089e0 +2.454369260617026e0,4.727620847791227e0,4.728516833078941e0,-8.959852877135077e-4,4.727620847791227e0 +2.485048876374739e0,3.975049752546514e0,3.976869996679484e0,-1.820244132970661e-3,3.975049752546514e0 +2.515728492132452e0,3.237750405503932e0,3.240207673360869e0,-2.457267856936785e-3,3.237750405503932e0 +2.546408107890165e0,2.543051043057968e0,2.545820338318451e0,-2.769295260483418e-3,2.543051043057968e0 +2.577087723647877e0,1.912925866002298e0,1.915667395558472e0,-2.741529556173905e-3,1.912925866002298e0 +2.607767339405590e0,1.363387539337986e0,1.365746689105934e0,-2.359149767947821e-3,1.363387539337986e0 +2.638446955163303e0,9.049729143250297e-1,9.065281295332590e-1,-1.555215208229321e-3,9.049729143250297e-1 +2.669126570921016e0,5.456519713837195e-1,5.457278491961594e-1,-7.587781243989511e-5,5.456519713837195e-1 +2.699806186678729e0,3.023334372290988e-1,2.995637851445563e-1,2.769652084542495e-3,3.023334372290988e-1 +2.730485802436442e0,2.226549970601994e-1,2.168737554915928e-1,5.781241568606543e-3,2.226549970601994e-1 +2.761165418194155e0,2.736521103842465e-1,2.686193902273983e-1,5.032720156848247e-3,2.736521103842465e-1 +2.791845033951867e0,3.366083323547611e-1,3.329778384071310e-1,3.630493947630042e-3,3.366083323547611e-1 +2.822524649709580e0,3.753031188003854e-1,3.728526645956100e-1,2.450454204775465e-3,3.753031188003854e-1 +2.853204265467293e0,3.888608137005197e-1,3.874305587762821e-1,1.430254924237651e-3,3.888608137005197e-1 +2.883883881225006e0,3.828558444491955e-1,3.823077963355339e-1,5.480481136616033e-4,3.828558444491955e-1 +2.914563496982719e0,3.634597273021040e-1,3.636196885703041e-1,-1.599612682000595e-4,3.634597273021040e-1 +2.945243112740431e0,3.363870753876250e-1,3.370278655756987e-1,-6.407901880737255e-4,3.363870753876250e-1 +2.975922728498144e0,1.150814612633580e-33,1.154059954646660e-33,-3.245342013079871e-36,1.150814612633580e-33 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2.csv b/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2.csv new file mode 100644 index 0000000..aa88e23 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2.csv @@ -0,0 +1,281 @@ +k,model,larch,diff +5.000000000000000e-2,0.000000000000000e0,-3.004169364982455e-1,3.004169364982455e-1 +1.000000000000000e-1,0.000000000000000e0,-3.028599019623773e-1,3.028599019623773e-1 +1.500000000000000e-1,0.000000000000000e0,-3.053028674265091e-1,3.053028674265091e-1 +2.000000000000000e-1,0.000000000000000e0,-3.086716147668306e-1,3.086716147668306e-1 +2.500000000000000e-1,0.000000000000000e0,-3.129124878200045e-1,3.129124878200045e-1 +3.000000000000000e-1,0.000000000000000e0,-3.179532062114368e-1,3.179532062114368e-1 +3.500000000000000e-1,0.000000000000000e0,-3.237002129304355e-1,3.237002129304355e-1 +4.000000000000000e-1,0.000000000000000e0,-3.300350931702580e-1,3.300350931702580e-1 +4.500000000000000e-1,0.000000000000000e0,-3.368094875634737e-1,3.368094875634737e-1 +5.000000000000000e-1,0.000000000000000e0,-3.438366516251072e-1,3.438366516251072e-1 +5.500000000000000e-1,0.000000000000000e0,-3.508707890133191e-1,3.508707890133191e-1 +6.000000000000001e-1,0.000000000000000e0,-3.574452979919543e-1,3.574452979919543e-1 +6.500000000000000e-1,-3.523128318346420e-1,-3.501577306932779e-1,-2.155101141364080e-3 +7.000000000000001e-1,-3.426835575176156e-1,-3.405942413177491e-1,-2.089316199866464e-3 +7.500000000000000e-1,-3.321243851890069e-1,-3.300357874890825e-1,-2.088597699924422e-3 +8.000000000000000e-1,-3.205578852230205e-1,-3.183303142416022e-1,-2.227570981418348e-3 +8.500000000000001e-1,-3.077163454110787e-1,-3.053143758861092e-1,-2.401969524969516e-3 +9.000000000000000e-1,-2.925399997429783e-1,-2.908142127027583e-1,-1.725787040219973e-3 +9.500000000000001e-1,-2.762119276418759e-1,-2.746697006743047e-1,-1.542226967571170e-3 +1.000000000000000e0,-2.583811518792906e-1,-2.566904091810707e-1,-1.690742698219949e-3 +1.050000000000000e0,-2.376209538029477e-1,-2.366915795844709e-1,-9.293742184767750e-4 +1.100000000000000e0,-2.154913030516494e-1,-2.146150108471137e-1,-8.762922045357779e-4 +1.150000000000000e0,-1.908663183141012e-1,-1.903978999284350e-1,-4.684183856661639e-4 +1.200000000000000e0,-1.639985531306323e-1,-1.639657785887687e-1,-3.277454186359496e-5 +1.250000000000000e0,-1.355875616736555e-1,-1.354458407271037e-1,-1.417209465517655e-4 +1.300000000000000e0,-1.045221410983823e-1,-1.050901753780835e-1,5.680342797012017e-4 +1.350000000000000e0,-7.284683198757985e-2,-7.321869693233499e-2,3.718649447551348e-4 +1.400000000000000e0,-3.926194392956799e-2,-4.024892562746904e-2,9.869816979010543e-4 +1.450000000000000e0,-5.729074741672301e-3,-6.700430123979782e-3,9.713553823074809e-4 +1.500000000000000e0,2.803364321211431e-2,2.680692382766853e-2,1.226719384445775e-3 +1.550000000000000e0,6.085974685061533e-2,5.961777704622420e-2,1.241969804391133e-3 +1.600000000000000e0,9.206928163717441e-2,9.087616707522274e-2,1.193114561951675e-3 +1.650000000000000e0,1.207626517109994e-1,1.195655016592855e-1,1.197150051713960e-3 +1.700000000000000e0,1.458886225902348e-1,1.448409228968288e-1,1.047699693406068e-3 +1.750000000000000e0,1.669861849392670e-1,1.659637995759865e-1,1.022385363280559e-3 +1.800000000000000e0,1.830732826743403e-1,1.822495368952257e-1,8.237457791146763e-4 +1.850000000000000e0,1.937035433932704e-1,1.931074963665654e-1,5.960470267050155e-4 +1.900000000000000e0,1.984778563797486e-1,1.979268769105310e-1,5.509794692175607e-4 +1.950000000000000e0,1.965217886848239e-1,1.963472264424164e-1,1.745622424075000e-4 +2.000000000000000e0,1.887146117155747e-1,1.884735806610938e-1,2.410310544808392e-4 +2.050000000000000e0,1.745809918079641e-1,1.746564628031881e-1,-7.547099522400846e-5 +2.100000000000000e0,1.552734706715508e-1,1.554951523414868e-1,-2.216816699359969e-4 +2.150000000000000e0,1.302232566528749e-1,1.316825343937293e-1,-1.459277740854470e-3 +2.200000000000000e0,1.023598088589667e-1,1.040714544493425e-1,-1.711645590375815e-3 +2.250000000000000e0,7.305797602777966e-2,7.400141872601719e-2,-9.434426982375260e-4 +2.300000000000000e0,4.307751810516241e-2,4.302716422678934e-2,5.035387837306476e-5 +2.350000000000000e0,1.353742279882151e-2,1.309155149630827e-2,4.458713025132406e-4 +2.400000000000000e0,-1.248162920479789e-2,-1.310367525509092e-2,6.220460502930243e-4 +2.450000000000000e0,-3.289080187791590e-2,-3.302927308564903e-2,1.384712077331304e-4 +2.500000000000000e0,-4.734372446664729e-2,-4.640763667407481e-2,-9.360877925724820e-4 +2.550000000000000e0,-5.851201607253632e-2,-5.581488933794546e-2,-2.697126734590861e-3 +2.600000000000000e0,-6.577577357644308e-2,-6.316030171637775e-2,-2.615471860065333e-3 +2.650000000000000e0,-6.922767012849848e-2,-6.841524811782886e-2,-8.124220106696250e-4 +2.700000000000000e0,-6.971328307876762e-2,-7.020515977365513e-2,4.918766948875108e-4 +2.750000000000000e0,-6.711011688418775e-2,-6.792518666129713e-2,8.150697771093784e-4 +2.800000000000000e0,-6.157292068682007e-2,-6.218768247809864e-2,6.147617912785688e-4 +2.850000000000000e0,-5.381299059849790e-2,-5.391038856201589e-2,9.739796351798669e-5 +2.900000000000000e0,-4.408703912588236e-2,-4.402784078806626e-2,-5.919833781610484e-5 +2.950000000000000e0,-3.276166916255226e-2,-3.306749999586004e-2,3.058308333077839e-4 +3.000000000000000e0,-2.090852128870149e-2,-2.139550839460681e-2,4.869871059053205e-4 +3.050000000000000e0,-9.442372027629049e-3,-9.494087244318345e-3,5.171521668929577e-5 +3.100000000000000e0,2.360064430496597e-3,1.986307935410877e-3,3.737564950857196e-4 +3.150000000000000e0,1.302265662950330e-2,1.223227768008341e-2,7.903789494198947e-4 +3.200000000000000e0,2.138364781080199e-2,2.061319465981407e-2,7.704531509879278e-4 +3.250000000000000e0,2.693147056936461e-2,2.682767743475605e-2,1.037931346085617e-4 +3.300000000000000e0,3.151644953071002e-2,3.080642829899852e-2,7.100212317115023e-4 +3.350000000000000e0,3.352946039502464e-2,3.240420343293558e-2,1.125256962089052e-3 +3.400000000000000e0,3.238621927753613e-2,3.145052796512837e-2,9.356913124077548e-4 +3.450000000000000e0,2.811100389994573e-2,2.793031572819431e-2,1.806881717514239e-4 +3.500000000000000e0,2.286282575628239e-2,2.208217948402324e-2,7.806462722591521e-4 +3.550000000000000e0,1.533757332027981e-2,1.430805893604275e-2,1.029514384237061e-3 +3.600000000000000e0,5.841528850502443e-3,5.071568423474790e-3,7.699604270276529e-4 +3.650000000000000e0,-4.973076119101373e-3,-5.114776248795718e-3,1.417001296943454e-4 +3.700000000000000e0,-1.531012734291091e-2,-1.569654914697634e-2,3.864218040654285e-4 +3.750000000000000e0,-2.571945468817239e-2,-2.607612265720093e-2,3.566679690285429e-4 +3.800000000000000e0,-3.550695429949059e-2,-3.566079301176169e-2,1.538387122710927e-4 +3.850000000000000e0,-4.396683868403361e-2,-4.390194528857828e-2,-6.489339545533157e-5 +3.900000000000000e0,-5.037191176458432e-2,-5.031916717402932e-2,-5.274459055499420e-5 +3.950000000000000e0,-5.462511245767838e-2,-5.451108543180543e-2,-1.140270258729523e-4 +4.000000000000000e0,-5.637155007178767e-2,-5.616685805409583e-2,-2.046920176918335e-4 +4.050000000000000e0,-5.537148248471460e-2,-5.507776164441665e-2,-2.937208402979466e-4 +4.100000000000001e0,-5.145836778499910e-2,-5.116981200038889e-2,-2.885557846102060e-4 +4.150000000000000e0,-4.491213876260953e-2,-4.457573836426813e-2,-3.364003983413952e-4 +4.200000000000000e0,-3.593837445759453e-2,-3.559125171731317e-2,-3.471227402813554e-4 +4.250000000000000e0,-2.488943908169619e-2,-2.463226353660548e-2,-2.571755450907140e-4 +4.300000000000000e0,-1.241557493693022e-2,-1.217229435385378e-2,-2.432805830764433e-4 +4.350000000000001e0,1.167836176728462e-3,1.325784372530570e-3,-1.579481958021076e-4 +4.400000000000000e0,1.532402598944850e-2,1.535716815824066e-2,-3.314216879216070e-5 +4.450000000000000e0,2.947771486000089e-2,2.936615493296542e-2,1.115599270354768e-4 +4.500000000000000e0,4.296252895210953e-2,4.274594134592042e-2,2.165876061891100e-4 +4.550000000000000e0,5.513670267387270e-2,5.486448541991695e-2,2.722172539557574e-4 +4.600000000000001e0,6.544130711831553e-2,6.512292880250635e-2,3.183783158091785e-4 +4.650000000000000e0,7.334136881182736e-2,7.298261099723956e-2,3.587578145878012e-4 +4.700000000000000e0,7.825940341835394e-2,7.797359943831612e-2,2.858039800378159e-4 +4.750000000000000e0,7.993533009240660e-2,7.970604884231750e-2,2.292812500891001e-4 +4.800000000000001e0,7.816323913885367e-2,7.792979811745450e-2,2.334410213991750e-4 +4.850000000000001e0,7.281041650434372e-2,7.256811010372075e-2,2.423064006229769e-4 +4.900000000000000e0,6.386849177220190e-2,6.374292834357240e-2,1.255634286295021e-4 +4.950000000000000e0,5.182513392140982e-2,5.176424792215213e-2,6.088599925768712e-5 +5.000000000000000e0,3.709223616842691e-2,3.708679445097439e-2,5.441717452522865e-6 +5.050000000000001e0,2.020186316736828e-2,2.028890202940853e-2,-8.703886204025277e-5 +5.100000000000001e0,1.819902861518070e-3,2.043620105910488e-3,-2.237172443924178e-4 +5.150000000000000e0,-1.719187175111095e-2,-1.689608707626589e-2,-2.957846748450586e-4 +5.200000000000000e0,-3.597138332924836e-2,-3.569114462319386e-2,-2.802387060545017e-4 +5.250000000000000e0,-5.366204880251965e-2,-5.343881363381126e-2,-2.232351687083967e-4 +5.300000000000001e0,-6.935413920241247e-2,-6.918674245826684e-2,-1.673967441456342e-4 +5.350000000000001e0,-8.208160605719070e-2,-8.199176590436191e-2,-8.984015282878510e-5 +5.400000000000000e0,-9.112215937976778e-2,-9.104752414147881e-2,-7.463523828897534e-5 +5.450000000000000e0,-9.584464868850510e-2,-9.576293313974685e-2,-8.171554875825715e-5 +5.500000000000000e0,-9.583363855900554e-2,-9.582510348764021e-2,-8.535071365320390e-6 +5.550000000000001e0,-9.114457198433652e-2,-9.117747200460113e-2,3.290002026461181e-5 +5.600000000000001e0,-8.192008895883050e-2,-8.196131420674235e-2,4.122524791184967e-5 +5.650000000000000e0,-6.846145811002184e-2,-6.850780851480594e-2,4.635040478409569e-5 +5.700000000000000e0,-5.124774277565088e-2,-5.136344085249149e-2,1.156980768406077e-4 +5.750000000000000e0,-3.125872258342960e-2,-3.134786704913027e-2,8.914446570067180e-5 +5.800000000000001e0,-9.517151098390277e-3,-9.517892503830238e-3,7.414054399614012e-7 +5.850000000000001e0,1.282795132582106e-2,1.290790471926332e-2,-7.995339344226207e-5 +5.900000000000000e0,3.453389132958515e-2,3.467740318976290e-2,-1.435118601777474e-4 +5.950000000000000e0,5.445456909458003e-2,5.462173699974320e-2,-1.671679051631625e-4 +6.000000000000000e0,7.153893527745174e-2,7.168550683085380e-2,-1.465715534020584e-4 +6.050000000000001e0,8.485261930119592e-2,8.497689966557199e-2,-1.242803643760754e-4 +6.100000000000001e0,9.361551665487493e-2,9.380451620196921e-2,-1.889995470942818e-4 +6.150000000000000e0,9.744620484620546e-2,9.771826242502329e-2,-2.720575788178331e-4 +6.200000000000000e0,9.621353825613399e-2,9.655034700885455e-2,-3.368087527205604e-4 +6.250000000000000e0,9.006880802056688e-2,9.042444162599965e-2,-3.556336054327675e-4 +6.300000000000001e0,7.943083383895121e-2,7.974471058205626e-2,-3.138767431050543e-4 +6.350000000000001e0,6.495491233611476e-2,6.516667031937531e-2,-2.117579832605493e-4 +6.400000000000000e0,4.748816519533267e-2,4.755225752158828e-2,-6.409232625561451e-5 +6.450000000000000e0,2.801471786525168e-2,2.791264198559455e-2,1.020758796571250e-4 +6.500000000000000e0,7.594731711312110e-3,7.343161939455978e-3,2.515697718561321e-4 +6.550000000000001e0,-1.276121502882761e-2,-1.304480497806292e-2,2.835899492353074e-4 +6.600000000000001e0,-3.194897237217748e-2,-3.219083999017847e-2,2.418676180009904e-4 +6.650000000000000e0,-4.891940602640053e-2,-4.914553666907882e-2,2.261306426782975e-4 +6.700000000000000e0,-6.290162726793201e-2,-6.311887298760602e-2,2.172457196740057e-4 +6.750000000000000e0,-7.331867857307030e-2,-7.351619187007080e-2,1.975132970005039e-4 +6.800000000000001e0,-7.980626914647326e-2,-7.995986094812153e-2,1.535918016482701e-4 +6.850000000000001e0,-8.221777385433532e-2,-8.229629580956938e-2,7.852195523405658e-5 +6.900000000000000e0,-8.061650034118535e-2,-8.058919906344893e-2,-2.730127773642455e-5 +6.950000000000000e0,-7.525703377510956e-2,-7.510081705469535e-2,-1.562167204142151e-4 +7.000000000000000e0,-6.655803965893239e-2,-6.626371511773414e-2,-2.943245411982515e-4 +7.050000000000001e0,-5.496550084891222e-2,-5.464597211380164e-2,-3.195287351105761e-4 +7.100000000000001e0,-4.113860996535212e-2,-4.091261535907783e-2,-2.259946062742949e-4 +7.150000000000000e0,-2.592592844540123e-2,-2.578621339315133e-2,-1.397150522498974e-4 +7.200000000000000e0,-1.007423598474659e-2,-1.000961466334053e-2,-6.462132140605710e-5 +7.250000000000000e0,5.686021186605869e-3,5.687694874403858e-3,-1.673687797989348e-6 +7.300000000000001e0,2.066910088273221e-2,2.061852607306291e-2,5.057480966930150e-5 +7.350000000000001e0,3.425706747887098e-2,3.416169392849584e-2,9.537355037514406e-5 +7.400000000000000e0,4.591769012448284e-2,4.578052771482832e-2,1.371624096545218e-4 +7.450000000000000e0,5.521757774431573e-2,5.503661933270341e-2,1.809584116123225e-4 +7.500000000000000e0,6.183120701889262e-2,6.159947819025628e-2,2.317288286363406e-4 +7.550000000000001e0,6.551118049711591e-2,6.525281269187035e-2,2.583678052455601e-4 +7.600000000000001e0,6.611667926321113e-2,6.589806180341043e-2,2.186174598007018e-4 +7.650000000000000e0,6.370041228481879e-2,6.355572798545993e-2,1.446842993588632e-4 +7.700000000000000e0,5.841743230794399e-2,5.836432872040654e-2,5.310358753744804e-5 +7.750000000000000e0,5.053683319670924e-2,5.057668810277387e-2,-3.985490606462500e-5 +7.800000000000001e0,4.043337844503837e-2,4.055322392412655e-2,-1.198454790881862e-4 +7.850000000000001e0,2.857573274841766e-2,2.875166014355713e-2,-1.759273951394656e-4 +7.900000000000000e0,1.551087665962361e-2,1.571260818020697e-2,-2.017315205833595e-4 +7.950000000000000e0,1.844449205919400e-3,2.040635690074977e-3,-1.961864841555768e-4 +8.000000000000000e0,-1.178293868362277e-2,-1.161923358825463e-2,-1.637050953681475e-4 +8.050000000000001e0,-2.477350572496408e-2,-2.460916373588093e-2,-1.643419890831437e-4 +8.100000000000000e0,-3.646111363111707e-2,-3.628880069227626e-2,-1.723129388408115e-4 +8.150000000000000e0,-4.621129115741179e-2,-4.606846109828023e-2,-1.428300591315573e-4 +8.200000000000001e0,-5.352961239019519e-2,-5.344319014553962e-2,-8.642224465556930e-5 +8.250000000000000e0,-5.804037324878135e-2,-5.802394625834032e-2,-1.642699044102774e-5 +8.300000000000001e0,-5.951089484715810e-2,-5.956400130884991e-2,5.310646169180699e-5 +8.350000000000000e0,-5.786878044908911e-2,-5.797824662570020e-2,1.094661766110894e-4 +8.400000000000000e0,-5.321038299110090e-2,-5.335341712962859e-2,1.430341385276895e-4 +8.450000000000001e0,-4.579927812618443e-2,-4.594781832001561e-2,1.485401938311759e-4 +8.500000000000000e0,-3.605423328118459e-2,-3.617989765830226e-2,1.256643771176610e-4 +8.550000000000001e0,-2.449901605802056e-2,-2.460583248218271e-2,1.068164241621559e-4 +8.600000000000000e0,-1.179495276068908e-2,-1.188655892518760e-2,9.160616449852520e-5 +8.650000000000000e0,1.312769364173554e-3,1.252149569892617e-3,6.061979428093663e-5 +8.700000000000001e0,1.408071324545469e-2,1.406354259587437e-2,1.717064958031353e-5 +8.750000000000000e0,2.579265193745745e-2,2.582610436815986e-2,-3.345243070240755e-5 +8.800000000000001e0,3.580394759422622e-2,3.588847223560181e-2,-8.452464137558707e-5 +8.850000000000000e0,4.358117679804221e-2,4.370980205862922e-2,-1.286252605870106e-4 +8.900000000000000e0,4.873414503064660e-2,4.889264819318998e-2,-1.585031625433789e-4 +8.950000000000001e0,5.103801220145804e-2,5.120598732031820e-2,-1.679751188601586e-4 +9.000000000000000e0,5.044402185347385e-2,5.059677865335512e-2,-1.527567998812623e-4 +9.050000000000001e0,4.706848938076125e-2,4.718936501786623e-2,-1.208756371049793e-4 +9.100000000000000e0,4.119196050858974e-2,4.127336919480561e-2,-8.140868621586694e-5 +9.150000000000000e0,3.324888081996772e-2,3.328099287909089e-2,-3.211205912317244e-5 +9.200000000000001e0,2.377754686747515e-2,2.375442166148617e-2,2.312520598898860e-5 +9.250000000000000e0,1.338522841997484e-2,1.330663439539874e-2,7.859402457609937e-5 +9.300000000000001e0,2.706753877105207e-3,2.578933644436964e-3,1.278202326682430e-4 +9.350000000000000e0,-7.636763894930200e-3,-7.801506838576524e-3,1.647429436463241e-4 +9.400000000000000e0,-1.707611051005146e-2,-1.726093010848120e-2,1.848195984297391e-4 +9.450000000000001e0,-2.512650481763656e-2,-2.531238596777028e-2,1.858811501337168e-4 +9.500000000000000e0,-3.141251210414787e-2,-3.158111769657664e-2,1.686055924287680e-4 +9.550000000000001e0,-3.568361725375290e-2,-3.582065422478199e-2,1.370369710290906e-4 +9.600000000000001e0,-3.782736198323299e-2,-3.791928905386622e-2,9.192707063322703e-5 +9.650000000000000e0,-3.785610930279819e-2,-3.789565765274304e-2,3.954834994485124e-5 +9.700000000000001e0,-3.589895491768690e-2,-3.588634825141755e-2,-1.260666626935053e-5 +9.750000000000000e0,-3.218621658003793e-2,-3.212780033956540e-2,-5.841624047252941e-5 +9.800000000000001e0,-2.702748357015102e-2,-2.693374608299488e-2,-9.373748715614180e-5 +9.850000000000001e0,-2.078687797568695e-2,-2.067022516148691e-2,-1.166528142000356e-4 +9.900000000000000e0,-1.385753419489154e-2,-1.373016067368768e-2,-1.273735212038579e-4 +9.950000000000001e0,-6.637123653500401e-3,-6.509267104854669e-3,-1.278565486457321e-4 +1.000000000000000e1,4.940630890638122e-4,6.152789012362301e-4,-1.212158121724179e-4 +1.005000000000000e1,7.217933934947915e-3,7.302358590583296e-3,-8.442465563538067e-5 +1.010000000000000e1,1.323490186994096e-2,1.325972964240328e-2,-2.482777246232311e-5 +1.015000000000000e1,1.828878122763607e-2,1.825308506849581e-2,3.569615914025479e-5 +1.020000000000000e1,2.220069051054260e-2,2.211118322356765e-2,8.950728697495330e-5 +1.025000000000000e1,2.485748724489511e-2,2.472689265424967e-2,1.305945906454435e-4 +1.030000000000000e1,2.621006852725899e-2,2.605511906886627e-2,1.549494583927176e-4 +1.035000000000000e1,2.626915459028968e-2,2.610840712617058e-2,1.607474641191001e-4 +1.040000000000000e1,2.509932862357412e-2,2.495099023307391e-2,1.483383905002099e-4 +1.045000000000000e1,2.281201711845354e-2,2.269196134851711e-2,1.200557699364210e-4 +1.050000000000000e1,1.955794456286224e-2,1.947807689616761e-2,7.986766669463435e-5 +1.055000000000000e1,1.551941570870848e-2,1.548651581173615e-2,3.289989697233091e-5 +1.060000000000000e1,1.090259973294149e-2,1.091772869919564e-2,-1.512896625414581e-5 +1.065000000000000e1,5.929841746453633e-3,5.988356868860783e-3,-5.851512240714982e-5 +1.070000000000000e1,8.319296685972140e-4,9.240996723423827e-4,-9.217000374516871e-5 +1.075000000000000e1,-4.159789420979792e-3,-4.047626250061810e-3,-1.121631709179822e-4 +1.080000000000000e1,-8.821517996228117e-3,-8.705358193318769e-3,-1.161598029093477e-4 +1.085000000000000e1,-1.294532819749118e-2,-1.284161674919462e-2,-1.037114482965520e-4 +1.090000000000000e1,-1.634755156165913e-2,-1.627118251850052e-2,-7.636904315860837e-5 +1.095000000000000e1,-1.887695153657612e-2,-1.883935058800270e-2,-3.760094857341995e-5 +1.100000000000000e1,-2.042225568733731e-2,-2.042974061629809e-2,7.484928960781873e-6 +1.105000000000000e1,-2.095147564513146e-2,-2.097111932397222e-2,1.964367884076806e-5 +1.110000000000000e1,-2.042407010625146e-2,-2.044261908193109e-2,1.854897567963101e-5 +1.115000000000000e1,-1.885497895509449e-2,-1.887677581293924e-2,2.179685784475111e-5 +1.120000000000000e1,-1.633140359777271e-2,-1.635986214076925e-2,2.845854299653172e-5 +1.125000000000000e1,-1.299204811650485e-2,-1.302913588531016e-2,3.708776880531790e-5 +1.130000000000000e1,-9.020908454908747e-3,-9.066864128071334e-3,4.595567316258674e-5 +1.135000000000000e1,-4.637944730576164e-3,-4.691240978768427e-3,5.329624819226230e-5 +1.140000000000000e1,-8.705395185246699e-5,-1.445949023572931e-4,5.754095050482613e-5 +1.145000000000000e1,4.377977535394180e-3,4.320454723196527e-3,5.752281219765371e-5 +1.150000000000000e1,8.508644654458058e-3,8.456011404361636e-3,5.263325009642258e-5 +1.155000000000000e1,1.207697148490535e-2,1.203405287472282e-2,4.291861018252893e-5 +1.160000000000000e1,1.488972993438748e-2,1.486062176532719e-2,2.910816906028652e-5 +1.165000000000000e1,1.680055949221298e-2,1.678798884481127e-2,1.257064740171551e-5 +1.170000000000000e1,1.771905237827549e-2,1.772385037507346e-2,-4.797996797971382e-6 +1.175000000000000e1,1.761608932581005e-2,1.763683630385892e-2,-2.074697804886269e-5 +1.180000000000000e1,1.652499977631685e-2,1.655788917865322e-2,-3.288940233636684e-5 +1.185000000000000e1,1.453845016157114e-2,1.457739900690658e-2,-3.894884533543752e-5 +1.190000000000000e1,1.180130472198820e-2,1.183831677503229e-2,-3.701205304408768e-5 +1.195000000000000e1,8.500023427936050e-3,8.525787835432275e-3,-2.576440749622530e-5 +1.200000000000000e1,4.849431674881385e-3,4.854116812889405e-3,-4.685138008019875e-6 +1.205000000000000e1,1.071589227928625e-3,1.052064474702776e-3,1.952475322584968e-5 +1.210000000000000e1,-2.618753988009100e-3,-2.652463426366250e-3,3.370943835715031e-5 +1.215000000000000e1,-6.007975050574828e-3,-6.046951107058132e-3,3.897605648330374e-5 +1.220000000000000e1,-8.909789745126961e-3,-8.947141658624402e-3,3.735191349744059e-5 +1.225000000000000e1,-1.117630902656331e-2,-1.120748348649864e-2,3.117445993532780e-5 +1.230000000000000e1,-1.270572440254033e-2,-1.272845816555719e-2,2.273376301686718e-5 +1.235000000000000e1,-1.344643872663137e-2,-1.346042014195473e-2,1.398141532336049e-5 +1.240000000000000e1,-1.339753316381708e-2,-1.340386655696342e-2,6.333393146337393e-6 +1.245000000000000e1,-1.260575493945107e-2,-1.260633406837283e-2,5.791289217609713e-7 +1.250000000000000e1,-1.115947201529546e-2,-1.115636598434161e-2,-3.106030953853312e-6 +1.255000000000000e1,-9.180248451402265e-3,-9.175187672835865e-3,-5.060778566400026e-6 +1.260000000000000e1,-6.812832593418122e-3,-6.806857230623699e-3,-5.975362794422186e-6 +1.265000000000000e1,-4.214411526838362e-3,-4.207714771755740e-3,-6.696755082622775e-6 +1.270000000000000e1,-1.543969454602780e-3,-1.535937536557823e-3,-8.031918044956819e-6 +1.275000000000000e1,1.047497851361504e-3,1.058073841363182e-3,-1.057599000167881e-5 +1.280000000000000e1,3.425302057319910e-3,3.439887640553301e-3,-1.458558323339139e-5 +1.285000000000000e1,5.477484177243085e-3,5.497393321000198e-3,-1.990914375711236e-5 +1.290000000000000e1,7.119106734274425e-3,7.145084565856943e-3,-2.597783158251807e-5 +1.295000000000000e1,8.294379141074032e-3,8.326232021603229e-3,-3.185288052919705e-5 +1.300000000000000e1,8.976754353173608e-3,9.013074121423440e-3,-3.631976824983174e-5 +1.305000000000000e1,9.182699469447369e-3,9.205291975930155e-3,-2.259250648278636e-5 +1.310000000000000e1,8.920633227258997e-3,8.927164167346876e-3,-6.530940087878453e-6 +1.315000000000000e1,8.227772176641010e-3,8.223804933539193e-3,3.967243101817008e-6 +1.320000000000000e1,7.165618678133854e-3,7.156761502240076e-3,8.857175893777977e-6 +1.325000000000000e1,5.808102927684534e-3,5.799403831750808e-3,8.699095933726274e-6 +1.330000000000000e1,4.236976302395368e-3,4.232447376886653e-3,4.528925508714976e-6 +1.335000000000000e1,2.537544275324560e-3,2.539839825621324e-3,-2.295550296764134e-6 +1.340000000000000e1,7.948869861187973e-4,8.051485986428118e-4,-1.026161252401449e-5 +1.345000000000000e1,-9.093718929306348e-4,-8.915021848384764e-4,-1.786970809215837e-5 +1.350000000000000e1,-2.499758634957572e-3,-2.475968066201228e-3,-2.379056875634420e-5 +1.355000000000000e1,-3.909163939122029e-3,-3.882164293975624e-3,-2.699964514640482e-5 +1.360000000000000e1,-5.080658673570144e-3,-5.053780223639464e-3,-2.687844993067966e-5 +1.365000000000000e1,-5.968987199017207e-3,-5.945712562378935e-3,-2.327463663827269e-5 +1.370000000000000e1,-6.541789602224997e-3,-6.525273849625062e-3,-1.651575259993543e-5 +1.375000000000000e1,-6.780565407121424e-3,-6.773190012935771e-3,-7.375394185653306e-6 +1.380000000000000e1,-6.681347702151842e-3,-6.684353071111121e-3,3.005368959279296e-6 +1.385000000000000e1,-6.255017358635246e-3,-6.268251719093956e-3,1.323436045870974e-5 +1.390000000000000e1,-5.527160389518306e-3,-5.548972335890281e-3,2.181194637197476e-5 +1.395000000000000e1,-4.537363708714357e-3,-4.564652509074928e-3,2.728880036057067e-5 +1.400000000000000e1,-3.337858908844144e-3,-3.366282087129052e-3,2.842317828490818e-5 diff --git a/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2_rspace.csv b/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2_rspace.csv new file mode 100644 index 0000000..74adb21 --- /dev/null +++ b/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2_rspace.csv @@ -0,0 +1,327 @@ +r,model,larch,diff +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.542243448133096e-1,2.553850286629548e-1,-1.160683849645128e-3 +1.012427320004523e0,2.755083154629658e-1,2.773700692573147e-1,-1.861753794348886e-3 +1.043106935762236e0,2.718200172354714e-1,2.742770670542093e-1,-2.457049818737844e-3 +1.073786551519949e0,2.413508250030940e-1,2.441729641743932e-1,-2.822139171299226e-3 +1.104466167277662e0,1.862045110704414e-1,1.889918429470604e-1,-2.787331876618920e-3 +1.135145783035375e0,1.164320475307733e-1,1.182582178363633e-1,-1.826170305590027e-3 +1.165825398793087e0,8.028787836753139e-2,7.837947554052385e-2,1.908402827007535e-3 +1.196505014550800e0,1.458834994955585e-1,1.427294294079115e-1,3.154070087647010e-3 +1.227184630308513e0,2.416340255351369e-1,2.391737196053208e-1,2.460305929816053e-3 +1.257864246066226e0,3.301959149278146e-1,3.286532287453283e-1,1.542686182486319e-3 +1.288543861823939e0,3.969625252897892e-1,3.963912616020737e-1,5.712636877154842e-4 +1.319223477581652e0,4.323050043356680e-1,4.326909889509855e-1,-3.859846153174695e-4 +1.349903093339364e0,4.302505451016624e-1,4.315377812000465e-1,-1.287236098384104e-3 +1.380582709097077e0,3.891514359740552e-1,3.912867674815080e-1,-2.135331507452876e-3 +1.411262324854790e0,3.134358487986096e-1,3.164640346902656e-1,-3.028185891656043e-3 +1.441941940612503e0,2.204568111194963e-1,2.246797428410314e-1,-4.222931721535067e-3 +1.472621556370216e0,1.720601139343256e-1,1.770907230144649e-1,-5.030609080139303e-3 +1.503301172127929e0,2.523275617851282e-1,2.558046366909307e-1,-3.477074905802457e-3 +1.533980787885641e0,4.010082068218629e-1,4.036242613172282e-1,-2.616054495365283e-3 +1.564660403643354e0,5.607626180639543e-1,5.632972728087757e-1,-2.534654744821396e-3 +1.595340019401067e0,7.086127785345635e-1,7.113748343454036e-1,-2.762055810840103e-3 +1.626019635158780e0,8.309883956717454e-1,8.340567946636467e-1,-3.068398991901256e-3 +1.656699250916493e0,9.183729832330140e-1,9.217043406834635e-1,-3.331357450449546e-3 +1.687378866674206e0,9.644205469057665e-1,9.679124703544364e-1,-3.491923448669887e-3 +1.718058482431918e0,9.663596834206098e-1,9.699112280113334e-1,-3.551544590723599e-3 +1.748738098189631e0,9.270990767963212e-1,9.306825241621408e-1,-3.583447365819614e-3 +1.779417713947344e0,8.613920038729896e-1,8.651303088746435e-1,-3.738305001653841e-3 +1.810097329705057e0,8.098336901763237e-1,8.140013083598669e-1,-4.167618183543276e-3 +1.840776945462770e0,8.514207300427962e-1,8.561382465493879e-1,-4.717516506591690e-3 +1.871456561220483e0,1.062439399304522e0,1.067375423365470e0,-4.936024060947730e-3 +1.902136176978195e0,1.448940497415043e0,1.453719003110588e0,-4.778505695545832e-3 +1.932815792735908e0,1.975512871453226e0,1.979886036342371e0,-4.373164889144743e-3 +1.963495408493621e0,2.607667094287287e0,2.611399078447608e0,-3.731984160320945e-3 +1.994175024251334e0,3.315525487362408e0,3.318371059790075e0,-2.845572427666809e-3 +2.024854640009047e0,4.069102621590855e0,4.070843916057710e0,-1.741294466854448e-3 +2.055534255766760e0,4.836031715176632e0,4.836520335316854e0,-4.886201402225510e-4 +2.086213871524472e0,5.581609883644463e0,5.580798196562009e0,8.116870824537159e-4 +2.116893487282185e0,6.270181422160443e0,6.268138522373226e0,2.042899787217500e-3 +2.147573103039898e0,6.867215924543291e0,6.864127140187117e0,3.088784356173768e-3 +2.178252718797611e0,7.341646299920411e0,7.337796974752131e0,3.849325168280515e-3 +2.208932334555323e0,7.668131609264902e0,7.663877573900280e0,4.254035364622766e-3 +2.239611950313036e0,7.828973613018622e0,7.824702295865397e0,4.271317153224707e-3 +2.270291566070749e0,7.815476793159800e0,7.811564089002631e0,3.912704157169600e-3 +2.300971181828462e0,7.628609661209333e0,7.625378240483578e0,3.231420725754219e-3 +2.331650797586175e0,7.278900376053349e0,7.276584927693196e0,2.315448360152850e-3 +2.362330413343888e0,6.785577443788354e0,6.784301364735061e0,1.276079053292634e-3 +2.393010029101601e0,6.175040119473358e0,6.174806490396769e0,2.336290765887483e-4 +2.423689644859313e0,5.478806519291762e0,5.479504053047118e0,-6.975337553560834e-4 +2.454369260617026e0,4.731134906551643e0,4.732557220530943e0,-1.422313979299261e-3 +2.485048876374739e0,3.966541728163309e0,3.968416095885512e0,-1.874367722203729e-3 +2.515728492132452e0,3.217448443581120e0,3.219468385324337e0,-2.019941743216513e-3 +2.546408107890165e0,2.512182728718526e0,2.514037462128713e0,-1.854733410187048e-3 +2.577087723647877e0,1.873554173105448e0,1.874946591812185e0,-1.392418706736676e-3 +2.607767339405590e0,1.318273086357598e0,1.318914615533435e0,-6.415291758368191e-4 +2.638446955163303e0,8.578030622245684e-1,8.573622136346003e-1,4.408485899680681e-4 +2.669126570921016e0,5.029728363417973e-1,5.009292718792376e-1,2.043564462559710e-3 +2.699806186678729e0,2.825963378906927e-1,2.783166476653689e-1,4.279690225323762e-3 +2.730485802436442e0,2.516909802552219e-1,2.474268256170372e-1,4.264154638184720e-3 +2.761165418194155e0,3.242363499362707e-1,3.218120248983861e-1,2.424325037884534e-3 +2.791845033951867e0,3.881530745194183e-1,3.868672855809198e-1,1.285788938498511e-3 +2.822524649709580e0,4.187324967316027e-1,4.179776638670318e-1,7.548328645708424e-4 +2.853204265467293e0,4.153659858185260e-1,4.146480962657721e-1,7.178895527539253e-4 +2.883883881225006e0,3.815898740704892e-1,3.804171695780840e-1,1.172704492405197e-3 +2.914563496982719e0,3.218683524513687e-1,3.197292981262581e-1,2.139054325110634e-3 +2.945243112740431e0,2.426369808286596e-1,2.390843214536085e-1,3.552659375051059e-3 +2.975922728498144e0,5.961931138517930e-34,5.786921330970920e-34,1.750098075470099e-35 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2_rspace_contrib.csv b/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2_rspace_contrib.csv new file mode 100644 index 0000000..977bf7c --- /dev/null +++ b/doc/plots/feff_vs_larch_data/07_multi_dataset_ds2_rspace_contrib.csv @@ -0,0 +1,327 @@ +r,total_model,total_larch,diff,feffcu01dat_00,feff0002dat_01 +0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-2,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.227184630308513e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.533980787885641e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +1.840776945462770e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.147573103039898e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.454369260617026e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +2.761165418194154e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771282e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388308e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965437e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119693e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428206e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159591e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313848e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890976e-1,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468105e-1,2.542243448133096e-1,2.553850286629548e-1,-1.160683849645128e-3,2.546230474567035e-1,7.610773460788046e-4 +1.012427320004523e0,2.755083154629658e-1,2.773700692573147e-1,-1.861753794348886e-3,2.753705451928694e-1,7.564967023747042e-4 +1.043106935762236e0,2.718200172354714e-1,2.742770670542093e-1,-2.457049818737844e-3,2.710599706886452e-1,1.051945232216898e-3 +1.073786551519949e0,2.413508250030940e-1,2.441729641743932e-1,-2.822139171299226e-3,2.399598042637487e-1,1.526636038701484e-3 +1.104466167277662e0,1.862045110704414e-1,1.889918429470604e-1,-2.787331876618920e-3,1.842703847005595e-1,2.016947758607211e-3 +1.135145783035375e0,1.164320475307733e-1,1.182582178363633e-1,-1.826170305590027e-3,1.142376860787416e-1,2.396500861018988e-3 +1.165825398793087e0,8.028787836753139e-2,7.837947554052385e-2,1.908402827007535e-3,7.952224653313605e-2,2.561198491060784e-3 +1.196505014550800e0,1.458834994955585e-1,1.427294294079115e-1,3.154070087647010e-3,1.466686126783009e-1,2.436931864728190e-3 +1.227184630308513e0,2.416340255351369e-1,2.391737196053208e-1,2.460305929816053e-3,2.422569230669940e-1,2.008713354863344e-3 +1.257864246066226e0,3.301959149278146e-1,3.286532287453283e-1,1.542686182486319e-3,3.300745360178775e-1,1.419639727565393e-3 +1.288543861823939e0,3.969625252897892e-1,3.963912616020737e-1,5.712636877154842e-4,3.958178311975412e-1,1.342504974853917e-3 +1.319223477581652e0,4.323050043356680e-1,4.326909889509855e-1,-3.859846153174695e-4,4.300311780122739e-1,2.284371431609081e-3 +1.349903093339364e0,4.302505451016624e-1,4.315377812000465e-1,-1.287236098384104e-3,4.268895963203056e-1,3.581674243178142e-3 +1.380582709097077e0,3.891514359740552e-1,3.912867674815080e-1,-2.135331507452876e-3,3.848519071676677e-1,4.804607336929897e-3 +1.411262324854790e0,3.134358487986096e-1,3.164640346902656e-1,-3.028185891656043e-3,3.083566733733141e-1,5.693724039994707e-3 +1.441941940612503e0,2.204568111194963e-1,2.246797428410314e-1,-4.222931721535067e-3,2.146525350689777e-1,6.049078361667209e-3 +1.472621556370216e0,1.720601139343256e-1,1.770907230144649e-1,-5.030609080139303e-3,1.666322769265994e-1,5.740071079095187e-3 +1.503301172127929e0,2.523275617851282e-1,2.558046366909307e-1,-3.477074905802457e-3,2.491965763805419e-1,4.752613723473864e-3 +1.533980787885641e0,4.010082068218629e-1,4.036242613172282e-1,-2.616054495365283e-3,3.985077453425581e-1,3.338608068566216e-3 +1.564660403643354e0,5.607626180639543e-1,5.632972728087757e-1,-2.534654744821396e-3,5.580725240932709e-1,2.701625806565740e-3 +1.595340019401067e0,7.086127785345635e-1,7.113748343454036e-1,-2.762055810840103e-3,7.057250400256482e-1,4.364776098591157e-3 +1.626019635158780e0,8.309883956717454e-1,8.340567946636467e-1,-3.068398991901256e-3,8.282598063289669e-1,7.014641218697822e-3 +1.656699250916493e0,9.183729832330140e-1,9.217043406834635e-1,-3.331357450449546e-3,9.162759119910453e-1,9.603104231203047e-3 +1.687378866674206e0,9.644205469057665e-1,9.679124703544364e-1,-3.491923448669887e-3,9.633319885384484e-1,1.160178600341962e-2 +1.718058482431918e0,9.663596834206098e-1,9.699112280113334e-1,-3.551544590723599e-3,9.663814853015655e-1,1.263510310083597e-2 +1.748738098189631e0,9.270990767963212e-1,9.306825241621408e-1,-3.583447365819614e-3,9.279668310790767e-1,1.245975485245352e-2 +1.779417713947344e0,8.613920038729896e-1,8.651303088746435e-1,-3.738305001653841e-3,8.625851357136251e-1,1.102324181908794e-2 +1.810097329705057e0,8.098336901763237e-1,8.140013083598669e-1,-4.167618183543276e-3,8.111043165614866e-1,8.613446750656355e-3 +1.840776945462770e0,8.514207300427962e-1,8.561382465493879e-1,-4.717516506591690e-3,8.537670098622300e-1,6.404427854177596e-3 +1.871456561220483e0,1.062439399304522e0,1.067375423365470e0,-4.936024060947730e-3,1.067941579479174e0,7.145113868033457e-3 +1.902136176978195e0,1.448940497415043e0,1.453719003110588e0,-4.778505695545832e-3,1.459032840178840e0,1.098557493587721e-2 +1.932815792735908e0,1.975512871453226e0,1.979886036342371e0,-4.373164889144743e-3,1.990485412443446e0,1.556996289166571e-2 +1.963495408493621e0,2.607667094287287e0,2.611399078447608e0,-3.731984160320945e-3,2.626892236314216e0,1.956395761242955e-2 +1.994175024251334e0,3.315525487362408e0,3.318371059790075e0,-2.845572427666809e-3,3.337599905042101e0,2.218108449300011e-2 +2.024854640009047e0,4.069102621590855e0,4.070843916057710e0,-1.741294466854448e-3,4.091998220894070e0,2.289562427725780e-2 +2.055534255766760e0,4.836031715176632e0,4.836520335316854e0,-4.886201402225510e-4,4.857323067979843e0,2.143293231362624e-2 +2.086213871524472e0,5.581609883644463e0,5.580798196562009e0,8.116870824537159e-4,5.598767631332963e0,1.783545767099294e-2 +2.116893487282185e0,6.270181422160443e0,6.268138522373226e0,2.042899787217500e-3,6.280896167083924e0,1.266260997306844e-2 +2.147573103039898e0,6.867215924543291e0,6.864127140187117e0,3.088784356173768e-3,6.869710829478365e0,8.107218801327974e-3 +2.178252718797611e0,7.341646299920411e0,7.337796974752131e0,3.849325168280515e-3,7.334937791103841e0,1.007747363908966e-2 +2.208932334555323e0,7.668131609264902e0,7.663877573900280e0,4.254035364622766e-3,7.652203663068011e0,1.705431939929502e-2 +2.239611950313036e0,7.828973613018622e0,7.824702295865397e0,4.271317153224707e-3,7.804841167367546e0,2.439335418861642e-2 +2.270291566070749e0,7.815476793159800e0,7.811564089002631e0,3.912704157169600e-3,7.785126916177555e0,3.035058935623906e-2 +2.300971181828462e0,7.628609661209333e0,7.625378240483578e0,3.231420725754219e-3,7.594823947289765e0,3.396810939561368e-2 +2.331650797586175e0,7.278900376053349e0,7.276584927693196e0,2.315448360152850e-3,7.244977027561553e0,3.465604857268333e-2 +2.362330413343888e0,6.785577443788354e0,6.784301364735061e0,1.276079053292634e-3,6.754984873830030e0,3.217851041175171e-2 +2.393010029101601e0,6.175040119473358e0,6.174806490396769e0,2.336290765887483e-4,6.151043943375170e0,2.670214209949473e-2 +2.423689644859313e0,5.478806519291762e0,5.479504053047118e0,-6.975337553560834e-4,5.464116970197089e0,1.894071880079677e-2 +2.454369260617026e0,4.731134906551643e0,4.732557220530943e0,-1.422313979299261e-3,4.727620847791227e0,1.112290614329723e-2 +2.485048876374739e0,3.966541728163309e0,3.968416095885512e0,-1.874367722203729e-3,3.975049752546514e0,1.136984597828910e-2 +2.515728492132452e0,3.217448443581120e0,3.219468385324337e0,-2.019941743216513e-3,3.237750405503932e0,2.054316824574421e-2 +2.546408107890165e0,2.512182728718526e0,2.514037462128713e0,-1.854733410187048e-3,2.543051043057968e0,3.095721313226399e-2 +2.577087723647877e0,1.873554173105448e0,1.874946591812185e0,-1.392418706736676e-3,1.912925866002298e0,4.030797329358980e-2 +2.607767339405590e0,1.318273086357598e0,1.318914615533435e0,-6.415291758368191e-4,1.363387539337986e0,4.778587775249661e-2 +2.638446955163303e0,8.578030622245684e-1,8.573622136346003e-1,4.408485899680681e-4,9.049729143250297e-1,5.311735742442377e-2 +2.669126570921016e0,5.029728363417973e-1,5.009292718792376e-1,2.043564462559710e-3,5.456519713837195e-1,5.637251458783163e-2 +2.699806186678729e0,2.825963378906927e-1,2.783166476653689e-1,4.279690225323762e-3,3.023334372290988e-1,5.778742883624056e-2 +2.730485802436442e0,2.516909802552219e-1,2.474268256170372e-1,4.264154638184720e-3,2.226549970601994e-1,5.753628713874259e-2 +2.761165418194155e0,3.242363499362707e-1,3.218120248983861e-1,2.424325037884534e-3,2.736521103842465e-1,5.555215488046152e-2 +2.791845033951867e0,3.881530745194183e-1,3.868672855809198e-1,1.285788938498511e-3,3.366083323547611e-1,5.160532559136721e-2 +2.822524649709580e0,4.187324967316027e-1,4.179776638670318e-1,7.548328645708424e-4,3.753031188003854e-1,4.598810713614681e-2 +2.853204265467293e0,4.153659858185260e-1,4.146480962657721e-1,7.178895527539253e-4,3.888608137005197e-1,4.155632789080922e-2 +2.883883881225006e0,3.815898740704892e-1,3.804171695780840e-1,1.172704492405197e-3,3.828558444491955e-1,4.642939203009077e-2 +2.914563496982719e0,3.218683524513687e-1,3.197292981262581e-1,2.139054325110634e-3,3.634597273021040e-1,6.740048573518741e-2 +2.945243112740431e0,2.426369808286596e-1,2.390843214536085e-1,3.552659375051059e-3,3.363870753876250e-1,1.025120877987356e-1 +2.975922728498144e0,5.961931138517930e-34,5.786921330970920e-34,1.750098075470099e-35,1.150814612633580e-33,5.557649886508944e-34 +3.006602344255857e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.037281960013570e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.067961575771283e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.098641191528996e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.129320807286708e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.160000423044421e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.190680038802134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.221359654559847e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.252039270317560e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.282718886075272e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.313398501832985e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.344078117590698e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.374757733348411e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.405437349106124e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.436116964863837e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.466796580621549e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.497476196379262e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.528155812136975e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.558835427894688e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.589515043652401e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.620194659410114e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.650874275167826e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.681553890925539e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.712233506683252e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.742913122440965e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.773592738198678e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.804272353956391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.834951969714103e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.865631585471816e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.896311201229529e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.926990816987242e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.957670432744955e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +3.988350048502667e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.019029664260381e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.049709280018093e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.080388895775806e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.111068511533519e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.141748127291232e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.172427743048944e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.203107358806657e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.233786974564370e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.264466590322083e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.295146206079796e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.325825821837508e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.356505437595222e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.387185053352934e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.417864669110647e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.448544284868360e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.479223900626073e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.509903516383786e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.540583132141498e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.571262747899211e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.601942363656924e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.632621979414637e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.663301595172349e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.693981210930063e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.724660826687775e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.755340442445489e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.786020058203201e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.816699673960914e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.847379289718627e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.878058905476339e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.908738521234052e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.939418136991765e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +4.970097752749478e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.000777368507190e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.031456984264904e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.062136600022616e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.092816215780330e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.123495831538042e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.154175447295755e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.184855063053468e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.215534678811180e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.246214294568893e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.276893910326606e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.307573526084319e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.338253141842032e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.368932757599745e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.399612373357457e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.430291989115171e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.460971604872883e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.491651220630596e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.522330836388309e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.553010452146022e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.583690067903735e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.614369683661447e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.645049299419160e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.675728915176873e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.706408530934586e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.737088146692298e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.767767762450012e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.798447378207724e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.829126993965438e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.859806609723150e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.890486225480863e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.921165841238576e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.951845456996288e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +5.982525072754001e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.013204688511714e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.043884304269427e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.074563920027139e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.105243535784853e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.135923151542565e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.166602767300279e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.197282383057991e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.227961998815704e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.258641614573417e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.289321230331129e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.320000846088842e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.350680461846555e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.381360077604268e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.412039693361981e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.442719309119694e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.473398924877406e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.504078540635120e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.534758156392832e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.565437772150545e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.596117387908258e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.626797003665970e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.657476619423684e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.688156235181396e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.718835850939109e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.749515466696822e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.780195082454535e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.810874698212247e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.841554313969961e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.872233929727673e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.902913545485386e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.933593161243099e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.964272777000811e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +6.994952392758525e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.025632008516237e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.056311624273950e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.086991240031663e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.117670855789376e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.148350471547088e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.179030087304802e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.209709703062514e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.240389318820228e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.271068934577940e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.301748550335653e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.332428166093366e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.363107781851078e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.393787397608791e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.424467013366504e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.455146629124217e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.485826244881930e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.516505860639643e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.547185476397355e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.577865092155069e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.608544707912781e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.639224323670494e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.669903939428207e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.700583555185919e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.731263170943633e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.761942786701345e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.792622402459058e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.823302018216771e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.853981633974484e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.884661249732196e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.915340865489910e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.946020481247622e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +7.976700097005335e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.007379712763047e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.038059328520761e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.068738944278474e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.099418560036186e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.130098175793899e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.160777791551611e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.191457407309326e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.222137023067038e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.252816638824751e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.283496254582463e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.314175870340176e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.344855486097888e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.375535101855602e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.406214717613315e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.436894333371027e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.467573949128740e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.498253564886452e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.528933180644167e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.559612796401879e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.590292412159592e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.620972027917304e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.651651643675017e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.682331259432731e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.713010875190443e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.743690490948156e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.774370106705868e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.805049722463581e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.835729338221293e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.866408953979008e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.897088569736720e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.927768185494433e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.958447801252145e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +8.989127417009858e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.019807032767572e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.050486648525284e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.081166264282997e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.111845880040709e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.142525495798422e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.173205111556134e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.203884727313849e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.234564343071561e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.265243958829274e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.295923574586986e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.326603190344699e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.357282806102413e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.387962421860125e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.418642037617838e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.449321653375550e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.480001269133263e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.510680884890977e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.541360500648690e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.572040116406402e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.602719732164115e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.633399347921827e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.664078963679540e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.694758579437254e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.725438195194966e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.756117810952679e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.786797426710391e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.817477042468104e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.848156658225818e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.878836273983531e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.909515889741243e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.940195505498956e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 +9.970875121256668e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0,0.000000000000000e0 diff --git a/doc/plots/feff_vs_larch_index.md b/doc/plots/feff_vs_larch_index.md new file mode 100644 index 0000000..1fa8b8a --- /dev/null +++ b/doc/plots/feff_vs_larch_index.md @@ -0,0 +1,24 @@ +# FEFF: xraytsubaki vs xraylarch + +Generated comparison plots: +- `01_path_builder`: `doc/plots/feff_vs_larch_01_path_builder.svg`, `doc/plots/feff_vs_larch_01_path_builder.png` +- `01_path_builder_rspace`: `doc/plots/feff_vs_larch_01_path_builder_rspace.svg`, `doc/plots/feff_vs_larch_01_path_builder_rspace.png` +- `01_path_builder_rspace_contrib`: `doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.svg`, `doc/plots/feff_vs_larch_01_path_builder_rspace_contrib.png` +- `02_multi_path_model`: `doc/plots/feff_vs_larch_02_multi_path_model.svg`, `doc/plots/feff_vs_larch_02_multi_path_model.png` +- `02_multi_path_model_rspace`: `doc/plots/feff_vs_larch_02_multi_path_model_rspace.svg`, `doc/plots/feff_vs_larch_02_multi_path_model_rspace.png` +- `02_multi_path_model_rspace_contrib`: `doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.svg`, `doc/plots/feff_vs_larch_02_multi_path_model_rspace_contrib.png` +- `03_single_dataset_fit`: `doc/plots/feff_vs_larch_03_single_dataset_fit.svg`, `doc/plots/feff_vs_larch_03_single_dataset_fit.png` +- `03_single_dataset_fit_rspace`: `doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.svg`, `doc/plots/feff_vs_larch_03_single_dataset_fit_rspace.png` +- `03_single_dataset_fit_rspace_contrib`: `doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.svg`, `doc/plots/feff_vs_larch_03_single_dataset_fit_rspace_contrib.png` +- `04_clone_template_path`: `doc/plots/feff_vs_larch_04_clone_template_path.svg`, `doc/plots/feff_vs_larch_04_clone_template_path.png` +- `04_clone_template_path_rspace`: `doc/plots/feff_vs_larch_04_clone_template_path_rspace.svg`, `doc/plots/feff_vs_larch_04_clone_template_path_rspace.png` +- `04_clone_template_path_rspace_contrib`: `doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.svg`, `doc/plots/feff_vs_larch_04_clone_template_path_rspace_contrib.png` +- `05_clone_template_ff2chi`: `doc/plots/feff_vs_larch_05_clone_template_ff2chi.svg`, `doc/plots/feff_vs_larch_05_clone_template_ff2chi.png` +- `05_clone_template_ff2chi_rspace`: `doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.svg`, `doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace.png` +- `05_clone_template_ff2chi_rspace_contrib`: `doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.svg`, `doc/plots/feff_vs_larch_05_clone_template_ff2chi_rspace_contrib.png` +- `06_multi_dataset_ds1`: `doc/plots/feff_vs_larch_06_multi_dataset_ds1.svg`, `doc/plots/feff_vs_larch_06_multi_dataset_ds1.png` +- `06_multi_dataset_ds1_rspace`: `doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.svg`, `doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace.png` +- `06_multi_dataset_ds1_rspace_contrib`: `doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.svg`, `doc/plots/feff_vs_larch_06_multi_dataset_ds1_rspace_contrib.png` +- `07_multi_dataset_ds2`: `doc/plots/feff_vs_larch_07_multi_dataset_ds2.svg`, `doc/plots/feff_vs_larch_07_multi_dataset_ds2.png` +- `07_multi_dataset_ds2_rspace`: `doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.svg`, `doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace.png` +- `07_multi_dataset_ds2_rspace_contrib`: `doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.svg`, `doc/plots/feff_vs_larch_07_multi_dataset_ds2_rspace_contrib.png` diff --git a/doc/scripts/generate_feff_vs_larch_plots.py b/doc/scripts/generate_feff_vs_larch_plots.py new file mode 100644 index 0000000..911a641 --- /dev/null +++ b/doc/scripts/generate_feff_vs_larch_plots.py @@ -0,0 +1,238 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import csv +import math +import os +from dataclasses import dataclass +from pathlib import Path +from typing import Dict, List + + +ROOT = Path(__file__).resolve().parents[2] +DATA_DIR = ROOT / "doc" / "plots" / "feff_vs_larch_data" +PLOT_DIR = ROOT / "doc" / "plots" + +CONTRIB_COLORS = [ + "#7b61ff", + "#f4a259", + "#00a6a6", + "#9b5de5", + "#43aa8b", + "#ef476f", + "#8d99ae", + "#ff7f50", +] + + +@dataclass +class Series: + name: str + x_name: str + x: List[float] + model: List[float] + larch: List[float] + diff: List[float] + contributions: Dict[str, List[float]] + + +def read_series(path: Path) -> Series: + with path.open() as f: + reader = csv.DictReader(f) + fields = reader.fieldnames or [] + if not fields: + raise ValueError(f"no headers in {path}") + x_name = fields[0] + contributions: Dict[str, List[float]] = {} + + if "model" in fields and "larch" in fields: + model_key = "model" + larch_key = "larch" + contrib_keys: List[str] = [] + elif "total_model" in fields and "total_larch" in fields: + model_key = "total_model" + larch_key = "total_larch" + contrib_keys = fields[4:] + for key in contrib_keys: + contributions[key] = [] + else: + raise ValueError(f"unsupported schema for {path.name}: {fields}") + + x, model, larch, diff = [], [], [], [] + for row in reader: + x.append(float(row[x_name])) + mv = float(row[model_key]) + lv = float(row[larch_key]) + model.append(mv) + larch.append(lv) + if "diff" in row and row["diff"] is not None and row["diff"] != "": + diff.append(float(row["diff"])) + else: + diff.append(mv - lv) + for key in contrib_keys: + contributions[key].append(float(row[key])) + + return Series(path.stem, x_name, x, model, larch, diff, contributions) + + +def line(points: List[tuple[float, float]], color: str, width: float = 1.6, dash: str | None = None) -> str: + pts = " ".join(f"{x:.2f},{y:.2f}" for x, y in points) + dash_attr = f' stroke-dasharray="{dash}"' if dash else "" + return f'' + + +def map_xy(xs: List[float], ys: List[float], x0: float, y0: float, w: float, h: float, xmin: float, xmax: float, ymin: float, ymax: float) -> List[tuple[float, float]]: + out = [] + xr = xmax - xmin if xmax > xmin else 1.0 + yr = ymax - ymin if ymax > ymin else 1.0 + for x, y in zip(xs, ys): + px = x0 + (x - xmin) / xr * w + py = y0 + h - (y - ymin) / yr * h + out.append((px, py)) + return out + + +def ticks(minv: float, maxv: float, n: int = 6) -> List[float]: + if maxv <= minv: + return [minv] + step = (maxv - minv) / (n - 1) + return [minv + i * step for i in range(n)] + + +def fmt(v: float) -> str: + av = abs(v) + if av >= 1000 or (av > 0 and av < 1e-3): + return f"{v:.2e}" + return f"{v:.4f}" + + +def axis_labels(x_name: str) -> tuple[str, str]: + if x_name.lower() == "r": + return "R (\u00c5)", "|\u03c7(R)|" + return "k (\u00c5\u207b\u00b9)", "\u03c7(k)" + + +def write_plot(series: Series) -> None: + width, height = 1400, 840 + left, right = 90, 40 + top, mid_gap, bottom = 52, 60, 56 + plot_h = 500 + resid_h = 170 + plot_w = width - left - right + + x_min, x_max = min(series.x), max(series.x) + y_min = min(min(series.model), min(series.larch)) + y_max = max(max(series.model), max(series.larch)) + for vals in series.contributions.values(): + y_min = min(y_min, min(vals)) + y_max = max(y_max, max(vals)) + if abs(y_max - y_min) < 1e-12: + y_max += 1e-6 + y_min -= 1e-6 + + d_min, d_max = min(series.diff), max(series.diff) + dm = max(abs(d_min), abs(d_max)) + d_min, d_max = (-dm, dm) if dm > 0 else (-1e-8, 1e-8) + + p_model = map_xy(series.x, series.model, left, top, plot_w, plot_h, x_min, x_max, y_min, y_max) + p_larch = map_xy(series.x, series.larch, left, top, plot_w, plot_h, x_min, x_max, y_min, y_max) + p_diff = map_xy(series.x, series.diff, left, top + plot_h + mid_gap, plot_w, resid_h, x_min, x_max, d_min, d_max) + p_contrib = { + name: map_xy(series.x, vals, left, top, plot_w, plot_h, x_min, x_max, y_min, y_max) + for name, vals in series.contributions.items() + } + + rms = math.sqrt(sum(v * v for v in series.diff) / max(1, len(series.diff))) + max_abs = max(abs(v) for v in series.diff) if series.diff else 0.0 + x_ticks = ticks(x_min, x_max) + y_ticks = ticks(y_min, y_max) + d_ticks = ticks(d_min, d_max) + x_label, y_label = axis_labels(series.x_name) + + parts = [] + parts.append(f'') + parts.append('') + parts.append('') + subtitle = f"RMS(diff)={rms:.3e}, Max|diff|={max_abs:.3e}, contributions={len(series.contributions)}" + parts.append(f'{series.name}: xraytsubaki vs xraylarch') + parts.append(f'{subtitle}') + + for xt in x_ticks: + px = left + (xt - x_min) / (x_max - x_min) * plot_w + parts.append(f'') + parts.append(f'') + parts.append(f'{fmt(xt)}') + + for yt in y_ticks: + py = top + plot_h - (yt - y_min) / (y_max - y_min) * plot_h + parts.append(f'') + parts.append(f'{fmt(yt)}') + + for dt in d_ticks: + py = top + plot_h + mid_gap + resid_h - (dt - d_min) / (d_max - d_min) * resid_h + parts.append(f'') + parts.append(f'{fmt(dt)}') + + parts.append(f'') + parts.append(f'') + + for idx, (name, points) in enumerate(p_contrib.items()): + color = CONTRIB_COLORS[idx % len(CONTRIB_COLORS)] + parts.append(line(points, color, width=1.1)) + + parts.append(line(p_larch, "#2e6fdb", width=1.8, dash="5,4")) + parts.append(line(p_model, "#cc3f3f", width=1.8)) + parts.append(line(p_diff, "#2a9d5b", width=1.4)) + + parts.append(f'{y_label}') + parts.append(f'diff') + parts.append(f'{x_label}') + + legend_x = left + 8 + legend_y = top + 18 + parts.append(f'') + parts.append(f'xraytsubaki total') + parts.append(f'') + parts.append(f'xraylarch total') + parts.append(f'') + parts.append(f'diff') + + if series.contributions: + start_y = legend_y + 20 + for idx, name in enumerate(series.contributions.keys()): + color = CONTRIB_COLORS[idx % len(CONTRIB_COLORS)] + y = start_y + idx * 16 + parts.append(f'') + parts.append(f'{name}') + + parts.append("") + + out_path = PLOT_DIR / f"feff_vs_larch_{series.name}.svg" + out_path.write_text("\n".join(parts)) + + +def write_index(series_list: List[Series]) -> None: + lines = ["# FEFF: xraytsubaki vs xraylarch", "", "Generated comparison plots:"] + for s in series_list: + lines.append( + f"- `{s.name}`: `doc/plots/feff_vs_larch_{s.name}.svg`, `doc/plots/feff_vs_larch_{s.name}.png`" + ) + (PLOT_DIR / "feff_vs_larch_index.md").write_text("\n".join(lines) + "\n") + + +def main() -> None: + if not DATA_DIR.exists(): + raise SystemExit(f"missing data directory: {DATA_DIR}") + os.makedirs(PLOT_DIR, exist_ok=True) + series_paths = sorted(DATA_DIR.glob("*.csv")) + if not series_paths: + raise SystemExit("no comparison csv files found") + series_list = [read_series(p) for p in series_paths] + for series in series_list: + write_plot(series) + write_index(series_list) + print(f"Generated {len(series_list)} plot(s) under {PLOT_DIR}") + + +if __name__ == "__main__": + main() diff --git a/doc/scripts/generate_feff_vs_larch_png.py b/doc/scripts/generate_feff_vs_larch_png.py new file mode 100644 index 0000000..5fe9e13 --- /dev/null +++ b/doc/scripts/generate_feff_vs_larch_png.py @@ -0,0 +1,255 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import csv +import math +from dataclasses import dataclass +from pathlib import Path +from typing import Dict, List, Tuple + +from PIL import Image, ImageDraw, ImageFont + + +ROOT = Path(__file__).resolve().parents[2] +DATA_DIR = ROOT / "doc" / "plots" / "feff_vs_larch_data" +PLOT_DIR = ROOT / "doc" / "plots" + +CONTRIB_COLORS = [ + (123, 97, 255), + (244, 162, 89), + (0, 166, 166), + (155, 93, 229), + (67, 170, 139), + (239, 71, 111), + (141, 153, 174), + (255, 127, 80), +] + + +@dataclass +class Series: + name: str + x_name: str + x: List[float] + model: List[float] + larch: List[float] + diff: List[float] + contributions: Dict[str, List[float]] + + +def read_series(path: Path) -> Series: + with path.open() as f: + reader = csv.DictReader(f) + fields = reader.fieldnames or [] + if not fields: + raise ValueError(f"no headers in {path}") + x_name = fields[0] + contributions: Dict[str, List[float]] = {} + + if "model" in fields and "larch" in fields: + model_key = "model" + larch_key = "larch" + contrib_keys: List[str] = [] + elif "total_model" in fields and "total_larch" in fields: + model_key = "total_model" + larch_key = "total_larch" + contrib_keys = fields[4:] + for key in contrib_keys: + contributions[key] = [] + else: + raise ValueError(f"unsupported schema in {path.name}: {fields}") + + x, model, larch, diff = [], [], [], [] + for row in reader: + x.append(float(row[x_name])) + mv = float(row[model_key]) + lv = float(row[larch_key]) + model.append(mv) + larch.append(lv) + if "diff" in row and row["diff"] is not None and row["diff"] != "": + diff.append(float(row["diff"])) + else: + diff.append(mv - lv) + for key in contrib_keys: + contributions[key].append(float(row[key])) + + return Series(path.stem, x_name, x, model, larch, diff, contributions) + + +def ticks(minv: float, maxv: float, n: int = 6) -> List[float]: + if maxv <= minv: + return [minv] + step = (maxv - minv) / (n - 1) + return [minv + i * step for i in range(n)] + + +def fmt(v: float) -> str: + av = abs(v) + if av >= 1000 or (av > 0 and av < 1e-3): + return f"{v:.2e}" + return f"{v:.4f}" + + +def axis_labels(x_name: str) -> Tuple[str, str]: + if x_name.lower() == "r": + return "R (A)", "|chi(R)|" + return "k (A^-1)", "chi(k)" + + +def map_points( + xs: List[float], + ys: List[float], + x0: int, + y0: int, + w: int, + h: int, + xmin: float, + xmax: float, + ymin: float, + ymax: float, +) -> List[Tuple[int, int]]: + out = [] + xr = xmax - xmin if xmax > xmin else 1.0 + yr = ymax - ymin if ymax > ymin else 1.0 + for x, y in zip(xs, ys): + px = int(round(x0 + (x - xmin) / xr * w)) + py = int(round(y0 + h - (y - ymin) / yr * h)) + out.append((px, py)) + return out + + +def draw_plot(series: Series) -> None: + width, height = 1900, 1180 + left, right = 130, 70 + top, mid_gap, bottom = 90, 100, 80 + plot_h = 680 + resid_h = 220 + plot_w = width - left - right + + x_min, x_max = min(series.x), max(series.x) + y_min = min(min(series.model), min(series.larch)) + y_max = max(max(series.model), max(series.larch)) + for vals in series.contributions.values(): + y_min = min(y_min, min(vals)) + y_max = max(y_max, max(vals)) + if abs(y_max - y_min) < 1.0e-12: + y_max += 1.0e-6 + y_min -= 1.0e-6 + + d_min, d_max = min(series.diff), max(series.diff) + dm = max(abs(d_min), abs(d_max)) + d_min, d_max = (-dm, dm) if dm > 0 else (-1.0e-8, 1.0e-8) + + img = Image.new("RGB", (width, height), "white") + draw = ImageDraw.Draw(img) + font = ImageFont.load_default() + + p_model = map_points(series.x, series.model, left, top, plot_w, plot_h, x_min, x_max, y_min, y_max) + p_larch = map_points(series.x, series.larch, left, top, plot_w, plot_h, x_min, x_max, y_min, y_max) + p_diff = map_points( + series.x, + series.diff, + left, + top + plot_h + mid_gap, + plot_w, + resid_h, + x_min, + x_max, + d_min, + d_max, + ) + p_contrib = { + name: map_points(series.x, vals, left, top, plot_w, plot_h, x_min, x_max, y_min, y_max) + for name, vals in series.contributions.items() + } + + x_ticks = ticks(x_min, x_max) + y_ticks = ticks(y_min, y_max) + d_ticks = ticks(d_min, d_max) + + grid_col = (236, 236, 236) + axis_col = (170, 170, 170) + text_col = (30, 30, 30) + + for xt in x_ticks: + px = int(round(left + (xt - x_min) / (x_max - x_min) * plot_w)) + draw.line([(px, top), (px, top + plot_h)], fill=grid_col, width=1) + draw.line([(px, top + plot_h + mid_gap), (px, top + plot_h + mid_gap + resid_h)], fill=grid_col, width=1) + t = fmt(xt) + tw, th = draw.textbbox((0, 0), t, font=font)[2:] + draw.text((px - tw // 2, height - bottom + 14), t, fill=text_col, font=font) + + for yt in y_ticks: + py = int(round(top + plot_h - (yt - y_min) / (y_max - y_min) * plot_h)) + draw.line([(left, py), (left + plot_w, py)], fill=grid_col, width=1) + t = fmt(yt) + tw, th = draw.textbbox((0, 0), t, font=font)[2:] + draw.text((left - 14 - tw, py - th // 2), t, fill=text_col, font=font) + + for dt in d_ticks: + py = int(round(top + plot_h + mid_gap + resid_h - (dt - d_min) / (d_max - d_min) * resid_h)) + draw.line([(left, py), (left + plot_w, py)], fill=grid_col, width=1) + t = fmt(dt) + tw, th = draw.textbbox((0, 0), t, font=font)[2:] + draw.text((left - 14 - tw, py - th // 2), t, fill=text_col, font=font) + + draw.rectangle([left, top, left + plot_w, top + plot_h], outline=axis_col, width=2) + draw.rectangle( + [left, top + plot_h + mid_gap, left + plot_w, top + plot_h + mid_gap + resid_h], + outline=axis_col, + width=2, + ) + + for idx, (_name, pts) in enumerate(p_contrib.items()): + draw.line(pts, fill=CONTRIB_COLORS[idx % len(CONTRIB_COLORS)], width=2) + draw.line(p_larch, fill=(45, 99, 214), width=4) + draw.line(p_model, fill=(204, 63, 63), width=4) + draw.line(p_diff, fill=(40, 157, 90), width=3) + + rms = math.sqrt(sum(v * v for v in series.diff) / max(1, len(series.diff))) + max_abs = max(abs(v) for v in series.diff) if series.diff else 0.0 + x_label, y_label = axis_labels(series.x_name) + title = f"{series.name}: xraytsubaki vs xraylarch" + subtitle = f"RMS(diff)={rms:.3e}, Max|diff|={max_abs:.3e}, contributions={len(series.contributions)}" + draw.text((left, 22), title, fill=text_col, font=font) + draw.text((left, 46), subtitle, fill=(70, 70, 70), font=font) + + draw.text((left + plot_w + 12, top + 8), y_label, fill=text_col, font=font) + draw.text((left + plot_w + 12, top + plot_h + mid_gap + 8), "diff", fill=text_col, font=font) + draw.text((left + plot_w // 2 - 30, height - 18), x_label, fill=text_col, font=font) + + legend_y = top + 20 + lx = left + 8 + draw.line([(lx, legend_y), (lx + 40, legend_y)], fill=(204, 63, 63), width=4) + draw.text((lx + 48, legend_y - 8), "xraytsubaki total", fill=text_col, font=font) + lx += 250 + draw.line([(lx, legend_y), (lx + 40, legend_y)], fill=(45, 99, 214), width=4) + draw.text((lx + 48, legend_y - 8), "xraylarch total", fill=text_col, font=font) + lx += 220 + draw.line([(lx, legend_y), (lx + 40, legend_y)], fill=(40, 157, 90), width=3) + draw.text((lx + 48, legend_y - 8), "diff", fill=text_col, font=font) + + if series.contributions: + y = legend_y + 22 + for idx, name in enumerate(series.contributions.keys()): + draw.line([(left + 8, y), (left + 26, y)], fill=CONTRIB_COLORS[idx % len(CONTRIB_COLORS)], width=2) + draw.text((left + 32, y - 8), name, fill=text_col, font=font) + y += 16 + + out_path = PLOT_DIR / f"feff_vs_larch_{series.name}.png" + img.save(out_path, "PNG", optimize=True) + + +def main() -> None: + if not DATA_DIR.exists(): + raise SystemExit(f"missing data directory: {DATA_DIR}") + series_paths = sorted(DATA_DIR.glob("*.csv")) + if not series_paths: + raise SystemExit("no comparison csv files found") + for path in series_paths: + draw_plot(read_series(path)) + print(f"Generated {len(series_paths)} PNG plot(s) under {PLOT_DIR}") + + +if __name__ == "__main__": + main() diff --git a/plans/fitting-api-redesign.md b/plans/fitting-api-redesign.md new file mode 100644 index 0000000..b912332 --- /dev/null +++ b/plans/fitting-api-redesign.md @@ -0,0 +1,264 @@ +# Plan: Simplified Builder API + Multi-Dataset Fitting + Extended Expressions + +## Context + +The current fitting API requires ~10 types, redundant variable declarations, and a limited expression parser. This plan delivers: +1. Consuming-Self builder with clone-and-reuse +2. Auto-discovery of variables from expressions +3. Multi-dataset fitting with shared parameters +4. Full math expression engine (larch parity) +5. Unified parameter specification via `Param` struct + simple tuple shortcuts + +--- + +## Target API + +### Paths (builder methods on existing `FeffPathModel`) +```rust +// Build and clone for variations +let base_path = feffpath("feffcu01.dat", FeffFlavor::Feff85L)? + .set_s02("amp").set_e0("de0").set_deltar("dr"); + +let path1 = base_path.clone().set_sigma2("sig2"); +let path2 = base_path.clone().set_sigma2("sig2_2"); + +// Expressions work: .set_sigma2("sig2 * sqrt(reff)") +``` + +### Parameters — two methods +```rust +// Quick: set_inits() for simple (name, value) tuples +fit.set_inits([("amp", 0.95), ("sig2", 0.003), ("de0", 0.0)]) + +// Full: params() for Param structs with bounds/fixed/expr +fit.params([ + Param::new("amp", 0.95), + Param::new("sig2", 0.003).bounds(0.0, 0.02), + Param::fixed("de0", 1.4), + Param::expr("scale", "amp * 2"), +]) +``` + +### Single-dataset fit +```rust +let result = FeffFit::new() + .data(&k, &chi) + .add_path(feffpath("feff01.dat", FeffFlavor::Feff85L)? + .set_s02("amp").set_e0("de0").set_sigma2("sig2").set_deltar("dr")) + .set_inits([("amp", 0.95), ("sig2", 0.003)]) + .set_bounds("sig2", 0.0, 0.02) + .krange(2.0, 14.0).rrange(1.0, 3.0) + .fit()?; +``` + +### Clone-and-reuse template +```rust +let base = FeffFit::new() + .params([Param::new("amp", 0.95), Param::new("sig2", 0.003).bounds(0.0, 0.02)]) + .krange(2.0, 14.0).rrange(1.0, 3.0); + +let r1 = base.clone().data(&k1, &chi1).add_path(path1).fit()?; +let r2 = base.clone().data(&k2, &chi2).add_path(path2).fit()?; +``` + +### Multi-dataset global fit +```rust +let ds1 = FeffFitDataset::new() + .data(&k1, &chi1) + .add_path(feffpath("feff01.dat", FeffFlavor::Feff85L)? + .set_s02("amp").set_e0("de0").set_sigma2("sig2")) + .krange(2.0, 14.0).rrange(1.0, 3.0); + +let ds2 = FeffFitDataset::new() + .data(&k2, &chi2) + .add_path(feffpath("feff02.dat", FeffFlavor::Feff85L)? + .set_s02("amp").set_e0("de0_2").set_sigma2("sig2")) + .krange(2.0, 12.0).rrange(1.0, 4.0); + +let result = FeffFit::new() + .add_dataset(ds1).add_dataset(ds2) + .params([Param::new("amp", 0.9), Param::new("sig2", 0.003).bounds(0.0, 0.02)]) + .fit()?; +``` + +--- + +## Step 1: Extend expression parser — `variables.rs` + +Extend `ExprParser::parse_primary()`: after parsing an identifier, check for `(` → parse as function call. + +**Single-arg functions:** `abs`, `exp`, `log`, `log10`, `sqrt`, `sin`, `cos`, `tan`, `asin`, `acos`, `atan`, `sinh`, `cosh`, `tanh`, `ceil`, `floor`, `round` + +**Two-arg functions:** `min`, `max`, `atan2` + +**Constants:** `pi` → `π`, `e` → Euler's number + +**Also add:** `pub fn extract_symbols(expr: &str) -> Vec` — extracts user variable names, excluding function names, constants, and `"reff"`. + +**File:** `crates/xraytsubaki/src/xafs/fitting/variables.rs` + +--- + +## Step 2: Add `Param` struct — `types.rs` + +```rust +/// Lightweight parameter specification for the builder API. +#[derive(Debug, Clone)] +pub struct Param { + pub name: String, + pub value: f64, + pub vary: bool, + pub min: Option, + pub max: Option, + pub expr: Option, +} + +impl Param { + /// Varying parameter with initial value. + pub fn new(name: impl Into, value: f64) -> Self { ... } + /// Fixed parameter (vary=false). + pub fn fixed(name: impl Into, value: f64) -> Self { ... } + /// Expression-derived parameter (vary=false). + pub fn expr(name: impl Into, expr: impl Into) -> Self { ... } + /// Set bounds (consuming Self). + pub fn bounds(mut self, min: f64, max: f64) -> Self { ... } + + /// Convert to FitVariable. + pub fn to_fit_variable(&self) -> FitVariable { ... } +} +``` + +**File:** `crates/xraytsubaki/src/xafs/fitting/types.rs` + +--- + +## Step 3: Add builder methods to `FeffPathModel` — `types.rs` + +Consuming-Self setters accepting `Into`: +`set_s02`, `set_e0`, `set_ei`, `set_deltar`, `set_sigma2`, `set_third`, `set_fourth`, `set_degen`, `set_label`, `set_use_path` + +**File:** `crates/xraytsubaki/src/xafs/fitting/types.rs` + +--- + +## Step 4: Add builder methods to `FeffFitDataset` — `types.rs` + +Consuming-Self methods: +`new()`, `data(k, chi)`, `epsilon_k(f64)`, `add_path(FeffPathModel)`, `krange(kmin, kmax)`, `rrange(rmin, rmax)`, `kweight(f64)`, `dk(f64)`, `window(FTWindow)`, `rwindow(FTWindow)`, `dr(f64)` + +**File:** `crates/xraytsubaki/src/xafs/fitting/types.rs` + +--- + +## Step 5: Restructure `FeffFitResult` — `types.rs` + +New `DatasetResult` struct for per-dataset outputs. `FeffFitResult` gets `datasets: Vec`, `n_idp: f64`, and `dataset()` convenience method. Remove flat data/model fields. + +**File:** `crates/xraytsubaki/src/xafs/fitting/types.rs` + +--- + +## Step 6: Add `compute_n_idp()` — `transform.rs` + +`pub fn compute_n_idp(transform: &FeffFitTransform) -> f64` +Formula: `1.0 + 2.0 * (rmax - rmin) * (kmax - kmin) / π` + +**File:** `crates/xraytsubaki/src/xafs/fitting/transform.rs` + +--- + +## Step 7: Multi-dataset solver — `solver.rs` + +- `FeffFitMultiProblem` holding `Vec`, shared `FitVariables`, per-dataset `TransformOutput` +- `LeastSquaresProblem` impl: concatenated residuals, block-concatenated Jacobian +- `pub fn feffit_multi(datasets: &[FeffFitDataset], vars: &FitVariables) -> Result` +- `feffit()` delegates to `feffit_multi(&[dataset], vars)` +- Update existing solver tests for new `FeffFitResult` shape + +**File:** `crates/xraytsubaki/src/xafs/fitting/solver.rs` + +--- + +## Step 8: `FeffFit` builder — `builder.rs` (new) + +```rust +pub struct FeffFit { + datasets: Vec, + variables: FitVariables, + flavor: FeffFlavor, + default_dataset: FeffFitDataset, + has_default: bool, +} +``` + +**All methods consume and return `Self`.** + +| Method | Purpose | +|--------|---------| +| `data(k, chi)` | Set data on default dataset | +| `epsilon_k(f64)` | Set epsilon_k on default dataset | +| `add_path(FeffPathModel)` | Add path to default dataset | +| `krange(kmin, kmax)` | Set k-range on default dataset | +| `rrange(rmin, rmax)` | Set R-range on default dataset | +| `kweight(f64)`, `dk(f64)`, `window()`, `rwindow()`, `dr(f64)` | Transform config on default dataset | +| `add_dataset(FeffFitDataset)` | Add a pre-built dataset for multi-dataset fitting | +| `set_init(name, f64)` | Set single variable init value (auto-creates vary=true) | +| `set_inits(IntoIter<(Into, f64)>)` | Batch set init values from tuples | +| `set_bounds(name, min, max)` | Set bounds on a variable | +| `fix(name, f64)` | Fix variable (vary=false) | +| `var_expr(name, expr)` | Expression-derived variable | +| `params(IntoIter)` | Batch configure from Param structs | +| `set_flavor(FeffFlavor)` | Set default FEFF flavor | +| `fit(&self) -> Result` | Auto-discover variables, run fit | + +**Auto-discovery in `fit()`:** +1. Merge default dataset into datasets list (if used) +2. Scan all `PathParamSpec::Expression` + `var_expr` expressions +3. `extract_symbols()` → collect all referenced variable names +4. Auto-create missing symbols as `FitVariable::new(0.0, true)` +5. Skip built-in names (function names, constants, `"reff"`) +6. Call `feffit_multi()` + +**File:** `crates/xraytsubaki/src/xafs/fitting/builder.rs` + +--- + +## Step 9: Module registration + prelude + +**`fitting/mod.rs`:** Add `pub mod builder;`, re-export `FeffFit`, `Param`, `DatasetResult`, `feffit_multi` + +**`prelude.rs`:** Add `FeffFit`, `Param`, `DatasetResult`, `feffit_multi` + +--- + +## Step 10: Tests + +**Expression parser** (`variables.rs`): `exp(-2.0)`, `abs(-3.5)`, `max(a,b)`, `sqrt(4)`, `pi*2`, `log(e)`, `sin(pi/2)`, nested `exp(-sigma2*k^2)`, error on unknown function + +**Builder** (`builder.rs`): auto-discovery, `set_inits` tuples, `params` with Param structs, `set_bounds`, `fix`, `var_expr`, single-dataset parity, clone-reuse template, multi-dataset global fit, error cases, mixed literal/expression + +**Solver** (`solver.rs`): multi-dataset with shared truth params, update existing test for new result shape + +--- + +## Files summary + +| File | Action | +|------|--------| +| `fitting/variables.rs` | MODIFY — extend parser + `extract_symbols()` | +| `fitting/types.rs` | MODIFY — `Param`, builder methods, `DatasetResult`, restructure `FeffFitResult` | +| `fitting/transform.rs` | MODIFY — `compute_n_idp()` | +| `fitting/solver.rs` | MODIFY — `feffit_multi()`, update tests | +| `fitting/builder.rs` | CREATE — `FeffFit` builder | +| `fitting/mod.rs` | MODIFY — register builder, re-exports | +| `prelude.rs` | MODIFY — add new types | + +## Verification + +1. `cargo check` — compiles +2. `cargo clippy` — no warnings +3. `cargo test` — all pass +4. Expression: `exp(-sigma2 * k^2)` evaluates correctly +5. Single-dataset builder matches direct `feffit()` output +6. Multi-dataset fit converges with shared parameters +7. Clone-and-reuse produces valid independent fits diff --git a/py-xraytsubaki/src/lib.rs b/py-xraytsubaki/src/lib.rs index d13a0c8..57ae369 100644 --- a/py-xraytsubaki/src/lib.rs +++ b/py-xraytsubaki/src/lib.rs @@ -16,6 +16,7 @@ fn error_category(error: &XAFSError) -> &'static str { XAFSError::FFT(_) => "fft", XAFSError::IO(_) => "io", XAFSError::Math(_) => "math", + XAFSError::Fitting(_) => "fitting", XAFSError::NotEnoughData => "data", XAFSError::NotEnoughDataForXFTF => "fft", XAFSError::NotEnoughDataForXFTR => "fft",