�
!��g� � �^ � d Z ddlZddlZg d�Zg d�Zdd�Zd� Z e� � adadd �Z d
� Z
dS )
zMSimple tools for timing functions' execution, when IPython is not available. � N)g �?g @�@g ��.Ag e��A)�s�msu μs�ns�passc �� � t j | |�� � }d\ }}t dd� � D ],}|� |� � dk r n|�||k r n|dz }�-t |� ||� � � � |z }|dk rFt t t
j t
j |� � � � dz � � d� � }nd}|||t | z t | fS ) z1Adaptively measure execution time of a function. )�setup)� � r
�
g�������?Ng r )�timeit�Timer�range�min�repeat�int�math�floor�log10�_scales�_units) �funcr �limit�timerr �number�i�time�orders �i/home/asafur/pinokio/api/open-webui.git/app/env/lib/python3.11/site-packages/sympy/utilities/timeutils.py�timedr s� � ��L��U�+�+�+�E��N�F�F�
�1�b�\�\� � ���<�<����3�&�&��E�
�
�6�U�?�?��E��b�L�F�F��u�|�|�F�F�+�+�,�,�v�5�D��c�z�z��S���D�J�t�$4�$4�5�5��:�;�;�;�Q�?�?������D�$�w�u�~�-�v�e�}�=�=� c � � dd l } | � dd� � }d� |� d� � D � � }t |� � S )Nr �
SYMPY_TIMINGS� c �6 � g | ]}|� � � ��S � )�strip)�.0�xs r �
<listcomp>z __do_timings.<locals>.<listcomp>( s � �
-�
-�
-��1�7�7�9�9�
-�
-�
-r �,)�os�getenv�split�set)r+ �ress r �__do_timingsr0 % sF � �
�I�I�I�
�)�)�O�R�
(�
(�C�
-�
-�c�i�i��n�n�
-�
-�
-�C��s�8�8�Or r
c � � t d|z d| d | d | d fz � � | d D ]}t ||dz � � �d S )N�-z %.2f %s%s� r r r
)�print�_print_timestack)�stack�levelr s r r5 r5 / sb � � �#�e�)�[�E�!�H�e�A�h��a��#A�A�B�B�B�
�1�X� '� '����E�A�I�&�&�&�&�'� 'r c � � � � fd�}|S )Nc �* �� � �t vr� S � fd�}|S )Nc � �� ddl m } t }�j g d| ga |� � } �| i |��} |� � }||z
t d<