§
    PŠtj?  ã                   óì   — d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZ d dlmZmZmZmZmZmZ d d	lmZ d d
lmZ d dlmZmZmZ d dlmZ d dlmZ d dl m!Z!  G d„ de¦  «        Z"d„ Z#dS )é    )ÚRational)ÚS)Úsymbols)Úsign)Úsqrt)Úgcd)Ú
Complement)ÚBasicÚTupleÚdiffÚexpandÚEqÚInteger)Úordered)Ú_symbol)ÚsolvesetÚnonlinsolveÚdiophantine©Útotal_degree)ÚPoint)Úcorec                   óŠ   ‡ — e Zd ZdZˆ fd„Zed„ ¦   «         Zed„ ¦   «         Zed„ ¦   «         Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zdd„Zˆ xZS )ÚImplicitRegiona¡  
    Represents an implicit region in space.

    Examples
    ========

    >>> from sympy import Eq
    >>> from sympy.abc import x, y, z, t
    >>> from sympy.vector import ImplicitRegion

    >>> ImplicitRegion((x, y), x**2 + y**2 - 4)
    ImplicitRegion((x, y), x**2 + y**2 - 4)
    >>> ImplicitRegion((x, y), Eq(y*x, 1))
    ImplicitRegion((x, y), x*y - 1)

    >>> parabola = ImplicitRegion((x, y), y**2 - 4*x)
    >>> parabola.degree
    2
    >>> parabola.equation
    -4*x + y**2
    >>> parabola.rational_parametrization(t)
    (4/t**2, 4/t)

    >>> r = ImplicitRegion((x, y, z), Eq(z, x**2 + y**2))
    >>> r.variables
    (x, y, z)
    >>> r.singular_points()
    EmptySet
    >>> r.regular_point()
    (-10, -10, 200)

    Parameters
    ==========

    variables : tuple to map variables in implicit equation to base scalars.

    equation : An expression or Eq denoting the implicit equation of the region.

    c                 óÎ   •— t          |t          ¦  «        s	t          |Ž }t          |t          ¦  «        r|j        |j        z
  }t          ¦   «                              | ||¦  «        S ©N)Ú
isinstancer   r   ÚlhsÚrhsÚsuperÚ__new__)ÚclsÚ	variablesÚequationÚ	__class__s      €úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sympy/vector/implicitregion.pyr!   zImplicitRegion.__new__9   sY   ø€ Ý˜)¥UÑ+Ô+ð 	*Ý˜yÐ)ˆIå�h¥Ñ#Ô#ð 	3Ø”| h¤lÑ2ˆHå‰wŒw�Š˜s I¨xÑ8Ô8Ð8ó    c                 ó   — | j         d         S )Nr   ©Úargs©Úselfs    r&   r#   zImplicitRegion.variablesB   ó   € àŒy˜Œ|Ðr'   c                 ó   — | j         d         S )Né   r)   r+   s    r&   r$   zImplicitRegion.equationF   r-   r'   c                 ó*   — t          | j        ¦  «        S r   )r   r$   r+   s    r&   ÚdegreezImplicitRegion.degreeJ   s   € å˜DœMÑ*Ô*Ð*r'   c                 óÜ  — | j         }t          | j        ¦  «        dk    r;t          t	          || j        d         t
          j        ¬¦  «        ¦  «        d         fS t          | j        ¦  «        dk    rW| j        dk    rLt          | j        |¦  «        x}\  }}}}}}|dz  d|z  |z  k    r | j	        |Ž \  }	}
n | j
        |Ž \  }	}
|	|
fS t          | j        ¦  «        dk    r´| j        \  }}}t          dd¦  «        D ]˜}	t          dd¦  «        D ]…}
t	          |                     ||	||
i¦  «        | j        d         t
          j        ¬¦  «        j        s@|	|
t          t	          |                     ||	||
i¦  «        ¦  «        ¦  «        d         fc c S Œ†Œ™t          |                      ¦   «         ¦  «        dk    r%t          |                      ¦   «                  d         S t          ¦   «         ‚)	a0  
        Returns a point on the implicit region.

        Examples
        ========

        >>> from sympy.abc import x, y, z
        >>> from sympy.vector import ImplicitRegion
        >>> circle = ImplicitRegion((x, y), (x + 2)**2 + (y - 3)**2 - 16)
        >>> circle.regular_point()
        (-2, -1)
        >>> parabola = ImplicitRegion((x, y), x**2 - 4*y)
        >>> parabola.regular_point()
        (0, 0)
        >>> r = ImplicitRegion((x, y, z), (x + y + z)**4)
        >>> r.regular_point()
        (-10, -10, 20)

        References
        ==========

        - Erik Hillgarter, "Rational Points on Conics", Diploma Thesis, RISC-Linz,
          J. Kepler Universitat Linz, 1996. Available:
          https://www3.risc.jku.at/publications/download/risc_1355/Rational%20Points%20on%20Conics.pdf

        r/   r   )Údomainé   é   é   iöÿÿÿé
   )r$   Úlenr#   Úlistr   r   ÚRealsr1   Úconic_coeffÚ_regular_point_parabolaÚ_regular_point_ellipseÚrangeÚsubsÚis_emptyÚsingular_pointsÚNotImplementedError)r,   r$   ÚcoeffsÚaÚbÚcÚdÚeÚfÚx_regÚy_regÚxÚyÚzs                 r&   Úregular_pointzImplicitRegion.regular_pointN   s  € ð6 ”=ˆåˆtŒ~ÑÔ !Ò#Ð#Ý� (¨D¬N¸1Ô,=ÅaÄgÐNÑNÔNÑOÔOÐPQÔRÐTÐTÝ�”Ñ Ô  AÒ%Ð%àŒ{˜aÒÐÝ,7¸¼ÈÑ,QÔ,QÐQ�Ñ)˜˜A˜q ! Q¨à�a‘4˜1˜Q™3˜q™5’=�=Ø#? 4Ô#?ÀÐ#H‘L�E˜5˜5à#> 4Ô#>ÀÐ#G‘L�E˜5Ø˜e�|Ð#åˆtŒ~ÑÔ !Ò#Ð#Ø”n‰GˆAˆq�!å˜s B™œð fð f�Ý" 3¨™^œ^ð fð f�EÝ# H§M¢M°1°e¸QÀÐ2FÑ$GÔ$GÈÌÐXYÔIZÕcdÔcjÐkÑkÔkÔtð fØ % u­dµ8¸H¿MºMÈ1ÈeÐUVÐX]ÐJ^Ñ<_Ô<_Ñ3`Ô3`Ñ.aÔ.aÐbcÔ.dÐeÐeÐeÐeÐeÐeðfðfõ ˆt×#Ò#Ñ%Ô%Ñ&Ô&¨!Ò+Ð+Ý˜×,Ò,Ñ.Ô.Ô/°Ô2Ð2å!Ñ#Ô#Ð#r'   c                 óª  — ||fdk    o||fdk    o|dz  d|z  |z  k    o||fdk    }|st          d¦  «        ‚|dk    r>d|z  |z  d|z  |z  z
  d|z  |z  |dz  z
  }	}|dk    r|	 |z  }
|||
z  z    d|z  z  }nFd}nC|dk    r=d|z  |z  d|z  |z  z
  d|z  |z  |dz  z
  }	}|dk    r|	 |z  }|||z  z    d|z  z  }
nd}|r||
fS t          d¦  «        ‚)N)r   r   r4   r5   ú*Rational Point on the conic does not existr   F)Ú
ValueError)r,   rD   rE   rF   rG   rH   rI   ÚokÚd_dashÚf_dashrK   rJ   s               r&   r<   z&ImplicitRegion._regular_point_parabola…   sQ  € Ø�Q�˜6Ò!Ð] q¨! f°Ò&6Ð]¸1¸a¹4À1ÀQÁ3ÀqÁ5º=Ð]ÈaÐQRÈVÐW]ÒM]ˆBàð OÝ Ð!MÑNÔNÐNà�AŠvˆvØ"# A¡# a¡%¨!¨A©#¨a©%¡-°°1±°Q±¸¸A¹±˜�Ø˜Q’;�;Ø#˜G F™N�EØ ! E¡'™k˜N¨A¨a©CÑ0�E�Eà�B�BØ�a’�Ø"# A¡# a¡%¨!¨A©#¨a©%¡-°°1±°Q±¸¸A¹±˜�Ø˜Q’;�;Ø#˜G F™N�EØ ! E¡'™k˜N¨A¨a©CÑ0�E�Eà�Bàð OØ˜e�|Ð#å Ð!MÑNÔNÐNr'   c                 ó„  ‡.— d|z  |z  |dz  z
  }|}|st          d¦  «        ‚|dk    r|dk    rd}	d||z  ||z  z
  z  }
n�|dk    rM|}	d|dz  z  |dz  z  d|z  |z  |z  |z  z
  d|z  |z  |dz  z  z   d|dz  z  |z  |z  z   d|z  |dz  z  |z  z
  }
n.|}	d|dz  z  |dz  z  d|z  |z  |z  |z  z
  d|dz  z  |z  |z  z   }
|
dk    o|	dk    o|
dk      }|st          d¦  «        ‚t          |	¦  «                             d¦  «        }	t          |
¦  «                             d¦  «        }
|	j        |	j        }}|
j        |
j        }}t          ||¦  «        }||z  |z  }||z  |z  }||z   |z  }t          |¦  «        t          t          |¦  «        d¦  «        z  }t          ||z  ¦  «        }t          |¦  «        t          t          |¦  «        d¦  «        z  }t          ||z  ¦  «        }t          |¦  «        t          t          |¦  «        d¦  «        z  }t          ||z  ¦  «        }t          t          ||¦  «        |¦  «        }||z  }||z  }||z  }t          ||¦  «        }||z  }||z  }||z  }t          ||¦  «        }||z  }||z  }||z  }t          ||¦  «        }||z  }||z  }||z  }t          d¦  «        \  }}}||dz  z  ||dz  z  z   ||dz  z  z   }t          |¦  «        } t          | ¦  «        dk    rt          d¦  «        ‚d	}!| D �]ò}"t          |"Ž j        }#t                               |#d
¦  «        Š.|"d         }$|$dk    rd}!Œ=t#          |$t$          t&          f¦  «        �s˜|$j        }%t          |%¦  «        dk    r|t)          t+          |%¦  «        ¦  «        }&t-          t.          j        t3          t5          |$d¦  «        |&t.          j        ¦  «        ¦  «        }'t)          t+          |'¦  «        ¦  «        ‰.|&<   t          |%¦  «        dk    r²t7          t9          |%¦  «        ¦  «        \  }&}(t.          j        D ]†})|$                     |&|)¦  «        }*t-          t.          j        t3          t5          |*d¦  «        |(t.          j        ¦  «        ¦  «        }+|+j        s&|)‰.|&<   t)          t+          |+¦  «        ¦  «        ‰.|(<    nŒ‡t          |#¦  «        dk    r t?          ˆ.fd„|"D ¦   «         ¦  «        \  }}}n|"\  }}}d	}! n�Œô|!rt          d¦  «        ‚||z  |z  }||z  |z  }||z  |z  }||z  }||z  }|dk    r)|dk    r#||z   d|z  z
  d|z  z  },||z
  d|z  z
  d|z  z  }-nQ|dk    r&|d|z  |z  z
  ||z  z   |	z  },|||,z  z
  |z
  d|z  z  }-n%|d|z  |z  z
  ||z  z   |	z  }-|||-z  z
  |z
  d|z  z  },|,|-fS )Nr5   r4   rQ   r   éÿÿÿÿé   l    J)£zx y zFr6   Tr/   c              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   ©r?   ©Ú.0ÚsÚreps     €r&   ú	<genexpr>z8ImplicitRegion._regular_point_ellipse.<locals>.<genexpr>   s-   øè è € Ð'AÐ'A¸¨¯ª¨s©¬Ð'AÐ'AÐ'AÐ'AÐ'AÐ'Ar'   ) rR   r   Úlimit_denominatorÚpÚqr   r   r   Úabsr   r   r   r8   r   Úfree_symbolsÚdictÚfromkeysr   Úintr   ÚnextÚiterr	   r   ÚIntegersr   r   r9   r   r?   r@   Útuple)/r,   rD   rE   rF   rG   rH   rI   ÚDrS   ÚKÚLÚk1Úk2Úl1Úl2ÚgÚa1Úb1Úc1Úa2Úr1Úb2Úr2Úc2Úr3Úg1Úg2Úg3rL   rM   rN   ÚeqÚ	solutionsÚflagÚsolÚsymsÚsol_zÚsyms_zra   Úp_valuesrb   ÚiÚ
subs_sol_zÚq_valuesrJ   rK   r^   s/                                                 @r&   r=   z%ImplicitRegion._regular_point_ellipseŸ   sf  ø€ Ø�!‘�A‘˜˜1™‘ˆAØˆBàð OÝ Ð!MÑNÔNÐNà�AŠvˆv˜!˜qš&˜&Ø�Ø�q˜‘s˜Q˜q™S‘y‘M��Ø�a’�Ø�Ø�a˜‘d‘F˜1˜a™4‘K ! A¡# a¡%¨¡'¨!¡)Ñ+¨a°©c°!©e°A°q±D©jÑ8¸1¸QÀ¹T¹6À!¹8ÀA¹:ÑEÈÈ1ÉÈQÐPQÉTÉ	ÐRSÉÑS��à�Ø�a˜‘d‘F˜1˜a™4‘K ! A¡# a¡%¨¡'¨!¡)Ñ+¨a°°1±©f°Q©h°q©jÑ8�à�a’Ð0  A¢ ¨!¨aª%Ð0ˆBØð OÝ Ð!MÑNÔNÐNå˜‘”×-Ò-¨fÑ5Ô5ˆAÝ˜‘”×-Ò-¨fÑ5Ô5ˆAà”S˜!œ#�ˆBØ”S˜!œ#�ˆBÝ�B˜‘”ˆAà�R‘%˜‘ˆBØ�R‘%˜‘ˆBØ�b‘5�˜!‘ˆBÝ�b‘”�$�s 2™wœw¨Ñ*Ô*Ñ*ˆBÝ�b˜‘e‘”ˆBÝ�b‘”�$�s 2™wœw¨Ñ*Ô*Ñ*ˆBÝ�b˜‘e‘”ˆBÝ�b‘”�$�s 2™wœw¨Ñ*Ô*Ñ*ˆBÝ�b˜‘e‘”ˆBå•C˜˜B‘K”K Ñ$Ô$ˆAØ�A‘ˆBØ�A‘ˆBØ�A‘ˆBå�R˜‘”ˆBØ�B‘ˆBØ�B‘ˆBØ�B‘ˆBå�R˜‘”ˆBØ�B‘ˆBØ�B‘ˆBØ�B‘ˆBå�R˜‘”ˆBØ�B‘ˆBØ�B‘ˆBØ�B‘ˆBå˜gÑ&Ô&‰GˆAˆq�!Ø�A�q‘D‘˜2˜a ™d™7Ñ" R¨¨1©¡WÑ,ˆBå# B™œˆIå�9‰~Œ~ Ò"Ð"Ý Ð!MÑNÔNÐNàˆDØ ð "ñ "�Ý˜c�{Ô/�Ý—m’m D¨!Ñ,Ô,�Ø˜Aœ�à˜A’:�:Ø�DØå! %­#­w¨Ñ8Ô8ñ Ø"Ô/�Få˜6‘{”{ aÒ'Ð'Ý ¥ f¡¤Ñ.Ô.˜Ý#-­a¬j½(Å2ÀeÈQÁ<Ä<ÐQRÕTUÔT^Ñ:_Ô:_Ñ#`Ô#`˜Ý!%¥d¨8¡n¤nÑ!5Ô!5˜˜A™å˜6‘{”{ aÒ'Ð'Ý#¥G¨F¡O¤OÑ4Ô4™˜˜1å!"¤ð &ð &˜AØ).¯ª°A°qÑ)9Ô)9˜JÝ'1µ!´*½hÅrÈ*ÐVWÑGXÔGXÐZ[Õ]^Ô]gÑ>hÔ>hÑ'iÔ'i˜Hà#+Ô#4ð &Ø)*  A¡Ý)-­d°8©n¬nÑ)=Ô)=  A¡Ø % ð&õ
 ˜4‘y”y A’~�~Ý"'Ð'AÐ'AÐ'AÐ'A¸SÐ'AÑ'AÔ'AÑ"AÔ"A™˜˜1˜a˜aà$'™˜˜1˜aØ �DØ�Eñ3ð6 ð OÝ Ð!MÑNÔNÐNà�2‘�r‘	ˆAØ�2‘�r‘	ˆAØ�2‘�r‘	ˆAØ�!‘ˆAØ�!‘ˆAà�AŠvˆv˜!˜qš&˜&Ø˜Q™  1¡™ q¨¡sÑ+�Ø˜Q™  1¡™ q¨¡sÑ+��Ø�a’�Ø˜Q˜q™S ™U™ Q q¡S™¨!Ñ+�Ø˜Q˜u™W™ q™¨1¨Q©3Ñ/��à˜Q˜q™S ™U™ Q q¡S™¨!Ñ+�Ø˜Q˜u™W™ q™¨1¨Q©3Ñ/�à˜%�<Ðr'   c                 óœ   — | j         g}| j        D ]}|t          | j         |¦  «        gz  }Œt          |t	          | j        ¦  «        ¦  «        S )aŸ  
        Returns a set of singular points of the region.

        The singular points are those points on the region
        where all partial derivatives vanish.

        Examples
        ========

        >>> from sympy.abc import x, y
        >>> from sympy.vector import ImplicitRegion
        >>> I = ImplicitRegion((x, y), (y-1)**2 -x**3 + 2*x**2 -x)
        >>> I.singular_points()
        {(1, 1)}

        )r$   r#   r   r   r9   )r,   Úeq_listÚvars      r&   rA   zImplicitRegion.singular_points  sS   € ð" ”=�/ˆØ”>ð 	2ð 	2ˆCØ�˜Tœ]¨CÑ0Ô0Ð1Ñ1ˆGˆGå˜7¥D¨¬Ñ$8Ô$8Ñ9Ô9Ð9r'   c                 óp  — t          |t          ¦  «        r|j        }| j        }t	          | j        ¦  «        D ]$\  }}|                     ||||         z   ¦  «        }Œ%t          |¦  «        }t          |j        ¦  «        dk    r!|j        }t          d„ |D ¦   «         ¦  «        }n|}t          |¦  «        }|S )a  
        Returns the multiplicity of a singular point on the region.

        A singular point (x,y) of region is said to be of multiplicity m
        if all the partial derivatives off to order m - 1 vanish there.

        Examples
        ========

        >>> from sympy.abc import x, y, z
        >>> from sympy.vector import ImplicitRegion
        >>> I = ImplicitRegion((x, y, z), x**2 + y**3 - z**4)
        >>> I.singular_points()
        {(0, 0, 0)}
        >>> I.multiplicity((0, 0, 0))
        2

        r   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   r   )r\   Úterms     r&   r_   z.ImplicitRegion.multiplicity.<locals>.<genexpr>P  s*   è è € Ð9Ð9¨4•L Ñ&Ô&Ð9Ð9Ð9Ð9Ð9Ð9r'   )r   r   r*   r$   Ú	enumerater#   r?   r   r8   Úminr   )r,   ÚpointÚmodified_eqrˆ   r�   ÚtermsÚms          r&   ÚmultiplicityzImplicitRegion.multiplicity2  sÂ   € õ& �e�UÑ#Ô#ð 	Ø”JˆEà”mˆå ¤Ñ/Ô/ð 	@ð 	@‰FˆAˆsØ%×*Ò*¨3°°e¸A´h±Ñ?Ô?ˆKˆKÝ˜[Ñ)Ô)ˆåˆ{ÔÑ Ô  AÒ%Ð%ØÔ$ˆEÝÐ9Ð9°5Ð9Ñ9Ô9Ñ9Ô9ˆAˆAàˆEÝ˜UÑ#Ô#ˆAàˆr'   ©Útr]   Nc                 óŒ	  ‡— | j         }| j        }|dk    rrt          | j        ¦  «        dk    r|fS t          | j        ¦  «        dk    r1| j        \  }}t	          t          ||¦  «        ¦  «        d         }||fS t          ¦   «         ‚d}|dk    rf|�|}nat          |                      ¦   «         ¦  «        dk    r(t	          |                      ¦   «         ¦  «        d         }n|                      ¦   «         }t          |                      ¦   «         ¦  «        dk    r�|                      ¦   «         }	|	D ]y}
t          |
Ž j
        }t                               |d¦  «        Št          |¦  «        dk    rt          ˆfd„|
D ¦   «         ¦  «        }
|                      |
¦  «        |dz
  k    r|
} nŒzt          |¦  «        dk    rt          ¦   «         ‚|}t          | j        ¦  «        D ]$\  }}|                     ||||         z   ¦  «        }Œ%t#          |¦  «        }dx}}|j        D ] }t'          |¦  «        |k    r||z  }Œ||z  }Œ!d|z  }t)          |t          ¦  «        s|f}t          | j        ¦  «        dk    rî|d         }|dk    rt+          d	d
¬¦  «        }nt+          dd
¬¦  «        }t+          |d
¬¦  «        }|                     | j        d         || j        d         |i¦  «        }|                     | j        d         || j        d         |i¦  «        }|||z  z                       |d¦  «        |d         z   }|||z  z                       |d¦  «        |d         z   }||fS t          | j        ¦  «        dk    �r:|\  }}d|v rt+          dd
¬¦  «        }nt+          dd
¬¦  «        }t+          |d
¬¦  «        }t+          |d
¬¦  «        }|                     | j        d         || j        d         || j        d         |i¦  «        }|                     | j        d         || j        d         || j        d         |i¦  «        }|||z  z                       |d¦  «        |d         z   }|||z  z                       |d¦  «        |d         z   }|||z  z                       |d¦  «        |d         z   }|||fS t          ¦   «         ‚)aÉ  
        Returns the rational parametrization of implicit region.

        Examples
        ========

        >>> from sympy import Eq
        >>> from sympy.abc import x, y, z, s, t
        >>> from sympy.vector import ImplicitRegion

        >>> parabola = ImplicitRegion((x, y), y**2 - 4*x)
        >>> parabola.rational_parametrization()
        (4/t**2, 4/t)

        >>> circle = ImplicitRegion((x, y), Eq(x**2 + y**2, 4))
        >>> circle.rational_parametrization()
        (4*t/(t**2 + 1), 4*t**2/(t**2 + 1) - 2)

        >>> I = ImplicitRegion((x, y), x**3 + x**2 - y**2)
        >>> I.rational_parametrization()
        (t**2 - 1, t*(t**2 - 1))

        >>> cubic_curve = ImplicitRegion((x, y), x**3 + x**2 - y**2)
        >>> cubic_curve.rational_parametrization(parameters=(t))
        (t**2 - 1, t*(t**2 - 1))

        >>> sphere = ImplicitRegion((x, y, z), x**2 + y**2 + z**2 - 4)
        >>> sphere.rational_parametrization(parameters=(t, s))
        (-2 + 4/(s**2 + t**2 + 1), 4*s/(s**2 + t**2 + 1), 4*t/(s**2 + t**2 + 1))

        For some conics, regular_points() is unable to find a point on curve.
        To calulcate the parametric representation in such cases, user need
        to determine a point on the region and pass it using reg_point.

        >>> c = ImplicitRegion((x, y), (x  - 1/2)**2 + (y)**2 - (1/4)**2)
        >>> c.rational_parametrization(reg_point=(3/4, 0))
        (0.75 - 0.5/(t**2 + 1), -0.5*t/(t**2 + 1))

        References
        ==========

        - Christoph M. Hoffmann, "Conversion Methods between Parametric and
          Implicit Curves and Surfaces", Purdue e-Pubs, 1990. Available:
          https://docs.lib.purdue.edu/cgi/viewcontent.cgi?article=1827&context=cstech

        r/   r4   r   © Nc              3   óB   •K  — | ]}|                      ‰¦  «        V — Œd S r   rZ   r[   s     €r&   r_   z:ImplicitRegion.rational_parametrization.<locals>.<genexpr>¨  s-   øè è € Ð"?Ð"?°1 1§6¢6¨#¡;¤;Ð"?Ð"?Ð"?Ð"?Ð"?Ð"?r'   rW   r]   Ús_T)Úrealr6   ÚrÚr_)r$   r1   r8   r#   r9   r   rB   rA   rO   r   rd   re   rf   rk   r—   r‘   r?   r   r*   r   r   r   )r,   Ú
parametersÚ	reg_pointr$   r1   rL   rM   Úy_parr“   rA   Úspointr„   r”   rˆ   r�   ÚhnÚhn_1r�   Ú
parameter1r]   r™   Úx_parÚ
parameter2rŸ   Úz_parr^   s                            @r&   Úrational_parametrizationz'ImplicitRegion.rational_parametrizationW  sø  ø€ ð^ ”=ˆØ”ˆà�QŠ;ˆ;Ý�4”>Ñ"Ô" aÒ'Ð'Ø �{Ð"Ý�T”^Ñ$Ô$¨Ò)Ð)Ø”~‘��1Ý�X h°Ñ2Ô2Ñ3Ô3°AÔ6�Ø˜%�x�å)Ñ+Ô+Ð+àˆð �QŠ;ˆ;àÐ$à!��å�t×+Ò+Ñ-Ô-Ñ.Ô.°!Ò3Ð3Ý  ×!5Ò!5Ñ!7Ô!7Ñ8Ô8¸Ô;�E�Eà ×.Ò.Ñ0Ô0�Eåˆt×#Ò#Ñ%Ô%Ñ&Ô&¨!Ò+Ð+Ø"×2Ò2Ñ4Ô4ˆOØ)ð 	ð 	�Ý˜f�~Ô2�Ý—m’m D¨!Ñ,Ô,�å�t‘9”9 ’>�>Ý"Ð"?Ð"?Ð"?Ð"?¸Ð"?Ñ"?Ô"?Ñ?Ô?�Fà×$Ò$ VÑ,Ô,°¸±
Ò:Ð:Ø"�EØ�Eð ;õ ˆu‰:Œ:˜Š?ˆ?å%Ñ'Ô'Ð'àˆõ   ¤Ñ/Ô/ð 	@ð 	@‰FˆAˆsØ%×*Ò*¨3°°e¸A´h±Ñ?Ô?ˆKˆKÝ˜[Ñ)Ô)ˆàˆˆˆTØÔ$ð 	ð 	ˆDÝ˜DÑ!Ô! VÒ+Ð+Ø�d‘
��à˜‘��à�$‰wˆå˜*¥eÑ,Ô,ð 	'Ø$˜ˆJåˆtŒ~ÑÔ !Ò#Ð#à# AœˆJØ˜SÒ Ð å˜D tÐ,Ñ,Ô,��å˜C dÐ+Ñ+Ô+�Ý˜
¨Ð.Ñ.Ô.ˆAà—’˜$œ.¨Ô+¨Q°´¸qÔ0AÀ1ÐEÑFÔFˆBØ—9’9˜dœn¨QÔ/°°D´NÀ1Ô4EÀqÐIÑJÔJˆDà˜˜R™‘[×&Ò& q¨!Ñ,Ô,¨u°Q¬xÑ7ˆEØ˜˜R™‘[×&Ò& q¨!Ñ,Ô,¨u°Q¬xÑ7ˆEà˜%�<Ðå�”Ñ Ô  AÒ%Ñ%à%/Ñ"ˆJ˜
Ø�jÐ Ð å˜D tÐ,Ñ,Ô,��å˜C dÐ+Ñ+Ô+�Ý˜
¨Ð.Ñ.Ô.ˆAÝ˜
¨Ð.Ñ.Ô.ˆAà—’˜$œ.¨Ô+¨Q°´¸qÔ0AÀ1ÀdÄnÐUVÔFWÐYZÐ[Ñ\Ô\ˆBØ—9’9˜dœn¨QÔ/°°D´NÀ1Ô4EÀqÈ$Ì.ÐYZÔJ[Ð]^Ð_Ñ`Ô`ˆDà˜˜R™‘[×&Ò& q¨!Ñ,Ô,¨u°Q¬xÑ7ˆEØ˜˜R™‘[×&Ò& q¨!Ñ,Ô,¨u°Q¬xÑ7ˆEØ˜˜R™‘[×&Ò& q¨!Ñ,Ô,¨u°Q¬xÑ7ˆEà˜% Ð&Ð&å!Ñ#Ô#Ð#r'   )r˜   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r!   Úpropertyr#   r$   r1   rO   r<   r=   rA   r—   r«   Ú__classcell__)r%   s   @r&   r   r      s  ø€ € € € € ð&ð &ðN9ð 9ð 9ð 9ð 9ð ðð ñ „Xðð ðð ñ „Xðð ð+ð +ñ „Xð+ð5$ð 5$ð 5$ðnOð Oð Oð4z ð z ð z ðx:ð :ð :ð.#ð #ð #ðJT$ð T$ð T$ð T$ð T$ð T$ð T$ð T$r'   r   c                 ó  — t          |¦  «        dk    rt          ¦   «         ‚| d         }| d         }t          |¦  «        }|                     |dz  ¦  «        }|                     ||z  ¦  «        }|                     |dz  ¦  «        }|                     |d¦  «                             |d¦  «        }|                     |d¦  «                             |d¦  «        }|                     |d¦  «                             |d¦  «        }	||||||	fS )Nr4   r   r/   )r   rR   r   Úcoeff)
r#   r$   rL   rM   rD   rE   rF   rG   rH   rI   s
             r&   r;   r;   í  sù   € Ý�HÑÔ Ò"Ð"Ý‰lŒlÐØ�!Œ€AØ�!Œ€Aå�hÑÔ€HØ�Š�q˜!‘tÑÔ€AØ�Š�q˜‘sÑÔ€AØ�Š�q˜!‘tÑÔ€AØ�Š�q˜!ÑÔ×"Ò" 1 aÑ(Ô(€AØ�Š�q˜!ÑÔ×"Ò" 1 aÑ(Ô(€AØ�Š�q˜!ÑÔ×"Ò" 1 aÑ(Ô(€AØˆa��A�q˜!ÐÐr'   N)$Úsympy.core.numbersr   Úsympy.core.singletonr   Úsympy.core.symbolr   Ú$sympy.functions.elementary.complexesr   Ú(sympy.functions.elementary.miscellaneousr   Úsympy.polys.polytoolsr   Úsympy.sets.setsr	   Ú
sympy.corer
   r   r   r   r   r   Úsympy.core.sortingr   r   Úsympy.solversr   r   r   Úsympy.polysr   Úsympy.geometryr   Úsympy.ntheory.factor_r   r   r;   r›   r'   r&   ú<module>rÁ      sw  ðØ 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "Ø %Ð %Ð %Ð %Ð %Ð %Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø %Ð %Ð %Ð %Ð %Ð %Ø &Ð &Ð &Ð &Ð &Ð &Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø &Ð &Ð &Ð &Ð &Ð &Ø %Ð %Ð %Ð %Ð %Ð %Ø <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ð <Ø $Ð $Ð $Ð $Ð $Ð $Ø  Ð  Ð  Ð  Ð  Ð  Ø &Ð &Ð &Ð &Ð &Ð &ðZ$ð Z$ð Z$ð Z$ð Z$�Uñ Z$ô Z$ð Z$ðxð ð ð ð r'   