§
    ‹Štj3  ã                   óP  — 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 d dl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d„Zd„ Z	 dde j        j        deee j        j        f         dz  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          dz  dedz  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)ÚTypeVar)Ú	ParamSpec)ÚNumberÚdecomposition_tableÚfunction_name_setÚ_TÚ_PÚreturnc                 ó  — t           j        }t          j        | ¦  «        }|j                             ¦   «         D ],}|j        |k    rt          d|j        › d| j        › �¦  «        ‚Œ-|j        |k    rt          d| j        › �¦  «        ‚d S )NzNo signature on param z for function z"No return annotation for function )	ÚinspectÚ_emptyÚ	signatureÚ
parametersÚvaluesÚ
annotationÚAssertionErrorÚnameÚreturn_annotation)ÚfÚinspect_emptyÚsigÚparams       úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/jit/_decompositions.pyÚ(check_decomposition_has_type_annotationsr      s£   € Ý”N€MÝ
Ô
˜AÑ
Ô
€CØ”×&Ò&Ñ(Ô(ð ð ˆØÔ˜}Ò,Ð,Ý ØK¨¬ÐKÐKÀ1Ä6ÐKÐKñô ð ð -ð
 Ô Ò-Ð-ÝÐJÀ!Ä&ÐJÐJÑKÔKÐKð .Ð-ó    c                 óø  — | j         }|j         }t          |¦  «        t          |¦  «        k    rdS t          |                     ¦   «         |                     ¦   «         ¦  «        D ]†\  }}t          j        }dD ]O}|dk    r!|j        dk    rt          j        dd¬¦  «         t          ||¦  «        t          ||¦  «        k    r  dS ŒP|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é   )Ú
stacklevel)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   $   s0  € Ø%Ô0€MØÔ'€Iå
ˆ=ÑÔ�S ™^œ^Ò+Ð+Øˆuå"% m×&:Ò&:Ñ&<Ô&<¸i×>NÒ>NÑ>PÔ>PÑ"QÔ"Qð ð Ñˆ�hõ
  œˆØ+ð 	ð 	ˆEØ˜Šˆ <Ô#4¸Ò#>Ð#>Ý”ØJÐWXðñ ô ð õ �| UÑ+Ô+­w°xÀÑ/GÔ/GÒGÐGØ�u�u�uð Hð &Ô-ˆØÔ%ˆ
ð ˜]Ò*Ð*¨z¸]Ò/JÐ/JØ Ò+Ð+Ø�u�uøàÔ.°,Ô2PÒPÐPr   Úaten_opÚregistryc                 ó|   ‡ ‡— dt           t          t          f         dt           t          t          f         fˆ ˆfd„}|S )Nr   r   c                 ó†  •— ‰€t           Št          ‰t          j        j        ¦  «        st          dt          ‰¦  «        › �¦  «        ‚| j        t          v rt          d| j        › �¦  «        ‚t           	                    | j        ¦  «         t          j
                             | ¦  «        }t          j                             |j        ¦  «         t          d¦  «        D ]J}t          j                             |j        ¦  «         t          j                             |j        ¦  «         ŒK|‰t%          ‰j        ¦  «        <   | S )Nz'Expected aten_op to be OpOverload, got zDuplicated function name r    )r   Ú
isinstanceÚtorchÚ_opsÚ
OpOverloadr   ÚtypeÚ__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_decoratorI   s  ø€ àÐÝ*ˆHå˜'¥5¤:Ô#8Ñ9Ô9ð 	Ý ØI½$¸w¹-¼-ÐIÐIñô ð ð
 Œ:Õ*Ð*Ð*Ý Ð!I¸Q¼ZÐ!IÐ!IÑJÔJÐJÝ×Ò˜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   rI   s   `` r   Úregister_decompositionrJ   E   sO   øø€ ð¥8­Bµ¨FÔ#3ð ½ÅÅRÀÔ8Hð ð ð ð ð ð ð ð2 #Ð"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)r6   ÚtupleÚlistr"   ÚnumelÚshapeÚatenÚmeanÚsumÚfloatÚintÚRuntimeErrorÚmax)rK   rL   rM   rN   Údim_iÚnrV   ÚsubÚsqrW   Údenoms              r   Úvar_decompositionra   h   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 )NrP   r   )rM   )ra   )rK   rb   s     r   Úvarrd   �   s   € å˜U°XÐ0D°°À1ÐFÑFÔFÐFr   )r   N)N)NNF)T)$r7   r   ÚopsrU   r   r$   Úcollections.abcr   Útypingr   Útyping_extensionsr   Útorch.typesr   r   ÚdictrE   r=   ÚScriptFunctionÚ__annotations__Úsetr	   r
   r   r   r1   r8   r9   rJ   rd   rM   rR   rY   Úboolra   r'   © r   r   ú<module>rp      sW  ðà €€€€Ø Ð Ð Ð Ð Ð ð „y„~€Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'à Ð Ð Ð Ð Ð ð <>Ð �T˜#˜uœyÔ7Ð7Ô8Ð =Ð =Ñ =Ø!˜c™eœeÐ �3�s”8Ð #Ð #Ñ #à€WˆT�]„]€Ø€Yˆt�_„_€ð
Lð 
Lð 
Lð 
LðQð Qð QðF <@ð#ð #ØŒZÔ"ð#à�3˜œ	Ô0Ð0Ô1°DÑ8ð#ð ˆx˜˜B˜ÔÐ  (¨2¨r¨6Ô"2Ð2Ô3ð#ð #ð #ð #ðF Ð˜œÔ+Ñ,Ô,ð !Ø $Øð	!ð !Øð!à	ˆcŒ�TÑ	ð!ð ˜‘ð!ð ð	!ð
 ð!ð !ð !ñ -Ô,ð!ðH Ð˜œÔ(Ñ)Ô)ðGð Gˆvð G ð G°ð Gð Gð Gñ *Ô)ðGð Gð Gr   