Struct stack_graphs::c::sg_forward_partial_path_stitcher [−][src]
#[repr(C)]pub struct sg_forward_partial_path_stitcher {
pub previous_phase_partial_paths: *const sg_partial_path,
pub previous_phase_partial_paths_length: usize,
}
Expand description
Implements a phased forward partial path stitching algorithm.
Our overall goal is to start with a set of seed partial paths, and to repeatedly extend each partial path by concatenating another, compatible partial path onto the end of it. (If there are multiple compatible partial paths, we concatenate each of them separately, resulting in more than one extension for the current path.)
We perform this processing in phases. At the start of each phase, we have a current set of
partial paths that need to be processed. As we extend those partial paths, we add the
extensions to the set of partial paths to process in the next phase. Phases are processed
one at a time, each time you invoke sg_forward_partial_path_stitcher_process_next_phase
.
After each phase has completed, the previous_phase_paths
and previous_phase_paths_length
fields give you all of the partial paths that were discovered during that phase. That gives
you a chance to add to the sg_partial_path_database
all of the other partial paths that we
might need to extend those partial paths with before invoking the next phase.
Fields
previous_phase_partial_paths: *const sg_partial_path
The new candidate partial paths that were discovered in the most recent phase.
previous_phase_partial_paths_length: usize
The number of new candidate partial paths that were discovered in the most recent phase. If this is 0, then the partial path stitching algorithm is complete.