Function differential_dataflow::algorithms::graphs::propagate::propagate_core[][src]

pub fn propagate_core<G, N, L, Tr, F, R>(
    edges: &Arranged<G, Tr>,
    nodes: &Collection<G, (N, L), R>,
    logic: F
) -> Collection<G, (N, L), R> where
    G: Scope,
    G::Timestamp: Lattice + Ord,
    N: ExchangeData + Hash,
    R: ExchangeData + Abelian,
    R: Mul<R, Output = R>,
    R: From<i8>,
    L: ExchangeData,
    Tr: TraceReader<Key = N, Val = N, Time = G::Timestamp, R = R> + Clone + 'static,
    Tr::Batch: BatchReader<N, N, G::Timestamp, Tr::R> + 'static,
    Tr::Cursor: Cursor<N, N, G::Timestamp, Tr::R> + 'static,
    F: Fn(&L) -> u64 + Clone + 'static, 

Propagates labels forward, retaining the minimum label.

This variant takes a pre-arranged edge collection, to facilitate re-use, and allows a method logic to specify the rounds in which we introduce various labels. The output of `logic should be a number in the interval [0,64],