
    ΅i;                         S SK r S SKrS SKrS SKrS rS r\ R                  S 5       r\ R                  SS j5       r\ R                  S	S j5       r	S
S jr
g)    Nc                      [         R                  R                  R                  5       (       d  g[         R                  R                  R                  5       (       d  ggNFT)torchbackendsmkldnnis_availableops_is_mkldnn_bf16_supported     _/home/james-whalen/.local/lib/python3.13/site-packages/torch/testing/_internal/common_mkldnn.pybf32_is_not_fp32r   
   s=    >>  --//995577r   c                      [         R                  R                  R                  5       (       d  g[         R                  R
                  R                  5       (       d  ggr   )r   r   r   r   _C_cpu_is_amx_fp16_supportedr   r   r   tf32_is_not_fp32r      s;    >>  --//88==//11r   c               #     #    [         R                  R                  R                  R                  n [         R                  R                  R
                  R                  n S[         R                  R                  R                  l        S[         R                  R                  R
                  l        S v   U [         R                  R                  R                  l        U[         R                  R                  R
                  l        g ! U [         R                  R                  R                  l        U[         R                  R                  R
                  l        f = f7f)Nieee)r   r   r   matmulfp32_precisionconv)old_matmul_precisionold_conv_precisions     r   reduced_f32_offr      s      >>0077FF..33BBG6<$$34:""16J$$34F""1 7K$$34F""1s!   AE  AD	 6AE 	AEE c              #      #    [         R                  R                  R                  R                  n[         R                  R                  R
                  R                  nU R                  n S[         R                  R                  R                  l        S[         R                  R                  R
                  l        Xl        S v   U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        g ! U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        f = f7f)Nbf16r   r   r   r   r   r   	precision)selfbf32_precisionr   r   old_precisions        r   bf32_onr#   '         >>0077FF..33BBNNM'6<$$34:""1'6J$$34F""1& 7K$$34F""1&!   A)E>,AD! AE>!AE;;E>c              #      #    [         R                  R                  R                  R                  n[         R                  R                  R
                  R                  nU R                  n S[         R                  R                  R                  l        S[         R                  R                  R
                  l        Xl        S v   U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        g ! U[         R                  R                  R                  l        U[         R                  R                  R
                  l        X@l        f = f7f)Ntf32r   )r    tf32_precisionr   r   r"   s        r   tf32_onr)   7   r$   r%   c                 >   ^ ^^^^ S mU 4S jmU4S jmUUU4S jnU$ )Nc                 Z    [        5          U" 5         S S S 5        g ! , (       d  f       g = fN)r   )r    function_calls     r   with_reduced_f32_disabled9reduced_f32_on_and_off.<locals>.with_reduced_f32_disabledL   s    O s   
*c                 `   > [        U T5         U" 5         S S S 5        g ! , (       d  f       g = fr,   )r#   )r    r-   r!   s     r   with_bf32_enabled1reduced_f32_on_and_off.<locals>.with_bf32_enabledP       T>*O +**   
-c                 `   > [        U T5         U" 5         S S S 5        g ! , (       d  f       g = fr,   )r)   )r    r-   r(   s     r   with_tf32_enabled1reduced_f32_on_and_off.<locals>.with_tf32_enabledT   r3   r4   c                    >^ ^ [         R                  " T 5      R                  n[        UR	                  5       5      m[
        R                  " T 5      UU UUU4S j5       nU$ )Nc                    >^ TR                  [        TU SS95        SnST;   a/  U=(       a&    [        R                  " TS   5      R                  S:H  nST;   a  U=(       a    TS   [        R
                  :H  nU=(       a
    [        5       nU=(       a
    [        5       nU(       d  U(       aC  T" TS   UU4S j5        U(       a  T" TS   UU4S	 j5        U(       a  T	" TS   UU4S
 j5        g g T" S0 TD6  g )NF)strictTdevicecpudtyper    c                     > T " S0 TD6$ Nr   r   fkwargss   r   <lambda>Jreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>g   s    !+f+r   c                     > T " S0 TD6$ r?   r   r@   s   r   rC   rD   i       ak&kr   c                     > T " S0 TD6$ r?   r   r@   s   r   rC   rD   k   rF   r   r   )updatezipr   r;   typefloatr   r   )
argsrB   cond	bf32_cond	tf32_cond	arg_namesrA   r1   r.   r6   s
    `   r   wrapped8reduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped\   s    MM#ie<=D6!NfX.>!?!D!D!M& @EKK!?3!1!3I3!1!3II)&.:MN%fVn6IJ%fVn6IJ  Fr   )inspect	signature
parameterstuplekeys	functoolswraps)rA   paramsrQ   rP   r1   r.   r6   s   `  @r   wrapper'reduced_f32_on_and_off.<locals>.wrapperX   sP    ""1%00&++-(				 	 
	$ r   r   )r!   r(   r[   r1   r.   r6   s   `` @@@r   reduced_f32_on_and_offr]   K   s    2 Nr   ){Gz?)h㈵>)r^   r_   )
contextlibrX   rS   r   r   r   contextmanagerr   r#   r)   r]   r   r   r   <module>rb      sr        	G 	G ' ' ' '&&r   