K idZddlmZddlmZddlmZddlmZddl m Z ddl m Z ddl mZdd lmZdd lmZmZmZmZmZmZmZmZmZmZmZdd lmZmZm Z d Z!d Z"dZ#dZ$dZ%dZ&dZ'dZ(y)zz+test_swinnerton_dyer_poly..s3Aq9rTpolys (i`ii@)r ValueErrorr rrrangerrstr all_rootsnsortedr r)ips rtest_swinnerton_dyer_polyr3sb :9: 1D 1T!Q$(^ CC C 1 %A 11 1 1 %A1a4!); ;; ;  1 A1a4#ad(*SAX5; << <"'q!-AeAh-A- Qd+55791A9 }Q/?@!a1@A B CC C .9@sE=FFc.ttdtdtdt tdz k(sJtdttdz k(sJtdttdzk(sJtdttdztzdzk(sJtdttdzdzk(sJtdttdztdzztdzztzdzk(sJtd ttdztz dzk(sJy) Nc"tdtSr)r rrrrrz&test_cyclotomic_poly../s q!4rr Tr!r#r&r$r*r))r r+r rrrrrtest_cyclotomic_polyr6.s :45 1at ,QU ;; ; 1a AE )) ) 1a AE )) ) 1a AqD1HqL 00 0 1a AqD1H ,, , 1a AqD1a4K!Q$$6$:Q$> >> > 1a AqD1HqL 00 0rcttdttdtdttt dt ttzt zk(sJtdttt fdt ttzt zk(sJtdttt dk(sJtdttt ttzt zk(sJtdttt ttztt zztt zzk(sJtdttt ttzt zk(sJy) Nc6tdtttS)Nr rrrrrrrz%test_symmetric_poly..<s~b!Q:rc6tdtttS)Nr*r:rrrrz%test_symmetric_poly..=s~aAq9rr Tr!rr#r&)r r+r rrrrrrrtest_symmetric_polyr<;s ::; :9: !Q1D 1T!a%!)_ DD D !aAYd 3tAEAI FF F !Q1 % ** * !Q1 %Q 22 2 !Q1 %1qsQqS 88 8 !Q1 %1Q .. .rc\ttdddd}t|jdk(sJt dt|j DdusJttdddd}|jdk(sJt d|j DdusJy) Nr%dFr!c3<K|]}d|cxkxrdkncywr>r?Nr.0coeffs r z#test_random_poly..LsEtu###ETc3<K|]}d|cxkxrdkncywrArrBs rrEz#test_random_poly..Qs?tu###?rF)rrrdegreeallcoeffs)polys rtest_random_polyrLHs q"dCu 5D :   " $$ $ Ed1B1B1DE E MM M q"dCt 4D ;;=B   ?? ?4 GG Grctd\}}}}}}}}tdtdk(sJtdt|k(sJtdt|t|z z||z z |t|z z||z z zk(sJtdt|t|z zt|z z||z ||z zz |t|z zt|z z||z ||z zz z|t|z zt|z z||z ||z zz zk(sJtdt|t|z zt|z zt|z z||z ||z z||z zz |t|z zt|z zt|z z||z ||z z||z zz z|t|z zt|z zt|z z||z ||z z||z zz z|t|z zt|z zt|z z||z ||z z||z zz zk(sJttdttdttd ttd ttd tdtd d dk(sJtdtd d dk(sJtdtd d tdzk(sJy)Nzx:4, y:4rr r#r&r$c2tdttdfdSNr#)r r&)rrrrrrz)test_interpolating_poly..hs1a!Q0rc@tdtttzdfdSrOrrrrrrrz)test_interpolating_poly..js1a!a%V4rc@tdttztdfdSrOrQrrrrz)test_interpolating_poly..ls1a!eaVV4rctddddS)Nr#r&r$r*)r)rrrrrz)test_interpolating_poly..ns1a0rctddddS)Nr#r&rT)r)rUr'rVrrrrz)test_interpolating_poly..ps1a3r)r r#)r&r$)rrrr r+)x0x1x2x3y0y1y2y3s rtest_interpolating_polyr`Ts%,Z%8"BBBB a #q (( ( a #r )) ) a # AF R"WAF R"W 55 66 6 a # AF QVrBwb12 AF QVrBwb12 3 AF QVrBwb12 3 33 3 a # AF QVa"f%R"r'':BG'DE AF QVa"f%R"r'':BG'DE F AF QVa"f%R"r'':BG'DE F AF QVa"f%R"r'':BG'DE F FF F  :12 :56 :56 :12 :45 aFF 3q 88 8 aFF 3q 88 8 aFF 3q1u << > >q!GAq!"1b)GAq!'(!Qi 1QUU]]_ 1aAY >> > 2 2 !B.!B3cptd\}}}tdt\}}}|||fDcgc]}|jj c}|||gk(sJtd\}}}tdt\}}}|||fDcgc]}|jj c}|||gk(sJycc}wcc}wrb)rrrrcrdres rtest_fateman_poly_F_2rqrnrocptd\}}}tdt\}}}|||fDcgc]}|jj c}|||gk(sJtd\}}}tdt\}}}|||fDcgc]}|jj c}|||gk(sJycc}wcc}wrb)rrrrcrdres rtest_fateman_poly_F_3rsrnroN))__doc__sympy.core.addrsympy.core.symbolr(sympy.functions.elementary.miscellaneousrsympy.ntheory.generatersympy.polys.domains.integerringrsympy.polys.polytoolsrsympy.utilities.iterablesr sympy.testing.pytestr sympy.polys.specialpolysr r r rrrrrrrr sympy.abcrrrr3r6r<rLr`rmrqrsrrrrsgB%9(.&3'    C" 1 / H =F ? ? ?r