§
    ©²Åj°  ã                   óh  — U d dl Z d dl mZ e j        j        Zd dlZd dlZd dlmZmZm	Z	m
Z
mZmZ d dlmZ d dlmZ i Zeee j        j        f         ed<    e¦   «         Zee         ed<    ed¦  «        Z ed	¦  «        Zd
„ Zd„ Z	 dde j        j        de
eee j        j        f                  deeeef         geeef         f         fd„Z eej        j         ¦  «        	 	 	 ddede
e	e!                  de
e         de"def
d„¦   «         Z# eej        j$        ¦  «        ddede"defd„¦   «         ZdS )é    N)ÚTensor)ÚCallableÚDictÚListÚOptionalÚSetÚTypeVar)Ú	ParamSpec)ÚNumberÚdecomposition_tableÚfunction_name_setÚ_TÚ_Pc                 ó  — t           j        }t          j        | ¦  «        }|j                             ¦   «         D ]'}|j        |k    sJ d|j        › d| j        › �¦   «         ‚Œ(|j        |k    sJ d| j        › �¦   «         ‚d S )NzNo signature on param z for function z"No return annotation for function )ÚinspectÚ_emptyÚ	signatureÚ
parametersÚvaluesÚ
annotationÚnameÚreturn_annotation)ÚfÚinspect_emptyÚsigÚparams       úJC:\Projects\Historical\venv\Lib\site-packages\torch/jit/_decompositions.pyÚ(check_decomposition_has_type_annotationsr      sŸ   € Ý”N€MÝ
Ô
˜AÑ
Ô
€CØ”×&Ò&Ñ(Ô(ð Gð GˆàÔ Ò-Ð-Ð-ØF E¤JÐFÐF¸a¼fÐFÐFñ .Ô-Ð-Ð-ð 	Ô Ò.Ð.Ð.Ø4¨A¬FÐ4Ð4ñ 	/Ô.Ð.Ð.Ð.ó    c                 óô  — | j         }|j         }t          |¦  «        t          |¦  «        k    rdS t          |                     ¦   «         |                     ¦   «         ¦  «        D ]„\  }}t          j        }dD ]M}|dk    r|j        dk    rt          j        d¦  «         t          ||¦  «        t          ||¦  «        k    r  dS ŒN|j
        }|j
        }	||k    r|	|k    r	||	k    r dS Œ…| j        |j        k    S )NF)r   r   r   Úselfz4PyTorch uses 'input' instead of 'self' on public api)r   ÚlenÚzipr   r   r   r   ÚwarningsÚwarnÚgetattrÚdefaultr   )
Údecomposition_sigÚtorch_op_sigÚdecomp_paramsÚ	op_paramsÚdecomp_paramÚop_paramr   ÚfieldÚdecomp_defaultÚ
op_defaults
             r   Úsignatures_matchr1   #   s   € Ø%Ô0€MØÔ'€Iå
ˆ=ÑÔ�S ™^œ^Ò+Ð+Øˆuå"% m×&:Ò&:Ñ&<Ô&<¸i×>NÒ>NÑ>PÔ>PÑ"QÔ"Qð ð Ñˆ�hõ
  œˆØ+ð 	ð 	ˆEØ˜Šˆ <Ô#4¸Ò#>Ð#>Ý”ÐTÑUÔUÐUå�| UÑ+Ô+­w°xÀÑ/GÔ/GÒGÐGØ�u�u�uð Hð &Ô-ˆØÔ%ˆ
ð ˜]Ò*Ð*¨z¸]Ò/JÐ/JØ Ò+Ð+Ø�u�uøàÔ.°,Ô2PÒPÐPr   Úaten_opÚregistryÚreturnc                 ó|   ‡ ‡— dt           t          t          f         dt           t          t          f         fˆ ˆfd„}|S )Nr   r4   c                 óB  •— ‰€t           Št          ‰t          j        j        ¦  «        sJ ‚| j        t          vsJ d| j        › �¦   «         ‚t                               | j        ¦  «         t          j         	                    | ¦  «        }t          j
                             |j        ¦  «         t          d¦  «        D ]J}t          j
                             |j        ¦  «         t          j
                             |j        ¦  «         ŒK|‰t!          ‰j        ¦  «        <   | S )NzDuplicated function name é   )r   Ú
isinstanceÚtorchÚ_opsÚ
OpOverloadÚ__name__r   ÚaddÚjitÚscriptÚ_CÚ_jit_pass_inlineÚgraphÚrangeÚ_jit_pass_peepholeÚ_jit_pass_constant_propagationÚstrÚ_schema)r   Úscripted_funcÚ_r2   r3   s      €€r   Údecomposition_decoratorz7register_decomposition.<locals>.decomposition_decoratorF   sý   ø€ àÐÝ*ˆHå˜'¥5¤:Ô#8Ñ9Ô9Ð9Ð9Ð9ð ŒJÕ/Ð/Ð/Ð/Ø3 q¤zÐ3Ð3ñ 0Ô/Ð/å×Ò˜aœjÑ)Ô)Ð)åœ	×(Ò(¨Ñ+Ô+ˆÝŒ×!Ò! -Ô"5Ñ6Ô6Ð6å�q‘”ð 	Ið 	IˆAÝŒH×'Ò'¨Ô(;Ñ<Ô<Ð<ÝŒH×3Ò3°MÔ4GÑHÔHÐHÐHà)6ˆ•�W”_Ñ%Ô%Ñ&Øˆr   )r   r   r   )r2   r3   rJ   s   `` r   Úregister_decompositionrK   B   sO   øø€ ð¥8­Bµ¨FÔ#3ð ½ÅÅRÀÔ8Hð ð ð ð ð ð ð ð. #Ð"r   FÚinputÚdimÚ
correctionÚkeepdimc                 óV  — |€g }|}t          |t          t          f¦  «        r(t          |¦  «        dk    r|                      ¦   «         }nd}|D ]}|| j        |         z  }Œt                               | |d¦  «        }| |z
  }||z  }t                               |||¦  «        }	|€t          |dz
  ¦  «        }
n_t          |t          ¦  «        rt          ||z
  ¦  «        }
n7t          |t          ¦  «        rt          |¦  «        |z
  }
nt          d¦  «        ‚|	t          d|
¦  «        z  S )Nr   é   Tzcorrection must be int or float)r8   ÚtupleÚlistr"   ÚnumelÚshapeÚatenÚmeanÚsumÚfloatÚintÚRuntimeErrorÚmax)rL   rM   rN   rO   Údim_iÚnrW   ÚsubÚsqrX   Údenoms              r   Úvar_decompositionrb   c   s-  € ð €{ØˆØˆå�#��t�}Ñ%Ô%ð $­#¨c©(¬(°aª-¨-Ø�KŠK‰MŒMˆˆàˆØð 	$ð 	$ˆEØ�”˜UÔ#Ñ#ˆAˆAå�9Š9�U˜C Ñ&Ô&€DØ
�$‰,€CØ	ˆs‰€BÝ
�(Š(�2�s˜GÑ
$Ô
$€CàÐÝ�a˜!‘e‘”ˆˆå�j¥#Ñ&Ô&ð 	BÝ˜!˜j™.Ñ)Ô)ˆEˆEÝ˜
¥EÑ*Ô*ð 	BÝ˜!‘H”H˜zÑ)ˆEˆEåÐ@ÑAÔAÐAà•�Q˜‘”ÑÐr   TÚunbiasedc                 ó,   — t          | |rdnd¬¦  «        S )NrQ   r   )rN   )rb   )rL   rc   s     r   Úvarre   ‡   s   € å˜U°XÐ0D°°À1ÐFÑFÔFÐFr   )N)NNF)T)%r9   r   ÚopsrV   r   r$   Útypingr   r   r   r   r   r	   Útyping_extensionsr
   Útorch.typesr   r   rF   r>   ÚScriptFunctionÚ__annotations__Úsetr   r   r   r   r1   r:   r;   rK   re   rN   rZ   Úboolrb   r'   © r   r   ú<module>ro      s[  ðà €€€€Ø Ð Ð Ð Ð Ð ð „y„~€Ø €€€Ø €€€Ø ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ð ?Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð ð <>Ð �T˜#˜uœyÔ7Ð7Ô8Ð =Ð =Ñ =Ø!˜c™eœeÐ �3�s”8Ð #Ð #Ñ #à€WˆT�]„]€Ø€Yˆt�_„_€ð
5ð 
5ð 
5ðQð Qð QðB ?Cð#ð #ØŒZÔ"ð#à�t˜C ¤Ô!9Ð9Ô:Ô;ð#ð ˆx˜˜B˜ÔÐ  (¨2¨r¨6Ô"2Ð2Ô3ð#ð #ð #ð #ðB Ð˜œÔ+Ñ,Ô,ð  $Ø#'Øð	 ð  Øð à	�$�s”)Ô	ð ð ˜Ô ð ð ð	 ð
 ð ð  ð  ñ -Ô,ð ðF Ð˜œÔ(Ñ)Ô)ðGð Gˆvð G ð G°ð Gð Gð Gñ *Ô)ðGð Gð Gr   