ó
    Š*£h1  ã                   ó‚   • S SK Jr  S SKJr  S SKJr  S SKJs  Js  J	r	  S SK
Jr  S rS r " S S	\	R                  5      rg)
é    )ÚCallable)ÚBasic)Úimport_moduleN)Úlatexc                 óV   • [        U [        5      (       a
  [        U SS9$ [        U 5      $ )NÚinline)Úmode)Ú
isinstancer   r   Ústr)Úlabels    Úq/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sympy/plotting/backends/matplotlibbackend/matplotlib.pyÚ_str_or_latexr      s&   € Ü�%œ×ÑÜ�U Ñ*Ð*Üˆu‹:Ðó    c                 ó˜  • / n/ n[        U 5      (       a’  U  H‰  nUS   nUS   nUR                  UR                  UR                  UR                  UR                  S/5        UR                  UR                  UR                  UR                  UR                  S/5        M‹     X4$ UR                  S5        UR                  S5        X4$ )z]
Returns lists for matplotlib ``fill`` command from a list of bounding
rectangular intervals
r   é   N)NNNN)ÚlenÚextendÚstartÚend)Úinterval_listÚxlistÚylistÚ	intervalsÚ	intervalxÚ	intervalys         r   Ú_matplotlib_listr      s½   € ð
 €EØ€EÜ
ˆ=×ÑÛ&ˆIØ! !™ˆIØ! !™ˆIØ�L‰L˜)Ÿ/™/¨9¯?©?Ø#Ÿ-™-¨¯©¸ð>ô ?à�L‰L˜)Ÿ/™/¨9¯=©=Ø#Ÿ-™-¨¯©¸$ð@ö Añ 'ð ˆ<Ðð 	�‰Ð-Ô.Ø�‰Ð-Ô.Øˆ<Ðr   c                   ód   ^ • \ rS rSrSrU 4S jrS r\SS j5       rS r	S r
S rS	 rS
 rSrU =r$ )ÚMatplotlibBackendé+   z[This class implements the functionalities to use Matplotlib with SymPy
plotting functions.
c                 ó  >• [         TU ]  " U0 UD6  [        SS/ SQ0S[        4S9U l        U R                  R
                  U l        U R                  R                  U l        U R                  R                  R                  U l	        UR                  SS5      U l        U R                  S:w  a-  [        U R                  S   5      U R                  S	   -  U l        UR                  S
S 5      U l        UR                  SS 5      U l        g )NÚ
matplotlibÚfromlist)ÚpyplotÚcmÚcollectionsz1.1.0)Úimport_kwargsÚmin_module_versionÚcatchÚaspect_ratioÚautor   r   ÚfigÚax)ÚsuperÚ__init__r   ÚRuntimeErrorr!   r#   Úpltr$   r%   ÚLineCollectionÚgetÚaspectÚfloatÚpopÚ_plotgrid_figÚ_plotgrid_ax)ÚselfÚseriesÚkwargsÚ	__class__s      €r   r.   ÚMatplotlibBackend.__init__0   sÖ   ø€ Ü‰Ò˜&Ð+ FÒ+Ü'¨Ø%Ò'FÐGØ&¬|¨oñ?ˆŒð —?‘?×)Ñ)ˆŒØ—/‘/×$Ñ$ˆŒØ"Ÿo™o×9Ñ9×HÑHˆÔØ—j‘j °Ó8ˆŒØ�;‰;˜&Ó Ü §¡¨A¡Ó/°$·+±+¸a±.Ñ@ˆDŒKð $ŸZ™Z¨¨tÓ4ˆÔØ"ŸJ™J t¨TÓ2ˆÕr   c                 ó  • S nU R                   bW  U R                   U l        U R                  U l        [	        S U R
                   5       5      (       d  U" U R                  5        g g U R                  R                  U R                  S9U l        [	        S U R
                   5       5      (       a"  U R                  R                  SSSSS9U l        g U R                  R                  SSS5      U l        U" U R                  5        g )Nc                 ó`  • U R                   S   R                  S5        U R                   S   R                  S5        U R                   S   R                  S5        U R                   S   R                  S5        U R                  R	                  S5        U R
                  R	                  S5        g )NÚleftÚzeroÚrightÚnoneÚbottomÚtop)ÚspinesÚset_positionÚ	set_colorÚxaxisÚset_ticks_positionÚyaxis)r,   s    r   Ú
set_spinesÚ4MatplotlibBackend._create_figure.<locals>.set_spinesA   s‚   € Ø�I‰I�fÑ×*Ñ*¨6Ô2Ø�I‰I�gÑ×(Ñ(¨Ô0Ø�I‰I�hÑ×,Ñ,¨VÔ4Ø�I‰I�eÑ×&Ñ& vÔ.Ø�H‰H×'Ñ'¨Ô1Ø�H‰H×'Ñ'¨Õ/r   c              3   ó8   #   • U  H  oR                   v •  M     g 7f©N©Úis_3D©Ú.0Úss     r   Ú	<genexpr>Ú3MatplotlibBackend._create_figure.<locals>.<genexpr>L   s   é € Ð5ª 1—w–wªùó   ‚)Úfigsizec              3   ó8   #   • U  H  oR                   v •  M     g 7frN   rO   rQ   s     r   rT   rU   P   s   é € Ð1¢L˜q—7–7¢LùrV   r   Ú3d)Ú
projection)
r6   r+   r7   r,   ÚanyÚ_seriesr0   ÚfigureÚsizeÚadd_subplot)r8   rK   s     r   Ú_create_figureÚ MatplotlibBackend._create_figure@   sË   € ò	0ð ×ÑÑ)Ø×)Ñ)ˆDŒHØ×'Ñ'ˆDŒGÜÑ5¨¯ªÓ5×5Ñ5Ù˜4Ÿ7™7Õ#ð 6ð —x‘x—‘¨t¯y©y�Ð9ˆDŒHÜÑ1 D§L¢LÓ1×1Ñ1ØŸ(™(×.Ñ.¨q°!°QÀ4Ð.ÐH�•àŸ(™(×.Ñ.¨q°!°QÓ7�”Ù˜4Ÿ7™7Õ#r   c                 óæ   • [        S5      nUb  SnXU4nOSnX4nUR                  R                  U5      R                  R	                  SSU5      nUR                  R                  USS USS /SS9$ )a6  Convert two list of coordinates to a list of segments to be used
with Matplotlib's :external:class:`~matplotlib.collections.LineCollection`.

Parameters
==========
    x : list
        List of x-coordinates

    y : list
        List of y-coordinates

    z : list
        List of z-coordinates for a 3D line.
ÚnumpyNé   é   éÿÿÿÿr   )Úaxis)r   ÚmaÚarrayÚTÚreshapeÚconcatenate)ÚxÚyÚzÚnpÚdimÚpointss         r   Úget_segmentsÚMatplotlibBackend.get_segmentsV   s   € ô  ˜7Ó#ˆØ‰=ØˆCØ˜A�Y‰FàˆCØ�VˆFØ—‘—‘˜VÓ$×&Ñ&×.Ñ.¨r°1°cÓ:ˆØ�u‰u× Ñ  &¨¨" +¨v°a°b¨zÐ!:ÀÐ ÐCÐCr   c                 ó€  • [        S5      n[        SSS/0S9n/ / / pvnU GHò  nUR                  (       aþ  UR                  (       a  UR                  5       u  pšnOUR                  5       u  pš[	        UR
                  [        [        45      (       d  [        UR
                  5      (       aT  U R                  Xš5      nU R                  U5      nUR                  UR                  5       5        UR                  U5        Mß  [        UR                  5      nUR!                  XšXèR
                  S9u  nGM  UR"                  (       a   UR$                  " UR                  5       6   GMD  UR&                  (       GaA  UR                  5       u  pšnn[	        UR
                  [        [        45      (       d  [        UR
                  5      (       aj  UR(                  R*                  nU R                  XšU5      nUR-                  U5      nUR                  UR                  5       5        UR                  U5        O0[        UR                  5      nUR!                  XšUXèR
                  S9  UR/                  UR0                  5        UR/                  UR2                  5        UR/                  UR4                  5        GM—  UR6                  (       GaM  UR                  (       a  UR                  5       u  pšnnnOUR                  5       u  pšnUR9                  XšU[;        U R<                  SU R<                  R>                  5      SSS	S
9n[	        UR@                  [        [        [B        45      (       a=  UR                  5       nURE                  URF                  5      nUR                  U5        OURI                  UR@                  5        UR/                  UR0                  5        UR/                  UR2                  5        UR/                  UR4                  5        GMö  URJ                  (       a¸  UR                  5       n[M        U5      S:X  a.  [O        US   5      u  pšURQ                  XšUR
                  SS9  GMT  U RR                  RT                  RV                  nU" SUR
                  /5      nUu  nnnnUS:X  a  UR%                  UUUUS9  GMª  URY                  UUUUS9  GM¿  URZ                  (       Ga
  UR\                  S:X  a)  UR                   " UR^                  0 UR`                  D6  GM
  UR\                  S:X  a)  URb                  " UR^                  0 UR`                  D6  GMC  UR\                  S:X  a)  URd                  " UR^                  0 UR`                  D6  GM|  UR\                  S:X  aL  URg                  U RR                  Rh                  Rj                  " UR^                  0 UR`                  D65        GMØ  GMÛ  [m        SRo                  U5      5      e   UR(                  Rp                  n[	        UU5      (       d.  URs                  URu                  5       URw                  5       S9  GOGU(       aS  URy                  U5      nUR{                  US S 2S4   5      UR}                  US S 2S4   5      4nUR                  U5        OUR                  SS/5        U(       aS  URy                  U5      nUR{                  US S 2S4   5      UR}                  US S 2S4   5      4nUR�                  U5        OUR�                  SS/5        U(       aS  URy                  U5      nUR{                  US S 2S4   5      UR}                  US S 2S4   5      4nURƒ                  U5        OURƒ                  SS/5        U R„                  (       a,  [	        UU5      (       d  UR‡                  U R„                  5        U Rˆ                  (       a,  [	        UU5      (       d  UR‹                  U Rˆ                  5        [	        UU5      (       a  U RR                  RŒ                  S:¼  a  UR�                  U R�                  5        U R’                  (       Ga+  U R’                  n [	        UU5      (       a  GOU S:X  a=  UR”                  S   R—                  S5        UR”                  S   R—                  S5        OÉU S:X  a}  UR™                  5       u  n!n"UR›                  5       u  n#n$U!U"-  S::  a  SOSn%U#U$-  S::  a  SOSn&UR”                  S   R—                  U%5        UR”                  S   R—                  U&5        OFUR”                  S   R—                  SU S   45        UR”                  S   R—                  SU S   45        U Rœ                  (       d  URŸ                  5         U R                   (       a:  UR¡                  5       (       a%  UR¢                  R¥                  U R                   5        U R¦                  (       a6  UR©                  U R¦                  5        UR«                  U R¦                  5        U R¬                  (       a  UR¯                  U R¬                  5        U R°                  (       a%  [        U R°                  5      n'UR³                  U'SS 9  U R´                  (       a%  [        U R´                  5      n(UR·                  U(S!S 9  [	        UU5      (       a6  U R¸                  (       a%  [        U R¸                  5      n)UR»                  U)S!S 9  U R¼                  (       a  UR                  U R¼                  5        U R¾                  (       a  UR�                  U R¾                  5        U RÀ                  RÃ                  U RÄ                  5        g )"Nrc   Úmpl_toolkitsr"   Úmplot3d)r&   )r   ÚcolorÚviridisr   gš™™™™™¹?)ÚcmapÚrstrideÚcstrideÚ	linewidthre   r   ÚNone)Ú	facecolorÚ	edgecolorÚwhiteÚcontour)rz   ÚmarkersÚannotationsÚfillÚ
rectangleszc{} is not supported in the SymPy plotting module with matplotlib backend. Please report this issue.)ÚscalexÚscaleyz1.2.0Úcenterr?   rC   r*   )Údatar   rŠ   )r   r   )Úposition)r   r   )cr   Ú	is_2DlineÚis_parametricÚget_datar
   Ú
line_colorÚintr4   Úcallablers   r1   Ú	set_arrayÚget_color_arrayÚadd_collectionr   r   ÚplotÚ
is_contourr‚   Ú	is_3Dlinerw   Úart3dÚLine3DCollectionÚappendÚ_xlimÚ_ylimÚ_zlimÚis_3DsurfaceÚplot_surfaceÚgetattrr$   ÚjetÚsurface_colorr   rk   r^   rG   Úis_implicitr   r   r…   r!   ÚcolorsÚListedColormapÚcontourfÚ
is_genericÚtypeÚargsÚrendering_kwÚannotateÚfill_betweenÚ	add_patchÚpatchesÚ	RectangleÚNotImplementedErrorÚformatÚAxes3DÚautoscale_viewÚget_autoscalex_onÚget_autoscaley_onri   ÚaminÚamaxÚset_xlimÚset_ylimÚset_zlimÚxscaleÚ
set_xscaleÚyscaleÚ
set_yscaleÚ__version__Úset_autoscale_onÚ	autoscaleÚaxis_centerrE   rF   Úget_xlimÚget_ylimrg   Úset_axis_offÚlegendÚlegend_Úset_visibleÚmarginÚset_xmarginÚset_ymarginÚtitleÚ	set_titleÚxlabelÚ
set_xlabelÚylabelÚ
set_ylabelÚzlabelÚ
set_zlabelÚxlimÚylimr,   Ú
set_aspectr3   )*r8   r9   r,   rp   rv   ÚxlimsÚylimsÚzlimsrS   rm   rn   ÚparamÚsegmentsÚ
collectionÚlblÚlinero   r˜   ÚuÚvÚcolor_arrayrr   r¥   ÚcolormapÚxarrayÚyarrayÚzarrayÚ	plot_typer²   rÔ   rÕ   ÚzlimÚvalÚxlÚxhÚylÚyhÚpos_leftÚ
pos_bottomÚxlblÚylblÚzlbls*                                             r   Ú_process_seriesÚ!MatplotlibBackend._process_seriesp   sŽ  € Ü˜7Ó#ˆÜ$Ø¨:¸	°{Ð*CñEˆð
 ! " b�eˆäˆAà�{�{Ø—?—?Ø"#§*¡*£,‘K�A™%àŸ:™:›<‘D�AÜ˜qŸ|™|¬c´5¨\×:Ñ:Ü  §¡×.Ñ.Ø#×0Ñ0°Ó6�HØ!%×!4Ñ!4°XÓ!>�JØ×(Ñ(¨×):Ñ):Ó)<Ô=Ø×%Ñ% jÖ1ä'¨¯©Ó0�CØŸG™G A°¿<¹<˜GÐH‘E“DØ——Ø—
’
˜AŸJ™J›LÔ)Ø——�Ø!"§¡£‘��a˜Ü˜qŸ|™|¬c´5¨\×:Ñ:Ü  §¡×.Ñ.Ø(×0Ñ0×6Ñ6�EØ#×0Ñ0°°qÓ9�HØ!&×!7Ñ!7¸Ó!A�JØ×(Ñ(¨×):Ñ):Ó)<Ô=Ø×%Ñ% jÕ1ä'¨¯©Ó0�CØ—G‘G˜A !¨3·l±l�GÑCà—‘˜QŸW™WÔ%Ø—‘˜QŸW™WÔ%Ø—‘˜QŸW™W×%Ø——�Ø—?—?Ø$%§J¡J£L‘M�A˜!˜Q¡àŸj™j›l‘G�A˜!ØŸ_™_¨Q°1Ü  §¡¨)°T·W±W·[±[ÓAØ q°Cð -ð 9�
ô ˜aŸo™o´´s¼HÐ/E×FÑFØ"#×"3Ñ"3Ó"5�KØ"-×"5Ñ"5°k×6FÑ6FÓ"G�KØ×(Ñ(¨Õ5à×(Ñ(¨¯©Ô9à—‘˜QŸW™WÔ%Ø—‘˜QŸW™WÔ%Ø—‘˜QŸW™W×%Ø——ØŸ™›�Ü�v“; !Ó#ä+¨F°1©IÓ6‘D�AØ—G‘G˜A¨A¯L©LÀF�GÔKð
 &*§_¡_×%;Ñ%;×%JÑ%J�NÙ-¨w¸¿¹Ð.EÓF�HØ8>Ñ5�F˜F F¨IØ  IÓ-ØŸ
™
 6¨6°6À˜
ÔIàŸ™ F¨F°FÀ˜ÔJØ——�Ø—6‘6˜YÓ&à—G’G˜QŸV™VÐ6 q§~¡~Õ6Ø—V‘V˜}Ó,Ø—K’K §¡Ð:¨1¯>©>Õ:Ø—V‘V˜vÓ%à—O’O Q§V¡VÐ>¨q¯~©~Õ>Ø—V‘V˜|Ó+à—L‘LØŸ™×/Ñ/×9Ò9ØŸV™Vð7Ø'(§~¡~ñ7÷8ò ,ô *ðIç‘V˜B“Zó!ð !ñi ðr ×%Ñ%×,Ñ,ˆÜ˜"˜f×%Ñ%Ø×ÑØ×+Ñ+Ó-Ø×+Ñ+Ó-ð ó /ö ØŸ™ ›�ØŸ™ ¢a¨ d¡Ó,¨b¯g©g°eºA¸q¸D±kÓ.BÐC�Ø—‘˜DÕ!à—‘˜Q ˜FÔ#æØŸ™ ›�ØŸ™ ¢a¨ d¡Ó,¨b¯g©g°eºA¸q¸D±kÓ.BÐC�Ø—‘˜DÕ!à—‘˜Q ˜FÔ#æØŸ™ ›�ØŸ™ ¢a¨ d¡Ó,¨b¯g©g°eºA¸q¸D±kÓ.BÐC�Ø—‘˜DÕ!à—‘˜Q ˜FÔ#ð
 �;�;œz¨"¨f×5Ñ5Ø�M‰M˜$Ÿ+™+Ô&Ø�;�;œz¨"¨f×5Ñ5Ø�M‰M˜$Ÿ+™+Ô&Ü˜"˜f×%Ñ%¨¯©×)DÑ)DÈÓ)OØ×Ñ §¡Ô/Ø××ÐØ×"Ñ"ˆCÜ˜"˜f×%Ñ%ÙØ˜“Ø—	‘	˜&Ñ!×.Ñ.¨xÔ8Ø—	‘	˜(Ñ#×0Ñ0°Õ:Ø˜“ØŸ™›‘��BØŸ™›‘��BØ*,¨R©%°1«*™;¸(�Ø,.¨r©E°Q«J™[¸H�
Ø—	‘	˜&Ñ!×.Ñ.¨xÔ8Ø—	‘	˜(Ñ#×0Ñ0°Õ<à—	‘	˜&Ñ!×.Ñ.°¸¸A¹Ð/?Ô@Ø—	‘	˜(Ñ#×0Ñ0°&¸#¸a¹&Ð1AÔBØ�y�yØ�O‰OÔØ�;�;Ø�y‰y�{‰{Ø—
‘
×&Ñ& t§{¡{Ô3Ø�;�;Ø�N‰N˜4Ÿ;™;Ô'Ø�N‰N˜4Ÿ;™;Ô'Ø�:�:Ø�L‰L˜Ÿ™Ô$Ø�;�;Ü  §¡Ó-ˆDØ�M‰M˜$¨ˆMÑ0Ø�;�;Ü  §¡Ó-ˆDØ�M‰M˜$¨ˆMÑ0Ü�b˜&×!Ñ! d§k§kÜ  §¡Ó-ˆDØ�M‰M˜$¨ˆMÑ0ð �9�9Ø�K‰K˜Ÿ	™	Ô"Ø�9�9Ø�K‰K˜Ÿ	™	Ô"Ø�‰×Ñ˜4Ÿ;™;Õ'r   c                 óp   • U R                  5         U R                  U R                  U R                  5        g)zI
Iterates over every ``Plot`` object and further calls
_process_series()
N)r`   rò   r\   r,   ©r8   s    r   Úprocess_seriesÚ MatplotlibBackend.process_series&  s(   € ð
 	×ÑÔØ×Ñ˜TŸ\™\¨4¯7©7Õ3r   c                 óØ   • U R                  5         [        R                  (       a5  U R                  R	                  5         U R
                  R                  5         g U R                  5         g rN   )rö   Úbase_backendÚ_showr+   Útight_layoutr0   ÚshowÚcloserõ   s    r   rü   ÚMatplotlibBackend.show.  s?   € Ø×ÑÔô ××Ø�H‰H×!Ñ!Ô#Ø�H‰H�M‰M�Oà�J‰J�Lr   c                 óZ   • U R                  5         U R                  R                  U5        g rN   )rö   r+   Úsavefig)r8   Úpaths     r   ÚsaveÚMatplotlibBackend.save9  s    € Ø×ÑÔØ�‰×Ñ˜Õr   c                 óN   • U R                   R                  U R                  5        g rN   )r0   rý   r+   rõ   s    r   rý   ÚMatplotlibBackend.close=  s   € Ø�‰�‰�t—x‘xÕ r   )	r1   r7   r6   r3   r,   r$   r+   r!   r0   rN   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r.   r`   Ústaticmethodrs   rò   rö   rü   r  rý   Ú__static_attributes__Ú__classcell__)r;   s   @r   r   r   +   sH   ø† ñõ3ò $ð, óDó ðDò2s(òl4ò	ò÷!ð !r   r   )Úcollections.abcr   Úsympy.core.basicr   Úsympy.externalr   Ú$sympy.plotting.backends.base_backendÚplottingÚbackendsrù   Úsympy.printing.latexr   r   r   ÚPlotr   © r   r   Ú<module>r     s5   ðÝ $Ý "Ý (ß ;Ó ;Ý &òòô0S!˜×)Ñ)õ S!r   