§
    9˜ºh?  ã                  ód  — d dl mZ ddlmZ ddlmZ ddlmZ dPd	„ZdPd
„Zej	        ed„ ¦   «         ¦   «         Z
ej	        e ej        d¦  «        d„ ¦   «         ¦   «         ¦   «         Zej	        e ej        d¦  «        dQd„¦   «         ¦   «         ¦   «         Zej	        edRd„¦   «         ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zej	        e ej        ddd¬¦  «        dSd„¦   «         ¦   «         ¦   «         Zej	        e ej        d d!¬"¦  «        dTd#„¦   «         ¦   «         ¦   «         Zed$„ ¦   «         Zed%„ ¦   «         Zed&„ ¦   «         Zed'„ ¦   «         Zej	        e ej        d(dd¬¦  «        dSd)„¦   «         ¦   «         ¦   «         Zej	        e ej        d*d!¬"¦  «        dTd+„¦   «         ¦   «         ¦   «         Zed,„ ¦   «         ZdUd/„Z ej	        e ej        d0d.¬1¦  «        dVdWd2„¦   «         ¦   «         ¦   «         Z!ed3„ ¦   «         Z"ej	        e ej        d4¦  «        dXd5„¦   «         ¦   «         ¦   «         Z#ed6„ ¦   «         Z$ej	        e ej        d7¦  «        dRd8„¦   «         ¦   «         ¦   «         Z%ej	        e ej&        d9d.¬1¦  «        dYdWd:„¦   «         ¦   «         ¦   «         Z'ed;„ ¦   «         Z(ej	        e ej&        d<¦  «        dZd=„¦   «         ¦   «         ¦   «         Z)ed[d@„¦   «         Z*edPdA„¦   «         Z+ed\dD„¦   «         Z,ed]dE„¦   «         Z-eddej.        fd^dI„¦   «         Z/edej.        fd_dJ„¦   «         Z0ed`dadK„¦   «         Z1edej.        fd_dL„¦   «         Z2dM„ Z3ej	        ed`dN„¦   «         ¦   «         Z4edO„ ¦   «         Z5dS )bé    )Úannotationsé   )Újité   )Úcore)ÚmathÚiúcore.constexprc                óŒ   — d}t          j        | ¦  «        j        }|dk    r|dz  }|dz  }|dk    °t          j        |¦  «        S )Nr   r   )r   Ú	constexprÚvalue)r	   Úlog2Úns      ú`/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/triton/language/standard.pyÚ_log2r   
   sQ   € Ø€DÝŒ�qÑÔÔ€AØ
ˆaŠ%ˆ%Ø	ˆa‰ˆØ�‰	ˆð ˆaŠ%ˆ%õ Œ>˜$ÑÔÐó    c                óX   — | j         }t          j        ||dz
  z  dk    o|dk    ¦  «        S ©Nr   r   )r   r   r   )r	   r   s     r   Ú_is_power_of_twor      s/   € Ø	Œ€AÝŒ>˜1  A¡™;¨1Ò,Ð7°°a²Ñ8Ô8Ð8r   c                ó   — | |z   dz
  |z  S )z§
    Computes the ceiling division of :code:`x` by :code:`div`

    :param x: the input number
    :type x: Block
    :param div: the divisor
    :type div: Block
    r   © )ÚxÚdivs     r   Úcdivr      s   € ð �‰G�a‰K˜CÑÐr   Úsigmoidc                ó8   — ddt          j        |  ¦  «        z   z  S )Nr   )r   Úexp)r   s    r   r   r   +   s   € ð �•D”H˜a˜R‘L”LÑ Ñ!Ð!r   ÚsoftmaxNFc                ó²   — |€d}n|}| t          | ||¬¦  «        z
  }t          j        |¦  «        }t          |||¬¦  «        }t          j        |||¦  «        S )Nr   ©Ú	keep_dims)Úmaxr   r   ÚsumÚfdiv)r   Údimr!   Úieee_roundingÚ_dimÚzÚnumÚdens           r   r   r   2   sc   € ð €{Ø ˆˆà"ˆØ	�C��4 9Ð-Ñ-Ô-Ñ-€AÝ
Œ(�1‰+Œ+€CÝ
ˆc�4 9Ð
-Ñ
-Ô
-€CÝŒ9�S˜#˜}Ñ-Ô-Ð-r   c                ó<   — t          j        | | j        g|¬¦  «        S )zn
    Returns a contiguous flattened view of :code:`x`.

    :param x: the input tensor
    :type x: Block
    )Úcan_reorder)r   ÚreshapeÚnumel)r   r,   s     r   Úravelr/   @   s   € õ Œ<˜˜AœG˜9°+Ð>Ñ>Ô>Ð>r   c                óŒ   — | |z  |z   }||z  }||z  }||z  }t          j        ||z
  |¦  «        }||z  }|||z  z   }	||z  }
|	|
fS )aÝ  
    Transforms the indices of a row-major `size_i * size_j` matrix into
    the indices of a column-major matrix for each group of `size_g` rows.

    For example, for :code:`size_i = size_j = 4` and :code:`size_g = 2`, it will
    transform ::

        [[0 , 1 , 2 , 3 ],
         [4 , 5 , 6 , 7 ],
         [8 , 9 , 10, 11],
         [12, 13, 14, 15]]

    into ::

        [[0, 2,  4 , 6 ],
         [1, 3,  5 , 7 ],
         [8, 10, 12, 14],
         [9, 11, 13, 15]]
    ©r   Úminimum)r	   ÚjÚsize_iÚsize_jÚsize_gÚijÚsize_gjÚgroup_idÚoff_iÚnew_iÚnew_js              r   Ú	swizzle2dr=   L   sn   € ð, 
ˆV‰�a‰€Bð �v‰o€Gà�W‰}€Hà�vÑ€EåŒ\˜& 5™.¨&Ñ1Ô1€Fà	ˆg‰€Bà�B˜‘KÑ€EØ�&‰L€EØ�%ˆ<Ðr   c                ó.   — t          j        | d|¦  «        S )a'  
    Returns a tensor filled with the scalar value 0 for the given :code:`shape` and :code:`dtype`.

    :param shape: Shape of the new array, e.g., (8, 16) or (8, )
    :type shape: tuple of ints
    :param dtype: Data-type of the new array, e.g., :code:`tl.float16`
    :type dtype: DType
    r   )r   Úfull)ÚshapeÚdtypes     r   ÚzerosrB   t   s   € õ Œ9�U˜A˜uÑ%Ô%Ð%r   c                ó6   — t          | j        | j        ¦  «        S )z‹
    Returns a tensor of zeros with the same shape and type as a given tensor.

    :param input: input tensor
    :type input: Tensor
    )rB   r@   rA   )Úinputs    r   Ú
zeros_likerE   �   s   € õ �”˜eœkÑ*Ô*Ð*r   c                ó”   — |r| |k    o||k     }nd}| |k    p|}t          j        || |¦  «        }t          j        |||¦  «        }||fS ©NF©r   Úwhere)	Úvalue1Úindex1Úvalue2Úindex2Útie_break_leftÚtieÚgtÚv_retÚi_rets	            r   Ú_argmax_combinerS   �   sb   € àð Ø˜ÒÐ2 6¨F¢?ˆˆàˆØ	�&ŠÐ	˜C€BÝŒJ�r˜6 6Ñ*Ô*€EÝŒJ�r˜6 6Ñ*Ô*€EØ�%ˆ<Ðr   c                ó(   — t          | |||d¦  «        S ©NT©rS   ©rJ   rK   rL   rM   s       r   Ú_argmax_combine_tie_break_leftrX   ›   ó   € å˜6 6¨6°6¸4Ñ@Ô@Ð@r   c                ó(   — t          | |||d¦  «        S rG   rV   rW   s       r   Ú_argmax_combine_tie_break_fastr[       ó   € å˜6 6¨6°6¸5ÑAÔAÐAr   c                ó,   — t          j        | |¦  «        S ©N)r   Úmaximum©ÚaÚbs     r   Ú_elementwise_maxrc   ¥   ó   € åŒ<˜˜1ÑÔÐr   r_   Úreturn_indicesÚreturn_indices_tie_break_left)Úreturn_indices_argÚtie_break_argTc                ób  — t          j        | ¦  «        } |r<|rt          j        | |t          |¬¦  «        S t          j        | |t          |¬¦  «        S t          j        | j        j        ¦  «        t          j        d¦  «        k     r�t          j        | j                             ¦   «         ¦  «        r |  	                    t           j
        ¦  «        } nB| j                             ¦   «         s
J d¦   «         ‚|  	                    t           j        ¦  «        } t          j        | |t          |¬¦  «        S ©Nr    é    z"Expecting input to be integer type)r   Ú_promote_bfloat16_to_float32Ú_reduce_with_indicesrX   r[   r   rA   Úprimitive_bitwidthÚis_floatingÚtoÚfloat32Úis_intÚint32Úreducerc   ©rD   Úaxisre   rf   r!   s        r   r"   r"   ª   s  € õ
 Ô-¨eÑ4Ô4€EØð OØ(ð 	oÝÔ,¨U°DÕ:XÐdmÐnÑnÔnÐnåÔ,¨U°DÕ:XÐdmÐnÑnÔnÐnåŒ>˜%œ+Ô8Ñ9Ô9½D¼NÈ2Ñ<NÔ<NÒNÐNÝŒ~˜eœk×5Ò5Ñ7Ô7Ñ8Ô8ð -ØŸš¥¤Ñ.Ô.��à”{×)Ò)Ñ+Ô+ÐQÐQÐ-QÑQÔQÐQØŸš¥¤Ñ,Ô,�ÝŒ{˜5 $Õ(8ÀIÐNÑNÔNÐNr   zmaximum indexrN   )rh   c                ó4   — t          | |d||¬¦  «        \  }}|S ©NT)re   rf   r!   )r"   ©rD   rv   rN   r!   Ú_Úrets         r   Úargmaxr|   ¿   s'   € õ �5˜$¨tÐSaÐmvÐwÑwÔw�H€QˆØ€Jr   c                ó”   — |r| |k    o||k     }nd}| |k     p|}t          j        || |¦  «        }t          j        |||¦  «        }||fS rG   rH   )	rJ   rK   rL   rM   rN   rO   ÚltÚ	value_retÚ	index_rets	            r   Ú_argmin_combiner�   Ê   sc   € àð Ø˜ÒÐ2 6¨F¢?ˆˆàˆØ	�&ŠÐ	˜C€BÝ”
˜2˜v vÑ.Ô.€IÝ”
˜2˜v vÑ.Ô.€IØ�iÐÐr   c                ó(   — t          | |||d¦  «        S rU   ©r�   rW   s       r   Ú_argmin_combine_tie_break_leftr„   Ö   rY   r   c                ó(   — t          | |||d¦  «        S rG   rƒ   rW   s       r   Ú_argmin_combine_tie_break_fastr†   Û   r\   r   c                ó,   — t          j        | |¦  «        S r^   r1   r`   s     r   Ú_elementwise_minrˆ   à   rd   r   r2   c                ó>  — t          j        | ¦  «        } |r<|rt          j        | |t          |¬¦  «        S t          j        | |t          |¬¦  «        S t          j        | j        j        ¦  «        dk     r�t          j        | j                             ¦   «         ¦  «        r |  	                    t           j
        ¦  «        } nB| j                             ¦   «         s
J d¦   «         ‚|  	                    t           j        ¦  «        } t          j        | |t          |¬¦  «        S rj   )r   rl   rm   r„   r†   r   rA   rn   ro   rp   rq   rr   rs   rt   rˆ   ru   s        r   ÚminrŠ   å   sý   € õ
 Ô-¨eÑ4Ô4€EØð OØ(ð 	oÝÔ,¨U°DÕ:XÐdmÐnÑnÔnÐnåÔ,¨U°DÕ:XÐdmÐnÑnÔnÐnåŒ>˜%œ+Ô8Ñ9Ô9¸BÒ>Ð>ÝŒ~˜eœk×5Ò5Ñ7Ô7Ñ8Ô8ð -ØŸš¥¤Ñ.Ô.��à”{×)Ò)Ñ+Ô+ÐQÐQÐ-QÑQÔQÐQØŸš¥¤Ñ,Ô,�ÝŒ{˜5 $Õ(8ÀIÐNÑNÔNÐNr   zminimum indexc                ó4   — t          | |d||¬¦  «        \  }}|S rx   )rŠ   ry   s         r   ÚargminrŒ   ú   s'   € õ �˜¨TÐQ_ÐktÐuÑuÔu�F€A€sØ€Jr   c                ó   — | |z   S r^   r   r`   s     r   Ú_sum_combinerŽ     ó   € àˆq‰5€Lr   Úin_dtyperA   c                óð   — t          j        |¦  «        }|�|S d }|                      ¦   «         r| j        dk     rt           j        nd }n-|                      ¦   «         r| j        dk     rt           j        nd }|S )Nrk   )r   Ú_unwrap_if_constexprÚis_int_signedÚint_bitwidthrs   Úis_int_unsignedÚuint32)r�   rA   Ú	out_dtypes      r   Ú_pick_sum_dtyper˜   
  s†   € ÝÔ% eÑ,Ô,€EØÐØˆð €IØ×ÒÑÔð HØ"*Ô"7¸"Ò"<Ð"<•D”J�JÀ$ˆ	ˆ	Ø	×	!Ò	!Ñ	#Ô	#ð HØ#+Ô#8¸2Ò#=Ð#=•D”K�KÀ4ˆ	ØÐr   r#   )Ú	dtype_argc                ó”   — t          | j        |¦  «        }|�|                      |¦  «        } t          j        | |t
          |¬¦  «        S )Nr    )r˜   rA   rp   r   rt   rŽ   )rD   rv   r!   rA   r—   s        r   r#   r#     sE   € õ
 !0°´¸UÑ CÔ C€IàÐØ—’˜Ñ#Ô#ˆÝŒ;�u˜d¥L¸IÐFÑFÔFÐFr   c                ó   — | |z  S r^   r   r`   s     r   Ú_xor_combinerœ   %  r�   r   zxor sumc                óž   — t          j        | j        j                             ¦   «         d¦  «         t          j        | |t          |¬¦  «        S )Nz#xor_sum only supported for integersr    )r   Ústatic_assertÚtypeÚscalarrr   rt   rœ   ©rD   rv   r!   s      r   Úxor_sumr¢   -  sB   € õ 	Ô�u”zÔ(×/Ò/Ñ1Ô1Ð3XÑYÔYÐYÝŒ;�u˜d¥L¸IÐFÑFÔFÐFr   c                ó   — | |z  S r^   r   )r   Úys     r   Ú_or_combiner¥   8  r�   r   Ú	reduce_ofc                óž   — t          j        | j        j                             ¦   «         d¦  «         t          j        | |t          |¬¦  «        S )Nz%reduce_of only supported for integersr    )r   rž   rŸ   r    rr   rt   r¥   r¡   s      r   Ú	reduce_orr¨   =  sB   € õ 	Ô�u”zÔ(×/Ò/Ñ1Ô1Ð3ZÑ[Ô[Ð[ÝŒ;�u˜d¥K¸9ÐEÑEÔEÐEr   Úcumsumc                óº   — t          j        | ¦  «        } t          | j        |¦  «        }|�|                      |¦  «        } t          j        | |t          |¦  «        S r^   )r   rl   r˜   rA   rp   Úassociative_scanrŽ   )rD   rv   ÚreverserA   r—   s        r   r©   r©   H  sS   € õ Ô-¨eÑ4Ô4€EÝ /°´¸UÑ CÔ C€IàÐØ—’˜Ñ#Ô#ˆåÔ  ¨­l¸GÑDÔDÐDr   c                ó   — | |z  S r^   r   r`   s     r   Ú_prod_combiner®   Z  r�   r   Úcumprodc                ób   — t          j        | ¦  «        } t          j        | |t          |¦  «        S r^   )r   rl   r«   r®   )rD   rv   r¬   s      r   r¯   r¯   _  s+   € õ
 Ô-¨eÑ4Ô4€EÝÔ  ¨­m¸WÑEÔEÐEr   Ún_dimsr3   c                ó„   — t          j        dd¦  «        }t          j        |dg| |z
  dz
  z  dgz   dg|z  z   ¦  «        }|S )Nr   r   r   )r   Úaranger-   )r±   r3   Úars      r   Ú
_indicatorrµ   k  sJ   € å	Œ�Q˜Ñ	Ô	€BÝ	Œ�b˜1˜# ¨!¡¨a¡Ñ0°A°3Ñ6¸!¸¸q¹Ñ@Ñ	AÔ	A€BØ€Ir   c                ój  — t          | j        ¦  «        }t          j        | j        j        d¬¦  «        }|                      |d¬¦  «        }|t          ||dz
  |z
  d¦  «        z  }|                     | j        d¬¦  «        }t          ||¦  «        }t          j	        | |k    ||z  k    || ¦  «        }	|	S )NT©ÚbitwidthÚsigned©Úbitcastr   )
r   r.   r   Úget_int_dtyperA   rn   rp   r¢   rµ   rI   )
r   Úflipr	   r±   ÚidtypeÚixÚiyr¤   Úis_rightr{   s
             r   Ú_compare_and_swaprÂ   r  s¯   € õ # 1¤7™^œ^€Fõ Ô¨¬Ô)CÈDÐQÑQÔQ€FØ	
�Šˆf˜dˆÑ	#Ô	#€BØ	�g�b˜& 1™* q™.¨$Ñ/Ô/Ñ	/€BØ
�ŠˆaŒg˜tˆÑ$Ô$€Aõ ˜& !Ñ$Ô$€Hõ Œ*�a˜!’e ¨¡Ò1°1°aÑ
8Ô
8€CØ€Jr   ÚstageÚorderc                ó¸   — |dk    r#t          t          | j        ¦  «        |¦  «        }n|}t          j        |¦  «        D ]}t          | ||dz
  |z
  ¦  «        } Œ| S )zb
    order_type 0 == ascending
    order_type 1 == descending
    order_type 2 == alternating
    r   r   )rµ   r   r.   r   Ústatic_rangerÂ   )r   rÃ   rÄ   r½   r	   s        r   Ú_bitonic_merge_hypercuberÇ   …  se   € ð �‚z€zÝ�% ¤™.œ.¨%Ñ0Ô0ˆˆàˆåÔ˜uÑ%Ô%ð 6ð 6ˆÝ˜a  u¨q¡y°1¡}Ñ5Ô5ˆˆØ€Hr   c                ó²   — t          j        | dgt          | j        ¦  «        z  ¦  «        }t	          |||¦  «        }t          j        || j        ¦  «        } | S )Nr   )r   r-   r   r.   rÇ   r@   )r   rÃ   rÄ   r±   Úhs        r   Ú_bitonic_mergerÊ   ›  sK   € åŒ�Q˜˜�e A¤G™nœnÑ,Ñ-Ô-€AÝ   E¨5Ñ1Ô1€AÝŒ�Q˜œÑ Ô €AØ€Hr   Úkr%   Ú
descendingc                ó  — |€t          | j        ¦  «        dz
  n|}t          j        |t          | j        ¦  «        dz
  k    d¦  «         t	          | j        |         ¦  «        }|€|nt	          |¦  «        }t	          | j        ¦  «        }t          j        | dg|z  ¦  «        }t          j        d|dz   ¦  «        D ]}	t          ||	|	|k     rdn|¦  «        }Œt          j        |dz   |dz   ¦  «        D ]o}	|r)t          |t	          |j        ¦  «        dz
  |z
  ¬¦  «        n(t          |t	          |j        ¦  «        dz
  |z
  ¬¦  «        }t          |||	|k     rdn|¦  «        }Œpt          j        || j        dd…         d|z  gz   ¦  «        } | S )ai  
    Sorts a tensor along a specified dimension.

    :param x: The input tensor to be sorted.
    :type x: Tensor
    :param dim: The dimension along which to sort the tensor. If None, the tensor is sorted along the last dimension. Currently, only sorting along the last dimension is supported.
    :type dim: int, optional
    :param k: the number of top elements to select. If none, assume k = x.shape[dim]
    :type k: int, optional
    :param descending: If set to True, the tensor is sorted in descending order. If set to False, the tensor is sorted in ascending order.
    :type descending: bool, optional
    Nr   ú+only minor dimension is currently supportedr   )rv   éÿÿÿÿ)Úlenr@   r   rž   r   r.   r-   rÆ   rÇ   r"   rŠ   )
r   rË   r%   rÌ   r'   Úlog_nÚlog_kr±   rÉ   r	   s
             r   Ú	sort_implrÓ   £  sœ  € ð 03¨{�3˜qœw™<œ<¨!Ñ+Ð+À€DÝÔ�t�s 1¤7™|œ|¨aÑ/Ò/Ð1^Ñ_Ô_Ð_å! !¤'¨$¤-Ñ0Ô0€EØ%& Y˜E˜EµE¸!±H´H€Eå" 1¤7™^œ^€Fõ 	Œ�Q˜˜˜f™Ñ%Ô%€Aõ Ô˜q %¨!¡)Ñ,Ô,ð Kð KˆÝ$ Q¨°°E²	°	¨1¨1¸zÑJÔJˆˆõ Ô˜u q™y¨%°!©)Ñ4Ô4ð Oð OˆØ9CÐr�C��˜qœw™œ¨!Ñ+¨eÑ3Ð5Ñ5Ô5Ð5ÍÈQÕV[Ð\]Ô\cÑVdÔVdÐghÑVhÐkpÑVpÐIrÑIrÔIrˆÝ$ Q¨°A¸²I°I¨q¨qÀ:ÑNÔNˆˆõ 	Œ�Q˜œ   œ¨¨5© zÑ1Ñ2Ô2€AØ€Hr   c                ó&   — t          | ||¬¦  «        S )N)r%   rÌ   ©rÓ   )r   r%   rÌ   s      r   ÚsortrÖ   Ì  s   € å�Q˜C¨JÐ7Ñ7Ô7Ð7r   c                ó(   — t          | ||d¬¦  «        S )NT)rË   r%   rÌ   rÕ   )r   rË   r%   s      r   ÚtopkrØ   Ñ  s   € å�Q˜! °Ð6Ñ6Ô6Ð6r   c                óì   — |€t          | j        ¦  «        dz
  n|}t          j        |t          | j        ¦  «        dz
  k    d¦  «         t	          | j        d         ¦  «        }t          | |||¦  «        S )Nr   rÎ   rÏ   )rÐ   r@   r   rž   r   rÊ   )r   r%   rÌ   r'   r±   s        r   Úbitonic_mergerÚ   Ö  sl   € ð 03¨{�3˜qœw™<œ<¨!Ñ+Ð+À€DÝÔ�t�s 1¤7™|œ|¨aÑ/Ò/Ð1^Ñ_Ô_Ð_Ý" 1¤7¨2¤;Ñ/Ô/€FÝ˜!˜V Z°Ñ8Ô8Ð8r   c                óÒ   — t          j        | ¦  «        } t          j        |¦  «        }| €t          |¦  «        dz
  } | dk     r| t          |¦  «        z  } t          j        | ¦  «        S r   )r   r’   rÐ   r   )r%   r@   s     r   Ú_get_flip_dimrÜ   ß  s_   € Ý
Ô
# CÑ
(Ô
(€CÝÔ% eÑ,Ô,€EØ
€{Ý�%‰jŒj˜1‰nˆØ
ˆQ‚w€wØ�s�5‰zŒzÑˆÝŒ>˜#ÑÔÐr   c                óè  — t          j        t          | j        ¦  «         |k    o|t          | j        ¦  «        k     ¦  «         t	          || j        ¦  «        }t          j        t          | j        |         ¦  «        ¦  «         t          | j        |         ¦  «        }t          j        | j        j	        d¬¦  «        }t          j
        |                      |d¬¦  «        | j        d|…         dg|z  z   | j        |dz   d…         z   ¦  «        }t          j        |¦  «        D ]}|t          |||z   d¦  «        z  }Œt          j
        || j        ¦  «                             | j        d¬¦  «        } | S )z¯
    Flips a tensor `x` along the dimension `dim`.

    :param x: the first input tensor
    :type x: Block
    :param dim: the dimension to flip along
    :type dim: int
    Tr·   rº   Nr   r   )r   rž   rÐ   r@   rÜ   r   r   r¼   rA   rn   r-   rp   rÆ   r¢   )r   r%   r'   Ústepsr¾   r¤   r	   s          r   r½   r½   é  sJ  € õ 	Ô�˜AœG™œ�}¨Ò+ÐB°µc¸!¼'±l´lÒ0BÑCÔCÐCÝ(¨¨a¬gÑ6Ô6€DÝÔÕ'¨¬°¬Ñ6Ô6Ñ7Ô7Ð7Ý! !¤'¨$¤-Ñ0Ô0€Eõ Ô¨¬Ô)CÈDÐQÑQÔQ€FÝŒ�Q—T’T˜&¨$�TÑ/Ô/°´¸¸$¸´À1À#ÈÁ+Ñ1MÐPQÔPWÐX\Ð_`ÑX`ÐXaÐXaÔPbÑ1bÑcÔc€AÝÔ˜uÑ%Ô%ð +ð +ˆØ•˜˜4 !™8 TÑ*Ô*Ñ*ˆˆÝŒ�Q˜œÑ Ô ×#Ò# A¤G°TÐ#Ñ:Ô:€AØ€Hr   c                óÈ   — t          j        | |¦  «        }t          |j        ¦  «        dk    r|S t          j        ||j        dd…         d|j        d         z  gz   ¦  «        S )a7  
    Interleaves the values of two tensors along their last dimension. The two tensors must have the same shape.
    Equivalent to `tl.join(a, b).reshape(a.shape[:-1] + [2 * a.shape[-1]])`

    :param a: The first input tensor.
    :type a: Tensor
    :param b: The second input tensor.
    :type b: Tensor
    r   Néþÿÿÿr   )r   ÚjoinrÐ   r@   r-   )ra   rb   Úcs      r   Ú
interleaverã     s[   € õ 	Œ	�!�Q‰Œ€Aå
ˆ1Œ7�|„|�qÒÐàˆõ
 Œ|˜A˜qœw s¨ sœ|¨q°1´7¸2´;©Ð.?Ñ?Ñ@Ô@Ð@r   )r	   r
   )NFF)F)NFTF)TF)r�   r
   rA   r
   )NFN)rA   r
   rG   )r   FN)r   F)r±   r
   r3   r
   )rÃ   r
   rÄ   r
   )rÃ   r
   rÄ   r
   r±   r
   )rË   r
   r%   r
   rÌ   r
   )r%   r
   rÌ   r
   r^   )rË   r
   r%   r
   )6Ú
__future__r   Úruntime.jitr   Ú r   r   r   r   Ú_tensor_member_fnr   Ú_add_math_1arg_docstrr   r   r/   r=   rB   rE   rS   rX   r[   rc   Ú_add_reduction_docstrr"   r|   r�   r„   r†   rˆ   rŠ   rŒ   rŽ   r˜   r#   rœ   r¢   r¥   r¨   Ú_add_scan_docstrr©   r®   r¯   rµ   rÂ   rÇ   rÊ   ÚCONSTEXPR_0rÓ   rÖ   rØ   rÚ   rÜ   r½   rã   r   r   r   ú<module>rì      s‚  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð ð
 ð  ð  ð  ð9ð 9ð 9ð 9ð ÔØð	 ð 	 ñ „ñ Ôð	 ð ÔØØ€Ô˜IÑ&Ô&ð"ð "ñ 'Ô&ñ „ñ Ôð"ð ÔØØ€Ô˜IÑ&Ô&ð.ð .ð .ñ 'Ô&ñ „ñ Ôð.ð ÔØð?ð ?ð ?ñ „ñ Ôð?ð ð$ð $ñ „ð$ðN ð	&ð 	&ñ „ð	&ð ð+ð +ñ „ð+ð ðð ñ „ðð ðAð Añ „ðAð ðBð Bñ „ðBð ðð ñ „ðð ÔØØ€Ô˜IÐ:JØ*IðKñ Kô KðOð Oð OñKô Kñ „ñ ÔðOð" ÔØØ€Ô˜OÐ;KÐLÑLÔLðð ð ñ MÔLñ „ñ Ôðð ð ð  ñ „ð ð ðAð Añ „ðAð ðBð Bñ „ðBð ðð ñ „ðð ÔØØ€Ô˜IÐ:JØ*IðKñ Kô KðOð Oð OñKô Kñ „ñ ÔðOð" ÔØØ€Ô˜OÐ;KÐLÑLÔLðð ð ñ MÔLñ „ñ Ôðð
 ðð ñ „ððð ð ð ð ÔØØ€Ô˜E¨WÐ5Ñ5Ô5ðGð Gð Gð Gñ 6Ô5ñ „ñ ÔðGð ðð ñ „ðð ÔØØ€Ô˜IÑ&Ô&ðGð Gð Gñ 'Ô&ñ „ñ ÔðGð ðð ñ „ðð ÔØØ€Ô˜KÑ(Ô(ðFð Fð Fñ )Ô(ñ „ñ ÔðFð ÔØØ€Ô�x¨7Ð3Ñ3Ô3ð	Eð 	Eð 	Eð 	Eñ 4Ô3ñ „ñ Ôð	Eð ðð ñ „ðð ÔØØ€Ô�yÑ!Ô!ðFð Fð Fñ "Ô!ñ „ñ ÔðFð ðð ð ñ „ðð ðð ð ñ „ðð$ ðð ð ñ „ðð* ðð ð ñ „ðð Ø%)ÀÐdhÔdtð %ð %ð %ð %ñ „ð%ðP Ø"&ÀTÔEUð 8ð 8ð 8ð 8ñ „ð8ð ð7ð 7ð 7ð 7ñ „ð7ð Ø+/ÈdÔN^ð 9ð 9ð 9ð 9ñ „ð9ðð ð ð ÔØðð ð ñ „ñ Ôðð. ðAð Añ „ðAð Að Ar   