Ë
    7^(h+  ã                   ó¬  — d 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 ddlmZmZmZ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 ddl m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z'm(Z( e'd(d„«       Z)e'd(d„«       Z*e'ddœd„«       Z+e'edfd„«       Z,e'd)d„«       Z-d„ Z.d„ Z/d„ Z0d„ Z1d„ Z2d„ Z3ddl4m5Z5 d„ Z6d„ Z7d„ Z8d „ Z9d!„ Z:d"„ Z;d#„ Z<d$„ Z=d%„ Z>d&„ Z?d'„ Z@y)*zIFunctions for generating interesting polynomials, e.g. for benchmarking. é    )ÚAddÚMulÚSymbolÚsympifyÚDummyÚsymbols)ÚTuple)ÚS)Ú	nextprime)Údmp_add_termÚdmp_negÚdmp_mulÚdmp_sqr)Údmp_zeroÚdmp_oneÚ
dmp_groundÚdup_from_raw_dictÚ	dmp_raiseÚ
dup_random)ÚZZ)Údup_zz_cyclotomic_poly)ÚDMP)ÚPolyÚPurePoly)Ú_analyze_gens)ÚsubsetsÚpublicÚ
filldedentNFc                 óÚ  — | dk  rt        d| z  «      ‚|�t        |«       nt        d«      }| dkD  r^ddlm} ddlm} d} |d«      g}t        d| dz   «      D ]$  }t        |«      }|j                   ||«      «       Œ&  |t        |Ž ||¬	«      S | dk(  r	|dz  dz
  }n?| dk(  r|d
z  d|dz  z  z
  dz   }n(| dk(  r#|dz  d|dz  z  z
  d|d
z  z  z   d|dz  z  z
  dz   }|rt        |«      S S )a  Generates n-th Swinnerton-Dyer polynomial in `x`.

    Parameters
    ----------
    n : int
        `n` decides the order of polynomial
    x : optional
    polys : bool, optional
        ``polys=True`` returns an expression, otherwise
        (default) returns an expression.
    r   z6Cannot generate Swinnerton-Dyer polynomial of order %sÚxé   )Úsqrté   )Úminimal_polynomialé   ©Úpolysé   é
   é   é(   é   i`  iÀ  i@  )Ú
ValueErrorr   r   Ú(sympy.functions.elementary.miscellaneousr"   Únumberfieldsr$   Úranger   Úappendr   r   )	Únr    r'   r"   r$   ÚpÚaÚiÚexs	            úV/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/specialpolys.pyÚswinnerton_dyer_polyr8      s   € ð 	ˆA‚vÜØDÀqÑHóJð 	Jð 	€}Ü��
ä�#‹Jˆàˆ1‚uÝAÝ4ØˆÙ�!‹WˆIˆÜ�q˜!˜a™%“ò 	ˆAÜ˜!“ˆAØ�H‰H‘T˜!“WÕð	ñ "¤# q '¨1°EÔ:Ð:àˆA‚vØ�‰T�A‰X‰Ø	
ˆaŠØ�‰T�B�q˜!‘t‘G‰^˜aÑ‰Ø	
ˆaŠØ�‰T�B�q˜!‘t‘G‰^˜c ! Q¡$™hÑ&¨¨Q°©T©Ñ1°CÑ7ˆá#Œ8�B˜‹?Ð+¨Ð+ó    c                 ó  — | dk  rt        d| z  «      ‚t        t        t        | «      t        «      t        «      }|�t        j                  ||«      }nt        j                  |t        d«      «      }|r|S |j                  «       S )a  Generates cyclotomic polynomial of order `n` in `x`.

    Parameters
    ----------
    n : int
        `n` decides the order of polynomial
    x : optional
    polys : bool, optional
        ``polys=True`` returns an expression, otherwise
        (default) returns an expression.
    r   z1Cannot generate cyclotomic polynomial of order %sr    )
r-   r   r   Úintr   r   Únewr   r   Úas_expr)r2   r    r'   Úpolys       r7   Úcyclotomic_polyr?   A   sx   € ð 	ˆA‚vÜØ?À!ÑCóEð 	Eô Ô%¤c¨!£f¬bÓ1´2Ó6€Dà€}Ü�x‰x˜˜aÓ ‰ä�|‰|˜D¤%¨£*Ó-ˆáˆ4Ð,˜dŸl™l›nÐ,r9   r&   c                ó  — t        |«      }| dk  s| t        |«      kD  s|st        d| ›d|›�«      ‚| st        j                  }n/t        t        |t        | «      «      D �cg c]
  }t        |Ž ‘Œ c}Ž }|rt        |g|¢­Ž S |S c c}w )zç
    Generates symmetric polynomial of order `n`.

    Parameters
    ==========

    polys: bool, optional (default: False)
        Returns a Poly object when ``polys=True``, otherwise
        (default) returns an expression.
    r   z.Cannot generate symmetric polynomial of order z for )
r   Úlenr-   r
   ÚOner   r   r;   r   r   )r2   r'   Úgensr>   Úss        r7   Úsymmetric_polyrE   \   s   € ô ˜Ó€Dàˆ1‚u�”C˜“I’¡TÝÒVWÑY]Ð^Ó_Ð_ÙÜ�u‰u‰ä¤g¨d´C¸³FÓ&;Ö< ”S˜!’WÒ<Ð=ˆá %Œ4�Ð�tÒÐ/¨4Ð/ùò =s   Á!Bc                 ó^   — t        t        ||||«      | |¬«      }|r|S |j                  «       S )a\  Generates a polynomial of degree ``n`` with coefficients in
    ``[inf, sup]``.

    Parameters
    ----------
    x
        `x` is the independent term of polynomial
    n : int
        `n` decides the order of polynomial
    inf
        Lower limit of range in which coefficients lie
    sup
        Upper limit of range in which coefficients lie
    domain : optional
         Decides what ring the coefficients are supposed
         to belong. Default is set to Integers.
    polys : bool, optional
        ``polys=True`` returns an expression, otherwise
        (default) returns an expression.
    )Údomain)r   r   r=   )r    r2   ÚinfÚsuprG   r'   r>   s          r7   Úrandom_polyrJ   t   s0   € ô, ”
˜1˜c 3¨Ó/°¸6ÔB€Dáˆ4Ð,˜dŸl™l›nÐ,r9   c           	      ó¨  — t        |dd«      }t        |t        «      rt        |›d| ›�«      }n|r|t	        |Ž j
                  z  rd}t        |t        «      rt        |›d| ›�«      }n|r|t	        |Ž j
                  z  rd}|st        t        d«      «      ‚g }t        t        | «      D �cg c]
  }|||   z
  ‘Œ c}Ž }t        | «      D ]O  }||||   z
  z  }t        t        | «      D �	cg c]  }	||	k7  sŒ	||   ||	   z
  ‘Œ c}	Ž }
|j                  ||
z  «       ŒQ t        t        ||«      D ��cg c]
  \  }}||z  ‘Œ c}}Ž S c c}w c c}	w c c}}w )z¯Construct Lagrange interpolating polynomial for ``n``
    data points. If a sequence of values are given for ``X`` and ``Y``
    then the first ``n`` values will be used.
    Úfree_symbolsNú:Fz~
            Expecting symbol for x that does not appear in X or Y.
            Use `interpolate(list(zip(X, Y)), x)` instead.)ÚgetattrÚ
isinstanceÚstrr   r	   rL   r-   r   r   r0   r1   r   Úzip)r2   r    ÚXÚYÚokÚcoeffsr5   ÚnumertÚnumerÚjÚdenomÚcoeffÚys                r7   Úinterpolating_polyr\   �   sR  € ô 
��N DÓ	)€Bä�!”SÔÜšq¡!Ð$Ó%‰Ù	�”U˜A�Y×+Ñ+Ò+Øˆä�!”SÔÜšq¡!Ð$Ó%‰Ù	�”U˜A�Y×+Ñ+Ò+ØˆáÜœð %>ó ?ó @ð 	@ð €FÜ¤U¨1£XÖ. �1�q˜‘t“8Ò.Ð/€Fä�1‹Xò #ˆØ˜˜A˜a™D™Ñ!ˆÜ¬U°1«XÖ@¨¸¸a»�q˜‘t˜a ™d“{Ò@ÐAˆØ�‰�e˜E‘kÕ"ð#ô
 ¬¨V°Q«×8™X˜U A��q“Ó8Ð9Ð9ùò /ùò Aùó 9s   Â,EÃ*
E	
Ã5E	
Ä0E
c           	      óŠ  — t        | dz   «      D �cg c]  }t        dt        |«      z   «      ‘Œ }}|d   |d   }}|t        |dd Ž z   }|dz  t        |dd D �cg c]  }|dz  ‘Œ	 c}Ž z   } |dz   |dz   z  j                  |Ž } |dz   d|z  |dz  z  |dz  z   dz
  z  j                  |Ž }	t        dg|¢­Ž }
||	|
fS c c}w c c}w )ú%Fateman's GCD benchmark: trivial GCD r#   Úy_r   Nr%   éýÿÿÿ)r0   r   rP   r   Úas_polyr   )r2   r5   rS   Úy_0Úy_1Úur[   ÚvÚFÚGÚHs              r7   Úfateman_poly_F_1ri   ±   sì   € ä(-¨a°!©e«Ö5 1Œ�”s˜1“v‘Õ	Ð5€AÐ5à�‰t�Q�q‘Tˆ€CàŒc�1�Q�R�5ˆkÑ€AØˆQ‰” Q q r UÖ+ �q˜!“tÒ+Ð,Ñ,€Aà!ˆ!ˆa‰%�!�a‘%‰×!Ñ! 1Ð%€AØ6ˆ!ˆa‰%�"�S‘&˜˜a™‘- # q¡&Ñ(¨1Ñ,Ñ	-×6Ñ6¸Ð:€AäˆQˆ�Š€Aàˆa�ˆ7€Nùò 	6ùò
 ,s   ‘B;ÁC 
c                 ól  —  |d«       |d«      g}t        | «      D ]  }t        ||«      |g}Œ  |d«       |d«       |d«      g}t        d| «      D ]  }t        ||«      t        |«      |g}Œ | dz
  }t        |t	         |d«      |«      d| |«      }t        |t	         |d«      |«      d| |«      } |d«        |d«      gg  |d«       |d«       |d«       gg}t        |t	         |d«      |«      d| |«      }	t        ||d|«      }
t        ||| |«      }t        |	|
| |«      }t        | |«      }|||fS )r^   r#   r   r%   r!   )r0   r   r   r   r   r   r   )r2   ÚKrd   r5   re   ÚmÚUÚVÚfÚWrS   rf   rg   rh   s                 r7   Údmp_fateman_poly_F_1rq   Â   sR  € á	
ˆ1‹‰q�‹tˆ€Aä�1‹Xò ˆÜ�Q˜‹]˜AÐ‰ðñ 
ˆ1‹‰q�‹t‘Q�q“TÐ€Aä�1�a‹[ò ,ˆÜ�Q˜‹]œH Q›K¨Ð+‰ð,ð 	
ˆA‰€Aä�Qœ
¡1 Q£4¨Ó+¨Q°°1Ó5€AÜ�Qœ
¡1 Q£4¨Ó+¨Q°°1Ó5€AáˆQ‹4ˆ%‘�1“ˆ˜™Q˜q›T¡1 Q£4©!¨A«$¨Ð/Ð0€Aä�Qœ
¡1 Q£4¨Ó+¨Q°°1Ó5€AÜ�!�Q˜˜1Ó€Aä��1�a˜Ó€AÜ��1�a˜Ó€Aä��1‹€Aàˆa�ˆ7€Nr9   c           	      ó   — t        | dz   «      D �cg c]  }t        dt        |«      z   «      ‘Œ }}|d   }t        |dd Ž }t	        ||z   dz   dz  g|¢­Ž }t	        ||z
  dz
  dz  g|¢­Ž }t	        ||z   dz   dz  g|¢­Ž }||z  ||z  |fS c c}w )ú7Fateman's GCD benchmark: linearly dense quartic inputs r#   r_   r   Nr%   ©r0   r   rP   r   r   )r2   r5   rS   rb   rd   rh   rf   rg   s           r7   Úfateman_poly_F_2ru   à   s¯   € ä(-¨a°!©e«Ö5 1Œ�”s˜1“v‘Õ	Ð5€AÐ5à
ˆA‰$€CäˆQˆqˆrˆUˆ€Aäˆc�A‰g˜‰k˜AÑÐ" Ò"€Aäˆc�A‰g˜‰k˜AÑÐ" Ò"€AÜˆc�A‰g˜‰k˜AÑÐ" Ò"€AàˆQ‰3��!‘�Qˆ;Ðùò 	6s   ‘Bc                 óÐ  —  |d«       |d«      g}t        | dz
  «      D ]  }t        ||«      |g}Œ | dz
  }t        |t         |d«      |dz
  «      d| |«      }t	        t        ||«      t        |||«      g| |«      }t	        t        ||«      |g| |«      }t        |t        |dz
  |«      d| |«      }t	        t        ||«      |g| |«      }t        ||| |«      t        ||| |«      |fS )rs   r#   r   r%   )r0   r   r   r   r   r   r   )	r2   rk   rd   r5   rl   re   ro   ÚgÚhs	            r7   Údmp_fateman_poly_F_2ry   ð   sú   € á	
ˆ1‹‰q�‹tˆ€Aä�1�q‘5‹\ò ˆÜ�Q˜‹]˜AÐ‰ðð 	
ˆA‰€Aä�Qœ
¡1 Q£4¨¨Q©Ó/°°A°qÓ9€Aä”˜˜A“¤¨¨1¨aÓ 0Ð1°1°aÓ8€AÜ”˜˜A“ Ð" A qÓ)€Aä�Qœ  A¡ qÓ)¨1¨a°Ó3€Aä”˜˜A“ Ð" A qÓ)€Aä�1�a˜˜AÓ¤¨¨1¨a°Ó 3°QÐ6Ð6r9   c           	      óv  — t        | dz   «      D �cg c]  }t        dt        |«      z   «      ‘Œ }}|d   }t        |dd D �cg c]
  }|| dz   z  ‘Œ c}Ž }t	        || dz   z  |z   dz   dz  g|¢­Ž }t	        || dz   z  |z
  dz
  dz  g|¢­Ž }t	        || dz   z  |z   dz   dz  g|¢­Ž }||z  ||z  |fS c c}w c c}w )ú8Fateman's GCD benchmark: sparse inputs (deg f ~ vars f) r#   r_   r   Nr%   rt   )	r2   r5   rS   rb   r[   rd   rh   rf   rg   s	            r7   Úfateman_poly_F_3r|     sæ   € ä(-¨a°!©e«Ö5 1Œ�”s˜1“v‘Õ	Ð5€AÐ5à
ˆA‰$€Cä ! A B %Ö(˜Qˆa�!�a‘%‹jÒ(Ð)€Aäˆc�A˜‘E‰l˜QÑ Ñ" QÑ&Ð+¨Ò+€Aäˆc�A˜‘E‰l˜QÑ Ñ" QÑ&Ð+¨Ò+€AÜˆc�A˜‘E‰l˜QÑ Ñ" QÑ&Ð+¨Ò+€AàˆQ‰3��!‘�Qˆ;Ðùò 	6ùò )s   ‘B1ÁB6c           	      óz  — t        | dz   |j                  i|«      }t        d| dz
  «      D ]"  }t        |gt	        ||«      | dz   |dz   |«      }Œ$ t        |t         |d«      | dz
  «      d| |«      }t        t        t        || dz
  |«      gt	        | dz
  |«      | dz   | |«      | |«      }t        t        |gt	        | dz
  |«      | dz   | |«      | |«      }t        |t	        | dz
  |«      d| dz
  |«      }t        t        |gt	        | dz
  |«      | dz   | |«      | |«      }t        ||| |«      t        ||| |«      |fS )r{   r#   r   r%   )	r   Úoner0   r   r   r   r   r   r   )r2   rk   rd   r5   re   ro   rw   rx   s           r7   Údmp_fateman_poly_F_3r     sS  € ä˜1˜q™5 !§%¡%˜.¨!Ó,€Aä�1�a˜!‘e‹_ò >ˆÜ˜!˜œg a¨›m¨Q°©U°A¸±E¸1Ó=‰ð>ô 	�Qœ
¡1 Q£4¨¨Q©Ó/°°A°qÓ9€AäÜ”g˜a  Q¡¨Ó*Ð+¬W°Q¸±U¸AÓ->ÀÀAÁÀqÈ!ÓLÈaÐQRó	T€Aä”˜a˜S¤'¨!¨a©%°Ó"3°Q¸±U¸A¸qÓAÀ1ÀaÓH€Aä�Qœ  A¡ qÓ)¨1¨a°!©e°QÓ7€Aä”˜a˜S¤'¨!¨a©%°Ó"3°Q¸±U¸A¸qÓAÀ1ÀaÓH€Aä�1�a˜˜AÓ¤¨¨1¨a°Ó 3°QÐ6Ð6r9   )Úringc                  ó  — t        dt        «      \  } }}}|dz  |z  |dz  z  d|dz  z  |z  |z  z   d|dz  z  |z  z   d|dz  z  z   d|z  z   d|dz  z  |dz  z  z   d|dz  z  |z  z   d|dz  z  z   ||dz  z  z   d|z  |z  z   |z   dz   S )Núx,y,zr%   r!   r(   é   r,   r#   ©r€   r   ©ÚRr    r[   Úzs       r7   Ú_f_0rˆ   ,  sÔ   € Ü�gœrÓ"�J€A€qˆ!ˆQØˆa‰4�‰6�!�Q‘$‰;˜˜1˜a™4™ ™ !™Ñ# a¨¨1©¡f¨Q¡hÑ.°°1°a±4±Ñ7¸!¸A¹#Ñ=ÀÀ!ÀQÁ$ÁÀqÈ!ÁtÁÑKÈaÐPQÐSTÑPTÉfÐUVÉhÑVÐYZÐ[\Ð^_Ñ[_ÑY_Ñ_ÐbcÐdeÐghÑdhÑbhÑhÐklÐmnÑknÐopÑkpÑpÐstÑtÐwxÑxÐxr9   c                  ó:  — t        dt        «      \  } }}}|dz  |z  |z  |dz  |dz  z  |dz  z  z   |dz  |dz  z  z   d|dz  z  |z  |z  z   d|dz  z  |z  z   |dz  |dz  z  z   d|dz  z  |z  z   ||dz  z  |z  z   d|z  |dz  z  |z  z   d|z  |dz  z  z   ||z  |dz  z  z   d|z  |z  |dz  z  z   ||z  |z  z   d|z  |z  z   d|z  |dz  z  z   d|z  |z  z   d	|z  z   |dz  |dz  z  z   d|dz  z  |z  z   d|z  |dz  z  z   d
|z  |z  z   d|z  z   d|z  z   dz   S )Nr‚   r!   r%   é   é   r)   ib  éæ   i,  i@  éÈ   iX  ip  r„   r…   s       r7   Ú_f_1rŽ   0  so  € Ü�gœrÓ"�J€A€qˆ!ˆQØˆa‰4�‰6�!‰8�a˜‘d˜1˜a™4‘i  1¡‘nÑ$ q¨!¡t¨A¨q©D¡yÑ0°2°a¸±d±7¸1±9¸Q±;Ñ>ÀÀAÀqÁDÁÈÁÑJÈQÐPQÉTÐRSÐUVÑRVÉYÑVÐY[Ð\]Ð_`Ñ\`ÑY`ÐabÑYbÑbÐefÐghÐjkÑgkÑekÐlmÑemÑmÐprÐstÑptÐuvÐxyÑuyÑpyÐz{Ñp{Ñ{ð  Að  BCñ  Cð  DEð  GHñ  DHñ  Hñ  Hð  KLð  MNñ  KNð  OPð  RSñ  OSñ  KSñ  Sð  VXð  YZñ  VZð  [\ñ  V\ð  ]^ð  `añ  ]añ  Vañ  að  deð  fgñ  dgð  hiñ  diñ  ið  loð  pqñ  lqð  rsñ  lsñ  sð  vxð  yzñ  vzð  {|ð  ~ñ  {ñ  vñ  ð  BEð  FGñ  BGð  HIñ  BIñ  Ið  LOð  PQñ  LQñ  Qð  TUð  WXñ  TXð  YZð  \]ñ  Y]ñ  T]ñ  ]ð  `bð  cdð  fgñ  cgñ  `gð  hiñ  `iñ  ið  lnð  opñ  lpð  qrð  tuñ  quñ  luñ  uð  x{ð  |}ñ  x}ð  ~ñ  xñ  ð  BEð  FGñ  BGñ  Gð  JMð  NOñ  JOñ  Oð  RVñ  Vð  Vr9   c                  ó’  — t        dt        «      \  } }}}|dz  |dz  z  |dz  |dz  z  |z  z   |dz  |z  |dz  z  z   |dz  |dz  z  z   |dz  |dz  z  z   |dz  |z  |z  z   d|dz  z  |z  z   d|dz  z  |z  z   |dz  |dz  z  |z  z   d|dz  z  |dz  z  z
  |dz  |dz  z  z   d|dz  z  |dz  z  z
  ||z  z   d|z  z
  d|z  z   dz
  S )Nr‚   rƒ   r!   r%   éZ   é   iÞ  r„   r…   s       r7   Ú_f_2r’   4  só  € Ü�gœrÓ"�J€A€qˆ!ˆQØˆa‰4��1‘‰9�q˜!‘t˜A˜q™D‘y ‘{Ñ" Q¨¡T¨!¡V¨A¨q©D¡[Ñ0°1°a±4¸¸1¹±9Ñ<¸qÀ!¹tÀAÀqÁD¹yÑHÈ1ÈaÉ4ÐPQÉ6ÐRSÉ8ÑSÐVXÐYZÐ\]ÑY]ÑV]Ð^_ÑV_Ñ_ÐbdÐefÐhiÑeiÑbiÐjkÑbkÑkÐnoÐqrÑnrÐstÐvwÑswÑnwÐxyÑnyÑyÐ|~ð  @Að  CDñ  @Dñ  }Dð  EFð  HIñ  EIñ  }Iñ  Ið  LMð  OPñ  LPð  QRð  TUñ  QUñ  LUñ  Uð  XZð  [\ð  ^_ñ  [_ñ  X_ð  `að  cdñ  `dñ  Xdñ  dð  ghð  ijñ  gjñ  jð  moð  pqñ  mqñ  qð  tvð  wxñ  txñ  xð  {~ñ  ~ð  ~r9   c                  ó¤  — t        dt        «      \  } }}}|dz  |dz  z  |dz  |dz  z  z   |dz  z   |dz  |dz  z  |z  z   |dz  |z  z   |dz  |dz  z  z   |dz  |dz  z  |dz  z  z   |dz  |z  |dz  z  z   |dz  |z  |z  z   ||dz  z  |dz  z  z   ||dz  z  z   ||z  |dz  z  z   ||z  |dz  z  z   ||z  |dz  z  z   |dz  |z  z   ||dz  z  z   S )Nr‚   rƒ   r%   r(   r!   é   r„   r…   s       r7   Ú_f_3r•   8  s  € Ü�gœrÓ"�J€A€qˆ!ˆQØˆa‰4��1‘‰9�q˜!‘t˜A˜q™D‘yÑ  1 a¡4Ñ'¨!¨Q©$¨q°!©t©)°A©+Ñ5¸¸1¹¸Q¹Ñ>ÀÀAÁÀaÈÁdÁÑJÈQÐPQÉTÐRSÐUVÑRVÉYÐWXÐZ[ÑW[É^Ñ[Ð^_ÐabÑ^bÐcdÑ^dÐefÐhiÑeiÑ^iÑiÐlmÐopÑlpÐqrÑlrÐstÑltÑtÐwxÐyzÐ|}Ñy}Ñw}Ð~ð  BCñ  Cñ  xCñ  Cð  FGð  HIð  KLñ  HLñ  FLñ  Lð  OPð  QRñ  ORð  STð  VWñ  SWñ  OWñ  Wð  Z[ð  \]ñ  Z]ð  ^_ð  abñ  ^bñ  Zbñ  bð  efð  ghñ  ehð  ijð  lmñ  imñ  emñ  mð  pqð  stñ  ptð  uvñ  pvñ  vð  yzð  {|ð  ~ñ  {ñ  yñ  ð  r9   c                  ó  — t        dt        «      \  } }}}|dz   |dz  z  |z  |dz  |dz  z  |dz  z  z
  |dz  |dz  z  |dz  z  z
  d|dz  z  |dz  z  z
  |d	z  |dz  z  |d
z  z  z
  |d	z  |dz  z  |dz  z  z   d|d	z  z  |dz  z  |z  z   d|d	z  z  |dz  z  |dz  z  z
  |d	z  |d
z  z  |dz  z  z
  |dz  |d
z  z  |dz  z  z   d|dz  z  |d
z  z  |dz  z  z   |dz  |z  |dz  z  z
  |d
z  |dz  z  |d
z  z  z   d|d
z  z  |dz  z  |dz  z  z   |d
z  |dz  z  |d
z  z  z
  d|d
z  z  |dz  z  |dz  z  z   d|d
z  z  |dz  z  z   d|d
z  z  |d
z  z  |dz  z  z
  |dz  |dz  z  |d	z  z  z   d|dz  z  |dz  z  |d
z  z  z   |dz  |dz  z  |d	z  z  z
  d|dz  z  |d
z  z  |d
z  z  z   d|dz  z  |d
z  z  |dz  z  z   |dz  |dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  z   d|dz  z  |z  |d
z  z  z
  |dz  |dz  z  z   d|dz  z  |dz  z  z   ||dz  z  |d	z  z  z   d|z  |dz  z  |d
z  z  z   d|z  |dz  z  |d
z  z  z   d|z  |dz  z  |dz  z  z   |d
z  |dz  z  z   d|d
z  z  |d	z  z  z   d|d	z  z  z   d|d
z  z  z   S )Nr‚   é	   r*   rƒ   r!   r”   é   r%   r,   r(   r‘   é   r„   r…   s       r7   Ú_f_4rš   <  sî	  € Ü�gœrÓ"�J€A€qˆ!ˆQØˆq‰Dˆ5��A‘‰:�a‰<˜!˜Q™$˜q !™t™) A q¡D™.Ñ(¨1¨a©4°°2±©:°a¸±d©?Ñ:¸Q¸qÀ!¹t¹VÀAÀqÁD¹[ÑHÈ1ÈaÉ4ÐPQÐSTÑPTÉ9ÐUVÐXYÑUYÉ>ÑYÐ\]Ð_`Ñ\`ÐabÐdeÑaeÑ\eÐfgÐijÑfjÑ\jÑjÐmnÐopÐrsÑosÑmsÐtuÐwxÑtxÑmxÐyzÑmzÑzÐ}~ð  @Að  CDñ  @Dñ  ~Dð  EFð  HIñ  EIñ  ~Ið  JKð  MNñ  JNñ  ~Nñ  Nð  QRð  TUñ  QUð  VWð  YZñ  VZñ  QZð  [\ð  ^_ñ  [_ñ  Q_ñ  _ð  bcð  efñ  bfð  ghð  jkñ  gkñ  bkð  lmð  opñ  lpñ  bpñ  pð  stð  uvð  xyñ  uyñ  syð  z{ð  }~ñ  z~ñ  s~ð  @ð  BCñ  Cñ  sCñ  Cð  FGð  IJñ  FJð  KLñ  FLð  MNð  PQñ  MQñ  FQñ  Qð  TUð  WXñ  TXð  YZð  \^ñ  Y^ñ  T^ð  _`ð  bcñ  _cñ  Tcñ  cð  fgð  hið  klñ  hlñ  flð  mnð  prñ  mrñ  frð  stð  vwñ  swñ  fwñ  wð  z{ð  }~ñ  z~ð  @ð  BCñ  Cñ  zCð  DEð  GHñ  DHñ  zHñ  Hð  KLð  MNð  PQñ  MQñ  KQð  RSð  UVñ  RVñ  KVð  WXð  Z[ñ  W[ñ  K[ñ  [ð  ^`ð  abð  deñ  aeñ  ^eð  fgð  ijñ  fjñ  ^jñ  jð  mnð  opð  rsñ  osñ  msð  tuð  wxñ  txñ  mxð  yzð  |}ñ  y}ñ  m}ñ  }ð  @Að  CDñ  @Dð  EFð  HIñ  EIñ  @Ið  JKð  MNñ  JNñ  @Nñ  Nð  QRð  STð  VWñ  SWñ  QWð  XYð  [\ñ  X\ñ  Q\ð  ]^ð  `añ  ]añ  Qañ  að  deð  ghñ  dhð  ijð  lmñ  imñ  dmð  noð  qrñ  nrñ  drñ  rð  uvð  wxð  z{ñ  w{ñ  u{ð  |}ð  @ñ  |@ñ  u@ð  ABð  DEñ  AEñ  uEñ  Eð  HJð  KLð  NOñ  KOñ  HOð  PQð  STñ  PTñ  HTð  UVð  XYñ  UYñ  HYñ  Yð  \]ð  _`ñ  \`ð  abð  deñ  aeñ  \eð  fgð  ijñ  fjñ  \jñ  jð  mnð  opð  rsñ  osñ  msð  tuð  wxñ  txñ  mxð  yzð  |}ñ  y}ñ  m}ñ  }ð  @Að  BCð  EFñ  BFñ  @Fð  GHñ  @Hð  IJð  LMñ  IMñ  @Mñ  Mð  PQð  STñ  PTð  UVð  XYñ  UYñ  PYñ  Yð  \]ð  ^_ð  abñ  ^bñ  \bð  cdð  fgñ  cgñ  \gñ  gð  jkð  lmð  opñ  lpñ  jpð  qrð  tuñ  quñ  juñ  uð  xyð  z{ñ  x{ð  |}ð  @ñ  |@ñ  x@ð  ABð  DEñ  AEñ  xEñ  Eð  HIð  JKñ  HKð  LMð  OPñ  LPñ  HPð  QRð  TUñ  QUñ  HUñ  Uð  XZð  [\ñ  X\ð  ]^ð  `añ  ]añ  Xað  bcð  efñ  bfñ  Xfñ  fð  ijð  lmñ  imð  noð  qrñ  nrñ  irñ  rð  uvð  wxð  z{ñ  w{ñ  u{ð  |}ð  @	ñ  |@	ñ  u@	ñ  @	ð  C	D	ð  E	F	ð  H	I	ñ  E	I	ñ  C	I	ñ  I	ð  L	N	ð  O	P	ð  R	S	ñ  O	S	ñ  L	S	ñ  S	ð  S	r9   c                  óø   — t        dt        «      \  } }}}|dz   d|dz  z  |z  z
  d|dz  z  |z  z   d|z  |dz  z  z
  d|z  |z  |z  z   d|z  |dz  z  z
  |dz  z
  d|dz  z  |z  z   d|z  |dz  z  z
  |dz  z   S )Nr‚   r!   r%   r,   r„   r…   s       r7   Ú_f_5rœ   @  s¼   € Ü�gœrÓ"�J€A€qˆ!ˆQØˆq‰Dˆ5�1�Q˜‘T‘6˜!‘8Ñ˜a  1¡™f Q™hÑ&¨¨1©¨Q°©T©Ñ1°A°a±C¸±E¸!±GÑ;¸aÀ¹cÀ!ÀQÁ$¹hÑFÈÈAÉÑMÐPQÐRSÐUVÑRVÑPVÐWXÑPXÑXÐ[\Ð]^Ñ[^Ð_`ÐbcÑ_cÑ[cÑcÐfgÐijÑfjÑjÐjr9   c                  óî  — t        dt        «      \  } }}}}d|dz  z  |z  d|dz  z  |dz  z  |dz  z  z   d|dz  z  |dz  z  z
  d|z  |dz  z  z
  d|z  |dz  z  z
  d	|z  |z  |dz  z  z   d
|z  |z  |z  |z  z   d|dz  z  |dz  z  |dz  z  z
  d|dz  z  |dz  z  z   |dz  |dz  z  |dz  z  z
  |dz  |dz  z  z   d|dz  z  |dz  z  z   d|dz  z  |dz  z  z   d|dz  z  |dz  z  z
  d|z  |dz  z  z
  S )Nzx,y,z,tiC  r(   é-   r!   r%   i§  é/   é�   é^   r—   r,   r„   )r†   r    r[   r‡   Úts        r7   Ú_f_6r£   D  sÍ  € Ü˜¤BÓ'�M€A€qˆ!ˆQ�Ø��1‘‰9�Q‰;˜˜A˜q™D™  A¡™ a¨¡dÑ*Ñ*¨R°°1±©W°Q¸±T©\Ñ9¸CÀ¹EÀ!ÀQÁ$¹JÑFÈÈAÉÈaÐQRÉdÉÑRÐUXÐYZÑUZÐ[\ÑU\Ð]^Ð`aÑ]aÑUaÑaÐdfÐghÑdhÐijÑdjÐklÑdlÐmnÑdnÑnÐqrÐstÐvwÑswÑqwÐxyÐ{|Ñx|Ñq|Ð}~ð  ABñ  ~Bñ  rBñ  Bð  EFð  GHð  JKñ  GKñ  EKð  LMð  OPñ  LPñ  EPñ  Pð  STð  VWñ  SWð  XYð  [\ñ  X\ñ  S\ð  ]^ð  `añ  ]añ  Sañ  að  deð  ghñ  dhð  ijð  lmñ  imñ  dmñ  mð  pqð  rsð  uvñ  rvñ  pvð  wxð  z{ñ  w{ñ  p{ñ  {ð  ~ð  @Að  CDñ  @Dñ  ~Dð  EFð  HIñ  EIñ  ~Iñ  Ið  LMð  NOð  QRñ  NRñ  LRð  STð  VWñ  SWñ  LWñ  Wð  Z[ð  \]ñ  Z]ð  ^_ð  abñ  ^bñ  Zbñ  bð  br9   c                  ó¬  — t        dt        «      \  } }}}d|dz  z  |dz  z  |dz  z  d|dz  z  |dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  z
  d|dz  z  |z  |dz  z  z
  |dz  |dz  z  |dz  z  z   d|dz  z  |dz  z  |z  z   |dz  |dz  z  |dz  z  z
  d|dz  z  |dz  z  |dz  z  z   d|dz  z  |z  |dz  z  z
  d|dz  z  |dz  z  z
  d|dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  z   d|dz  z  |dz  z  |z  z   d|dz  z  |dz  z  |dz  z  z
  d|dz  z  |dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  z
  d|dz  z  |z  |dz  z  z
  d|dz  z  |z  |dz  z  z
  d|dz  z  |z  |dz  z  z
  d|dz  z  |dz  z  |z  z   |dz  |dz  z  |dz  z  z   |dz  |dz  z  |dz  z  z
  d|dz  z  |dz  z  |dz  z  z
  d	|dz  z  |dz  z  |z  z   d|dz  z  |z  |dz  z  z
  d|dz  z  |z  |dz  z  z   d|dz  z  |dz  z  z
  d|dz  z  |dz  z  z   d|dz  z  |dz  z  z   d|dz  z  |dz  z  |dz  z  z
  d|dz  z  |dz  z  |z  z   d|dz  z  |z  |dz  z  z
  d|dz  z  |z  |dz  z  z
  d|dz  z  |z  |dz  z  z   d|z  |dz  z  |z  z   d|z  |dz  z  |dz  z  z
  d|z  |z  |z  z
  d|z  |dz  z  z   d|dz  z  z
  d|z  |dz  z  z   S )
Nr‚   r(   r,   r%   r!   rƒ   r˜   r*   r—   r„   r…   s       r7   Ú_w_1r¥   H  sP  € Ü�gœrÓ"�J€A€qˆ!ˆQØˆQ�‰T‰6�!�Q‘$‰;�q˜!‘tÑ˜a  1¡™f Q¨¡T™k¨!¨Q©$Ñ.Ñ.°°1°a±4±¸¸1¹±¸QÀ¹TÑ1AÑAÀAÀaÈÁdÁFÈ1ÁHÈQÐPQÉTÁMÑQÐTUÐWXÑTXÐYZÐ\]ÑY]ÑT]Ð^_ÐabÑ^bÑTbÑbÐegÐhiÐklÑhlÑelÐmnÐpqÑmqÑeqÐrsÑesÑsÐvwÐyzÑvzÐ{|Ð~Ñ{Ñvð  ABð  DEñ  AEñ  wEñ  Eð  HJð  KLð  NOñ  KOñ  HOð  PQð  STñ  PTñ  HTð  UVð  XYñ  UYñ  HYñ  Yð  \^ð  _`ð  bcñ  _cñ  \cð  deñ  \eð  fgð  ijñ  fjñ  \jñ  jð  moð  pqð  stñ  ptñ  mtð  uvð  xyñ  uyñ  myñ  yð  |}ð  ~ð  ABñ  ~Bñ  |Bð  CDð  FGñ  CGñ  |Gñ  Gð  JKð  LMð  OPñ  LPñ  JPð  QRð  TUñ  QUñ  JUð  VWð  YZñ  VZñ  JZñ  Zð  ]^ð  _`ð  bcñ  _cñ  ]cð  deð  ghñ  dhñ  ]hð  ijñ  ]jñ  jð  mnð  opð  rsñ  osñ  msð  tuð  wxñ  txñ  mxð  yzð  |}ñ  y}ñ  m}ñ  }ð  @Að  BCð  EFñ  BFñ  @Fð  GHð  JKñ  GKñ  @Kð  LMð  OPñ  LPñ  @Pñ  Pð  STð  UVð  XYñ  UYñ  SYð  Z[ð  ]^ñ  Z^ñ  S^ð  _`ð  bcñ  _cñ  Scñ  cð  fgð  hið  klñ  hlñ  flð  mnñ  fnð  opð  rsñ  osñ  fsñ  sð  vwð  xyð  {|ñ  x|ñ  v|ð  }~ñ  v~ð  @ð  BCñ  Cñ  vCñ  Cð  FGð  HIð  KLñ  HLñ  FLð  MNñ  FNð  OPð  RSñ  OSñ  FSñ  Sð  VWð  XYð  [\ñ  X\ñ  V\ð  ]^ð  `añ  ]añ  Vað  bcñ  Vcñ  cð  fgð  ijñ  fjð  klð  noñ  koñ  foð  pqð  stñ  ptñ  ftñ  tð  wxð  z{ñ  w{ð  |}ð  @ñ  |@ñ  w@ð  ABð  DEñ  AEñ  wEñ  Eð  HIð  JKð  MNñ  JNñ  HNð  OPð  RSñ  OSñ  HSð  TUð  WXñ  TXñ  HXñ  Xð  [\ð  ]^ð  `añ  ]añ  [að  bcð  efñ  bfñ  [fð  ghñ  [hñ  hð  kmð  noð  qrñ  nrñ  krð  stñ  ktð  uvð  xyñ  uyñ  kyñ  yð  |~ð  @ð  BCñ  Cñ  |Cð  DEñ  |Eð  FGð  IJñ  FJñ  |Jñ  Jð  MOð  PQð  STñ  PTñ  MTð  UVð  XYñ  UYñ  MYñ  Yð  \]ð  ^_ð  abñ  ^bñ  \bð  cdð  fgñ  cgñ  \gñ  gð  jkð  lmð  opñ  lpñ  jpð  qrð  tuñ  quñ  juñ  uð  xyð  z{ð  }~ñ  z~ñ  x~ð  @ð  BCñ  Cñ  xCð  DEð  GHñ  DHñ  xHñ  Hð  KLð  MNð  PQñ  MQñ  KQð  RSð  UVñ  RVñ  KVð  WXñ  KXñ  Xð  [\ð  ]^ð  `añ  ]añ  [að  bcñ  [cð  deð  ghñ  dhñ  [hñ  hð  klð  mnð  pqñ  mqñ  kqð  rsñ  ksð  tuð  wxñ  txñ  kxñ  xð  {|ð  }~ð  @	A	ñ  }A	ñ  {A	ð  B	C	ñ  {C	ð  D	E	ð  G	H	ñ  D	H	ñ  {H	ñ  H	ð  K	L	ð  M	N	ñ  K	N	ð  O	P	ð  R	S	ñ  O	S	ñ  K	S	ð  T	U	ñ  K	U	ñ  U	ð  X	Y	ð  Z	[	ñ  X	[	ð  \	]	ð  _	`	ñ  \	`	ñ  X	`	ð  a	b	ð  d	e	ñ  a	e	ñ  X	e	ñ  e	ð  h	i	ð  j	k	ñ  h	k	ð  l	m	ñ  h	m	ð  n	o	ñ  h	o	ñ  o	ð  r	s	ð  t	u	ñ  r	u	ð  v	w	ð  y	z	ñ  v	z	ñ  r	z	ñ  z	ð  }	~	ð  	@
ð  B
C
ñ  	C
ñ  }	C
ñ  C
ð  F
G
ð  H
I
ñ  F
I
ð  J
K
ð  M
N
ñ  J
N
ñ  F
N
ñ  N
ð  N
r9   c                  óD  — t        dt        «      \  } }}d|dz  z  |dz  z  d|dz  z  |dz  z  z   d|dz  z  |dz  z  z   d	|dz  z  |dz  z  z
  d
|dz  z  |dz  z  z   d|dz  z  |dz  z  z   d|dz  z  |z  z   d|dz  z  z   |dz  |dz  z  z   |dz  |dz  z  z   d|dz  z  z
  |dz  |dz  z  z   |dz  |dz  z  z
  d|dz  z  |dz  z  z
  d|dz  z  |dz  z  z   |dz  |dz  z  z
  d|dz  z  |dz  z  z   |dz  |dz  z  z
  d|dz  z  |dz  z  z   d|dz  z  z   d|dz  z  z
  S )Nzx,yé   r*   r!   é0   r%   r”   rƒ   éH   é   r,   r(   r˜   i$  r„   )r†   r    r[   s      r7   Ú_w_2r«   L  s’  € Ü�5œ"‹o�G€A€qˆ!Øˆa�‰d‰7�1�a‘4‰<˜"˜Q ™T™' ! Q¡$™,Ñ&¨¨A¨q©D©°°A±©Ñ5¸¸1¸a¹4¹ÀÀ1Á¹ÑDÀrÈ!ÈQÉ$ÁwÈqÐRSÉtÁ|ÑSÐVWÐXYÐ[\ÑX\ÑV\Ð]^Ð`aÑ]aÑVaÑaÐdeÐfgÐijÑfjÑdjÐklÑdlÑlÐopÐqrÐtuÑquÑouÑuÐxyÐ{|Ñx|Ð}~ð  ABñ  ~Bñ  yBñ  Bð  EFð  HIñ  EIð  JKð  MNñ  JNñ  ENñ  Nð  QSð  TUð  WXñ  TXñ  QXñ  Xð  [\ð  ^_ñ  [_ð  `að  cdñ  `dñ  [dñ  dð  ghð  jkñ  gkð  lmð  opñ  lpñ  gpñ  pð  stð  uvð  xyñ  uyñ  syð  z{ð  }~ñ  z~ñ  s~ñ  ~ð  ADð  EFð  HIñ  EIñ  AIð  JKð  MNñ  JNñ  ANñ  Nð  QRð  TUñ  QUð  VWð  YZñ  VZñ  QZñ  Zð  ]^ð  _`ð  bcñ  _cñ  ]cð  deð  ghñ  dhñ  ]hñ  hð  klð  noñ  koð  pqð  stñ  ptñ  ktñ  tð  wyð  z{ð  }~ñ  z~ñ  w~ð  @ð  BCñ  Cñ  wCñ  Cð  FHð  IJð  LMñ  IMñ  FMñ  Mð  PRð  STð  VWñ  SWñ  PWñ  Wð  Wr9   c                  ó„   — t        «       t        «       t        «       t        «       t	        «       t        «       t        «       fS ©N)rˆ   rŽ   r’   r•   rš   rœ   r£   © r9   r7   Úf_polysr¯   P  s%   € Ü‹6”4“6œ4›6¤4£6¬4«6´4³6¼4»6ÐAÐAr9   c                  ó*   — t        «       t        «       fS r­   )r¥   r«   r®   r9   r7   Úw_polysr±   S  s   € Ü‹6”4“6ˆ>Ðr9   )NF)r    r[   )AÚ__doc__Ú
sympy.corer   r   r   r   r   r   Úsympy.core.containersr	   Úsympy.core.singletonr
   Úsympy.ntheoryr   Úsympy.polys.densearithr   r   r   r   Úsympy.polys.densebasicr   r   r   r   r   r   Úsympy.polys.domainsr   Úsympy.polys.factortoolsr   Úsympy.polys.polyclassesr   Úsympy.polys.polytoolsr   r   Úsympy.polys.polyutilsr   Úsympy.utilitiesr   r   r   r8   r?   rE   rJ   r\   ri   rq   ru   ry   r|   r   Úsympy.polys.ringsr€   rˆ   rŽ   r’   r•   rš   rœ   r£   r¥   r«   r¯   r±   r®   r9   r7   ú<module>rÀ      s  ðÙ O÷ A× @Ý 'Ý "Ý #÷ó ÷÷ õ #Ý :Ý 'ß 0Ý /ß 7Ñ 7ð ò&,ó ð&,ðR ò-ó ð-ð4 Ø#(ó 0ó ð0ð. Ø')°ò -ó ð-ð4 ò:ó ð:òBò"ò<ò 7ò*ò 7õ* #òyòVò~òòS	òkòbòN
òWòBór9   