#![cfg_attr(not(feature = "std"), no_std)]
#![warn(missing_docs)]
#[cfg(feature = "alloc")]
extern crate alloc;
macro_rules! check_finite {
($val:expr) => {
if !$val.is_finite() {
return Err(if $val.is_nan() {
nexus_stats_core::DataError::NotANumber
} else {
nexus_stats_core::DataError::Infinite
});
}
};
}
mod multi_gate;
mod robust_z;
mod trend_alert;
#[cfg(any(feature = "std", feature = "libm"))]
mod adaptive_threshold;
#[cfg(feature = "alloc")]
mod mosum;
#[cfg(any(feature = "std", feature = "libm"))]
mod shiryaev_roberts;
#[cfg(any(feature = "std", feature = "libm"))]
mod sprt;
pub mod detection {
pub use super::multi_gate::*;
pub use super::robust_z::*;
pub use super::trend_alert::*;
#[cfg(any(feature = "std", feature = "libm"))]
pub use super::adaptive_threshold::*;
#[cfg(feature = "alloc")]
pub use super::mosum::*;
#[cfg(any(feature = "std", feature = "libm"))]
pub use super::shiryaev_roberts::*;
}
pub mod signal;
pub mod estimation {
#[cfg(any(feature = "std", feature = "libm"))]
pub use super::sprt::*;
}