K iVdZddlZddlZgdZgdZd dZdZeZdad dZ dZ y) zMSimple tools for timing functions' execution, when IPython is not available. N)g?g@@g.AgeA)smsuμsnsc tj||}d\}}tddD]&}|j|dk\rn|||k\rn|dz}(t|j |||z }|dkDr@tt t jt j|dz d}nd}|||t|zt|fS)z1Adaptively measure execution time of a function. )setup)r g?gr) timeitTimerrangeminrepeatintmathfloorlog10_scales_units) funcrlimittimerrnumberitimeorders _/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/utilities/timeutils.pytimedr s LLU +ENFF 1b\ << 3 &   6U?  bLF  u||FF+ ,v 5D czSDJJt$45:;;Q? D$wu~-ve} ==cddl}|jdd}|jdDcgc]}|j}}t |Scc}w)Nr SYMPY_TIMINGS,)osgetenvsplitstripset)r$resxs r __do_timingsr+%sD ))OR (C!iin -1779 -C - s8O .sAcrtd|zd|d|d|dfz|dD]}t||dzy)N-z %.2f %s%srrr )print_print_timestack)stacklevelrs rr0r0/sI #e)[E!HeAha#AAB 1X'EAI&'rcfd}|S)Nc(tvrSfd}|S)Ncddlm}t}jgd|ga|}|i|}|}||z td<||djt|a|St tda|S)Nr)rr.r )r _timestack func_nameappendr0)argskwargsr oldtimestackt1rt2rs rwrapperz,timethis..decorator..wrapper:s !%L.."a6JBd%f%ABGJqM'Q&&z2) H!,! Hr) _do_timings)rr?names` r decoratorztimethis..decorator6s { "K  r)rArBs` rtimethisrD5s* r)passN)r ) __doc__r rrrrr+r@r6r0rDrCrrrGs>S   8>2 n  ' r