pub fn wavelet_leader_diagnostics<T>(
signal: &Signal<T>,
wavelet: &dyn Wavelet,
config: MultifractalConfig,
) -> Result<WaveletLeaderDiagnostics>Expand description
Compute wavelet-leader scaling diagnostics in a single call.
This is a convenience wrapper around wavelet_leader_scaling that
returns the moments q, scaling exponents ζ(q), and two scalar scores:
curvature_score: |ζ’’(0)| based on ζ(−1), ζ(0), ζ(1) if availablelinearity_r2: R² of the best linear fit ζ(q) ≈ a·q + b
§Examples
use iron_wave::analysis::multifractal::*;
use iron_wave::{Signal, Wavelet};
use iron_wave::wavelets::{Daubechies, DaubechiesType};
let data: Vec<f64> = (0..512).map(|i| (i as f64 * 0.1).sin()).collect();
let signal = Signal::new(data);
let wavelet = Daubechies::new(DaubechiesType::Db4);
let config = MultifractalConfig::with_moments(-2.0, 2.0, 1.0)
.with_bootstrap_samples(0);
let diag = wavelet_leader_diagnostics(&signal, &wavelet, config)?;
println!("q: {:?}", diag.moments);
println!("ζ(q): {:?}", diag.scaling_exponents);
println!("Curvature score |ζ''(0)|: {:?}", diag.curvature_score);
println!("Linearity R²: {:?}", diag.linearity_r2);