cirq.contrib.acquaintance.gates.acquaint_and_shift

Acquaints and shifts a pair of lists of qubits.

The first part is acquainted with every qubit individually in the second part, and vice versa. Operations are grouped into several layers:

* prior_interstitial: The first layer of acquaintance gates.
* prior: The combination of acquaintance gates and swaps that acquaints
    the inner halves.
* intra: The shift gate.
* post: The combination of acquaintance gates and swaps that acquaints
    the outer halves.
* posterior_interstitial: The last layer of acquaintance gates.

parts The two lists of qubits to acquaint.
layers The layers to put gates into.
acquaintance_size The number of qubits to acquaint at a time. If None, after each pair of parts is shifted the union thereof is acquainted.
swap_gate The gate used to swap logical indices.
mapping The mapping from qubits to logical indices. Used to keep track of the effect of inside-acquainting swaps.