Struct stack_graphs::c::sg_forward_path_stitcher [−][src]
#[repr(C)]pub struct sg_forward_path_stitcher {
pub previous_phase_paths: *const sg_path,
pub previous_phase_paths_length: usize,
}
Expand description
Implements a phased forward path-stitching algorithm.
Our overall goal is to start with a set of seed paths, and to repeatedly extend each path by appending a compatible partial path onto the end of it. (If there are multiple compatible partial paths, we append 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
paths that need to be processed. As we extend those paths, we add the extensions to the set of
paths to process in the next phase. Phases are processed one at a time, each time you invoke
sg_forward_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 paths that were discovered during that phase. That gives you a
chance to add to the sg_partial_path_database
all of the partial paths that we might need to
extend those paths with before invoking the next phase.
Fields
previous_phase_paths: *const sg_path
The new candidate paths that were discovered in the most recent phase.
previous_phase_paths_length: usize
The number of new candidate paths that were discovered in the most recent phase. If this is 0, then the path stitching algorithm is complete.