????

Your IP : 3.128.170.204


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/guppy/etc/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/guppy/etc/__pycache__/RE_Rect.cpython-311.pyc

�

��V}�>���dZddlmZmZmZGd�de��ZGd�de��ZGd�dee��Zd	�Z	d
�Z
Gd�d��ZGd
�dee��ZGd�dee��Z
d�Zgdgfd�Zdgfd�Zd�Zd�ZdS)a� Support functions for RE simplification.
This module is intended for use by the RE module.
It is in a separate module to keep RE itself cleaner
since the algorithm, 'rectangle selection', is a quite
separate part that depends on some tricky heuristics.

The primary entry function is

chooserects(lines, gauges)

It chooses 'the best' rectangles from lines to base simplification on.
A weight on atoms is given by gauges.

pr() gives some example usages of chooserects.

�)�	immbitset�	mutbitset�immbitrangec�2�eZdZdZd�Zd�Zd�Zd	d�Zd�ZdS)
�Rect)�width�lines�gainmemo�lnos�	all_lines�common_partc�^�||_||_|rt|��dkrJ�i|_dS)N�)rr	�lenr
)�selfrr	s   �d/builddir/build/BUILD/cloudlinux-venv-1.0.7/venv/lib64/python3.11/site-packages/guppy/etc/RE_Rect.py�__init__z
Rect.__init__s4����
���
��.�c�%�j�j�A�o�o�o�.���
�
�
�c���||_t�fd�|jD����|_|���|_dS)Nc�:��g|]}�t|����S���id)�.0�line�lnobyids  �r�
<listcomp>zRect.init2.<locals>.<listcomp> s$���H�H�H�T�w�r�$�x�x�0�H�H�Hr)rrr	r�get_common_partr
)rrrs ` r�init2z
Rect.init2sJ���"����H�H�H�H�T�Z�H�H�H�I�I��	��/�/�1�1����rc�����j}||z}||kr|�_�fd�|D���_t|��dkr!t�jd���_dSdS)Nc�*��g|]}�j|��Sr)r)r�lnors  �rrz$Rect.reducelines.<locals>.<listcomp>+s ���>�>�>�#�$�.��-�>�>�>rrr)rr	rr)rr�olnoss`  r�reducelineszRect.reducelines#sq����	����u�}���5�=�=��D�I�>�>�>�>��>�>�>�D�J��t�9�9��>�>��T�Z��]�+�+�D�J�J�J��>rrc�f�g}|j|zD]"}|�|j|���#|S�N)r�appendr)r�	pickednosr	�is    r�	get_lineszRect.get_lines/s@������y�[�(�	,�	,�A��L�L����*�+�+�+�+��rc�V�d|j|jt|j��|jfzS)Nz0<
 dir = %d
 width = %d
 lnos = %s
 lines = %s
>)�dirr�listrr	�rs r�__repr__z
Rect.__repr__5s,��F��H�d�j�$�t�y�/�/�4�:�J?�?�	?rN�r)	�__name__�
__module__�__qualname__�	__slots__rrr$r*r/rrrrrsi������P�I����2�2�2�

,�
,�
,�����?�?�?�?�?rrc�$�eZdZdZdZd�Zdd�ZdS)�LeftRectrrc�6�|jdd|j�S�Nr)r	rr.s rrzLeftRect.get_common_part>s���z�!�}�[�d�j�[�)�)rc�~�g}|�|��D]$}|�||jd����%|Sr&)r*r'r)rr(�ucrs    r�
get_uncommonszLeftRect.get_uncommonsAsG��
���N�N�9�-�-�	)�	)�D��I�I�d�4�:�;�;�'�(�(�(�(��	rNr0�r1r2r3r4r,rr;rrrr6r6:sA�������I�
�C�*�*�*������rr6c�$�eZdZdZdZd�Zdd�ZdS)�	RightRectr���c�L�|j}|dkrgS|jd|d�Sr8)rr	)r�los  rrzRightRect.get_common_partLs.���j�[��
��7�7��I��z�!�}�R�S�S�!�!rrc��g}|j}|dkrd}|�|��D]}|�|d|���� |Sr8)rr*r')rr(r:�hirs     rr;zRightRect.get_uncommonsRs[��
���j�[��
��7�7��B��N�N�9�-�-�	!�	!�D��I�I�d�3�B�3�i� � � � ��	rNr0r<rrrr>r>HsA�������I�
�C�"�"�"������rr>c�R�|�t|��Sd}|D]}|||��z
}�|Sr8)r)�gauge�lst�gain�xs    r�	sum_gaugerI\s?���}��3�x�x�����	�	�A��E�E�!�H�H��D�D��Krc�|�|D]8}t||��}t||��}t||��}|r|cS�9dSr8)rI�cmp)�xs�ys�gaugesrE�gx�gy�cs       r�
cmp_gaugedrRgsW������
�u�b�
!�
!��
�u�b�
!�
!����B�K�K���	��H�H�H�	��1rc��eZdZd�ZdS)�InducedRectc�`�||_|j|_|j|_||_||_dSr&)�srrr	r)rrVr	rs    rrzInducedRect.__init__rs-������W��
�������
���	�	�	rN)r1r2r3rrrrrTrTqs#����������rrTc��eZdZdS)�InducedRightRectN�r1r2r3rrrrXrXz��������DrrXc��eZdZdS)�InducedLeftRectNrYrrrr\r\~rZrr\c���t|��dkrtd|��gStd|��td|��g}g}|�r|}g}|D�]
}|j}	d}i}||jz}|jD]G}	|t|	��kr0|�|	|g���|	���Ed}�H|st|��dkrn
|dzx|_}��|�|��|dz
}t|�	����D]C\}
}t|��dkr+|�
||��}|�|���D��|��|S�Nrr)rr6r>rr,r	�
setdefaultr'r-�items�	__class__)
r	�newrects�	donerects�oldrects�rr�is_done�d�posr�k�v�new_rs
             r�brectrl�s���
�5�z�z�Q�����E�"�"�#�#���E�"�"�I�a��$7�$7�8�H��I�
�+������	+�	+�A��G�E�
,������a�e�m���G�$�$�D��s�4�y�y�(�(����T�#�Y��3�3�:�:�4�@�@�@�@�"#�����c�!�f�f��k�k��"'�!�)�+���%�
,�
���Q�����Q�J�E��Q�W�W�Y�Y���
+�
+���1��q�6�6�A�:�:��K�K��q�1�1�E��O�O�E�*�*�*��
+�'�+�0�rNc�.�����
����
�fd�}���
�fd�}���
�fd�}d�}�d�
�dd��td�t���D����}�}t|����D]}	|	�|������|d�	��tt
�����}
t���
g}g��
|
krE|��}	�
|	jz�
|�	|	��||	��||	���
|
k�E|S)
Nc���|���}t|��dkrdSg}�D�]}|j|jkr�g}|����}|j�z}t|��t|��ksJ�t	||��D]\}}||vr|�|���t|��t|��krYt
|��}	�fd�|D��}|jdkrt}
nt}
|
|||	��}|�|����|r�
�	|��dSdS)N�c� ��g|]
}�|��Srr)rr"r	s  �rrz*choose.<locals>.induce.<locals>.<listcomp>�s���1�1�1�c�u�S�z�1�1�1rr?)
r;rr,r�zipr'rrXr\�extend)re�	uncommons�irsrV�pss�uncsr�uncr"�pslnosrQ�irr	�newsr(�rectss            ����r�inducezchoose.<locals>.induce�sb����O�O�%�%�	��y�>�>�A����F����	�	�A��u���~�~���C��?�?�9�-�-�D��6�Y�J�&�D��t�9�9��D�	�	�)�)�)�)���d�O�O�
$�
$���S��)�#�#��J�J�s�O�O�O���3�x�x�3�y�>�>�)�)�"�3����1�1�1�1�S�1�1�1���5�B�;�;�(�A�A�'�A��Q�q�#�v�&�&���
�
�2������	��K�K�������	�	rc����|j}g}�D]�}||ur�|j|jkr�|j}||zs�%|�
z}|s�.|j}|s�8�D][}||ur�|j|jkr�|j�
z}||zr�)||z}|s�1||kr�8|j}	|	s�Bt||	���}
|
dkr�Zn*|�|����|������|��dSr8)rr,r
rRr'�removerr)re�rlnos�tonewsrV�slnos�scom�t�tlnosr#�tcomrQrNrzr(r{s           ����r�overlapzchoose.<locals>.overlap�sQ���������(	 �(	 �A��A�v�v���u���~�~���F�E��E�M�
���y�[� �E��
���=�D��
���
 �
 ����6�6���5�A�E�>�>����)��+���E�M�����
������E�>�>���}������t�T�6�2�2���q�5�5�����
�
�a� � � ����Q��������F�����rc���	�r
�d}�d=�nd}t���D]�}|j�z
}|s��|���$t|��dz
}|j}|��|sn�|s�F|r�|j}|j}d}�D]}}		||	}
n*#t$rt|	|j��}
|
||	<YnwxYw|
|z}
	||	}n*#t$rt|	|j��}|||	<YnwxYw||z}|
|z
}|rn�~|dkr��|}|}
|sn
|}|}||z}��|���|��|�|�	���|jr|S��Jr^)
r-rr~rrr
�KeyErrorrIr
r$)rerVr��sn�sw�rwn�rmemo�smemorQrE�gr�rn�gsr�rwrNrzr(r{s               ����r�picknextzchoose.<locals>.picknext�s����4	��/
$���G����G�G����e���("�("�A��F�Y�.�E� �!����Q���� ��U���a��B���B��}�!�"�!�E�!�%�$��)�$%�J�E�$%�J�E� !�A�)/�*�*��!6�).�u��B�B��'/�!6�!6�!6�)2�5�!�-�)H�)H�B�35�E�%�L�L�L�!6����!#�b���!6�).�u��B�B��'/�!6�!6�!6�)2�5�!�-�)H�)H�B�35�E�%�L�L�L�!6����!#�b���$&��G��#$�!*�$)�E�!*� �A�v�v� (��A�!�E������B��B��r�'�C�C��=��L�L��O�O�O��}��
�
�i�(�(�(��6���H�i4	s$�B	�	$B0�/B0�9C�$C)�(C)c�6�|j|j|jdfSr8)rr,r�rHs r�cmpinitzchoose.<locals>.cmpinit$s���w���q�v�a�y�(�(rrrc�6�g|]\}}t|��|f��Srr)rr)rs   rrzchoose.<locals>.<listcomp>*s&��B�B�B�g�a��R��X�X�q�M�B�B�BrT)�key�reverse)
�dict�	enumerater-r�sortrrrrr')r{r	rNr|r�r�r�r�orectsre�allnos�pickedrectsrzr(s```         @@r�chooser��s����������������8,�,�,�,�,�,�,�,�\5�5�5�5�5�5�5�5�n)�)�)��a�y���������B�B��5�1A�1A�B�B�B�C�C�G�
�F���L�L�E�
� � ��	���������	�J�J�7�D�J�)�)�)�
��U���
$�
$�F����I��K�
�D�
�v�
�
��H�J�J���Q�V��	����1������q�	�	�	����
�
�
��v�
�
��rc�F�t|��}t|||��}|Sr&)rlr�)r	rNr{�choosens    r�chooserectsr�Ds#���%�L�L�E��U�E�6�*�*�G��Nrc���tddg��}tgd���}t|��tgd���}t|��tgd���}t|��tgd���}td|��gd�}tt|����ttdd	g����ttd
dg����ttgd�����ttgd
�����ttgd�����ttgd�����dS)N�abc�ade�r��abe�ace�xby)�ab1�ab2�ac3�ac4)�1bf�2bf�3cf�4cf)r��abd�bcx�bdy�TW)r�r��e�axc�a�)�abcd�abcer��f)r�r�rgr�)�auvw�buvwr��b)�axuvw�bxuvw�axy�bxy�cy)r��printr�s r�prr�Js����U�E�N�#�#�A�����	�	�A�

�!�H�H�H�����	�	�A�

�!�H�H�H�	����	�	�A�
�!�H�H�H�	����	�	�A�
�$��N�N�N�
�
�
�A�
�+�a�.�.����

�+�u�e�n�
%�
%�&�&�&�
�+�s�B�i�
 �
 �!�!�!�
�+�0�0�0�
1�
1�2�2�2�
�+�0�0�0�
1�
1�2�2�2�	�+�0�0�0�
1�
1�2�2�2�	�+�<�<�<�
=�
=�>�>�>�>�>rc�L�td��D]}tgd���}�dS)N�dr�)�ranger�)r)rHs  r�tmanyr��sA��
�3�Z�Z�!�!��� � � �
!�
!���!�!r)�__doc__�
guppy.setsrrr�objectrr6r>rIrRrTrXr\rlr�r�r�r�rrr�<module>r�s�����"9�8�8�8�8�8�8�8�8�8�"?�"?�"?�"?�"?�6�"?�"?�"?�J�����t����������f����(���
�
�
���������	�	�	�	�	�{�I�	�	�	�	�	�	�	�	�k�8�	�	�	����@�D�6�_�_�_�_�D $�f�����C?�C?�C?�L!�!�!�!�!r