| 13 #![feature(drain_filter)] |
13 #![feature(drain_filter)] |
| 14 |
14 |
| 15 use clap::Parser; |
15 use clap::Parser; |
| 16 use itertools::Itertools; |
16 use itertools::Itertools; |
| 17 use serde_json; |
17 use serde_json; |
| |
18 use std::num::NonZeroUsize; |
| |
19 |
| 18 use alg_tools::iterate::Verbose; |
20 use alg_tools::iterate::Verbose; |
| 19 use alg_tools::parallelism::{ |
21 use alg_tools::parallelism::{ |
| 20 set_num_threads, |
22 set_num_threads, |
| 21 set_max_threads, |
23 set_max_threads, |
| 22 }; |
24 }; |
| 23 use std::num::NonZeroUsize; |
|
| 24 |
25 |
| 25 pub mod types; |
26 pub mod types; |
| 26 pub mod measures; |
27 pub mod measures; |
| 27 pub mod fourier; |
28 pub mod fourier; |
| 28 pub mod kernels; |
29 pub mod kernels; |
| 195 } |
196 } |
| 196 |
197 |
| 197 /// The entry point for the program. |
198 /// The entry point for the program. |
| 198 pub fn main() { |
199 pub fn main() { |
| 199 let cli = CommandLineArgs::parse(); |
200 let cli = CommandLineArgs::parse(); |
| |
201 |
| |
202 #[cfg(debug_assertions)] |
| |
203 { |
| |
204 use colored::Colorize; |
| |
205 println!("{}", format!("\n\ |
| |
206 ********\n\ |
| |
207 WARNING: Compiled without optimisations; {}\n\ |
| |
208 Please recompile with `--release` flag.\n\ |
| |
209 ********\n\ |
| |
210 ", "performance will be poor!".blink() |
| |
211 ).red()); |
| |
212 } |
| 200 |
213 |
| 201 if let Some(n_threads) = cli.num_threads { |
214 if let Some(n_threads) = cli.num_threads { |
| 202 let n = NonZeroUsize::new(n_threads).expect("Invalid thread count"); |
215 let n = NonZeroUsize::new(n_threads).expect("Invalid thread count"); |
| 203 set_num_threads(n); |
216 set_num_threads(n); |
| 204 } else { |
217 } else { |