src/bisection_tree/btfn.rs

branch
dev
changeset 125
25b6c8b20d1b
parent 124
6aa955ad8122
child 150
c4e394a9c84c
equal deleted inserted replaced
124:6aa955ad8122 125:25b6c8b20d1b
836 // the queue. If the queue empties as a result of that, the thread goes to wait for other threads 836 // the queue. If the queue empties as a result of that, the thread goes to wait for other threads
837 // to produce results. Since some node had a node whose lower bound was above the `glb`, eventually 837 // to produce results. Since some node had a node whose lower bound was above the `glb`, eventually
838 // there should be a result, or new nodes above the `glb` inserted into the queue. Then the waiting 838 // there should be a result, or new nodes above the `glb` inserted into the queue. Then the waiting
839 // threads can also continue processing. If, however, numerical inaccuracy destroyes the `glb`, 839 // threads can also continue processing. If, however, numerical inaccuracy destroyes the `glb`,
840 // the queue may run out, and we get “Refiner failure”. 840 // the queue may run out, and we get “Refiner failure”.
841 impl<F: Float, G, BT, const N: usize> MinMaxMapping<N, F> for BTFN<F, G, BT, N> 841 impl<F: Float, G, BT, const N: usize> MinMaxMapping<Loc<N, F>, F> for BTFN<F, G, BT, N>
842 where 842 where
843 BT: BTSearch<N, F, Agg = Bounds<F>>, 843 BT: BTSearch<N, F, Agg = Bounds<F>>,
844 G: SupportGenerator<N, F, Id = BT::Data>, 844 G: SupportGenerator<N, F, Id = BT::Data>,
845 G::SupportType: Mapping<Loc<N, F>, Codomain = F> + LocalAnalysis<F, Bounds<F>, N>, 845 G::SupportType: Mapping<Loc<N, F>, Codomain = F> + LocalAnalysis<F, Bounds<F>, N>,
846 Cube<N, F>: P2Minimise<Loc<N, F>, F>, 846 Cube<N, F>: P2Minimise<Loc<N, F>, F>,

mercurial