
    z	if                     J    S r SSKJr  SSKJr  SSKJr  SSKJr  S\S\4S jr	g	)
zPass manager for optimization level 0, providing no explicit optimization.

Level 0 pass manager: no explicit optimization other than mapping to backend.
    )PassManagerConfig)StagedPassManager)common)PassManagerStagePluginManagerpass_manager_configreturnc           
         [        5       nU R                  nU R                  nU R                  nU R                  =(       d    SnU R
                  =(       d    SnU R                  =(       d    SnU R                  =(       d    SnU R                  =(       d    Sn	U R                  =(       d    Sn
U R                  nUR                  SXpSS9nU(       d  U(       a  UR                  SX`SS9nUnOSnSnUR                  SXSS9nUR                  SXSS9n[        R                  " UUUU	U
UUS	9nUR                  S
XPSS9nUR                  SXSS9n[        UUUUUUUS9$ )aY  Level 0 pass manager: no explicit optimization other than mapping to backend.

This pass manager applies the user-given initial layout. If none is given, a trivial
layout consisting of mapping the i-th virtual qubit to the i-th physical qubit is used.
Any unused physical qubit is allocated as ancilla space.

The pass manager then unrolls the circuit to the desired basis, and transforms the
circuit to match the coupling map.

Args:
    pass_manager_config: configuration of the pass manager.

Returns:
    a level 0 pass manager.

Raises:
    TranspilerError: if the passmanager config is invalid.
defaultroutingr   )optimization_levellayoutNtranslation
scheduling)layout_methodrouting_methodtranslation_methodoptimization_methodscheduling_methodbasis_gatestargetinitoptimization)pre_initr   r   r   r   r   r   )r   r   coupling_mapinitial_layoutinit_methodr   r   r   r   r   r   get_passmanager_stager   #generate_control_flow_options_checkr   )r   plugin_managerr   r   r   r   r   r   r   r   r   r   
routing_pmr   r   r   schedr   r   r   s                       f/home/james-whalen/.local/lib/python3.13/site-packages/qiskit/transpiler/preset_passmanagers/level0.pylevel_0_pass_managerr#      s   & 34N%11K&33L(77N%11>YK'55BM(77D9N,??L9-AANY+==J ''F  55>1 6 J
 ~55mQ 6 
  66)ST 7 K 00'QR 1 E 99#%-/+H //Q 0 D "77+UV 8 L !     N)
__doc__$qiskit.transpiler.passmanager_configr   qiskit.transpiler.passmanagerr   %qiskit.transpiler.preset_passmanagersr   ,qiskit.transpiler.preset_passmanagers.pluginr   r#    r$   r"   <module>r+      s3   
 C ; 8
N.? NDU Nr$   