modewise_operations/
lib.rs1mod catalogue;
4mod cwt;
5mod emd;
6mod epoch;
7mod functional_connectivity;
8mod hilbert;
9mod mvmd;
10mod reconstruct;
11mod regions;
12mod spectrum;
13mod stft;
14mod vlmd;
15mod wavelet;
16
17use std::sync::Arc;
18
19use modewise_pipeline::{Artifact, Inputs, Registry};
20
21pub use catalogue::{catalogue, reference_markdown};
22pub use cwt::CwtOperation;
23pub use emd::{CeemdanOperation, EemdOperation, EmdOperation, MemdOperation};
24pub use epoch::EpochOperation;
25pub use functional_connectivity::FunctionalConnectivityOperation;
26pub use hilbert::{HilbertOperation, HilbertSpectrumOperation};
27pub use mvmd::{MvmdOperation, NaMvmdOperation, VmdOperation};
28pub use reconstruct::ReconstructOperation;
29pub use regions::{RegionAverageOperation, SelectOperation};
30pub use spectrum::SpectrumOperation;
31pub use stft::StftOperation;
32pub use vlmd::VlmdOperation;
33pub use wavelet::ModwtMraOperation;
34
35pub fn register_builtin(registry: &mut Registry) {
36 registry.register(Arc::new(FunctionalConnectivityOperation));
37 registry.register(Arc::new(CwtOperation));
38 registry.register(Arc::new(EpochOperation));
39 registry.register(Arc::new(HilbertOperation));
40 registry.register(Arc::new(HilbertSpectrumOperation));
41 registry.register(Arc::new(CeemdanOperation));
42 registry.register(Arc::new(EemdOperation));
43 registry.register(Arc::new(EmdOperation));
44 registry.register(Arc::new(MemdOperation));
45 registry.register(Arc::new(ModwtMraOperation));
46 registry.register(Arc::new(MvmdOperation));
47 registry.register(Arc::new(NaMvmdOperation));
48 registry.register(Arc::new(VmdOperation));
49 registry.register(Arc::new(SpectrumOperation));
50 registry.register(Arc::new(StftOperation));
51 registry.register(Arc::new(VlmdOperation));
52 registry.register(Arc::new(ReconstructOperation));
53 registry.register(Arc::new(RegionAverageOperation));
54 registry.register(Arc::new(SelectOperation));
55}
56
57pub fn builtin_registry() -> Registry {
58 let mut registry = Registry::new();
59 register_builtin(&mut registry);
60 registry
61}
62
63fn input<'a>(inputs: &'a Inputs, port: &str) -> Result<&'a Artifact, String> {
64 inputs
65 .get(port)
66 .map(|a| a.as_ref())
67 .ok_or_else(|| format!("input {port:?} missing"))
68}