§
    1@Äj¾"  ã                   ó  — d Z ddlZddlmZ ddlmZmZmZmZ ddl	m
Z
mZmZmZ ddlmZ ddlmZmZmZmZ ddlmZ d	„ Zd
„ Zej        ej        ej        fej        ej        ej        fej        ej         ej!        fiZ"e" #                    ¦   «         D ]\  Z$Z% ee$ge%¢R Ž  Œ eej&        ej&        ¦  «        d„ ¦   «         Z'd„ Z(ed„ ¦   «         Z) eej*        ¦  «        d„ ¦   «         Z+ e,d¦  «        D ]\  Z-Z. e(e-e.¬¦  «         ŒdS )z=
Implementation of the range object for fixed-size integers.
é    N)Úprange)ÚtypesÚcgutilsÚerrorsÚconfig)Úlower_builtinÚ
lower_castÚiterator_implÚimpl_ret_untracked)Ú	signature)Ú	intrinsicÚoverloadÚoverload_attributeÚregister_jitable)Úinternal_prangec                 ó*   — t          j        | ¦  «        S )zn
    Return the Structure representation of the given *typ* (an
    instance of types.RangeIteratorType).
    )r   Úcreate_struct_proxy)Útyps    úGC:\Projects\Historical\venv\Lib\site-packages\numba/cpython/rangeobj.pyÚmake_range_iteratorr      s   € õ
 Ô& sÑ+Ô+Ð+ó    c                 ó<  ‡ ‡‡‡‡	— t          j        ‰¦  «        Š	t          t          ‰ ¦  «        t          t          ‰ ¦  «        t          t
          ‰ ¦  «        ˆ	ˆ ˆfd„¦   «         ¦   «         ¦   «         }t          t          ‰ ‰ ¦  «        t          t          ‰ ‰ ¦  «        t          t
          ‰ ‰ ¦  «        ˆ	ˆ ˆfd„¦   «         ¦   «         ¦   «         }t          t          ‰ ‰ ‰ ¦  «        t          t          ‰ ‰ ‰ ¦  «        t          t
          ‰ ‰ ‰ ¦  «        ˆ	ˆfd„¦   «         ¦   «         ¦   «         }t          t          ‰¦  «        ˆˆ	ˆ fd„¦   «         }t          d‰¦  «        ˆˆ	ˆfd„¦   «         }t          ‰‰¦  «         G ˆ fd„dt          ‰¦  «        ¦  «        ¦   «         Šd S )	Nc                 óæ   •— |\  } ‰| |¦  «        }|                       ‰d¦  «        |_        ||_        |                       ‰d¦  «        |_        t	          | |‰|                     ¦   «         ¦  «        S )z2
        range(stop: int) -> range object
        r   é   )Úget_constantÚstartÚstopÚstepr   Ú	_getvalue)	ÚcontextÚbuilderÚsigÚargsr   ÚstateÚ
RangeStateÚint_typeÚrange_state_types	         €€€r   Úrange1_implz$make_range_impl.<locals>.range1_impl   sy   ø€ ð ‰ˆØ�
˜7 GÑ,Ô,ˆØ×*Ò*¨8°QÑ7Ô7ˆŒØˆŒ
Ø×)Ò)¨(°AÑ6Ô6ˆŒ
Ý! 'Ø")Ø"2Ø"'§/¢/Ñ"3Ô"3ñ5ô 5ð 	5r   c                 óÀ   •— |\  }} ‰| |¦  «        }||_         ||_        |                      ‰d¦  «        |_        t	          | |‰	|                     ¦   «         ¦  «        S )z>
        range(start: int, stop: int) -> range object
        r   )r   r   r   r   r   r   )
r    r!   r"   r#   r   r   r$   r%   r&   r'   s
          €€€r   Úrange2_implz$make_range_impl.<locals>.range2_impl+   sk   ø€ ð ‰ˆˆtØ�
˜7 GÑ,Ô,ˆØˆŒØˆŒ
Ø×)Ò)¨(°AÑ6Ô6ˆŒ
Ý! 'Ø")Ø"2Ø"'§/¢/Ñ"3Ô"3ñ5ô 5ð 	5r   c                 óš   •— |\  }}} ‰| |¦  «        }||_         ||_        ||_        t          | |‰	|                     ¦   «         ¦  «        S )zI
        range(start: int, stop: int, step: int) -> range object
        )r   r   r   r   r   )
r    r!   r"   r#   r   r   r   r$   r%   r'   s
           €€r   Úrange3_implz$make_range_impl.<locals>.range3_impl<   s^   ø€ ð #Ñˆ��dØ�
˜7 GÑ,Ô,ˆØˆŒØˆŒ
ØˆŒ
Ý! 'Ø")Ø"2Ø"'§/¢/Ñ"3Ô"3ñ5ô 5ð 	5r   c                 ó¨   •— |\  } ‰| ||¦  «        }‰                      | ||¦  «        }t          | |‰	|                     |j        ¦  «        ¦  «        S )z
        len(range)
        )Úfrom_range_stater   ÚloadÚcount)
r    r!   r"   r#   Úvaluer$   ÚresÚ	RangeIterr%   r&   s
          €€€r   Ú	range_lenz"make_range_impl.<locals>.range_lenM   sX   ø€ ð
 ‰ˆØ�
˜7 G¨UÑ3Ô3ˆØ×(Ò(¨°'¸5ÑAÔAˆÝ! '¨7°H¸g¿lºlÈ3Ì9Ñ>UÔ>UÑVÔVÐVr   Úgetiterc                 óœ   •— |\  } ‰| ||¦  «        }‰                      | ||¦  «                             ¦   «         }t          | |‰	|¦  «        S )z 
        range.__iter__
        )r.   r   r   )
r    r!   r"   r#   r1   r$   r2   r3   r%   Úrange_iter_types
          €€€r   Úgetiter_range32_implz-make_range_impl.<locals>.getiter_range32_implW   sV   ø€ ð
 ‰ˆØ�
˜7 G¨UÑ3Ô3ˆØ×(Ò(¨°'¸5ÑAÔA×KÒKÑMÔMˆÝ! '¨7°OÀSÑIÔIÐIr   c                   ó4   •— e Zd Zeˆ fd„¦   «         Zˆ fd„ZdS )ú"make_range_impl.<locals>.RangeIterc           
      óL  •—  | ||¦  «        }|j         }|j        }|j        }t          j        ||j        ¦  «        }|                     ||¦  «         t          j        ||j        ¦  «        }	||_        ||_        ||_        |	|_        | 	                    ||¦  «        }
| 
                    ‰d¦  «        }| 
                    ‰d¦  «        }|                     d|
|¦  «        }|                     d||¦  «        }|                     ||¦  «        }|                     d||¦  «        }t          j        ||¦  «        5  |j                             |t"          d¦  «         ddd¦  «         n# 1 swxY w Y   |                     |¦  «        5 \  }}|5  |                     ||j        ¦  «         ddd¦  «         n# 1 swxY w Y   |5  |                     |
|¦  «        }|                     |||                     |¦  «        ¦  «        }|                     d||¦  «        }|                     |                     |
|¦  «        |                     |||¦  «        ¦  «        }|                     ||j        ¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   |S )z[
            Create a RangeIter initialized from the given RangeState *state*.
            r   r   ú>z==)zrange() arg 3 must not be zeroN)r   r   r   r   Úalloca_onceÚtypeÚstoreÚiterr0   Úsubr   Úicmp_signedÚxorÚicmp_unsignedÚif_unlikelyÚ	call_convÚreturn_user_excÚ
ValueErrorÚif_elseÚsremÚselectÚnegÚaddÚsdiv)Úclsr    r!   r$   Úselfr   r   r   ÚstartptrÚcountptrÚdiffÚzeroÚoneÚpos_diffÚpos_stepÚsign_differsÚ	zero_stepÚthenÚorelseÚremÚunevenÚnewcountr&   s                         €r   r.   z3make_range_impl.<locals>.RangeIter.from_range_stated   sŽ  ø€ ð
 �3�w Ñ(Ô(ˆDØ”KˆEØ”:ˆDØ”:ˆDåÔ*¨7°E´JÑ?Ô?ˆHØ�MŠM˜% Ñ*Ô*Ð*åÔ*¨7°E´JÑ?Ô?ˆHà ˆDŒIØˆDŒIØˆDŒIØ!ˆDŒJà—;’;˜t UÑ+Ô+ˆDØ×'Ò'¨°!Ñ4Ô4ˆDØ×&Ò& x°Ñ3Ô3ˆCØ×*Ò*¨3°°dÑ;Ô;ˆHØ×*Ò*¨3°°dÑ;Ô;ˆHØ"Ÿ;š; x°Ñ:Ô:ˆLØ×-Ò-¨d°D¸$Ñ?Ô?ˆIåÔ$ W¨iÑ8Ô8ð Wð WàÔ!×1Ò1°'½:Ø2UñWô Wð WðWð Wð Wñ Wô Wð Wð Wð Wð Wð Wð Wøøøð Wð Wð Wð Wð
 —’ Ñ.Ô.ð 
8±.°4¸Øð 4ð 4Ø—M’M $¨¬
Ñ3Ô3Ð3ð4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð ð 8ð 8Ø!Ÿ,š, t¨TÑ2Ô2�CØ!Ÿ.š.¨°3¸¿ºÀCÑ8HÔ8HÑIÔI�CØ$×0Ò0°°c¸4Ñ@Ô@�FØ&Ÿ{š{¨7¯<ª<¸¸dÑ+CÔ+CØ+2¯>ª>¸&À#ÀtÑ+LÔ+Lñ Nô  N�Hà—M’M (¨D¬JÑ7Ô7Ð7ð8ð 8ð 8ñ 8ô 8ð 8ð 8ð 8ð 8ð 8ð 8øøøð 8ð 8ð 8ð 8ð	
8ð 
8ð 
8ñ 
8ô 
8ð 
8ð 
8ð 
8ð 
8ð 
8ð 
8øøøð 
8ð 
8ð 
8ð 
8ð ˆKsm   Ä;"E)Å)E-Å0E-Æ	JÆF7Æ+JÆ7F;	Æ;JÆ>F;	Æ?JÇB2JÉ6JÊJ	ÊJÊ	J	Ê
JÊJÊ Jc                 ól  •— |                      ‰
d¦  «        }| j        }|                     |¦  «        }|                     d||¦  «        }|                     |¦  «         |                     |¦  «        5  |                     | j        ¦  «        }|                     |¦  «         |                      ‰
d¦  «        }	|                     | 	                    ||	dg¬¦  «        |¦  «         |                     | 
                    || j        ¦  «        | j        ¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r<   r   Únsw)Úflags)r   r0   r/   rB   Ú	set_validÚif_thenr@   Úyield_r?   rA   rM   r   )rP   r    r!   ÚresultrT   rR   r0   Úis_validr1   rU   r&   s             €r   Úiternextz+make_range_impl.<locals>.RangeIter.iternext“   sm  ø€ Ø×'Ò'¨°!Ñ4Ô4ˆDØ”zˆHØ—L’L Ñ*Ô*ˆEØ×*Ò*¨3°°tÑ<Ô<ˆHØ×Ò˜XÑ&Ô&Ð&à—’ Ñ*Ô*ð Hð HØŸš T¤YÑ/Ô/�Ø—’˜eÑ$Ô$Ð$Ø×*Ò*¨8°QÑ7Ô7�à—’˜gŸkšk¨%°¸U¸G˜kÑDÔDÀhÑOÔOÐOØ—’˜gŸkšk¨%°´Ñ;Ô;¸T¼YÑGÔGÐGðHð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs   Á5B'D)Ä)D-Ä0D-N)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr.   rg   )r&   s   €r   r3   r:   a   s[   ø€ € € € € ð 
ð,	ð ,	ð ,	ð ,	ñ 
Œð,	ð\	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Hr   r3   )	r   r   r   Úranger   r   Úlenr
   r   )
r&   r'   r7   r(   r*   r,   r4   r8   r3   r%   s
   ```     @@r   Úmake_range_implrn      s?  øøøøø€ ÝÔ,Ð-=Ñ>Ô>€Jå•5˜(Ñ#Ô#Ý•6˜8Ñ$Ô$Ý•? HÑ-Ô-ð5ð 5ð 5ð 5ð 5ð 5ñ .Ô-ñ %Ô$ñ $Ô#ð5õ •5˜( HÑ-Ô-Ý•6˜8 XÑ.Ô.Ý•? H¨hÑ7Ô7ð5ð 5ð 5ð 5ð 5ð 5ñ 8Ô7ñ /Ô.ñ .Ô-ð5õ •5˜( H¨hÑ7Ô7Ý•6˜8 X¨xÑ8Ô8Ý•? H¨h¸ÑAÔAð5ð 5ð 5ð 5ð 5ñ BÔAñ 9Ô8ñ 8Ô7ð5õ •3Ð(Ñ)Ô)ðWð Wð Wð Wð Wð Wñ *Ô)ðWõ �9Ð.Ñ/Ô/ðJð Jð Jð Jð Jð Jñ 0Ô/ðJõ Ð# _Ñ5Ô5ð>Hð >Hð >Hð >Hð >Hð >Hð >HÕ'¨Ñ8Ô8ñ >Hô >Hñ 6Ô5ð>Hð >Hð >Hr   c                 ó‚   ‡ ‡‡‡— t          j        ‰|d¦  «        }ˆˆ ˆˆfd„|D ¦   «         }t          j        ‰|¦  «        S )Né   c                 óT   •— g | ]$}‰                      ‰|‰j        ‰j        ¦  «        ‘Œ%S © )ÚcastÚdtype)Ú.0Úvr!   r    ÚfromtyÚtotys     €€€€r   ú
<listcomp>z"range_to_range.<locals>.<listcomp>®   s?   ø€ ð  ð  ð  Øð �\Š\˜' 1 f¤l°D´JÑ?Ô?ð  ð  ð  r   )r   Úunpack_tupleÚmake_anonymous_struct)r    r!   rw   rx   ÚvalÚolditemsÚitemss   ````   r   Úrange_to_ranger   «   sd   øøøø€ åÔ# G¨S°!Ñ4Ô4€Hð ð  ð  ð  ð  ð  ð  Øð ñ  ô  €EåÔ(¨°%Ñ8Ô8Ð8r   c                 óx   ‡ ‡— t           ˆ fd„¦   «         Št          t          j        |¦  «        ˆfd„¦   «         }d S )Nc                 ót   •— t          |t          j        ¦  «        rˆfd„}t          |j        |¦  «        |fS d S )Nc                 ór   •— |\  }t          j        ||d¦  «        }t          | ||j        |‰         ¦  «        S )Nrp   )r   rz   r   Úreturn_type)r    r!   r"   r#   r|   r~   Úindexs         €r   Úcodegenz?make_range_attr.<locals>.rangetype_attr_getter.<locals>.codegen·   s?   ø€ Ø‘�ÝÔ,¨W°c¸1Ñ=Ô=�Ý)¨'°7¸C¼OØ*/°¬,ñ8ô 8ð 8r   )Ú
isinstancer   Ú	RangeTyper   rt   )Ú	typingctxÚar…   r„   s      €r   Úrangetype_attr_getterz.make_range_attr.<locals>.rangetype_attr_getter´   sS   ø€ å�a�œÑ)Ô)ð 	2ð8ð 8ð 8ð 8ð 8õ
 ˜QœW aÑ(Ô(¨'Ð1Ð1ð	2ð 	2r   c                 ó   •— ˆfd„}|S )Nc                 ó   •—  ‰| ¦  «        S )Nrr   )ÚrngerŠ   s    €r   Úgetz0make_range_attr.<locals>.range_attr.<locals>.getÀ   s   ø€ Ø(Ð(¨Ñ.Ô.Ð.r   rr   )r�   rŽ   rŠ   s     €r   Ú
range_attrz#make_range_attr.<locals>.range_attr¾   s!   ø€ ð	/ð 	/ð 	/ð 	/ð 	/àˆ
r   )r   r   r   r‡   )r„   Ú	attributer�   rŠ   s   `  @r   Úmake_range_attrr‘   ³   sc   øø€ Ýð2ð 2ð 2ð 2ñ „Yð2õ �œ¨Ñ3Ô3ðð ð ð ñ 4Ô3ðð ð r   c                 óº   — | j         dk    r|| j        k     s|| j        k    rdS | j         dk     r|| j        k    s|| j        k    rdS || j        z
  | j         z  dk    S )Nr   F)r   r   r   ©Úrobjr|   s     r   Úimpl_contains_helperr•   Å   sk   € à„y�1‚}€}˜# ¤
Ò*Ð*¨c°T´YÒ.>Ð.>ØˆuØ	Œ�QŠˆ˜C 4¤9Ò,Ð,°°d´jÒ0@Ð0@Øˆuà�4”:Ñ ¤Ñ*¨qÒ0Ð0r   c                 óR  — d„ }t          | t          j        ¦  «        sd S t          |t          j        t          j        f¦  «        rt
          S t          |t          j        ¦  «        rd„ }|S t          |t          j        ¦  «        rd„ }|S t          |t          j        ¦  «        s|S d S )Nc                 ó   — dS )NFrr   r“   s     r   Ú
impl_falsez!impl_contains.<locals>.impl_falseÑ   s   € Øˆur   c                 óR   — |dz  dk    rdS t          | t          |¦  «        ¦  «        S )Nr   r   F)r•   Úintr“   s     r   Úimplzimpl_contains.<locals>.implÛ   s*   € Ø�Q‰w˜!Š|ˆ|Ø�uå+¨Dµ#°c±(´(Ñ;Ô;Ð;r   c                 ó€   — |j         dk    rdS |j        dz  dk    rdS t          | t          |j        ¦  «        ¦  «        S )Nr   Fr   )ÚimagÚrealr•   rš   r“   s     r   r›   zimpl_contains.<locals>.implã   s@   € ØŒx˜1Š}ˆ}Ø�uØ”˜A‘ Ò"Ð"Ø�uå+¨Dµ#°c´h±-´-Ñ@Ô@Ð@r   )	r†   r   r‡   ÚIntegerÚBooleanr•   ÚFloatÚComplexÚNumber)r”   r|   r˜   r›   s       r   Úimpl_containsr¤   Ï   sÈ   € ðð ð õ �d�EœOÑ,Ô,ð Øˆå	�C�%œ-­¬Ð7Ñ	8Ô	8ð Ý#Ð#å	�C�œÑ	%Ô	%ð ð	<ð 	<ð 	<ð
 ˆå	�C�œÑ	'Ô	'ð ð	Að 	Að 	Að ˆå˜�Uœ\Ñ*Ô*ð ØÐðð r   )r   r   r   )r„   r�   )/Ú__doc__ÚoperatorÚnumbar   Ú
numba.corer   r   r   r   Únumba.core.imputilsr   r	   r
   r   Únumba.core.typingr   Únumba.core.extendingr   r   r   r   Únumba.parfors.parforr   r   rn   Úint32Úrange_state32_typeÚrange_iter32_typeÚint64Úrange_state64_typeÚrange_iter64_typeÚuint64Úunsigned_range_state64_typeÚunsigned_range_iter64_typeÚrange_impl_mapr~   r&   Ústate_typesr‡   r   r‘   r•   Úcontainsr¤   Ú	enumerateÚixÚattrrr   r   r   ú<module>r¼      sB  ððð ð €€€à Ð Ð Ð Ð Ð Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5Ð 5ðGð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gð Gà 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZÐ ZØ 0Ð 0Ð 0Ð 0Ð 0Ð 0ð,ð ,ð ,ðIHð IHð IHðX 
„K�5Ô+¨UÔ-DÐEØ	„K�5Ô+¨UÔ-DÐEØ	„L�EÔ5°uÔ7WÐXð€ð ,×1Ò1Ñ3Ô3ð ,ð ,Ñ€HˆkØ€O�HÐ+˜{Ð+Ð+Ð+Ð+Ð+à€ˆEŒO˜Uœ_Ñ-Ô-ð9ð 9ñ .Ô-ð9ðð ð ð$ ð1ð 1ñ Ôð1ð 
€ˆ(Ô
ÑÔðð ñ Ôðð@ �	Ð3Ñ4Ô4ð .ð .�H€BˆØ€O˜"¨Ð-Ñ-Ô-Ð-Ð-ð.ð .r   