
    g                     T    d dl mZ d dlmZ d dlmZ d dlZd Zd Zd Z	dd
Z
ddZdS )    )Float)Dummy)lambdifyNc                     | dS t          | t                    rdS t          j        |            ot          j        |            S )z)Check if a floating point number is validNF)
isinstancecomplexmathisinfisnan)xs    S/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/plotting/textplot.pyis_validr      sD    yu!W uz!}}2TZ]]!22    c                    g }||z
  }||z   dz  }t          |          D ]}t          | |                   r| |         |z
  |z  }	t          |	          s|                    d           Jt          |	|z  |dz  z   |dz
  z  |z                                            }
t          |
          }
|                    |
           |                    d           |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   )ranger   appendr   roundint)yWHmimay_newnormoffsetr   
normalizedrescaleds              r   rescaler!      s     E7D2g]F1XX 
 
AaD>> 		A$-4/JJ'' 'T"""" *Q,1"41!=a!?@@FFHHx==X&&&&LLLr   c                 B      fdt                    D             S )Nc                 2    g | ]}z
  |z  d z
  z  z   S )r    ).0r   numstartstops     r   
<listcomp>zlinspace.<locals>.<listcomp>)   s0    EEEQETE\Q&#a%00EEEr   )r   )r'   r(   r&   s   ```r   linspacer*   (   s+    EEEEEE%**EEEEr   7      c              #   $  K   | j         }t          |          dk    r"t          d                    |                    |r|                                nt                      }t          |g|           }t          |t                    r|j	        dk    r|j
        }t          |t                    r|j	        dk    r|j
        }t          |          }t          |          }t          |||          }g }|D ]S}		 |                     ||	                     "# t          t          t          f$ r |                    d           Y Pw xY wt!          t#          t$          |                    }
|
rDt'          |
          }t)          |
          }||k    r|rt+          dd|z  g          \  }}nd\  }}nd\  }}||z
  }t-          j        t-          j        |                    dz
  }|dz  }t3          ||          }t3          ||          }t5          |||||          }t          |||          }d}t7          |dz
  dd          D ]2}d	g|z  }t7          |          D ]}||         |k    rw|dk    s||dz
           |dz
  k    r!||dz
  k    s||dz            |dz   k    rd
||<   G|dk    s||dz
           |dz   k    r!||dz
  k    s||dz            |dz
  k    rd||<   d||<   |dk    rt7          |          D ]}d||<   |d|dz  |dz
  fv r'd||         z                      |          d|         }nd	|z  }d                    |          }||dz  k    r|                    d	d          }|dz   |z   V  4d	|dz   z  }|d|d         z                      |dz            z  }|dz  dk    r(|d||dz           z                      |dz            z  }n*|d||dz           z                      |dz  dz
            z  }|d|d         z  z  }|V  dS )z#Generator for the lines of the plotr   z4The expression must have a single variable. (Got {})r   Nr   )r   r.       /\._z%g -z |) free_symbolslen
ValueErrorformatpopr   r   r   r   imagrealfloatr*   r   	TypeErrorZeroDivisionErrorlistfilterr   maxminsortedr	   floorlog10r   r!   r   rjustjoinreplaceljust)exprabr   r   freer   fr   valy_validr   r   y_range	precisiony_binsmarginhsiprefixbottoms                         r   textplot_strr\   ,   s     D
4yy1}}BVD\\  	 '


A!dA!W 6Q;;A!W 6Q;;AaAaA 	AqA
A  	HHQQsVVI'89 	 	 	HHTNNNNN	 6(A&&''G 	\\\\88 AbD	**BBBB2gG
4:g..//!3IOI	r9		B	r9		B1aR  Ab"a  F F1q5"b!!    EAIq 	 	AtqyyFFaAh!a%//a1q5jjAa!eHPQTUPUDUDUAaDD1ff!a%AE 1 1QU

aAhRSVWRWFWFWAaDDAaD661XX  ! AqD!a%   VAY&--f55gvg>FFZFGGAJJ199		#s##Atma FQJF
tad{!!!Q$'''F1uzz4!AqD'>((A...4!AqD'>((Aa000
dQrUlF
LLLLLs   8D,EEc                 P    t          | ||||          D ]}t          |           dS )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)r\   print)rL   rM   rN   r   r   lines         r   textplotr`      s;    H T1aA..  d r   )r+   r,   )sympy.core.numbersr   sympy.core.symbolr   sympy.utilities.lambdifyr   r	   r   r!   r*   r\   r`   r$   r   r   <module>rd      s    $ $ $ $ $ $ # # # # # # - - - - - - 3 3 3  .F F FT T T Tn% % % % % %r   