src/subproblem.rs

branch
dev
changeset 39
6316d68b58af
parent 34
efa60bc4f743
equal deleted inserted replaced
37:c5d8bd1a7728 39:6316d68b58af
16 pub mod unconstrained; 16 pub mod unconstrained;
17 pub mod l1squared_unconstrained; 17 pub mod l1squared_unconstrained;
18 pub mod l1squared_nonneg; 18 pub mod l1squared_nonneg;
19 19
20 20
21 /// Method for solving finite-dimensional subproblems 21 /// Method for solving finite-dimensional subproblems.
22 /// Not all outer methods necessarily support all options.
22 #[derive(Clone, Copy, Eq, PartialEq, Serialize, Deserialize, Debug)] 23 #[derive(Clone, Copy, Eq, PartialEq, Serialize, Deserialize, Debug)]
23 #[allow(dead_code)] 24 #[allow(dead_code)]
24 pub enum InnerMethod { 25 pub enum InnerMethod {
25 /// Forward-backward 26 /// Forward-backward
26 FB, 27 FB,
27 /// Semismooth Newton 28 /// Semismooth Newton
28 SSN, 29 SSN,
29 /// PDPS 30 /// PDPS
30 PDPS, 31 PDPS,
31 /// Problem-specific choice (in practise FB or PDPS, whichever is implemented)
32 Default,
33 } 32 }
34 33
35 /// Settings for the solution of finite-dimensional subproblems 34 /// Settings for the solution of finite-dimensional subproblems
36 #[derive(Clone, Copy, Eq, PartialEq, Serialize, Deserialize, Debug)] 35 #[derive(Clone, Copy, Eq, PartialEq, Serialize, Deserialize, Debug)]
37 pub struct InnerSettings<F : Float> { 36 pub struct InnerSettings<F : Float> {
63 verbose_iter : Verbose::Every(1), 62 verbose_iter : Verbose::Every(1),
64 // … but don't print out anything 63 // … but don't print out anything
65 quiet : true, 64 quiet : true,
66 .. Default::default() 65 .. Default::default()
67 }, 66 },
68 method : InnerMethod::Default, 67 method : InnerMethod::SSN,
69 tolerance_mult : 0.01, 68 tolerance_mult : 0.01,
70 } 69 }
71 } 70 }
72 } 71 }

mercurial