K iRddlmZddlmZddlmZddlZdZdZdZ d dZ d d Z y) )Float)Dummy)lambdifyNc|yt|trytj| xrtj| S)z)Check if a floating point number is validF) isinstancecomplexmathisinfisnan)xs ]/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/sympy/plotting/textplot.pyis_validrs8y!Wzz!}  2TZZ]!22cbg}||z }||zdz }t|D]}t||rp|||z |z } t| s|jd9t| |z|dz z|dz z|z j } t | } |j| |jd|S)zRescale the given array `y` to fit into the integer values between `0` and `H-1` for the values between ``mi`` and ``ma``. N)rangerappendrroundint) yWHmimay_newnormoffsetr normalizedrescaleds r rescaler!s E 7D2g]F 1X  AaD>A$-4/JJ' T" *Q,1"41!=a!?@FFHx= X& LL   Lrc\t|Dcgc]}|||z |z|dz z zc}Scc}w)Nr)r)startstopnumr s r linspacer&(s1:?* EQETE\Q&#a%0 0 EE Es)c#K|j}t|dkDrtdj||r|j n t }t |g|}t|tr|jdk(r |j}t|tr|jdk(r |j}t|}t|}t|||}g}|D]} |j|| t!t#t$|} | r7t'| } t)| } | | k(r!| rt+dd| zg\} } n d\} } nd\} } | | z } t-j.t-j0| dz }|dz}t3| |} t3| |} t5|||| | }t| | |}d}t7|dz ddD]}d g|z}t7|D]n}|||k(s |dk(s||dz |dz k(r||dz k(s||dz|dzk(rd ||<;|dk(s||dz |dzk(r||dz k(s||dz|dz k(rd ||<jd ||<p|dk(rt7|D]}d ||< |d|dz|dz fvrd||zj9|d|}nd |z}dj;|}||dzk(r|j=d d}|dz|zd |dzz}|d|dzj?|dzz }|dzdk(r!|d||dzzj?|dzz }n#|d||dzzj?|dzdz z }|d|dzz }|y#tttf$r|jdYwxYww)z#Generator for the lines of the plotrz4The expression must have a single variable. (Got {})rNr)rr( /\._z%g-z |) free_symbolslen ValueErrorformatpoprrrrimagrealfloatr&r TypeErrorZeroDivisionErrorlistfilterrmaxminsortedr floorlog10rr!rrjustjoinreplaceljust)exprabrrfreer frvaly_validrry_range precisiony_binsmarginhsiprefixbottoms r textplot_strrV,s   D 4y1} B VD\  A!dA!W 66Q;A!W 66Q;A aA aA AqA A  HHQsV 6(A&'G \ \ 8AbD *BBB2gG 4::g./!3I OI r9 B r9 B1aR A b"a FF 1q5"b !  EAIq AtqyFaAh!a%/a1q5jAa!eHPQTUPUDUAaD1f!a%AE 1QU aAhRSVWRWFWAaDAaD  61X !  AqD!a% VAY&--f5gv>FZF GGAJ 19 #s#Atma/ 4FQJ F tad{!!!Q$''F1uz4!AqD'>((A..4!AqD'>((Aa00 dQrUlF LwI'89  HHTN s2CM>!M8C4M>-E%M>%M;7M>:M;;M>cBt|||||D] }t|y)a Print a crude ASCII art plot of the SymPy expression 'expr' (which should contain a single symbol, e.g. x or something else) over the interval [a, b]. Examples ======== >>> from sympy import Symbol, sin >>> from sympy.plotting import textplot >>> t = Symbol('t') >>> textplot(sin(t)*t, 0, 15) 14 | ... | . | . | . | . | ... | / . . | / | / . | . . . 1.5 |----.......-------------------------------------------- |.... \ . . | \ / . | .. / . | \ / . | .... | . | . . | | . . -11 |_______________________________________________________ 0 7.5 15 N)rVprint)rFrGrHrrlines r textplotrZs(HT1aA. d r)7) sympy.core.numbersrsympy.core.symbolrsympy.utilities.lambdifyrr rr!r&rVrZrr ras-$#- 3.FTn%r