94 write_points(format!("{PREFIX}/origin"), std::iter::once(&origin))?; |
94 write_points(format!("{PREFIX}/origin"), std::iter::once(&origin))?; |
95 |
95 |
96 let f = Sum::new(points.into_iter().map(DistToSquaredDiv2)); |
96 let f = Sum::new(points.into_iter().map(DistToSquaredDiv2)); |
97 //let g = ZeroFn::new(); |
97 //let g = ZeroFn::new(); |
98 let g = Scaled::new(0.5, DistTo(origin)); |
98 let g = Scaled::new(0.5, DistTo(origin)); |
99 let τ = 0.05; |
99 let τ = 0.1; |
100 |
100 |
101 std::fs::create_dir_all(PREFIX)?; |
101 std::fs::create_dir_all(PREFIX)?; |
102 for face in Face::all() { |
102 for face in Face::all() { |
103 write_face_csv(format!("{PREFIX}/{face}"), face, 32, |x| f.apply(x) + g.apply(x))?; |
103 write_face_csv(format!("{PREFIX}/{face}"), face, 32, |x| f.apply(x) + g.apply(x))?; |
104 } |
104 } |
127 iter, value, //point : CSVPoint::from(&point) |
127 iter, value, //point : CSVPoint::from(&point) |
128 x, y, z, face |
128 x, y, z, face |
129 } |
129 } |
130 }; |
130 }; |
131 let iter = AlgIteratorOptions{ |
131 let iter = AlgIteratorOptions{ |
132 max_iter : 100, |
132 max_iter : 20, |
133 verbose_iter : Verbose::Every(1), |
133 verbose_iter : Verbose::Every(1), |
134 .. Default::default() |
134 .. Default::default() |
135 }.mapped(logmap) |
135 }.mapped(logmap) |
136 .into_log(&mut logger); |
136 .into_log(&mut logger); |
137 |
137 |