src/main.rs

Mon, 21 Oct 2024 10:02:57 -0500

author
Tuomo Valkonen <tuomov@iki.fi>
date
Mon, 21 Oct 2024 10:02:57 -0500
changeset 7
8979a6638424
parent 6
df9628092285
child 9
0fa3ac0c248b
permissions
-rw-r--r--

A simple test

4
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
1
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
2 // We use unicode. We would like to use much more of it than Rust allows.
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
3 // Live with it. Embrace it.
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
4 #![allow(uncommon_codepoints)]
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
5 #![allow(mixed_script_confusables)]
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
6 #![allow(confusable_idents)]
1
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
7
7
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
8 use dist::DistToSquaredDiv2;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
9 use fb::forward_backward;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
10 use manifold::EmbeddedManifoldPoint;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
11
1
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
12 mod manifold;
4
e09437844ad9 Forward-backward skeleton
Tuomo Valkonen <tuomov@iki.fi>
parents: 1
diff changeset
13 mod fb;
1
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
14 mod cube;
5
f248e1434c3b Some distance functions etc.
Tuomo Valkonen <tuomov@iki.fi>
parents: 4
diff changeset
15 mod dist;
6
df9628092285 Add a zero function on manifolds
Tuomo Valkonen <tuomov@iki.fi>
parents: 5
diff changeset
16 mod zero;
1
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
17
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
18 fn main() {
7
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
19 simple_test()
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
20 }
1
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
21
7
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
22 fn simple_test() {
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
23 use cube::*;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
24 use alg_tools::loc::Loc;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
25 use Face::*;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
26 use zero::ZeroFn;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
27 use alg_tools::mapping::Sum;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
28 use alg_tools::iterate::{AlgIteratorOptions, Verbose};
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
29
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
30 let points = [
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
31 OnCube::new(F1, Loc([0.5, 0.5])),
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
32 OnCube::new(F2, Loc([0.5, 0.5])),
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
33 OnCube::new(F4, Loc([0.1, 0.1])),
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
34 ];
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
35
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
36 //let x = points[0].clone();
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
37 let x = OnCube::new(F6, Loc([0.5, 0.5]));
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
38 let f = Sum::new(points.into_iter().map(DistToSquaredDiv2));
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
39 let g = ZeroFn::new();
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
40 let τ = 0.1;
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
41 let iter = AlgIteratorOptions{
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
42 max_iter : 100,
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
43 verbose_iter : Verbose::Every(1),
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
44 .. Default::default()
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
45 };
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
46
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
47 let x̂ = forward_backward(&f, &g, x, τ, iter);
8979a6638424 A simple test
Tuomo Valkonen <tuomov@iki.fi>
parents: 6
diff changeset
48 println!("result = {}\n{:?}", x̂.embedded_coords(), &x̂);
1
29738fae471e Added some missing files
Tuomo Valkonen <tuomov@iki.fi>
parents:
diff changeset
49 }

mercurial