propagate

Function propagate 

Source
pub fn propagate<const W: usize, T>(
    circuit: &Circuit<W>,
    sum: PauliSum<W>,
    policy: &T,
    direction: Direction,
) -> PauliSum<W>
where T: TruncationPolicy<W> + ?Sized,
Expand description

Propagate sum through circuit under policy.

Under Direction::Heisenberg the channels run in reverse through Channel::apply_adjoint. The sum stays bucketed throughout, so stepping one sum through repeated calls costs only the layers.

§Panics

If a channel’s preparation declines: its support exceeds MAX_LOCAL_SUPPORT (two qubits), which only PauliRotation may, or it writes outside its declared support.

§Progress logging

Through the log facade under the target paulistrings::propagate: INFO on entry and exit, DEBUG once per layer, named by Channel::debug_name. Every driver writes the same lines, ending in the partitions they speak for (1 partition here).