
    wg+                        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	            ]/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/polys/specialpolys.pyswinnerton_dyer_polyr8      s     	AvDqHJ 	J 	}
#J1uA4!WIq!a% 	A!AHHT!W	 "#q'1E::AvTAX	
aTBq!tG^a	
aTBq!tG^c!Q$h&QT1C7#8B?++    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     	Av?!CE 	E %c!fb126D}xxa ||D%*-4,dlln,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1uCITVWY]^__uugdC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    , 
1c3/6BD4,dlln,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 )zConstruct 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    
ND	)B!Sq!$%	UAY+++!Sq!$%	UAY+++ %> ? @ 	@ FU1X.1qt8./F1X #AaD!U1X@aqtad{@AeEk"#
 VQ8XUA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51s1v	5A5tQqTCc1QR5kAQQqrU+q!t+,,A!!a%!a%!!1%A6!a%"S&a-#q&(1,	-66:AQAa7N 	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1X Q]A 
1qtQqTA1a[ ,Q]HQK+, 	
AAQ
1Q4+Q15AQ
1Q4+Q15AQ4%1QqT1Q4!A$/0AQ
1Q4+Q15A!Q1A1aA1aA1Aa7Nr9   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51s1v	5A5
A$CQqrUAcAgkA""AcAgkA""AcAgkA""AQ3!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1q5\ Q]A 	
AAQ
1Q4Q/Aq9AA1a 011a8AA"Aq)AQAq)1a3AA"Aq)A1aA1a 3Q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51s1v	5A5
A$C!AB%(Qa!a%j()AcAElQ"Q&++AcAElQ"Q&++AcAElQ"Q&++AQ3!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   1q5!%%.!,A1a!e_ >!gamQUAE1=> 	Q
1Q4Q/Aq9AgaQ*+WQUA->Aq!LaQR	TAaS'!a%"3QUAqA1aHAQAq)1a!eQ7AaS'!a%"3QUAqA1aHA1aA1a 3Q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    gr"JAq!Qa46!Q$;1a4!#a1fQh.1a47!A#=!Q$q!tKaPQSTPTfUVhVYZ[\^_[_Y__bcdeghdhbhhklmnknopkppsttwx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   gr"JAq!Qa46!8ad1a4i1n$q!tAqDy02ad719Q;>AqDJQPQTRSUVRVYVY[\]_`\`Y`abYbbefghjkgkeklmemmprstptuvxyuypyz{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   gr"JAq!Qa419q!tAqDy{"QT!VAqD[01a419<q!tAqDyH1a4PQ6RS8SVXYZ\]Y]V]^_V__bdefhieibijkbkknoqrnrstvwswnwxyny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   gr"JAq!Qa419q!tAqDy 1a4'!Q$q!t)A+51Q>AadJQPQTRSUVRVYWXZ[W[^[^_ab^bcd^defhiei^iilmoplpqrlrstlttwxyz|}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	   gr"JAq!QqD5A:a<!Q$q!t)AqD.(1a42:ad?:Qq!tVAqD[H1a4PQSTPT9UVXYUY>Y\]_`\`abdeae\efgijfj\jjmnoprsosmstuwxtxmxyzmz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    gr"JAq!QqD51QT6!8a1fQh&1QT1AaCE!G;ac!Q$hFAMPQRSUVRVPVWXPXX[\]^[^_`bc_c[ccfgijfj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'MAq!Q19Q;AqDAad**R1WQT\9CE!Q$JFAaQRdRUXYZUZ[\U\]^`a]aUaadfghdhijdjkldlmndnnqrstvwswqwxy{|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   gr"JAq!QQT6!Q$;q!ta1fQTk!Q$..1a41QT1AAAadF1HQPQTMQTUWXTXYZ\]Y]T]^_ab^bTbbeghiklhlelmnpqmqeqrsessvwyzvz{|~{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"oGAq!ad71a4<"QT'!Q$,&AqDA51a41Dr!Q$wqRSt|SVWXY[\X\V\]^`a]aVaadefgijfjdjkldllopqrtuquouuxy{|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%    6464646464646AAr9   c                  *    t               t               fS r   )r   r   r   r9   r7   w_polysr   S  s    646>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   