8 #![allow(mixed_script_confusables)] |
8 #![allow(mixed_script_confusables)] |
9 #![allow(confusable_idents)] |
9 #![allow(confusable_idents)] |
10 // Linear operators may be written e.g. as `opA`, to keep the capital letters of mathematical |
10 // Linear operators may be written e.g. as `opA`, to keep the capital letters of mathematical |
11 // convention while referring to the type (trait) of the operator as `A`. |
11 // convention while referring to the type (trait) of the operator as `A`. |
12 #![allow(non_snake_case)] |
12 #![allow(non_snake_case)] |
13 // We need the drain filter for inertial prune. |
|
14 #![feature(drain_filter)] |
13 #![feature(drain_filter)] |
15 |
14 |
16 use clap::Parser; |
15 use clap::Parser; |
17 use serde::{Serialize, Deserialize}; |
16 use serde::{Serialize, Deserialize}; |
18 use serde_json; |
17 use serde_json; |
87 /// Default algorithm configration(s) to use on the experiments. |
89 /// Default algorithm configration(s) to use on the experiments. |
88 /// |
90 /// |
89 /// Not all algorithms are available for all the experiments. |
91 /// Not all algorithms are available for all the experiments. |
90 /// In particular, only PDPS is available for the experiments with L¹ data term. |
92 /// In particular, only PDPS is available for the experiments with L¹ data term. |
91 #[arg(value_enum, value_name = "ALGORITHM", long, short = 'a', |
93 #[arg(value_enum, value_name = "ALGORITHM", long, short = 'a', |
92 default_values_t = [FB, FISTA, PDPS, FW, FWRelax])] |
94 default_values_t = [FB, FISTA, PDPS, SlidingFB, FW, FWRelax])] |
93 algorithm : Vec<DefaultAlgorithm>, |
95 algorithm : Vec<DefaultAlgorithm>, |
94 |
96 |
95 /// Saved algorithm configration(s) to use on the experiments |
97 /// Saved algorithm configration(s) to use on the experiments |
96 #[arg(value_name = "JSON_FILE", long)] |
98 #[arg(value_name = "JSON_FILE", long)] |
97 saved_algorithm : Vec<String>, |
99 saved_algorithm : Vec<String>, |