
    z	i                     N    S r SSKJr  SSKJr  SSKJr  SSKJr   " S S\5      r	g)	zSynthesize LinearFunctions.    )TransformationPass)
DAGCircuit)PermutationGate)CircuitErrorc                   *    \ rS rSrSrS\S\4S jrSrg)LinearFunctionsToPermutations   z8Promotes linear functions to permutations when possible.dagreturnc                     UR                  S5       H:  n UR                  R                  5       n[	        U5      nUR                  X$5        M<     U$ ! [         a     MM  f = f)zRun the LinearFunctionsToPermutations pass on `dag`.
Args:
    dag: input dag.
Returns:
    Output dag with LinearFunctions synthesized.
linear_function)named_nodesoppermutation_patternr   r   substitute_node)selfr
   nodepatternpermutations        w/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/transpiler/passes/synthesis/linear_functions_synthesis.pyrun!LinearFunctionsToPermutations.run   sd     OO$56D''557 *'2K2 7 
   s   A
A A  N)__name__
__module____qualname____firstlineno____doc__r   r   __static_attributes__r       r   r   r      s    Bz j r    r   N)
r   qiskit.transpiler.basepassesr   qiskit.dagcircuit.dagcircuitr   qiskit.circuit.libraryr   qiskit.circuit.exceptionsr   r   r   r    r   <module>r%      s#    " ; 3 2 2$6 r    