fn generic_conditional_field()

in Rust/src/rcf.rs [392:442]


    fn generic_conditional_field(
        &self,
        positions: &[usize],
        point: &[f32],
        centrality: f64,
        ignore_mass: usize,
        score_seen: fn(usize, usize) -> f64,
        score_unseen: fn(usize, usize) -> f64,
        damp: fn(usize, usize) -> f64,
        normalizer: fn(f64, usize) -> f64,
    ) -> Vec<usize> {
        let new_point = self.point_store.get_shingled_point(point);
        let new_positions = self.point_store.get_missing_values(positions);
        let mut list: Vec<usize> = if self.parallel_enabled {
            self.sampler_plus_trees
                .par_iter()
                .map(|m| {
                    m.conditional_field(
                        &new_positions,
                        centrality,
                        &new_point,
                        &self.point_store,
                        ignore_mass,
                        score_seen,
                        score_unseen,
                        damp,
                        normalizer,
                    )
                })
                .collect()
        } else {
            self.sampler_plus_trees
                .iter()
                .map(|m| {
                    m.conditional_field(
                        &new_positions,
                        centrality,
                        &new_point,
                        &self.point_store,
                        ignore_mass,
                        score_seen,
                        score_unseen,
                        damp,
                        normalizer,
                    )
                })
                .collect()
        };
        list.sort();
        list
    }