%,!?t{?ƢDz?cǈs?2Fa?4L?[7ٌ?Ĝm\i?/·%Ё?/71w?Jfn?*d?'mZ?}0Q?^~ɌG??y0???-5?`=Z,?XUú=#?0"?M<4?%?oDF? )>Uu19>3K5Fs>(55>U^M>Aߥr>A">},j>vq
-?̯?
W8z?-@x?QsX@N9@4s@dmlv@z @CX~
@R%r@&c@)Im@3x@8k \7@Hء@T@@5S@ߦ!@@4mI@%PH[v@Sbb@& A $@z"@!Q!@PE\n @V*@>L;'@A
B%@
g$@*}2#@cq"@
S!@e}b*@u[`)@W-'@
ZZ&@ȥ;q%@=ˎF$@
ԕ-@D7H,@mQ+@b)@/(@MNL'@o
l`&@RFi0@DH~/@)&o/.@A"pj,@㐠+@Iqa*@Fw()@˱a2@>_1@Eկt>0@BF0@r.@ă-@(B,@$("+@Mt3@k3@h#M)U2@}1@&00@GX0@eh/@Zh9#.@Rk\5@
^4@v)3@)K3@W2@p1@U~L1@O}50@Xu`0@U> 7@`]9U6@Ċ5@vJ14@DZB4@?3@/2@9qޤ@2@n˙1@o8@-P8@,AN7@8 6@
O5@t9f95@ȿ+V4@#G:3@@153@C^2@"k:@+j0
ó9@ЗE8@bG8@RK)7@xT6@/%06@tHb5@8:4@x *4@;_ <@qVqf;@<\iD:@c9@H*@9@֫而8@RI97@HPW(7@0(x6@uIh&5@Vl5@Bo
+?!S?N
msp?'
?h 2*?*?fk_@/ܩ?3,&(?fv?zUg?AL?
@$"?PM»?eE
?Bv/?r҈?V-?̭?9r7?Tffffff?msp?T㥛 ?N
$ID?+MJA?p=
ף?ާ?EG?
?fvң?3w}9?
Gz?J@L hɷ? O??RQ?`0.Uik?
L?Rq?
8#+?̸?̸?W i?0B?\4dx,?|%VF#?=
ףp=?RQ???p=
ף?zG?Ba?!GtF^?N
9}=?A?'
^f?fZ`?*?3gu?n|b?
'
b?
{v?T)\(?eE
?lyzL?rq=
ףp?V-?BV-?9i_=?j=?T =E?V-?N
$ID?[?p=
ף?Sͬ?E ?
?fvң?
[1б?3/?<ad73?J@L ɋL?>hɷ? O??RC
?
L?`]N I?̸?WҸ??\%YI+?LPMIֹ?8+? Wj1x?.ZH?ƽ
?0"rl=?W+ٱ?q:V?Ǽ8d?
Ǽ8d?\??b*3?q=
ףp?13/?]=
ףp=?h?]"~j?(\?ףp=
?:ôo?y9[@?zG?tSW>?(\?(\?(\?<- ?҈}?>%C?|tE)!XU?Yh9?=
ףp=??L?=
ףp=?Ljh?x&1?!x&1?MbX9?BMbX9?
q=
ףp?'
q=
ףp?V-?TT g?BTT g?'Hlw?*'Hlw?V-?
^f?N
^f?̰?T̰?
N?
[1б?|ױ?3|ױ?Q?!Q?C8?C8?(\?4
%?
%?"-1?f-1?ݳr?
ݳr?'
ݳr?,ݳr?Ƥ³?)q̳?"#?4yS?iQ?iQ?*iQ? upx?D/iQմ?/iQմ?4
N?
HzG?
uOU?<
uOU?Swe?3Swe?3p@KW?93p@KW?ʡE?Dlg?&yY?ryY?$ I?$6De?
W}w?
Gz?&>ɋL?>hɷ? >hɷ?
L?L#t?#t?̸?4-2?94-2?DKKƹ?EDKKƹ?[1й?[1й?[1й?LAz"?8+?ffffff?.c?c?vú?zG?
zG?9CqǛ?09CqǛ?.QQ? q:V?\&?&?)\(?whhs?Ewhhs? Ǽ8d?
Ǽ8d?\!;oc#?q=
ףp?q=
ףp?h?@$"?@$"?u8FG?@$"?;On?\(\?Ytw?Is
?WIs
?ףp=
?:C4?C4??:8~4?t ސFN?t
º?jgR?WjgR?)?(\?V-?]V-?>T㥛 ?T㥛 ?҈}?>x,?|Xİ??]?|}:???=
ףp=?"
l?q=
ףp?
º?*8 "?(\?333333?Gz?p=
ף?Ljh?x&1?!x&1?MbX9?BMbX9?V-?
r7?'
r7?TT g?BTT g?V-??*?
L?N
L?̰?T̰??
??
[1б?|ױ?3|ױ?(\?!(\?,=M?4
GW?
GW?"wG?fwG?\(\?
ݳr?'
ݳr?,ݳr?Ƥ³?)q̳?"#?)\(?iQ?iQ?*iQ?upx? upx?D/iQմ?/iQմ?4
N?
Swe?Swe?3Swe?
[{c?<
[{c?Lk^?9Lk^?Dlg?&c?rc?
333333?$ I?
W}w?Zd;O?>ɋL?&>ɋL?>hɷ? >hɷ?Lǵb?ǵb?
8#+?
8#+?
8#+?Y,?9Y,??-z?E-z?[1й?[1й?LAz"?8+? 8+?ffffff?.6Vb?6Vb?ƽ
?.QQ?\,IEc?,IEc?)\(?{K9_콼?E{K9_콼?Ǽ8d? Ǽ8d?\!;oc#?=
ףp=?0=
ףp=?
ףp=
?
ףp=
?
b%?tۈ?@$"?(\?(\?\(\?)?W)?ףp=
?:c0?c0?)\(?:)\(?t^Nw??W?tSW>?(\?(\?Q%?*~?]*~?>}?5^I?}?5^I?҈}?>Qj/?|4%?I/j?]I/j?|tE)!XU???st?pi?"
l?q=
ףp?
º? v?*8 "?(\?333333?P&?=
ףp=?Ljh?4Y-\ RQ?;On?@yPD?qy O
@@@@]=f?9=DuR?<u?x(v?=)eT'?3=ѭ?=~L%?!BL6?)=#FG?G=[W?`"=Dh?21y?#eǊ?*XxЛ?#*B?(3=ֺ?B=C2?.Lf^j?P x?((=,(?[?/S%?@U?�����`=bJg?�����8=0y?����� =.S?�����=yUk?�����)o5!?�����p+=ӿk?������<" <:?������,?<ʻ.7?@ǼnC?0?09ǩ?c߄?0u? ?=f?|":?4*=w9~?䦅?yd? .>?$"J?0%1
?622?pLp!?H";.?%fdq@?rD 4ۧ? =n?>=-?<"D?4L?0&=Np?H~E?sSo ! "# "! $%&!"'()#$') *+,!%& *+-"'( ``````````pppppppp 00L/fiqW;K6[1,(%TTLLLL
VVV$$llllPPPP./)#*$01%&+'(2)34*+,,,
%)+/e0e@eLe\eleeeeeeeeeff(f,
@xRT,ZX^D ,<@.GȒUS>2DC-Pqbyj~,M--.dR@df&l-32~(t.|@~,QA=7XD8r T
Olx0TlT,HޛO?f_86?YWFTXxv$tq$,4ޝt2%_F(S.P"` [ ,
~DvWA*-T4Ck<
,~
"hwTPcɯ,<|
hQ5g,Dv&(0Em,,,,,
,',
3.,!
+
,
, ,,,,
,#
,*,
,
,
, ,,,,,,
Z%
,#H+3,
$KJ,6:
,
, ,,,,
,!,D
,K-,
':,!.
,
,
,,
,,,
,kN,ngy=,R]F,X[p),!
,^',X &
,)'
,
,,,,,,
,,,M,LA#
,pF+L.,L7Hs4,r\&{
,m1W?)S ,B]r?^T,. Oa6oaQF}Lk,8(@h{@/E?, =\B?k#,B#V2('
&,&2D Z%n u,F3{IN$
,+4F,FV>@ ,5=,,,,,,,,,,, , , ,,, , ,,,,,,, ,2,"
,
,
,
,
,,,,
,,
,
,
,,
,,,,
,,
$,
, ,,,,, ,& ,$PX^Dh,+~F,[B ,V&+kb, M?FHTK,[7'8\p,De ,,,,,,,,,,(xx(,Z@Xj,@@pp,P6,``,`0h,0,,,,
,,,,,,,, ,,, , , , ,
,,, , , , , ,,,,,
,,
C,Dg L,pz%,[8 ,
,%(V9,-m^,9,}i,%h-=
,
,,,,,,, ,
,,(,.
,, ,,,,,,,
,
L&,
n,d[cA, ,;t
,_, ,,,,,,,,,,$
,C,T
,-- ,,,,,,,,,,,,,,,,,,,,,,,,
,,,,,,,,,,, ,
,
,,
,,,,,,,
,,,
, ,,, ,,,
, ,,, ,,, ,,,,,,,,,,,,,, ,
,
,
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,56-
d^ &
x,@28>|Dp` Jd(
PX
VL\@b4!H
h(#n%t'zi@_ÛorI}1d<at?/>]C]vy-':X .`* .!e ;(g:i.`e*4e*e.;
*g*g&* . m)u*,e*hgj.0g.uj`*!e*uki.ao**(k*+or*rgj . g;he{je*(ne*`on!>2g>0u>8en(.j(g:g: n`e*`u*25g*8g+(k* m.*++#+i.9e.03e+)e+h*`%ge"u*e*
.9g<*0.!e: e:`e*e.,g*h.`!m>9
?{mq*w. j ;;joh*)!nqg+p+4e*ji.(ej%o* j1r!!4 R&|.T8RDRddy>8[CfOd_
?}j.T 'Xr0:l8G@ZV h~dEXLPP0l ~@
0!%h)-d2x7T=C8JRZc`myĆd((4MuQ08hI($t5|lZ>0? L^
ȟT
<\a
%)+/5;=CGIOSYaegkmq@fPPnPPwy2"-- ?h
];a`X >P*sL2
%
A*8
.78/0-1 @
! A"B!
$A
#D( C! "H%A
0
B# E)P
& C!` #IF%A*
1@ C# $!E
"J)Q '@ C!D2
a ,B#I
@"G%@A+
R
1A&L!
C#( %
b!E
#K4)Q!F'A ! C*!H$E3B a "-CT#I&
A8#G
%"AJA+d
S"1A'B(M!@@V4+@@ V@4@`V+FV g@7V4V@`Vu@@9Fj4`gg@/gV7+4V44@|@%`Fg#V+V u@u@+79F4ZVj n`ggV@/mgPV7
VL4P@r@%`F4 #4FV`u@J^@g@HVV7+9g4F4
@ugj@;`|
%)+/5;=CGIOSYaegkmq
C9kpX?@k(#'m NX0uR@qV Pe`v
pۑ8c_)@
Spp K@B0Y @KLͱ
D-1:wzy)kgRu09.:;2/3<=>401TZTZTZTZ\
\\ \_\e\t\\g
ccccnnnn]4nnnnnoo=soɏ-o o&o,ok0o8oBoHoNoTo^ocolo5a0`
0
`Y0`HQLQPQTQXQ\Q`QdQhQlQpQtQxQ|QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRR R$R(R,R0R4Roɏ͏Տݏ##$ &-1C*:f+9~.<&=H/@EHsKT[yg$p6{r-~:79023ːΐ4(5-P6q7iɑ5͑ԑ6͑%~#8i&V9n:r.;ÓL/78V48s41<izl292:83?ÕR6Z6=
>L?S{@;×Ao9<͑*m=͑t>͑ ?:@QYAnuB!@&Aؙۙ+B/C4D;Br;w|7EؙFŚ<Cޚ@GؙEH
IDޚ"MIؙ5RJOVEkV[Fk[`Gk`eHkejIkjoJkovKkv{Lk{MkNkOkPkQkRkSkTkUkVkWkXkYkZk[\k]k^k_k`kakbkckdkekfkngkn#hk#(ik(-jk-3kk3;lk;BmBGnkGNoNZpkZ_qk_fKؙwkLoMuNʛ͛zOP2X\QRŜSTʛU7sҝ,C@D[pyD@מE@"V1CWRdXsF@ ş
05LeG@şԠH@-4uIYaYؙZ[ؙˢ\J
]ʛ,Ry
ȣΣ&KͤѤޤ
L 2AFZrmM@Х0 8>^Y]_ʛߦ`ʛIaW§ӧݧb1EϨ/avc4id{ N@O@1cuP@1C}Ƭ
٬Q@$TR@heխf&au6gIsYhٯi(ELlj~S@İհ
t4Pe}T@eұٱku9lMPmMznMƲʲ8vUU ۳oMpV@9qGwkxklykurͶFzkPyW{k0<F|ː¸kXhsow}Y@Z@AtJN[CuL~kk
evnsMWƼwkxv~
Oy]bpz\Iz]W
{-|]8[ ek!z]@A^ _@"e|`@a@Xb@o#z}͑q
c@kH~Oodw'e@f@\gh
kV͑cMk^k7>_h@fbJ0i:B:j
kAːIntx}:"(MZMMl $ MM9dm=FDm n Ao Ip ,q -r9A,s t t ?u9KNJxS%^dWkvuː/Jy*1eq
zJʛ
o
9!
l&
IS
w
:z+x
:y
@j,z
',<
C{
@B
K
6
=|
f
Jo0'
}
'(
(4~
B4
i
wZ )
*|
."*
x\"
'E
@V
f+
5
DK,
8=+
:
,
w|kB@%-} J
r@zJ@@HJ9X=ʛI J M J PY6 ir '1 ͑l ͑] MN McMM:UZh!J!D<Br. /J!M !<!0!1^+!
*#͑@:# i# X!Mb!d"Mi""M"1#7#?#'@#_#ʛs$
%%"%JC&2|'''M'ՏJ(u).***
<+,r,e,3o,x,-M--....//./*0.900.1122Q3_3%45P5Q7\7&477. o888*9*;;;?;;5<<ݏ<<\=l=>'>3>Y+@b@m@A]A,M,B-.JPBPC6WCO.7^DxDDE;; EF͑'F:GGGGGG2@HIIXIoI1'\J0 "KuKKKL8LLMMM2NANHNO9OOO:OORP;O^PP<OPQQQQQQ9 SS@S=ITUMUVVnVW>WW͑5Y=ZZ?Z8@[[\8{\\\@\9o]]]^J!^!_;;._aA(a9Bambrsbbc1 co#M
d1d9d
ndrdt#QdffAfMf1fffg
g
Jːblir&ǵ͵/cpcXu
J6KQQT;;J&-&K|'&
@'
'f2'
S'
'`'
@m'L
ox8
B'
'!M
1;2
@A'
''
@'
P
_N
'
'
@< :
.
'(O
o(
r
(P
o)3
m
Q
@(
'+Q
(:R
)
'')
@<)?)s)S^E M; V%5m u~* amC* u§ u7 ,3ݧT [ e 1=*ː}ːf+͑5^kp,͑)kZ,kM,ːHk:-KeQƯU JQ.-JG-3ːUV|'^W|'N-Xg9X
D
Wb
p
z
@Y
NXZ
N(
3/
7;
E
P
W
b'
71[Z=\
/]
X%_'
20
78
!
Mj"
Mq#
^
$
`_
jB`
P[
a
N
>
7HWb
aja-%LTۯ 2{!&͑<EH (.'M/ag.(M_)MR
\`*n
uzF+͑D,
R-
?I!.͑!h/!7`#QV]c&&<&0͑d&1"&2".#3=#6)#J)4͑#e)R$$$$)%/*5%*6%{&7&*
&,8͑',9͑'1($;(}(:(,);=)21<))9*F*r*Qx*4ː&+H+R+.++.=J,.-v7>͑0.{%?s/%co/O8`09u0.@00
V0;1@111
222A24444e6Bm6t6Y7Cʛ^777@8DʛG88889EK#9998:FKH:::=;dG;L;<GK<<Hs<=Is=*>J;;5>?Km6?@L@SA`AAMJA/Dh-kː5kl%lOmg\mSoho,\opprrrxs^st_͑tu`u.afvvbvU/
vn/ː
w-w;w@w/xc8xWyd͑by zː&zzzz'{{${|e|}f͑(}}'}~ː~<ːFː;wLgWԃhJރ@Pi:.Fi͑T$j((ǌk͑ь9FKcPkVlJ]m&:=v/n
̒ђ/Xo
p
;;0q
1
>j
oK/r
,!
~
*
@/
@/
@әk
)/
@kl
^m
}
0
@0
@Ejn
xs
Ĝ,0
@o
G0
@U
@
'Tt
_q0p
e}Ku
؞
'
@%
@'%q
I
r
/
/
@9)
Q*v
K9*
;+w
$s
39
@Tt
@H
T,
@8vx
M
'y
͑z
,6
We0
:u
G
P[!
'>;{
͑I@|
͑O00ȶ"090a0}J^1~0ːGV&9#!1sRYeY%/>`M$W(%/5&nK͑[ː4<>3;nd;nd7ndE N <nd?
w3~ }
3
dn3 G9 ;($
3MO
;
j
5;:mJ͑͑QY> &;'0<@
0='
3ʛQ1y4Jm>v?7G@{,Mr-͑N-͑2/!!"J"""g#Ao#A1$g$Bm$6%%~U%:I%3m&3&C'MO'4'6C .(4M(R9)))A*ːN**** 4+,,,;--.-
.e.-m.]4./ //!//
065
]01
1p1
|1122D
?23
136
6H5
L6 7
7r7E
}77
788
G88
88F
9Y5G
95
t;<
<=
=a=
p==
=0>H
@<>>
>>
>!?
2?K@I
\@A
-AAJ
AMBK
UB1C
K>C5
KCnD"
ː~D+EL
5EGM
GGLIN
VI5
|'IxJ
J5O
K-LP
:LsMQ
M5
N5
O#6Q05;;LQRRRRRSSMSS͑S S=TTMHT#-#GTY\_hs~"<Ss
-c}qeaUCWIi$ syo(7#7;89I-1_e<1QQuEK?OT/S5K;X%uI =aZ{c[g'h__['3 i~E
AY9#
c!q
O
O ?
-CCCM-&M
!dF
uwuous,## 7h3KSKv+vuKKV4+uuus#LsKCÐvsv#MsL#xw 0LL'vvvܮvvv|v\<:{<{\5l5L5[vvvۮL,xwwwL52||{w)P\!!6(fO (4(x)uU545P-+$H=`5;w'xw*z |)57Ǡvxyxby*x6j6J*7|"7*yzZzBWZtsj(J*(t+)Bx|6~<9P*#ʮ¯w
xjwRwzwwJw>po@#ʞ j bwxRwx2"±z2yyRyBNqp"B#(b"U\cQ Of;O 68Vr.Q $dv |j(wE~, x5P)+h*X+x |X@lXw( 7P yDH6xwLz89qt-%.WQ 28zty~;}~T}u9(X(+(x580w8=xiTpax(yHxH8xXxxx(h-(-:h.HHHX|zzzOhe4-(-(0HwYox8A#8x+xx6wzzhzz{zxy x78}x8؟ B# xqȠ yx{8zxMCLC+z,7,R+X8xzXҟ XtyP88Wpo) @`x|ybmenTF|Gk`OJ{&uEpUfyz:LgF̭;uEkc7II@IGihlej`#Ye&WVTY]`_ERc7k>V95DT?q:Eq6Yy=?{fY=']*I*
O[=[2-R//o; jBWAJr~BiR*D;22|Nٗٗ]*zziuQukij崧يn9hEh
98 %ǒWGe nl5U>o BIK_ȑ&ǑAvG$G(
4q4Jc§c،6{6WcSOu((
r{;]>B]@Z˃\7~oKϩ/}C6,d+,ͩE]xnxjnJBcdԴզ"f\@ld 4P*()"ҊKRJRA 7w!j "Ae;UkF'P9u9G4Pi #4BF=q;BTVxKE.4%Lc!FK@9#cV
!!"`^D$*|bM(M(B2F:\-5(74O74.84EV99# !$1$9t6 6I6|)l9lkmh0nmph0,FO:$ўn:-57U]1k$y(O2%l
y((b6Mk\g0<LC84 6(Ï,Ӷ,$+U;UMv-
)o%sg9/\o.~7s/'0)/bȭ#+:&A(%v&|2#J
l)/?5LIyx #M,{7 LGXOF`$y q&^2
p)/V@5S<':
:#-ޡ%% %YP3x7.
%XLp1Xiov1c/2c-0v3$Np3ԝGk|(vF8V B6:3ӫ 993#FTſ^9[+~(+6.\"T67H<^1%0C-g*$->] *d8
Q&:Z'38:GB@I }
( ;~)Sm&R$[*k
[.%4H7B<,ryS s#=>I+_;
A,B$iNP\pO_$H$ښ'/+vA5B(e2&
H&88$)7!##"$F :Vz"3-F; U$"a(bw$֏1%(")L?^L?,L?L?LL?xL?!L?'L?T+L?3L?
7L?H
AL?H
GL?ZL?D_L?DnL?pL?dfff?(#)\?'?2(?6ff?2q=?*
{?6,
33?:T
=
?:|p?:|
?->?<:z?F:Q?P>Q?P>XQ?P>Q?P]Q?PeQ?PPFLQ?P NQ?PU%Q?P]x%Q?P]@%(?P`ml)?P4)ff?P}4+?P+33?P(
/?P@
/?P5?PH
5@P@533@PH
;ff@P; @P8=@P8=@P8C@P8C33@PWC
@PGz@PG@P2I@P2(#Iff@Pq%O=
@P)O@P* OQ@P0 Sq=@P2 Sp@P3 Sף @P8 Y
#@P; Y%@PhB Yff&@PPF YQ(@P,L a)@PR a{.@PU aG1@P] ez4@PSY
e5@PS]
g=
7@P`m
gQ8@PHq
k9@P}
kq=:@P
mH:@Pp
m;@P@
q(<@Pп}
qfff@Z ql@Z ql@ZL l@Z%& 33s@Z%&ȯ
33s@Z%&
l@Z-8
33s@Z-
33s@ZY
P
33s@Zg5
33s@Zg5
y@Z =H
y@Z =
y@Z =p
y@Z =$
y@Z =8
!#%%'
))++//35579;;==A
CCEGGIIMOOSSUWYY[
]_aa'rV'3<EKXajtzOO/OO/iiiiiippww#-p:?HdW=HeZjoh{piA··FİحH.@8=G_Qfbmdw/kUW.q< |/222͚""*#k4k>DRgsz \\E-R?`8i""**
zrz+2=PCNGcUE_ciktyp`0 ݠpU2+ pؿ#)/9CMWesxk}ew^y+9pGQ[exov}{}")07oBgzMYiX:2͚"iphZ͢=nsN#p3LCP]jzwu%"ie"-8iiCjjNccYUUd::oGwBy9h&G}Usf~OI?+Z$!vfE00",,-&&8C@@J;;Q33X##_igboTpw9LzrbBWZvfEVr
PjE[/>Gc'B\/9O7&6?EJ@U7`%kpuzQvP
nj`b:ŵlce_(y7hF]GU4]0e)mbu>:x2R"ziG͖ff_R'7z5>A:M2Y"he0m,u&}}UyhG]͵{
#
)/5;AGMSY`gnu|!!!!!!$$$$$$&&&&&&))))))++++++......000000333333666666888888;;;;;;===$===+@@@2@@@9BBB@BBBGEEENEEEUGGG\GGGcJJJjJJJqMMMxMMMOOOOOORRRRRRTTTTTTWWWWWWYYYYYY\\\\\\^^^^^^aaaaaaccccccffffffiiiiiikkk kkk'nnn.nnn5ppp<pppCsssJsssQuuuXuuu_xxxfxxxmzzztzzz{}}}}}}#*18?FMT[bipw~
& - 4 ; B I P W ^ e l s z
"
)
0
7
>
E
M
U
^
g
p
y
^gnVgty0!&+/47<@EIMRV[`ejov{#(-3;BGNSZ_fkouz
'..8BFQQUY_eekrkzzeeeeeeQQ
QQQ%0=FNW^eeku~.. '1:HTcltx~ltltt:QQ(QQ+/5;EJSJYaJgouQQQV $ 2 > I P Z g g l | Q Q Q !!!!!'!'!,!9!I!I!Q!X!QQb!h!QQt!{!Q!!!!QQ!!Q!!QQ!!QQ!!!!!!!QQ!!QQ"!Q"""".""="C"M"\"h"h"s"\""""\""""\""""""" #""#*#3#:#A#H#O#O#Z#`#QQi#o#t#x#~#VV######QQ##############$$!#$$)$#$0$)$#@$H$Q$]$Q$j$r$|$$Q$$Q$$QQ$$$$$$$$$$$$$QQ$%%%%'%4%4%9%'%4%E%L%'%V\%c%h%QQo%u%{%ee%%%%%%%%%%%%%%%%%&QQ&& & &&&& &,&4&<&QQC&<&QL&Y&d&n&n&t&&n&n&&<&Q&&&QQ&&&&!!&&&&&&O#O#&&&VV&&''''')')'2'<'2'J'S'`'m'v'm')'''''''''''J'''''
(
(('''(3('V
(E('V
(Z('Vk(w('((('((((((((()''(((()'')))))')0)6)!!<)?)D)J)QQS)J)QZ)e)QQs)z))))s)))))QQ))Q)))))))Q))Q&)*QQ***%*/*<*C*J*T*`*C*J*g*C*s*C*J*{*****QQ**QQ******* ++#+QQ4+;+D+;+O+Y+ & &f+n+z++++z++++z++++z+++++++,,,QQ',-,QQ5,;,QQD,M,QQZ,c,j,++t,{,QQ,,,,,,QQ,,,,,,,,,,,QQ,,Q,,QQ,,Q,,-
---#-QQ.-2-;-!!G-N-R-)QZ-a-{!f-{!Qn-r-QQx-}-r-Q---QQ---Q---Q--Q---Q--r-Q-r-Q-r-Q-.r-Q-...QQ.$.-.9.9..=..QD.O.Z.d.l.lw.w.~..QQ.#.... & &....#!..#........////*//1/;/H/L/P/L/&U/`/%Yk/n/!!v/////////////////////00//00//&0,05050>0G0S0S0]0e0k0q0z0z0000000000QQ00000QQ000 & &00QQ01 & &11QQ!1+121!!<1A1N1N1R1^1h1h1n1~11111##11QQ11VV11QQ11111111)$ 2)$Q222Q&22Q-322Q-A22QP2W2^2QQg2l2p2p2v2~2v2222v2222v22222p2p2222222222300330033 3)37373>3E3N3!!Y3h3w3w3|33333333333333333334 444QQ4(4++34B4Q4Q4]4b4h4QQq4y4QQ4y4QQ4y4n&4444444QQ44444Y45QQ
5y4Q5y4n& 5)505Q 65?5H5P5P5Y5e5Y5P5r5}55555555555##55##56j$j$66QQ#6,64%4%7605@605Q K6R6p2p2V6Z6QQ^6k6t6|666666666666QQ666##666777QQ7Q!7/7!Q:7QD7J7*QW7)$Qc7)$Q&p7v7QQ}7v7Q7v7Q-7v7Q77)QQ777QQ77%g77QQ7777777778
8
8888|338&8833.858<85833D8O8QQ]8m8888889.9.888!!88QQ8888899.9.
999QQ#9 QQ)959QQD9M9R9QQ[9a9k9o9QQs9)Q)9)QZ-99)&99O#O#999.9.99QQ99Q99999999999 ::::(:2:2:9:(:H:P:Z:(:H:l:v:}::::::::::::::::::::::::::;;;;;;;;!;::*;/;5;/;<;I;X;/;<;<;b;k;q;::|;q;::;;::;;<;<;;;<;I;;;;;;;;;;;;;;;QQ;;;;<<;<#<)<;;3<:<;;E<M<;;Y<_<i<i<y<:!<<:!<<<<<<<<<<<QQ<<==#=1=>=P=Z=c=g=\ 6stV8V8^6utZ^6vtZ
^wpm!(1<m@@#Q),D2MM(e~NmR?]#M9m?????@@@??NN@@@@@V(W9CZZF(E~XMU((M
$$(#$467899j4l7.91*+<<::$$;23456789:;<=>?@ABCDEF<LIL;8#QRSTUVWXY#%\_P#$;ophg:ij:l$$:ru023466789%%:$t:<*2346789:#$u)*+124678:
&'()*+,-.02346789=
%49%
49&'()*+,-.02346789)*+0124678
&'()*+,-.02346789<
&'()*+,-.02346789:
#&'()*+,-.02346789
&'()*+,-.02346789'()*+,-.02346789)*+,-.02346789+,-.02346789&)*+1234678)*+0124678)*+124678^ !%.s-tuuaj.IJKLM]I^)]1opbkuvwxyz{|}~.s2l_`d^^efinm.F"GHIJKLMGHIJKLM^c#
$g3456789:;<=>?@ABCDEFGHIJKLMPhQRSTUVWXYZ[PQRSTUVW\XYZ[I]\3456789:;<r]=>?@ABCDEFGHIJKLM
3456789:;<=>?@ABCDEFGHIJKLMq3456789:;<=>?@ABCDEFGHIJKLM3456789:;<=>?@ABCDEFGHIJKLM3456789:;<=>?@ABCDEFGHIJKLM56789:;<>?@ABCDEFGHIJKLM:;<:;<@ABCDEFGHIJKLMBCDEFGHIJKLM* +
truncr (precision loss in truncation)floorr (precision loss in truncation)umodiuabsdiviu_remdivis_remdivisdivrrdivridvmdiiexact divisiondiviiexactFl_invratlift failed to catch d1 == 0invmod
divsidivirdivurdivsrinvrdivrudbltor [NaN or Infinity]t_REAL->double conversionHGCD_splitFIXUP0matid_F2mF2m_F2c_invimageLanczos halted after %ld iterations
Rg_to_F2xqF2xq_invF2x_extgcd (d = %ld)F2x_divremF2xn_inv, e = %ldF2x_gcd (d = %ld)F2x_halfgcd (d = %ld)F2xq_log: Parameters r=%ld r2=%ld
F2xq_log: Size FB=%ld rel. needed=%ld
F2xq_logF2xq_log_find_relF2xq_sqrtnF2xqX_divremF2xqX_halfgcd (d = %ld)F2xqX_gcd (d = %ld)F2xqX_extgcd (d = %ld)F2xqX_resultant (da = %ld)F2xqXQ_invSqrtxLiftZ2XQ_logFpXQ_traceQp_expRg_to_rawFF_Z_Z_muldivFF_mul2nFF_sqrtnFF_sqrtSEA for char 2Flm_Flc_invimageRg_to_FlRg_to_F2Rg_to_FlxqFlxq_invFlx_extgcd (d = %ld)Flx_halfgcd (d = %ld)Flx_divremFlx_gcd (y = %ld)Flx_gcd (d = %ld)Flxq_sqrtnFlxn_invFlxn_div, e = %ldFlxn_exp, e = %ldzxX_to_Kronecker, P is not reduced mod QFlxqX_divremFlxqX_halfgcd (d = %ld)FlxqX_gcd (d = %ld)FlxqX_extgcd (d = %ld)FlxqX_safegcdFlxqX_resultant (da = %ld)FlxqXn_invFlxqXn_inv, e = %ldFlxqXn_exp, e = %ldFlxqXQ_invrandom_F3xqErandom_FlxqE[Flxq_ellcard] baby steps, i=%ld[Flxq_ellcard] baby steps, s = %ld[Flxq_ellcard] sorting[Flxq_ellcard] giant steps, i = %ld[Flxq_ellcard] giants steps, i=%ldTeichBarrettXmLift isogenyc^2NormTeichmuller/FpTeichmuller/Fqtc2Coppersmith: Parameters r=%ld r2=%ld
Coppersmith: Size FB=%ld rel. needed=%ld
model changeCoppersmith (R = %ld): %ld%%[%ld] : %ld tests
relationssmooth elementsmooth generatorFlxq_logSize FB=%ld, looking for %ld relations, %Ps tests needed
model change: %Ps %ld relations, %ld generators (%ld tests)%ld-smooth elementFlxq_log_find_relr=%ld d=%ld fb=%Ps early rels=%lu P=%.5Pe -> C=%.5Pe
Found %lu
random_FpEellap [large prime: install the 'seadata' package][Fp_ellcard_Shanks] baby steps, s = %ld[Fp_ellcard_Shanks] sorting[Fp_ellcard_Shanks] giant steps, i = %ldellap (f^(i*s) = 1)matid_Flmgen_matidWiedemann: first loop, %ldWiedemann: deg. minpoly: %ld
Wiedemann: second loop, %ldstructured elimination (%ld -> %ld)FpMs_leftkernel_elt, impossible inverse %PsWiedemann left kernelFpX_halfgcd (d = %ld)FpX_gcd (d = %ld)FpX_gcd_check (d = %ld)FpX_extgcd (d = %ld)FpXn_exp, e = %ldFpXQ_invFpX_resultant (da = %ld)FpXn_invFpXn_inv, e = %ldFlxq_ffisom_invFpX_ffintersectFpX_ffintersect [bad degrees]FpM_kerpows [P,Q]FpXQ_sqrtnmatrix polcycloF2xqX_rootsFlxqX_rootsFlxqXQ_halfFrobeniusFpXQX_rootsFpXQXQ_halfFrobeniusF2xqX_ddf_Shoup: xq babyF2xqX_ddf_Shoup: babyF2xqX_ddf_Shoup: xq giantF2xqX_ddf_Shoup: giantF2xqX_ddf_Shoup: diffF2xqX_ddf_Shoup: FF2xqX_ddf_Shoup: fFlxqX_ddf_degree: xq babyFlxqX_ddf_degree: babyFlxqX_ddf_degree: xq giantFlxqX_ddf_Shoup: xq babyFlxqX_ddf_Shoup: babyFlxqX_ddf_Shoup: xq giantFlxqX_ddf_Shoup: giantFlxqX_ddf_Shoup: diffFlxqX_ddf_Shoup: FFlxqX_ddf_Shoup: fFlxqX_FrobeniusFlxqX_ddf_ShoupFlxqX_edf: FlxqXQ_auttraceFlxqX_edf: FlxqXQ_minpolyFlxqX_edf(%ld)F2xqX_FrobeniusF2xqX_ddf_ShoupF2xqX_edf(%ld)FpXQX_ddf_degree: xq babyFpXQX_ddf_degree: babyFpXQX_ddf_degree: xq giantFpXQX_ddf_Shoup: xq babyFpXQX_ddf_Shoup: babyFpXQX_ddf_Shoup: xq giantFpXQX_ddf_Shoup: giantFpXQX_ddf_Shoup: diffFpXQX_ddf_Shoup: FFpXQX_ddf_Shoup: fFpXQX_FrobeniusFpXQX_ddf_ShoupFpXQX_edf: FpXQXQ_auttraceFpXQX_edf: FpXQXQ_minpolyFpXQX_edf(%ld)to_FqFpX_divremFpXQX_halfgcd (d = %ld)FpXQX_gcd (d = %ld)FpXQX_extgcd (d = %ld)FpXQX_resultant (da = %ld)FpXQXQ_invFpXQXn_exp, e = %ldFpXXn_invFpXQXn_inv, e = %ldFpX_rootsFlx_onerootFpX_onerootFpX_ddf_degree: xq babyFpX_ddf_degree: babyFpX_ddf_degree: xq giantFpX_ddf_Shoup: xq babyFpX_ddf_Shoup: babyFpX_ddf_Shoup: xq giantFpX_ddf_Shoup: giantFpX_ddf_Shoup: diffFpX_ddf_Shoup: FFpX_ddf_Shoup: fFlx_ddf_Shoup: xq babyFlx_ddf_Shoup: babyFlx_ddf_Shoup: xq giantFlx_ddf_Shoup: giantFlx_ddf_Shoup: diffFlx_ddf_Shoup: FFlx_ddf_Shoup: fFlx_rootsF2x_FrobeniusF2x_ddf_simpleF2x_edf(%ld)Berlekamp matrixkernelFlx_FrobeniusFlx_ddf_ShoupFlx_edf(%ld)Flx_edf: Flxq_auttraceFlx_edf: Flxq_minpolyFpX_FrobeniusFpX_ddf_ShoupFpX_edf: FpXQ_auttraceFpX_edf: FpXQ_minpolyFpX_edfFpX_edf(%ld)FpX_edf_simpleFpX_edf_recLLL_cmbf [no factor]splitting mod p = %luTime setup: %ld
S_2 bound: %Ps^%ld
coeff bound: %Ps^%ld
Hensel lift (mod %Ps^%ld)
found factor %Ps
remaining modular factor(s): %ld
last factor still to be checked
for this block of tracesLLL_cmbf: checking factor %ld
LLL_cmbf: chk_factors failedLLL_cmbfKnapsackDDF [out of small primes]...tried prime %3lu (%-3ld %s). Time = %ld
ZX_gcdnfrootsQRoot boundHensel lift (mod %lu^%ld)DDF_roots, m = %ldRecombinationnegative definite t_QFBqfr_initqfr3_redqfr5_redShanks's distance in general compositionqfbsqrqfi_1qfr_1_by_discnuduplredimagsl2primeformredrealsl2RgV_dotsquare, i = %ldRgV_dotproduct, i = %ldoperation 'RgV_RgC_mul'operation 'RgC_RgM_mul'operation 'RgM_RgV_mul'operation 'RgM_RgC_mul'operation 'RgV_RgM_mul'operation 'RgM_mul'operation 'RgM_transmultosym'gramgen_RgX_bkeval_powers#powersRgX_RgXQV_eval(%ld/%ld): %ld RgXQ_mul
RgX_homogenous_eval(%ld)QXQX_homogenous_eval(%ld)RgX_divremQXQ_to_modRgXQX_divremRgX_translate(1), i = %ld/%ldRgX_translate(-1), i = %ld/%ldRgX_translate, i = %ld/%ldRgXQX_translate, i = %ld/%ldZXQX_dvdZXQX_dvd dx = %ld >= %ldRgXQX_pseudoremRgX_pseudorem dx = %ld >= %ldRgXQX_pseudodivremRgX_pseudodivrem dx=%ld >= %ldRgXn_invRgXn_inv, e = %ldRgXn_expint, e = %ldRgXn_reverse, e = %ldRgXn_sqrtRgXn_sqrt, e = %ldRgX_to_ser (l < 2)rfrac_to_serSer [precision] [integer vector] [integer matrix]ZM_muloperation 'ZM_transmul'- [not in Q[X]] [not in Z[X]]ZX_translate(1), i = %ld/%ldZX_translate(-1), i = %ld/%ldZX_translate, i = %ld/%ldZX_Z_eval: i = %ld not in Z[X,Y]RgXX_to_Kronecker, P is not reduced mod Qgen_Zp_NewtonMultiLift#(modular factors)BuildTreebuilding treelifting to prec %ld
reaching prec %ldZpXQX_liftroot, e = %ldFpXQ_pow(%ld)ZpXQ_log_to_athpol(%ld)FpX_FpXQ_evalgen_ZpX_Newtongen_ZpM_NewtonZpX_ZpXQ_liftroot: lifting to prec %ld
ZpX_ZpXQ_liftroot: reaching prec %ldZpX_ZpXQ_liftrootZpXQX_ZpXQXQ_liftroot: lifting to prec %ld
ZpXQX_ZpXQXQ_liftroot: reaching prec %ldZpXQX_ZpXQXQ_liftrootgauss_pivot_ker. k=%ld, n=%ldgauss_pivot. k=%ld, n=%lddet. col = %ldgen_Gauss. i=%ldSolving the triangular system
operation 'gen_matcolmul'operation 'gen_matmul'gen_coleisuppl [empty matrix]Entering gauss
gauss. i=%ldgauss [no left inverse]ZM_pivots [ran out of primes]ZlM_gauss: early solution: %ld/%ld
ZlM_gauss. i=%ld/%ldZM_inv_rinv (%ld/%ld primes)CRT (%ld/%ld primes)ratlift (%ld/%ld primes)mult (%ld/%ld primes)ZM_invZM_kerZM_ker: ratlift (%ld)ZM_ker: QM_muldetint. k=%lddeplin k = %ld/%ldsupplZabM_invZabM_inv mod %ld (ratlift=%ld)
ZabM_ker mod %ld (ratlift=%ld)ZabM_kerRgMs_structelim, rcol %Ps
newtonsums entering Decomp: %Ps^%ld
f = %Ps
entering Decomp
DecompDecomp (not a factor) leaving Decomp: f1 = %Ps
f2 = %Ps
e = %Ps
de= %Ps
entering Dedekind Basis with parameters p=%Ps
f = %Ps,
a = %Ps
get_normcheckpridcheckmodpr [use nfmodprinit]Rg_to_ffzk_to_ffnfmodprlitrnfdedekind [non integral pol]the full Dedekind criterion in the nonmonic caseDedekind in the difficult case [t_POL expected]nonmonic relative polynomials in rnfallbasernfallbase: nfhnf in dim %ld
treating %Ps^%ld
pass no %ld
new order:
%Ps
%Ps
rnfmaxordissquarefree(arg)nf_to_scalar_or_basispoltobasisnf_to_scalar_or_algZC_nfvalrem, v >= %ldnflogembednfsign_archvec01_to_indicesidealchineseinitdenom(y)eltnfembednfinvmodidealzlog_prk1treating pr^%ld, pr = %Ps
Idealstardenominator(ideal)check_nfeltZideallogmodideallist with bid for single normIdeallistidealtyp [extended ideal]idealtyp [nonsquare t_MAT]idealtypidealhnf [wrong dimension]idealhnf [Qfb for nonquadratic fields]idealhnf [Qfb]disc(q)element mod idealdenominator(x/y)idealaddmultoonesum(ideals)idealaddmultoone [not an ideal]eltreltoabsrnf_zkabs (old style rnf)rnfeltabstorel, apply nfinit(rnf)issquarefree(B)the base fieldelementnfhnf, i = %ldk = nfsnf for empty or non square matrices[1]: nfhnfmod, i = %ld[2]: nfhnfmod, i = %ldleftright_powu (%d)sliding_window_pow (%ld)gen_powu_fold (%d)gen_pow_fold (%ld,%d)gen_product: remaining objects %ldgen_Shanks_log, baby = %ldgen_Shanks_log: false positive %lu, %lu
gen_Shanks_log, k = %lugen_Shanks_log [order too large]gen_Shanks_log: false positive %ld, %lu
gen_Shanks_log, k = %ldchanging Pollard rho hash seed to %ldgen_Pollard_loggeneric discrete logarithm (order factorization)Pohlig-Hellman: DL mod %Ps^%ld
gen_factored_order [missing order]gen_genergen_Shanks_sqrtlgen_Shanks_sqrtngen_matimage. i=%ldgen_howell[1]. i=%ldgen_howell[2]. i=%ldmakermodgen_matmul_hermitegen_invmatsolvemod (M)matsolvemod (D)matsolvemod [1]matsolvemod (Y)matsolvemod [2]D[i]caching Bernoulli numbers 2*%ld to 2*%ld
BernoulliB_{2*%ld}inv_szeta_euler, p = %lu/%lusumformal [not a t_POL]sumformal, i = %ld/%ldinv_lfun4, p = %lu/%lucaching Euler numbers 2*%ld to 2*%ld
gtomptm1 = %Psmid = %Pslllintpartialallnpass = %ld, red. last time = %ld, log_2(det) ~ %ld
Modified P: %Ps
zncoppersmith [bound too large]delta = %d, t = %d (%.1lf)
Init: trying delta = %d, t = %d
Matrix to be reduced:
%Ps
Entering LLL
bitsize bound: %ld
expected shvector bitsize: %ld
Candidate: %Ps
bitsize Norm: %ld
bitsize bound: %ld
Increasing dim, delta = %d t = %d
Roots: %Ps
accuracylindep_padiclindep_padic [not a p-adic vector]lindep_Xadicalgdep0degree(x)cannot rationalize coeff in bestapprnfmfcxtoQminim0minim0 [negative number of vectors]fincke_pohst [dimension 0]first LLL: prec = %ld
Fincke-Pohst, final LLL: prec = %ld
smallvectors looking for norm < %P.4G
smallvectorsNew bound: %Pssorting... [%ld elts]
final sort & check...
eulerianpol, %ld/%ldgprecdirmul, %ld/%lddirdiv, %ld/%ldstirling2RgV_polint i = %ld/%ldX[%ld]polint, %ld/%lddeg(minpoly(z))gen_sortsort_functionsort_function, variadic cmpfsort_function, cmpf arity != 1, 2lexicographic vecsortlexicographic vecsort, index too largesetbinop [function needs exactly 2 arguments]bitwise negationbitwise orbitwise andbitwise xorbitwise negated implyrnfislocalcyclo for non-l-extensionsbnflog [missing Z_l component]bnfisunit [not a factorization]Buchmann's algorithmBuchquadfactor basesubFBquad = %PspowsubFBquad*** Changing sub factor base
KC = %ld, need %ld relations
...need %ld more relations
%s rel [#rel/#test = %ld/%ld]initialreal_relationsqfr5_rho_pow %ldPregulator is zero.
#### Tentative regulator: %Ps
be honest for primes from %ld to %ld
be honestnarrow class groupquadclassunit [tech vector]red_mod_unitsidealtyp [dimension != degree]bnfnewprecbnfnewprec(extra)bnfnewprec [obsolete bnf format]completing bnf (building matal)
%ld done later at prec %ld
makematalmakematal, adding missing entries:nonmonic polynomial in bnfinit, using polredbestPREC = %ld
AlgebraicFloating pointnfinit & nfrootsof1%s bnf: R1 = %ld, R2 = %ld
D = %Ps
BuchallBach constantLIMC2 = %ld
computing Bach constantcomputing inverse of hR%s*** Bach constant: %f
LIMC = %ld, LIMC2 = %ld
########## FACTORBASE ##########
KC2=%ld, KC=%ld, KCZ=%ld, KCZ2=%ld
++ LV[%ld] = %Psfactorbase (#subFB = %ld) and ideal permutationsKCZ = %ld, KC = %ld, n = %ld
including already computed relations#### Look for %ld relations in %ld ideals (small_norm)
Look in p0 = %Ps
*** Ideal no %ld: %Ps
nb. fact./nb. small norm = %ld/%ld = %.3f
small_norm
#### Look for %ld relations in %ld ideals (rnd_rel)
*** Ideal %ld: %Ps
for remaining idealsBuchall_param (%s)increasing accuracyfloating point embeddingshnfspec [%ld x %ld]hnfspec floating pointshnfadd (%ld + %ld)
#### Computing regulator multiple
Unit group rank = %ld < %ld
Regulator is zero.
#### Tentative class number: %Ps
#### Computing check
***** check = %.28Pg
truncation error in bestappr
D = %Ps
den = %Ps
dubious bestappr; den = %Ps
#### Tentative regulator: %.28Pg
computing regulator and checkBe honest for %ld primes from %ld to %ld
be_honest() failure on prime %Ps
to be honestunits LLL + cleanarch
#### Computing fundamental units
insufficient precision for fundamental units, not givenfundamental units too large, not givengetfucleanarchregulatorcompute_Rclass_group_gen
*** NOT Changing sub factor base
*** Changing sub factor base
small_norm (precision too low)gisdouble [t_REAL expected]v[%ld]=%.4g BOUND = %.4g
adding vector = %Ps
generators =
%Ps
++++ cglob = %ld
rel = %ld^%ld makeunits [cannot get units, use bnfinit(,1)]vec_chinese_units [units too large]chinese_unitsprecision too low for generators, e = %ldprecision too low for generators, not given# ideals tried = %ld
codeprimeSPLIT: increasing factor base [%ld]
passing p = %Ps / %Ps
*** p = %Ps
Testing P = %Ps
#%ld in factor base
is %Ps
completing bnf (building cycgen)wrong type in too_bigbnr_subgroup_checkbnr_subgroup_sanitize [character]bnr_subroup_sanitize [subgroup]bnrinit [incorrect cycmod]bnr_char_sanitize [character]bnrclassno [bnf+missing conductor]bnrisprincipalmod [MOD!=NULL and flag!=0]Zimmert's bound is large (%Ps), certification will take a long time**** Testing Different = %Ps
is %Ps
PHASE 1 [CLASS GROUP]: are all primes good ?
Testing primes <= %Ps
Searching minimum of T2-form on units:
BOUND = %ld
M* = %Ps
[ %ld, %ld, %ld ]: %.28Pg
M0 = %.28Pg
(lower bound for regulator) M = %.28Pg
Default bound for regulator: 0.2
Mahler bound for regulator: %Ps
PHASE 2 [UNITS/RELATIONS]: are all primes good ?
bnfcertify [too many primes to check] Primes dividing h(K)
*** testing p = %lu
p divides h(K)
p divides w(K)
Beta list = %Ps
generator of (Zk/Q)^*: %lu
prime ideal Q: %Ps
matrix log(b_j mod Q_i): %Ps
new rank: %ld
primecertifybnrchar [inconsistent values]bnrmap [different fields]bnrmap [not a map]bnrmap [not a subgroup]bnrmap [not a character mod mA]bnrmap [not a discrete log]ABC_to_bnr [bnf+missing conductor]ABC_to_bnrrnfnormgroup for nonmonic polynomialsLbnrclassnofactordivexact [not exact]decodemodule [not a factorization]decodemodule [incorrect hash code]boundr1>15 in discrayabslistarchIdealstar [incorrect archimedean component]Starting zidealstarunits computations
Starting bnrclassno computations
[1]: discrayabslistarchStarting discrayabs computations
[2]: discrayabslistarchbnrcompositum[different fields]non monic relative equationrnfisnorm [please apply rnfisnorminit()]zncharconjzncharorderzncharevalznconreylog_normalizeznchapowzncharmulznchardivchareval [use gchareval to evaluate a grossencharacter]znstar(0,1)znlog [with znstar]N % qconcatenationlistconcatconcat: i = %ldshallowmatconcat_matsizeE_m_torsiondireuler [bad primes]constant termrealgenusfieldecpp[37;1m
ECPP: parameters %Ps:
init time: [0m, %ld, %ld
[32;1m
[ %3d | %4ld bits][0m[32m D = %8ld poldeg = %4ld[0m %6ld[37;1m %6ld[0m
%c%ld: %16ld %16ld %16.3f
[31;1m
FAILS: %16ld[0m
[36;1m
%c %3d | %4ld bits%c [0m[35mS[0mD_find_discsqrt[33mc[0m[33;1mD[0m[37m.[0m[31;1m
%5ld bits [0m D = %ld[34;1m h = %ld[0m[36m
%c %3d | %4ld bits%c [0m[31;1m ![0m[31;1m X[0m%Ps is prime.
Indeed, ispseudoprime(%Ps) = 1 and %Ps < 2^64.
[%ld]
N = %Ps
t = %Ps
s = %Ps
a = %Ps
D = %Ps
m = %Ps
q = %Ps
E = %Ps
P = %Ps
[PRIMO - Primality Certificate]
Format=4
TestCount=%ld
[Comments]
Generated by %s
https://pari.math.u-bordeaux.fr/
[Candidate]
N=0x%P0X
N=0x%P0X
S=0x%P0X
=-0x%P0X
WJABOperation not supported.[* [* %Ps, %Ps, -1, %Ps, [* %Ps, %Ps *], [* %Ps, %Ps, 1 *], [* [* %Ps, 1 *] *] *] *]ellL1: BG_add: %ld words, ellan: %ld words
1st stage, using recursion for p <= %ld
2nd stage, looping for p <= %Ps
3nd stage, looping for p <= %Ps
init LL^(%ld)=%Ps(analytic rank)%2analytic rankExpected height=%Ps
Naive height <= %Ps
precision = %ld
Disc %Ps : N*ymin = %Pg
ellL1twistDisc = %Ps, Index^2 = %Ps
N = %Ps, ymin*N = %Ps
heegner_psiz=%.*Pg
%ld*%ld multipliers to test: ellheegner, point not foundheegner_find_point
Trying lambda number %ld, logd=%Ps, approxd=%Ps
found non-Heegner point %Ps
ellmoddegree: %Ps, bit=%ld, err=%ld
checkellptcheckell5checkellcheckellisogcheckell over Qcheckell over FqdoellR_rootselliptic curve base_ringellxxx [not an elliptic curve (ell5)]checkcoordchelltwist [missing P]degree(P)localred (p | c6)localred (nu_D - nu_j != 0,6)ellminimalmodel (need a bnf)ellminimalmodel (E / number field)ellisoncurve [point]ellmul_CMellmul (non integral, non CM exponent)ellmul_Zellmul [not a complex multiplication]ellmul (non integral CM exponent)ellmul_CM [norm too large]elliptic functiondet(w1,w2)reduction mod 2-dim lattice (reduce_z)ellpointtoz when u not in Qpellnfembedk % 2ellwp(t_SER) away from 0ellzeta(t_SER) away from 0ellsigma(t_SER) away from 0log(ellsigma) [can't determine p]ellminimaldisc (E / number field)ellQ_factorbackellheight [not a rational point]local root number for number fieldsellan for n >= %luelleulerfellanQ [not an integral model]cut-off pointcannot omit P and set Qellgroup [not a p-minimal curve]elljissupersingularellsat: potential factor %lu, dim Ker = %ld
ellsat: %s divisible by %lu
isogeny_from_kernel_pointnot onisogeny_from_kernel_point (f or g has wrong type)isogeny_from_kernel_point (wrong denominator)isogeny_from_kernel_polytwo_torsion_contrib (a1*x0+a3 != 0)kernel polynomialdoes not define a subgroup ofCMhasisomat_findisomatdblellnfcompisog: nfgcdellnfcompisog: evalpowhellnfcompisog: denellnfcompisog: numellnfcompisog: gnellnfcompisog: gdellnfcompisog: divyp-adic AGMQp_descending_LandenQp_ascending_Landen.rootv_p(j).tateellpadicheight: additive reductionnot in the kernel of reduction atEis supersingular atadditive reduction in ellpadicLv_p(N(E_D))additive reduction in ellpadiclambdamuellpadiclambdamu [mu > 0]nf_hyperell_locally_solublenfhilbert not soluble at real place %ld
nfhilbert not soluble at finite place %Ps
nf2selmer_quad local badprimes = %Ps
Selmer rank: %ld
reduced quartic: Y^2 = %Ps
reduced quartic(%ld): Y^2 = %Ps
Found point: %Ps
hyperellratpoints(%ld)liftselmer_coverellrank [nonintegral model]ellrank [a1 != 0]ell2rank [a3 != 0]ellmodulareqn (level)%s/seadata/sea%ldseadata fileFq_elldivpol34Aborting: #E(Fq) divisible by 2
SEA: Prime %5ld One root Elkies l+1 roots Atkin Pathological
[fail]
%3ld trace(s) [%ld ms]_twist
Aborting: #E%s(Fq) divisible by %ld
, missing %ld bits
At least %Ps remaining possibilities.
%Ps remaining possibilities.
Match and sort for %Ps possibilities.
match_and_sort, baby = %ldmatch_and_sort, giant = %ldmatch_and_sortmod %ld, %Psfind_trace_Elkies_powerfind_eigen_value_powerFlxq_elldivpol34[%c: j=%ld][C: dx=0][C: dJ=0][C: jl=0][A: d%c=0][A: jt=%ld]find_isogenous_from_Atkin, kernel not found[J: g=%ld][J: C%ld=0][J: Pxj=0]ellisdivisible for huge torsiontorsbound [ran out of primes]ellorder for curve with singular reductionelltors_psylowkT=%Ps %ld elements
vT=%Ps
(u,s,r)=(%ld,%ld,%ld)
FpX_factcyclo_newton_general (T is not separable mod p^(r+u))FpX_pol_newton_generalv_t_p=%Ps
FpX_pol_newton_general_new3FpX_factcyclo_lift (%ld,%ld)*(%ld,%ld)-->(%ld,%ld)-->(%ld,%ld)kt=%Ps %ld elements
kT=%Ps %ld elements
kTdiv=%Ps
ZX_Zp_liftroots, roots are not separableZX_Zp_liftrootsFpX_roots, deg=%ldget_vT: start=(%ld,%ld)
G1:%ld, d0:%ld, M1:%ld, vT[%ld]:%ld words
G1:%ld, G2:%ld
get_vTgausspol:start=(%ld,%ld)
ZX_chinese_centerG1:%ld, d0:%ld, M1:%ld, F:%ld
gausspolFlx_pol_newtonFpX_pol_newtonget_G : make data k=%ldget_G : nxV_chinese_center k=%ldfind XFpXQXV_prod(%ld,%ld), (d0,f0)=(%ld,%ld)
(m0,m1)=(%lu,%lu) %ld
(%ld,%ld,%ld) action=%ld
G(K/Q)=%Ps gen=%Ps
n=%lu=^%ld, p=%Ps, phi(%lu)=%lu*%lu
(n,d,f) : (%ld,%ld,%ld) --> Flx_factcyclo_newton_general, T is not separable mod p^(r+u)Flx_pol_newton_generalFlx_pol_newton_general_new3Flx_factcyclo_lift (%ld,%ld)*(%ld,%ld)-->(%ld,%ld)-->(%ld,%ld)FlxqXV_prodissquarefree(pol)galoisinit(nonmonic)galoisborne()ZpX_rootsFpV_invVandermonde()vandermondeinverseGaloisConj: val1=%ld val2=%ld
GaloisConj: Bound %Ps
NumberOfConjugates [%ld]:c=%ld,p=%ld
NumberOfConjugates:c=%ld,p=%ld
galoisconj4 [2nd arg integer]GaloisConj: %Ps
Computation of polynomialsGaloisConj: denominator:%Ps
GaloisConj: Testing A4 first
A4GaloisConj: will test %ld permutations
A4GaloisConj: %ld hop over %ld iterations
A4GaloisConj: sigma=%Ps
A4GaloisConj: tau=%Ps
A4GaloisConj: orb=%Ps
A4GaloisConj: O=%Ps
A4GaloisConj: %ld hop over %d iterations max
GaloisConj: Testing S4 first
Frobenius powermonomorphismlift()S4GaloisConj: Testing %d/3:%d/4:%d/4:%d/4:%Ps
S4GaloisConj: sigma=%Ps
S4GaloisConj: pj=%Ps
S4GaloisConj: Testing %d/3:%d/2:%d/2:%d/4:%Ps:%Ps
S4GaloisConj: Testing %d/8 %d:%d:%d
GaloisConj: Testing 3x3:4 first (p=%ld)
GaloisConj: Trying p=%ld
GaloisConj: p=%ld e=%ld deg=%ld fp=%ld
Trying degre %d.
Best lift: %d
Galoisconj:Subgroups list:%Ps
GaloisConj: I will try %Ps permutations
Combinatorics too hard : would need %Ps tests!
I will skip it, but it may induce an infinite loopGaloisConj: %d hops on %Ps tests
MGaloisConj:Testing %PsGaloisConj: not found, %d hops
Galois group probably not weakly super solvablegaloisfindfrobenius [ran out of primes]permtopol [permutation]GaloisConj: Frobenius:%Ps
GaloisConj: %Ps of relative order %d
GaloisConj: B=%Ps
GaloisConj: exp %d: s=%ld [%ld] a=%ld w=%ld wg=%ld sr=%ld
Combinatorics too hard: would need %Ps tests!
I'll skip it but you will get a partial result...%d%% testpermutation(%Ps)GaloisConj: %d hop over %Ps iterations
GaloisConj: Fini!
W1genorbitTesting candidate %ldfound: %ld/%ld: %Ps: %Ps
GaloisConj: Fixed field %Ps
GaloisConj: increase prec of p-adic roots of %ld.
GaloisConj: Back to Earth:%Ps
FixedField: Size: %ldx%ld
FixedField: Weight: %Ps
FixedField: Sym: %Ps
fixedfieldsympol [p too small]FixedField: Found: %Ps
GaloisConj: Solution too large.
f=%Ps
borne=%Ps
s4test()MonomorphismLift: trying early solution %Ps
MonomorphismLift: true early solution.
MonomorphismLift: false early solution.
%d.%PsGaloisConj: Init Test
galoisanalysis [ran out of primes]GaloisAnalysis:non Galois for p=%ld
GaloisAnalysis:Nbtest=%ld,p=%ld,o=%ld,n_o=%d,best p=%ld,ord=%ld,k=%ld
GaloisAnalysis:p=%ld l=%ld group=%ld deg=%ld ord=%ld
galoisanalysis()checkgal [apply galoisinit first]checkgalGaloisConj: increase p-adic prec by %ld.
GaloisFixedField:cosets=%Ps
GaloisFixedField:den=%Ps mod=%Ps
checkgroupeltscheckgroupelts (element)checkgroupelts [length of permutations]gred_rfrac_simplegred_rfraccoercing quotient rings; moduli %Ps and %Ps -> %Psgred_rfrac2 [incompatible variables]gaddgdivgmul2nginvginv [not a permutation]inversegconj/div_serdivppconjvec [not a rational t_POL]gmulsggdivgsgdivguassociationgtolonggneg_icomparisongsignegexpoZ_lvalZ_lvalremgvaluationgen_pvalgen_lvalremgen_pvalremgneggabsvecindexmaxempty argumentvecindexminpadic_to_Fpgaffect [overwriting universal object: %s]gen_0gen_1gen_m1gen_m2gen_2gnil)gaffectcvtop2cvtopstore list in variable before appending elementspadicprec_relativeRgX_degreesubstitutiongsubst (i = %ld)gsubstpolevalpoleval: i = %ldgfloorgmodgsgmodsgisrealapprgdiventsgnormalizing a series with 0 leading terminv_sersimplify, NULL inputsimplify_shallow, type unknowngdeflatevaluation(x) %% %ldsubstvec [not a variable]residue(series, pole)intformal(t_RFRAC)gtruncgfracgceilgroundroundr (precision loss in truncation)grndtoigtrunc2nisintpadic_to_Qgtopolygtovecvectosmallgtovecsmallcomponent [leaf]greal/gimagevaluation of a power serieseval on functions with parametersgevalqf_apply_RgMqfevalbgcharDLdata (non-principal ideal)start matrix m
gcharinit: increasing embprec %d -> %d
matrix m = %Ps
step 1 -> %Ps
step 2 -> %Ps
step 3 -> %Ps
remove last col -> %Ps
cm_select -> %Ps
Nargs -> %Ps
cm select: doubling prec
rounded Nargs -> %Ps
after cm reduction -> %Ps
after LLL reduction (CM block) -> %Ps
after LLL reduction (trans block) -> %Ps
relations after hnf: %Ps
add v0 -> %Ps
inverse: %Ps
v0 removed: %Ps
[%Ps*%Ps=%Ps..e=%ld|prec=%ld]
gcharinit, non rational entrygcharinit (nonzero entry)cyc/cm cleaned: %Psgcharmatnewprec_shallow mprec=%d nfprec=%d
gcharmatnewprec_shallow: increasing embprec %d -> %d
nfembedlog: prec=%d extrabit=%d nfprec=%d extralogprec=%d
nfembedlog: increasing prec %d -> %d
gcharnewprec (nf)gcharnewprec (minv)m0*u0 recomputed -> %Ps
char groupgchar group (loccyc)gchar group (basis)gchar group (nf != bnf.nf)gchar group (gc[8])gchar group, please call gcharnewprecgcharalgebraic (1)gcharalgebraic (2)nalg=0
r2 = 1 -> args = %Ps
block ks -> %Ps
block ks' -> %Psalg_basis -> %Ps
w -> %Ps
check_gchar [chi]check_gchar_i [s]check_gchar_i [chi]check_gchar_i [coefficient]gcharlocal [index of an infinite place]gcharlocal (chip not found)char value %Ps
v %Ps
zm_log(alpha) %Ps
arch log %Ps
components of Lv must be distinctgcharidentify [ideal]gcharidentify [#Lv != #Lchiv]gcharidentify [character value: should be real or complex]gcharidentify [character at infinite place: should be a t_VEC]gcharidentify [character at infinite place: should have two components]gcharidentify [k parameter at infinite place: should be a t_INT]gcharidentify [phi parameter at infinite place: should be real or complex]vecan_gchar: need extra prec %ld
check_gchari [chi]lfun for gchar with imaginary norm componenthgmcoef for bad primeshgmCallmodp2hgmprecomphgmeulerfactor [incorrect t in eulfactame]hgmgammatocyclohgminit [incorrect lengths]hgmcyclotoalphahgminit [#al != #be]hgminit [#al = 0]hgminit [not rational params]hgminit [nonempty intersection]hgminit [not a Q motive]lfundivrawlfunhgm [bad hint] lM = %ld
maxN = %ld
lfunhgmwildd > 5 in listweilmathnf0hnfperm, k=%ldhnflll, kmax = %ld / %ldZM_hnfall[1], li = %ld, j = %ldZM_hnfall[2], li = %ld
hnfall, final phase: ZM_hnfall[3], j = %ldghnfallZM_hnf[1]. li=%ldZM_hnf[2]. li=%ldEntering hnfspec
Permutation: %Ps
matgen = %Ps
after phase1:
hnfspec[1]hnfspec[2] after phase2:
hnfspec[3], i = %ld matb cleaned up (using Id block)
1st phase done
2nd phase done
hnffinal, i = %ldZpM_echelon. i=%ldZM_hnfmodnb columnsnb linesZM_hnfmod[1]. i=%ldZM_hnfmod[2]. i=%ldZM_hnfmod[3]. i=%ldFpM_echelon. i=%ldFpM_hnfend. i=%ldallhnfmodZM_hnfcenter, j = %ldhnfdividehnf_invimagestarting SNF loop
i = %ld: [1]: ZM_snfall i = %ld; [2]: ZM_snfall, i = %ld[3]: ZM_snfallRgXM_snfgsmithallis singular ats1ZpXXQ_invsqrt, e = %ldinvsqrtreddigitsredmulredaddZpXXQ_frob, step 1, i = %ldZpXXQ_frob, step 2, i = %ldfrobZpXQXXQ_invsqrt, e = %ldget_UVZpXQXXQ_frob, step 1, i = %ldlarge prime in hyperellpadicfrobeniusdisc(W)==deg(P)deg(Q)poldegree(P)poldegree(Q)b[%ld]hypergeom, i = %ld / %ldreal(vecsum(D)-vecsum(N))F31 with a, b, and c <= 03F2 for these argumentsthis hypergeometric functionhypergeom for these parameters
!"#$%&'()*+,-./
snextprECM: time = %6ld ms
ECM: B1 = %4lu, B2 = %6lu, gss = %4ld*420
ECM: time = %6ld ms, B1 phase done, p = %lu, setting up for B2
(got [2]Q...[10]Q)
ECM: %lu should have been prime but isn't
ellfacteur (got [p]Q, p = %lu = prc210_rp[%ld] mod 210)
(got initial helix)
ECM: time = %6ld ms, entering B2 phase, p = %lu
ECM: finishing curves %ld...%ld
(extracted precomputed helix / baby step entries)
(baby step table complete)
(giant step at p = %lu)
Rho: searching small factor of %ld-bit integer
Rho: restarting for remaining rounds...
Rho: using X^2%+1ld for up to %ld rounds of 32 iterations
Rho: time = %6ld ms, Pollard-Brent giving up.
Rho: time = %6ld ms, %3ld round%s
Rho: fast forward phase (%ld rounds of 64)...
Rho: time = %6ld ms, %3ld rounds, back to normal mode
found factor = %Ps
Rho: hang on a second, we got something here...
Pollard-Brent failed.
composite found %sfactor = %Ps
found factors = %Ps, %Ps,
and %Ps
OddPwrs: examining %ld-bit integer
OddPwrs: [%lu] passed modular checks
But it wasn't a pure power.
%lu%%
OddPwrs: is a %ld power
OddPwrs: not a power
IFAC: pseudo-prime %Ps
is not prime. PLEASE REPORT!
IFAC: cracking composite
%Ps
IFAC: checking for pure square
IFAC: factor %Ps
is prime (finished)
IFAC: factor %Ps
is prime
IFAC: factor %Ps
is composite
IFAC: trying Pollard-Brent rho method
IFAC: trying Shanks' SQUFOF, will fail silently if input
is too large for it.
squfof [caller of] (n or 3n is a square)squfof [caller of] (5n is a square)SQUFOF: entering main loop with forms
(1, %ld, %ld) and (1, %ld, %ld)
of discriminants
%Ps and %Ps, respectively
SQUFOF: blacklisting a = %ld on first cycle
SQUFOF: blacklisting a = %ld on second cycle
SQUFOF: first cycle exhausted after %ld iterations,
dropping it
SQUFOF: square form (%ld^2, %ld, %ld) on first cycle
after %ld iterations
SQUFOF: found factor %ld^2
SQUFOF: ...but the root form seems to be on the principal cycle
SQUFOF: second cycle exhausted after %ld iterations,
dropping it
SQUFOF: square form (%ld^2, %ld, %ld) on second cycle
after %ld iterations
SQUFOF: giving up
IFAC: trying Lenstra-Montgomery ECM
IFAC: trying MPQS
IFAC: forcing ECM, may take some time
IFAC: unfactored composite declared primeIFAC: untested integer declared prime %Ps
IFAC: incorporating set of %ld factor(s)
stored (largest) factor no. %ld...
... factor no. %ld is a duplicate%s
(so far)... factor no. %ld was unique%s
IFAC: factoring %Ps
yielded 'factor' %Ps
which isn't!
factoringIFAC: cofactor = %Ps
ifac_crack [Z_issquareall miss]IFAC: main loop: repeated new factor
%Ps
IFAC: a factor was a power of another prime factor
IFAC: a factor was divisible by another prime factor,
leaving a cofactor = %Ps
IFAC: prime %Ps
appears at least to the power %ld
IFAC: prime %Ps
appears with exponent = %ld
IFAC: main loop: another factor was divisible by
%Ps
ifact_sort_one [misaligned partial]IFAC: repeated factor %Ps
in ifac_sort_one
ifac_main [nonexistent factor class]IFAC: after main loop: repeated old factor
%Ps
IFAC: main loop: %ld factor%s left
IFAC: main loop: this was the last factor
IFAC: factor %Ps
is prime (no larger composite)
ECM: number too small to justify this stage
ECM: working on %ld curves at a time; initializing for one round for up to %ld rounds...
ECM: time = %6ld ms
found factor = %Ps
ECM: time = %6ld ms, ellfacteur giving up.
SQUFOF: found factor %ld from ambiguous form
after %ld steps on the ambiguous cycle
SQUFOF: ...found nothing on the ambiguous cycle
after %ld steps there
SQUFOF: squfof_ambig returned %ld
IFAC: found %Ps =
%Ps ^%ld
IFAC: new partial factorization structure (%ld slots)
ifac_xxxIFAC: untested %ld-bit integer declared prime[2] ifac_decompifac partial factorization structure: %ld slots, Moebius mode, hint = %ld
ifac_check ['where' out of bounds][empty slot]
unknown factor classunfinished prime[%Ps, %Ps, %s]
Done.
IFAC: found %ld large prime (power) factor%s.
ispower(general t_POL) in small characteristicispower for general t_POLMODgisanypowerZ_isanypower: now k=%ld, x=%ld-bit
issquareallissquare for even characteristic != 2Zn_issquarernfkummer for composite relative degreeStep 9, 10 and 11
Step 12
tauofeltStep 13
Step 14, 15 and 17
Step 16
Step 18
Computing Newton sums: root(%ld) %ld(%ld) polrel(beta) = %Ps
reducing beta = %Ps
beta reduced via ell-th root = %Ps
reducebetabeta reduced = %Ps
rnfkummer [get_prlist]Step 1
[rnfkummer] compositumpolred(compositum) = %Ps
Step 2
Step 3
[rnfkummer] bnfinit(Kz)Step 4
Step 5
kervirtualunitStep 8
bnrclassfield [must be 0,1 or 2]bnrclassfield [too large degree]glambertWglambertW(t_PADIC)lambertw [k != 0]~odd valuation at branch pointlambertzp-adic L-function [D not fundamental]derval(s)zetahurwitz(t_SER of t_PADIC)hurwitzpv(s)intnumadapt: possible accuracy lossintnumgaussadapt: possible accuracy losslfunthetaneed [missing conductor]lfunthetaneedarg tlfunrootres [poles]please give the Taylor development of Lambdaplease give more terms in L function's Taylor development at %Psderivative orderlfuninit [domain]Dmax=%ld, D=%ld, M = %ld, nmax = %ld, m0 = %ld
lfuncost [missing s domain]lfuninit: insufficient initializationexpected evaluations: %ld
multiple poles in lfunrootrespole at k/2 in lfunrootreslfunorderzero [vector-valued]multiple poles in lfunconductorznchargauss [ Theta(chi,1) = 0 ]lfunquad [D not fundamental]theta bracketslfunquadlfunmisc_to_ldatalfuncreate [different conductors]lfunchiZlfunchiquad [not primitive]checkldata [gammavec]checkldata [weight]checkldata [conductor]lfunmul [weight]lfunqf [not integral]lfundiv [weight]lfundiv [conductor]lfunvgasublfuntwist (conductors not coprime)lfuntwist (gammafactors)chiis not agalois_get_conjunknown valuation of conductor at 2eta_product_ZXnnoncuspidal eta quotientnon self-dual eta quotientlfunetaquo [nonintegral weight]Lfun: computing %ld coeffs, prec %ld, type %ld
vecan_closurevecan_closure [wrong arity]#an = %ld < %ld, results may be impreciseldata_vecan: please call ldata_newprecldata_vecanEuler productEntering L^2 (double): LLL-parameters (%.3f,%.3f)
K%ld Babai[1], a=%ldBabai[2], a=%ld, j=%ld(%ld) LLL (failed)LLLEntering L^2 (heuristic): LLL-parameters (%.3f,%.3f), prec = %d/%d
Entering L^2 (dpe): LLL-parameters (%.3f,%.3f)
Entering L^2: LLL-parameters (%.3f,%.3f), prec = %d
lllgramallgenincrementalGSgentreeaddtreedelete2mapmapdomainmaptomatone-to-onelarge matrix permanentKderivsmall (x2d too large)Kderivlarge: e = %ld, bit = %ld
half-integral weightintegral weightmiss in cache %s: %lu, max = %lu
resetting cache %s to %lu
FactorsDivisorsHCorediscFDihedralmissing bnr generators: please use bnrinit(,,1)tmfrhopol for large weightnewtrace cache hits: new = %ld/%ld, cusp = %ld/%ld
mfEk [incorrect k]sertovecslice [n too large]uutoQmfsamefield [different fields]changing cyclotomic fields in mfmfbracket [m<0]mfbracket for this formmflinear [different weights]mflinear [different characters]checkMF [please use mfinit]spacedoes not belong tonot enough coefficients in mftobasischeckNKcheckNF [N]checkNF [N <= 0]checkNF [k]checkNF [chi]mflineardiv_linearmfvalord(F)ord(G)mf1basis: start character %Ps, conductor = %ld, order = %ld
mf1basis: dim mod p is %ldmf1basis: invert E; norm(a0(E)) = %Psmf1basis: E[%ld] / E[1]mf1basis: ... intermatmf1basis: ... kernel (dim %ld)mf1basis: ... updatesmf1basis i = %ldmf1basis: intersection [total]mf1basis: matsermul [1]mf1basis: matsermul [2]mf1basis: Hecke intersection (dim %ld)mf1basis: Hecke stabilitymfeisenstein for these charactersmf1basis [pre]: S_2(%ld), dim = %ldmf1basis [pre]: bnfmat_extendmf1basis [prec]: Idenmfinit in weight 1 for old spacemfsplit [space does not contain newspace]Exponents = %Ps
end split, need to clean
mfnewsplitnf_primpartmfbd [d <= 0]mfhecke [n <= 0]weightmfshimura [t]mfTheta [nonprimitive character]mftonew [not a full or cuspidal space]mftonew [not a cuspidal form]mftonew in weight 1cuspidal eigenformnot amfinit([N,1,wildcard], space != cusp or new space)mf1basis: character %ld / %ld (order = %ld)half-integral weight Eisenstein spacehalf-integral weight [new/old spaces]half-integral weight [incorrect space]N % 4checkcuspRgV_shift [n not integral]RgV_shift [n negative]mfgaexpansionmf2gaexpansion [incorrect w2 or w]mf2gaexpansion [incorrect sh]mf2gaexpansion [sh too large]alpha < 0 in mfgaexpansionmfeisensteingacx [wN does not divide w]mfalchi2mfeisensteindecmffindeisen1 [no Eisenstein series found]mfatkineigenquadGL2toSL2cxredga0N [gcd > 1]imag(tau)cusp_ACmfatkin [please apply mfatkininit()]mfsearch [k]mfsearch [V]mfsearch [N]mfeigensearch [N]mfffromell [E not over Q]mffromell [E is not modular]mffromqf [not integral or even]mffromqf [not homogeneous t_POL]too many variables in mffromqfmffromqf [not a spherical t_POL]mftaylor for this formmfisCM for this Fmfkohnenbasis [not a cuspidal spacemfkohnenbasis [incorrect CHI]mfkohnenbijection [N/4 not squarefree]mfkohnenbijection [incorrect mf for Kohnen]mfkohnenbijection [different dimensions]mfkohneneigenbasis [bijection]mfkohneneigenbasis [not a cuspidal space]mfkohneneigenbasis [N not squarefree]M_%Ps(G_0(%ld, %Ps))E_%Ps(G_0(%ld, %Ps))S_%Ps^old(G_0(%ld, %Ps))S_%Ps(G_0(%ld, %Ps))S_%Ps^new(G_0(%ld, %Ps))CONST(%Ps)H_{%Ps}F_%ld(%Ps)F_%ld(%Ps, %Ps)E_%ldDELTATHETA(%Ps)ETAQUO(%Ps, %Ps)ELL(%Ps)TR(%Ps)TR^new(%Ps)DIH(%Ps, %Ps, %Ps, %Ps)MUL(%Ps, %Ps)DIV(%Ps, %Ps)POW(%Ps, %ld)SHIFT(%Ps, %ld)DER^%ld(%Ps)DERE2^%ld(%Ps)TWIST(%Ps, %Ps)B(%ld)(%Ps)MULRC_%ld(%Ps, %Ps)LIN([], %Ps)T_%ld(%ld)(%Ps)mftocoset [no coset found]mfsymbol [k <= 0]mfperiodpol [different mf]mfperiodpol [half-integral k]mfperiodpol [k = 1]mfsymboleval [need integral k > 1]col2cuspmfmanin [need integral k > 1]mfmanin [noncuspidal]mfpetersson [different mf]divergent Petersson productmfpetersson [incompatible symbols]mfgaloisrepmfgaloisprojrep for types D_ncheckms [please apply msinit]abs(sign)subspaces not foundact_ZGl2Q, j = %ldp1_indexQevproj_initmsinit [no y^k-2]generatemsymbols [wrong number of symbols]insert_ETp, p = %ldQevproj_init(E)nv = %ld, expo = %.2f
mspolygon, n = %ldexpo = %.2f
$%ld$$%ld^*$polgon2tex
\begin{tikzpicture}[scale=%.2f]
\draw (%.4f,0) node [below] {$%ld$}
node [below] {$\frac{%ld}{%ld}$}
180:00:180arc (%s:%.4f) node [midway, above] {%s} -- (%.4f,%.4f) node [very near end, right] {%s}\draw (%.4f,%.4f)--(%.4f,0)
node [very near start, left] {%s}
;
\coordinate (ellpt) at (%.4f,%.4f);
\draw (ellpt) node {$\bullet$}
arc (%.4f:180:%.4f)
-- (%.4f,%.4f)
(ellpt) arc (%.4f:0:%.4f);
(ellpt) -- (%.4f,%.4f);
\draw (%.4f,%.4f) node {$\circ$};
\end{tikzpicture}$(1,\infty)$
\begingroup
\def\geo#1#2{(#2:1) arc (90+#2:270+#1:{tan((#2-#1)/2)})}
\def\sgeo#1#2{(#2:1) -- (#1:1)}
\def\unarc#1#2#3{({#1 * #3}:1.2) node {#2}}
\def\cell#1#2{({#1 * #2}:0.95) circle(0.05)}
\def\link#1#2#3#4#5{\unarc{#1}{#2}{#5}\geo{#1*#5}{#3*#5}\unarc{#3}{#4}{#5}}
\def\slink#1#2#3#4#5{\unarc{#1}{#2}{#5}\sgeo{#1*#5}{#3*#5}\unarc{#3}{#4}{#5}}
\begin{tikzpicture}[scale=4]
\draw (0, 0) circle(1);
\draw\unarc{%ld}{%s}{%.4f}; \draw\cell{%ld}{%.4f};
\fill \cell{%ld}{%.4f};
\draw \%slink {%ld}{%s}{%ld}{%s}{%.4f};
\end{tikzpicture}\endgroupcusp_indexq-Expansion not foundN % Qgcd(Q,N/Q)msinit [odd weight]|sign|msfromell: ran out of primescheckmspadicmspadicinit when p^2 | Nmstooms [dim_Q (eigenspace) > 1]mstooms [v_p(ap) > mspadicinit flag]checkoms [apply mspadicmoments]msfarey, #L = %ldmsfarey: H is not a subgroup of PSL_2(Z)mscosets, #L = %ldmscosets [trivial group]nfgcd [ran out of primes]nfgcdUsing Trager's method
factors%3ld %s at prime (%ld,x^%ld+...)
Time: %ld
nf_pick_prime [ran out of primes]choice of a prime idealPrime ideal chosen: (%lu,x^%ld+...)
nf_factor_boundMignotte bound: %Ps
Beauzamy bound: %Ps
rootbound computation 1) T_2 bound for %s: %Ps
2) Conversion from T_2 --> | |^2 bound : %Ps
3) Final bound: %Ps
Checking %ld roots:splitting mod %Ps^%ldHensel lift
### K = %d, %Ps combinations
|@to find factor %Psremaining modular factor(s): %ld
Naive recombination
LLL_cmbf: %ld potential factors (tmax = %ld, bmin = %ld)
LLL_cmbf: (a,b) =%4ld,%4ld; r =%3ld -->%3ld, time = %ld
for this traceLLL_cmbf: rank decrease
ZM_hnf_knapsack output:
%Ps
nf_LLL_cmbf: checking factor %ld
nf_LLL_cmbf* Time LLL: %ld
* Time Check Factor: %ld
Total Time: %ld
===========
RgX_int_normalizeexponent %ld
max_radiusfor this exponent, GSmin = %Ps
Time reduction: %ld
nfsqff_trager: choosing k = %ld
factornf [modulus]
Entering nffactor:
squarefree testnumber of factor(s) found: %ld
polfnfp=%lu; gcf(f(P/p))=%ld; nbroots | %Psguess_roots [ran out of primes]%ld loops
guessing roots of 1 [guess = %ld]after ramification conditions [guess = %ld]checking for cyclotomic polynomial %s root of unity found
nfrootsof1: wrong guessrnfgaloisconjrnfisabelian: not Galois at %lu: %Ps
C4vec, n = %ld/%ldmakeD4vec, cond = %ld/%ldmakeD4 [conjugate not found]C5primcond%s/nflistdata/%ld/%ld/%ld%s/%ldnflistdata filenflist(A5)sqrt(N)makeV4resolventnfresolvent [A56 resolvent not found]makeC3C3resolventnfresolvent [Galois group]nfresolvent [F5]nfresolvent [M21/M42]C3C1C2D2D3C4V4D4C5D5F5M20A5condC6D6C7D7M21M42C9D9C8D8C10D10C11D11group nTk with n > %ldincorrect group %ldTk with k = %ld not in [1,%ld]unsupported group (%Ps). Use one of
"C1"=[1,1];
"C2"=[2,1];
"C3"=[3,1], "S3"=[3,2];
"C4"=[4,1], "V4"=[4,2], "D4"=[4,3], "A4"=[4,4], "S4"=[4,5];
"C5"=[5,1], "D5"=[5,2], "F5"="M20"=[5,3], "A5"=[5,4];
"C6"=[6,1], "D6"=[6,2], [6,3], [6,4],..., [6,13];
"C7"=[7,1], "D7"=[7,2], "M21"=[7,3], "M42"=[7,4];
"C9"=[9,1], [9,2], "D9"=[9,3]."
Also supported are "Cp"=[p,1] and "Dp"=[p,2] for any odd prime pXinfmakeV4 [real quadratic subfield]makeC6 [field]makeD4makeMgenvec [field]incorrect variable in nflist / Q(T)112-4914651-10682800513-82173023571744-30983190401636536-6289916853929562693-683211753020190045015-3591675108040831674912-68903451414]-84-98-14896-16709-1127098-1228626-47347279-51034970-1201635330-1316073164-18735012261-21705143929-173551408569-224605199322-861876002232-1329675932088-1728966234555-3376269119286-97-14-19803-903-176523284609-8998217211950757-2882068329588528171-5988518741815296374002-801314604769222442927665-65600781647311705024373220-285775893269375543939564730-3864718030420849610485018087441572752712025115308040403%s/nflistdata/%ld/%ld/QTgroup %ldT%ld in nflist / Q(T)FpX_Newton: teich: %ld %ldFpX_Newton: %ld %ldimaginary|A_K_psi|=%Ps^%ld, psi=chi^%ld, d_psi=%ld, %s,
[K:Q]=%ld, [f,H]=[%ld, %Ps]
flag=%ld for large primepclgp_cyc_real: max_pow is not enoughsubcyclopclgp [Bernoulli number]cyc_imag_MLL:p=%ld d_pow=%ld deg(K)=%ld cond(K)=%ld avma=%ld
velg=%Ps
vellg=%Ps
(f,el-1)=(%ld,%ld*%ld)
gauss sumy=%Ps
d_pow=%ld d_chi=%ld old=%Ps new=%Ps
deleting %ld ...
pclgp_cyc_imag: max_pow is not enoughsubcyclopclgp [MLL]cyc_real_MLL:p=%ld d_pow=%ld deg(K)=%ld cond(K)=%ld g_K=%ld
xi_data_basisminpol_xifind_conj_elfind_conjset_ell_realvel=%Ps
vell=%Ps
subcyclopclgp:[D_xi_el]z=%Ps
make_G_KZX_mul:%ld/%ld h*el=%ld*%ldG_K_lFlx_mul:%ld/%ld h*el=%ld*%ldG_K_pchk_el_real_basis: d_K=%ld el=%ld
el=%ld xi_el=%Ps
xi_e_chi=%Ps
chk_el_real_galois: d_K=%ld el=%ld
chk_el_real_factor: f=%ld el=%ld
failed to find coset
factoring polyclo(d) (mod %ld)
Flx_factcyclo(%lu,%lu)subcyclopclgp [minimal polinomial]G_K(x)=%Ps
subcyclopclgp [Buchquad]FpX_one_cyclo:n=%ld [F:Q] = %lddividesconductor f > %lu in %sprime p > %ld in %splus part of lambda invariant in quadlambda()zv_search failed
quadstkpolabeliwasawaXFlx%sn_translate1pol_chi_xi: precision too low. Increase n!
Tsubcycloiwasawa [Bernoulli number]Flxn_Weierstrass_prep: precision too low. Increase n!stickel. ele. is not integral.
ber_norm_by_valber_norm_subgrber_norm_by_cyc [ber_norm_cyc]ber_norm_by_cyc [ZX_rem]subcyclohminus [norm of Bernoulli number]perm_to_GAPgroup_domain#Ggroup_quotient for a non-WSS groupquotient_perm for a non-WSS groupgaloisisabelian [inconsistent group]domain(G)group_subgroup_isnormaldomain(H)Group(())PermutationGroup<1|>PermutationGroup<%ld|subgroups: level %ld: %ld
euclidean divisiongrempoldivremgdeucZp_to_ZZp_apprv(a)QpX_to_ZXpolsym of a negative npolsym_genfactor [large prime bound]factor for general polynomialsfactor for general polynomialbifactor: bloc:(x+%ld)^%ld, deg f=%ld
bifactor: %ld local factors
RgX_gcd, dr = %ldRgX_gcd_simplezero_gcdfactorback [not a factorization]factorback [not an exponent vector]nextSousResultant j = %ld/%ldresultant_all, degpol Q = %ldmissing case in gdivexactQ_divmuli_to_intQ_muli_to_intQ_divi_to_inthalfgcd (d = %ld)Q_contentZ_contentQ_denomrescale_to_intQ_div_to_intsubresextsubresext, dr = %ldinexact computation in subresextRgX_extgcdRgX_extgcd, dr = %ldinexact computation in RgX_extgcdRgXQ_ratliftratliftbmaxamax+bmaxRgXQ_ratlift, dr = %ld^RgXQ_invRgXQ_charpolynonmonic polynomial in poldiscreducedRgX_sturmpartR_to_Q_downR_to_Q_upginvmod*different moduli in Rg_is_Fpdifferent moduli in Rg_is_FpXQRg_to_FpRg_to_FpXQFpX_translate, i = %ld/%ldFqX_translate, i = %ld/%ld%s: nb primes: %ld
%s: modular%ld%% %s: chineseZX_ZXY_ResBound i = %ldFlxX_pseudoremFlxX_pseudorem dx = %ld >= %ldFlxX_resultant, dr = %ldZX_ZXY_resultant_all [LERS != NULL needs lambda]Trying lambda = %ld
bound for resultant coeffs: 2^%ld
Flx_resultant_allDegree list for ERS (trials: %ld) = %Ps
Final lambda = %ld
%ld%%%s ZX_ZXY_rnfequationZX_ZXY_resultant_allZX_resultant_allZX_discbound i = %ldZXQX_resultant_allZXQX_resultant_all: a priori bound: %lu, a posteriori: %lu
RgX_RgXY_ResBound i = %ldQXQ_divQXQ_div: ratliftQXQ_div: final checkQXQ_invQXQ_inv: ratliftQXQ_inv: final checkZXQ_minpolyZX_direct_compositumZXQX_direct_compositumnfcompositum: a priori bound: %lu, a posteriori: %lu
FFInit: using polsubcyclo(%ld, %ld)
is not a subfield ofdomain does not containdomain does not contain codomain ofp = %ld, t = %ld, v = %ld
find_j_inv_with_given_trace Selected torsion constraint m = %lu and batch size = %ld
polclass0: Couldn't find j-invariant with given trace. j-invariant %ld has trace +/-%ld (%ld tries, 1/rho = %ld)
oneroot_of_classpolypolclass_roots_modp j-invariant %ld has correct endomorphism ring (%ld tries)
all such j-invariants: %Ps
find_ratingpolclass_small_discD = %ld, conductor = %ld, inv = %ld
classgp_pcpnext_generatornext_prime_evecorient_pcpadjusted height = %.2f
z = %.2f
Found %lu primes for v = %lu.
Found %ld primes; total size %.2f bits.
class polynomial of discriminant %ldSelected %ld primes; largest is %lu ~ 2^%.2f
Calculating class polynomial of disc %ld and inv %ld:oriented_n_actionpolclass_psumClasspoly power sum (e = %ld) is %Ps; found with %.2f%% of the primes
adjust_signs: constant term is not +/-1adjust_signs: incorrect traceTotal number of curves tested: %ld
Result height: %.2f
invinvalid invariantDincompatible with given invariantmodinv_levelmodinv_height_factormodinv_good_discriminantFp_modinv_to_jdouble_eta_rawpolmodular_db_getpmodfn_unambiguous_rootmodinv_f3_from_jmodinv_double_eta_from_jmodfn_rootmodinv_f_from_jpolmodular0_ZMinvariantincompatible withCalculating modular polynomial of level %lu for invariant %d
modinv_max_internal_levelinternal_dbSelected discriminant D = %ld = %ld^2 * %ld.
D = %ld, L0 = %lu, L1 = %lu, n1 = %lu, n2 = %lu, dl1 = %lu, dl2_0 = %lu, dl2_1 = %lu
Calculating modular polynomial of level %lu: done
select_L0D0=%ld good with L1=%ld
Found %ld potential fundamental discriminants
modpoly_pickDUsing L0=%ld for L=%ld, d=%ld, modinv_N=%ld, modinv_deg=%ld
use_L1=%ld
minbits = %ld
D0=%ld
Bad D0=%ld due to nonsplit L or ramified level
Bad D0=%ld because there is no good L1
Good D0=%ld with L1=%ld, n0=%ld, h0=%ld, d=%ld
Bad D0=%ld because %ld is less than (L-1)/2=%ld
Good D0=%ld, D1=%ld with q=%ld, L1=%ld, n1=%ld, h1=%ld
Bad D=%ld, a^2=b^2 problem between modinv_p1=%ld and modinv_p2=%ld
Bad D=%ld, a=b^{+/-2} problem between modinv_N=%ld and L0=%ld
Bad D2=%ld for D1=%ld, D0=%ld, with n2=%ld, h2=%ld, L1=%ld, order of L0^n1 in cl(D2) is too small
Bad D2=%ld for D1=%ld, D0=%ld, with n2=%ld, h2=%ld, L1=%ld, form of norm L^2 not generated by L0 and L1
not using D2=%ld for D1=%ld, D0=%ld, with n2=%ld, h2=%ld, L1=%ld, because we don't need L1 but must use it
Good D0=%ld, D1=%ld, D2=%ld with s=%ld^%ld, L1=%ld, dl2=%ld, n2=%ld, h2=%ld
Best D2=%ld, D1=%ld, D0=%ld with s=%ld^%ld, L1=%ld, n1=%ld, n2=%ld, cost ratio %.2f, bits=%ld
Not using D1=%ld, D2=%ld for space reasons
totbits=%ld, minbits=%ld
checked %ld of %ld fundamental discriminants to find suitable discriminant (Dcnt = %ld)
failed completely for L=%ld
Only obtained %ld of %ld bits using %ld discriminants
Selected %ld discriminants using %ld msecs
D0=%ld, h(D0)=%ld, D=%ld, L0=%ld, L1=%ld, cost ratio=%.2f, enum ratio=%.2f, %ld primes, %ld bits
modular polynomial of level %ld and invariant %ld Doubling discriminant search space (closest: %.1f%%, cost ratio: %.1f)...
Found discriminant(s):
D = %ld, h = %ld, u = %ld, L0 = %ld, L1 = %ld, n1 = %ld, n2 = %ld, cost = %ld
(off target by %.1f%%, cost ratio: %.1f)
modpoly_pickD_primesskipping duplicate prime %ld
%ld primes with v=%ld, maxp=%ld (%.2f bits)
check_primes failed completely for D=%ld
D=%ld: Found %ld primes totalling %0.2f of %ld bits
check_generatorsBad D1=%ld with n1=%ld, h1=%ld, L1=%ld: L0 and L1 don't span subgroup of size d in cl(D1)
Bad D1=%ld, with n1=%ld, h1=%ld, L1=%ld: L1 generated by L0 in cl(D1)
modinv_parentmodinv_parent_powerpolmodular0_powerup_ZMpolmodular_workeroneroot_of_classpoly: Didn't find a root of the class polynomialdouble_eta_initial_jsroot_matrixpolmodular_split_p_Flm Phi_%lu(X, Y) (mod %lu) = %Ps
modfn_preimagecompute_L_isogenous_curveselect_curve_with_L_tors_point: Cardinality not divisible by Lpolmodular_ZMcomposite levelpolmodular_ZXXnot in prime subfield millerrabinumoduiMiller-Rabin: testing base %ld
ispsp, r = %ldBPSW_pspLucasModislucaspspis2psp, r = %ldgisprimePocklington-Lehmer: proving primality of N = %Ps
Pocklington-Lehmer: N-1 factored up to %Ps! (%.3Ps%%)
Not a prime: %PsPL_certificate [false prime number]N-1 certificateprimecertexport - invalid certificateb-afloor(b) - max(ceil(a),2)primes_intervalprimetablenot inQFAuto: Step %ld/%ld
qfauto, image of vector not foundpositive definiteformis notQFIsom: max=%ld
m[2]qfisom, standard basis vector not foundQFIsom: fp=%Ps
qfisom [lattice too large]QFIsom: mind=%ld maxd=%ld sum=%ld
, Group(MatrixGroup<%d, Integers() |[])qfsolve [not symmetric]qfminimize: for %Ps^%ld: dimKer = %ld
case 1: dimker < vp
update_fm case 0: dimKer = n
case 2.1
case 2.2
sol = %Ps
case 3
no local solution at %Ps
qfsolve, dim >= 10disc % 4issquare(disc)quadunit (%ld)quadunit_uvmodquadregulator [exponent]classno [discriminant too large]gen_order [missing order]Zn_quad_rootsgetrand()random([a,b]) (a > b)genrandnormalizing a polynomial with 0 leading termfujiwara_boundquicktofpall_roots: restarting, i = %ld, e = %ld
parametersrefine_Frefine_Hconformal_pol (%ld/%ld)polmod_to_embedQX_complex_rootsZX_UspenskyX2XP1, i = %ld/%ldrealrootspolrealrootsznsubgroupgenerators [order_H_x]Subcyclo: prime l=%ld
Subcyclo: bound=2^%ld
Subcyclo: val=%ld
conductor f > %ld in %smissing bid generators. Use idealstar(,,2)Qbnr_to_abgrp [H not in HNF] [N not a bnrinit or znstar]galoissubcyclo [subgroup]Subcyclo: elements:Subcyclo: complex=%ld
znstar_conductorznstar_cosetsSubcyclo: orbits=%Ps
Subcyclo: %ld orbits with %ld elements each
roots_to_polgaloissubcyclo: switching to unramified prime %lu
polsubcyclo_rootsdpolsubcyclo_cyclicfactor_Aurifeuilledegre
***** Entering subfields
pol = %Ps
***** Leaving subfields
* Look for subfields of degree %ld
Subfields of degree %ld: %Ps
lg(Z) = %ld, lg(Y) = %ld
Z = %Ps
Y = %Ps
ns = %ld
calc_blockdelta[%ld] = %Ps
d-1 test failed
pol. found = %Ps
coeff too big for pol g(x)
changing f(x): p divides disc(g)
candidate = %Ps
lifting embedding mod p^k = %Ps^%ld
coeff too big for embedding
... OK!
Entering compute_data()
... update (translate) an existing DATA
f = %Ps
p = %Ps, lift to p^%ld
2 * Hadamard bound * ind = %Ps
2 * M = %Ps
p = %lu, lcm = %ld, orbits: %Ps
Chosen prime: p = %ld
get_bezouttwoembequation [incorrect variable priorities]RgXY_to_RgC [incorrect degree]subfields_cleanupsubfields_cleanup [fa should be a factorisation matrix]subfields_cleanup [not integral]subfields_cleanup [not monic]subfields_cleanup [constant polynomial]nfsubfields_faforsubgroup [not a finite group](lifted) subgp of prime to %Ps part:
%Ps
group: %ld lambda = lambda'= mu = mu'= alpha_lambda(mu,p) = %Ps
subgroup: countsub = %ld
alpha = %Ps
forsubgroup (alpha != countsub)nb subgroup = %ld
column selection:subgrouplist [not a finite group]subgroupexact type in subgrouplistindex boundtrans_eval [prec < 3]powisgpowpowpspow_monome [degree]powppowgimpcosm1sqrt [modulus]gsqrtsqrt(complex of t_INTMODs)Qp_sqrtgpow [irrational exponent]gexp(t_PADIC)gsincosQp_logQp_sqrtnsdivsi_remgpow(0,n)sqrtn [valuation]NZn_sqrtsqrtn [modulus]gsqrtnk^2mplogteichmullerinitgcos(t_PADIC)gsin(t_PADIC)gsinc(t_PADIC)Pi/2 + kPirfix (conversion to t_REAL)nonpositive integersum from 0 to N - 1psi: i = %ldseries valuationHseries, i = %ld/%ldserpsiz0, n = %ldv_p(x)precp()lim, N: [%ld, %ld]
product from 0 to N-1gamma: i = %ldp-adic around a!=0p-adic jbesselh functionargument2n mod Z_kbesselbesselzeroincgam: using asymp
incgam: using power series 1
incgam: using power series 2
eint1: using asymp
eint1: using power series
veceint1veczeta, k = %ldzetaBorwein, k = %ldzeta [large negative argument]lim, nn: [%ld, %ld]
sum from 1 to Nczeta i = %ldBernoulli sumpadic polylogarithmpolylog: small k <= %ldpolylog: large k <= %ldmodular functionIm(argument)uabsdivui_remv_p(q)eta, n = %ldtrueetaabs(q)theta (n = %ld)vecthetanullk_loop, n = %ldascend_volcano: bad paramsnhbr_polynomial: invalid preceding jascend_volcano: Got to the top with more steps to go!descend_volcanodescend_volcano [2]random_distinct_neighbours_of [no neighbour]random_distinct_neighbours_of [single neighbour]Flx_remove_rootnext_surface_nbrnext_surf_nbrsurface_pathcommon_neighbourcommon_neighbour_verifyFlx_deg1_rootpolylogmult: k = %ld, %ld nodes
zetamult: i = %ldpolylogmult [z]polylogmult [#s != #z]polylogmult in this rangepolylogmult [divergent]keval_mnemonicid too long in a mnemonicmnemonic does not start with an idnumeric id in a mnemonicUnrecognized id '%s' in mnemonicMissing | in mnemonic templateNon-numeric argument in mnemonic templateJunk after id in mnemonicnot a valid identifier[install] identifier '%s' already in use[install] updating '%s' prototype; module not reloadedfunction has incomplete prototypemissing commanot a longnot an ulongincorrect typethis code has to come firstunknown parser codecan't kill thatvarentries_unset [unknown var]no more variables available%s already exists with incompatible valencecan't replace an existing symbol by an aliasexpected character: '"' instead ofrun-away stringfunction prototype is not supportedtoo many parameters for closure `%s'Unknown prototype code `D%c' for `%s'default argument must be a stringUnknown prototype code `D...,%c,' for `%s'Unknown prototype code `%c*' for `%s'genctxnot a built-in/install'ed function: "%s"function prototype unsupported: "%s"expression nested too deeplycompilenodethis should be a small non-negative integerthis should be a small integercompilecast [unknown type]compilematcoeffunexpected character: ';'compilenode, unsupported constantmatrix must be rectangularmissing matrix elementunexpected character '&':unexpected character '~':compiler generates copy for `%.*s'statement with no effect: `%s'unknown functionsorry, closure not implementedoperator unknownvariable declared twiceunexpected ';'too many argumentsuninline is only valid at top levelwrong number of argumentsexpected character: ',' or ')' instead oftoo few argumentsmissing flag in string function signatureexpected character: '&'Unknown prototype code `%c' for `%.*s'Unknown prototype code `%c*' for `%.*s'compilefunc [unknown PPproto]unexpected character: missing variable nameinline is only valid at top levelmissing vector elementnot an lvaluemissing indexderivfunderivn(%s,%ld)%s'(%s)'optimizenodeunexpected character '&'unexpected characters '..'expected character: '=' instead ofoptimizefun [unknown PPproto]integer too largeI was expecting an integer herearguments must be positive integersdefault: incorrect value for %s [0:off / 1:on] %s = 1 (on)
%s = 0 (off)
%s = %lu
%s = %lu %s
default: incorrect value for %s [%lu-%lu]incorrect value for %s %s = %Ps
realprecision = %ld significant digits (all digits displayed) (%ld digits displayed) realbitprecision = %ld significant bits (%ld decimal digits displayed)significant termsnodarkbglightbgbrightfg9, 13, 11, 15, 14, 10, 11boldfg[1,,1], [5,,1], [3,,1], [7,,1], [6,,1], , [2,,1]1, 5, 3, 7, 6, 2, 31, 6, 3, 4, 5, 2, 3expected character: ']'[%ld,,%ld][%ld,%ld,%ld] colors = "%s"
default: inexistent format%c.%ld format = %c.%ld
(no backward compatibility)[secure mode]: About to modify the 'secure' flag [logfile was "%s"]
[logfile is "%s"]
Logging to %s
\ifx\%s\undefined
\def\%s{%s}\fi
PARIbreak\hskip 0pt plus \hsize\relax\discretionary{}{}{}PARIpromptSTART\vskip\medskipamount\bgroup\bfPARIpromptEND\egroup\bgroup\ttPARIinputEND\egroup\ifx\%s\undefined
\def\%s#1#2{%s}\fi
PARIout\vskip\smallskipamount$\displaystyle{\tt\%#1} = #2$(off)(on)(on with colors)(TeX output)(bits 0x2/0x4 control output of \left/\PARIbreak)(raw)(prettymatrix)(prettyprint)(external prettyprint)[secure mode]: About to change %s to '%s' %s = "%s"
datadir = "%s"
[secure mode]: can't modify 'prettyprinter' default (to %s)yestex2mail -TeX -noindent -ragged -by_par prettyprinter = "%s"
unknown default: %s.:~:~/gpcomment> GPHELPCan't ask for confirmation. Please define cb_pari_ask_confirm()embedded braces (in parser)unexpected closing bracerun-away string. Closing itrun-away comment. Closing itI/O: leaked file descriptor (%d): %sclosedeleteclose pipeI/O: closing file %s (code %d)
printf: end of formatmissing arg %d for printf format '%s'two '.' in conversion specificationP/l length modifiers in the same conversionll length modifier in printf'P' length modifier appears twiceinvalid conversion or specification %c in format `%s'impossible conversion to t_REAL: %Ps%ldt%d+oo-oo%0*lx0123456789+\infty-\inftythis object uses debugging variablesTeX variable name too long + - not a t_INT in integer format conversion: %Ps0123456789ABCDEF01234567input file [fread]FILE*malformed binary file (no name)setting %s
unknown code in readobj%ld unnamed objects read. Returning then in a vector -%s is not a GP binary file%s not written for a %ld bit architectureunexpected endianness in %s%s written by an incompatible version of GPYou never gave me anything to read!skipping directory %s%s/%s%s.gpcan't expand ~%sundefined environment variable: %s.Z.gz%s "%s"/bin/gzip -dcw[pipe:] '%s' failedI/O: new pariFILE %s (code %d)
I/O: checking output pipe...
The result history is emptyHistory result %%%ld not available [%%%ld-%%%lu]History result %%%ld has been deleted (histsize changed)gp_readvec_stream: reaching %ld entries
gp_readvec_stream: found %ld entries
[0m[%ld;%ldm[%ld;%ld;%ldmCOLUMNSLINES[+++] *** : %lu%sstndrdthNULL
gen_0
[&=%0*lx] ,CLONE%s(lg=%ld%s):%0*lx chars:(%c,lgefint=%ld):(%c,expo=%ld):(precp=%ld,valp=%ld):(%c,varn=%ld):(%c,varn=%ld,prec=%ld,valp=%ld):(subtyp=%ld,lmax=%ld):+(arity=%ld%s):%s component = int = pol = mod = num = den = p = real = imag = p : p^l : I : coef of degree %ld = code = operand = data = dbg/frpc/fram = text = frame = error type = %s
1st component = %s column = mat(%ld,%ld) = invalid range in print_functions_hash*** hashcode = %lu
no such function%3ld:%3ld Total: %ld, Max: %ld
%s : hash = %ld [%ld]
NULL menu = %2ld, code = %-10snext = %s
Top : %lx Bottom : %lx Current stack : %lx
Used : %ld long words (%ld K)
Available : %ld long words (%ld K)
Occupation of the PARI stack : %6.2f percent
%ld objects on heap occupy %ld long words
%ld variable names used (%ld user + %ld private) out of %d
requested filerestoring pari_infile to %s
gp_context_restore: restoring pari_infile to stdin
done
fileclose(%ld)
binary output file [ use writebin ! ]output file[secure mode]: system commands not allowed
Tried to run '%s'system("%s") failedrbbinary output fileaboutput file [fwrite][secure mode]: about to write to '%s'fileopen:%ld (%ld)
fileflush(%ld)
[secure mode]: about to install '%s'%s
couldn't open dynamic library '%s'couldn't open dynamic symbol table of processcan't find symbol '%s' in library '%s'can't find symbol '%s' in dynamic symbol table of process%s: installed function
library name: %s
prototype: %sdeep recursionclosure_eval, stack underflowdoubling evaluator stackmt: attempt to change exported variable '%s'attempt to change built-in %smt: please use export(%s)gtou [integer >=0 expected]evaluator [variable name expected]eval: recovering %ld bytes_[_] OCcompo1 [not a vector]stou [integer >=0 expected]closure_castlong, type unknown&_[_] OCcompo1 [not a vector]&_[_] OCcompo1ptr [not a vector]_[_,_] OCcompo2 [not a matrix]&_[_,_] OCcompo2ptr [not a matrix]_[,_] OCcompoC [not a matrix]&_[,_] OCcompoCptr [not a matrix]_[_,] OCcompoL [not a matrix]&_[_,] OCcompoLptr [not a matrix]functions with more than 20 parameterstoo many parameters in user-defined function call(unnamed)missing mandatory argument '%s' in user functionmissing mandatory argumentargument type not implementedbreak not allowed hereclosure_castgen, type unknownt_VECSMALL assignmentmatrix row assignmentmatrix col assignmentat top-level[...] atmember in %sfunction in anonymous functionhash_from_linkforprime_initforprimestep_initforprimestep_init (q <= 0)prime index read-only: was changed to %Psindex read-only: was changed to %Ps/*-- (type RETURN to continue) --*/operatorlibparimemberintegerrefcardrefcard-nfrefcard-ellrefcard-mfrefcard-lfuntutorialtutorial-mfHGMidealideleCFTmodulusprototypeLmathLdataLinitcharactersumsproductsintegralsno such section in help: ?The PARI/GP distribution includes a reference manual, a tutorial, a reference card and quite a few examples. They have been installed in the directory
You can also download them from http://pari.math.u-bordeaux.fr/.
Three mailing lists are devoted to PARI:
- pari-announce (moderated) to announce major version changes.
- pari-dev for everything related to the development of PARI, including
suggestions, technical questions, bug reports and patch submissions.
- pari-users for everything else!
To subscribe, send an empty message to
-request@pari.math.u-bordeaux.fr
with a Subject: field containing the word 'subscribe'.
An archive is kept at the WWW site mentioned above. You can also reach the authors at pari@math.u-bordeaux.fr (answer not guaranteed).se:def,%s: %s
refcard-tutorial-t_Help topics: for a list of relevant subtopics, type ?n for n in
%2lu: %s
user-defined functions (aliases, installed and user functions)PROGRAMMING under GPStandard monadic or dyadic OPERATORSCONVERSIONS and similar elementary functionsfunctions related to COMBINATORICSNUMBER THEORETICAL functionsPOLYNOMIALS and power seriesVectors, matrices, LINEAR ALGEBRA and setsTRANSCENDENTAL functionsSUMS, products, integrals and similar functionsGeneral NUMBER FIELDSAssociative and central simple ALGEBRASELLIPTIC CURVESL-FUNCTIONSHYPERGEOMETRIC MOTIVESMODULAR FORMSMODULAR SYMBOLSGRAPHIC functionsThe PARI communityAlso:
? functionname (short on-line help)
?\ (keyboard shortcuts)
?. (member functions)
Extended help (if available):
?? (opens the full user's manual in a dvi previewer)
?? tutorial / refcard / libpari (tutorial/reference card/libpari manual)
?? refcard-ell (or -lfun/-mf/-nf: specialized reference card)
?? keyword (long help text about "keyword" from the user's manual)
??? keyword (a propos: list of related functions).# : enable/disable timer
## : print time for last result
\\ : comment up to end of line
\a {n} : print result in raw format (readable by PARI)
\B {n} : print result in beautified format
\c : list all commands (same effect as ?*)
\d : print all defaults
\e {n} : enable/disable echo (set echo=n)
\g {n} : set debugging level
\gf{n} : set file debugging level
\gm{n} : set memory debugging level
\h {m-n}: hashtable information
\l {f} : enable/disable logfile (set logfile=f)
\m {n} : print result in prettymatrix format
\o {n} : set output method (0=raw, 1=prettymatrix, 2=prettyprint, 3=2-dim)
\p {n} : change real precision
\pb{n} : change real bit precision
\ps{n} : change series precision
\q : quit completely this GP session
\r {f} : read in a file
\s : print stack information
\t : print the list of PARI types
\u : print the list of user-defined functions
\um : print the list of user-defined member functions
\v : print current version of GP
\w {nf} : write to a file
\x {n} : print complete inner structure of result
\y {n} : disable/enable automatic simplification (set simplify=n)
{f}=optional filename. {n}=optional integer
Member functions, followed by relevant objects
a1-a6, b2-b8, c4-c6 : coeff. of the curve. ell
area : area ell
bid : big ideal bid, bnr
bnf : big number field bnf,bnr
clgp : class group bid, bnf,bnr
cyc : cyclic decomposition (SNF) bid, clgp,ell, bnf,bnr
diff, codiff: different and codifferent nf,bnf,bnr
disc : discriminant ell,nf,bnf,bnr,rnf
e, f : inertia/residue degree prid
fu : fundamental units bnf
gen : generators bid,prid,clgp,ell, bnf,bnr, gal
group: group ell, gal
index: index nf,bnf,bnr
j : j-invariant ell
mod : modulus bid, bnr, gal
nf : number field nf,bnf,bnr,rnf
no : number of elements bid, clgp,ell, bnf,bnr
omega, eta: [w1,w2] and [eta1, eta2] ell
orders: relative orders of generators gal
p : rational prime prid, ell,nf,bnf,bnr,rnf,gal
pol : defining polynomial nf,bnf,bnr, gal
polabs: defining polynomial over Q rnf
reg : regulator bnf
roots: roots ell,nf,bnf,bnr, gal
sign,r1,r2 : signature nf,bnf,bnr
t2 : t2 matrix nf,bnf,bnr
tate : Tate's [u^2, u, q, [a,b], L, Ei] ell
tu : torsion unit and its order bnf
zk : integral basis nf,bnf,bnr,rnf
zkst : structure of (Z_K/m)* bid, bnr
unknown identifier%s is aliased to:
user defined variable%s =
%Ps
installed functionnew identifiergp_help (no help found)no external help program_QUOTE_BACKQUOTE_DOUBQUOTE@%d-k%s -fromgp %s %c%s%s%cugly_kludge_done%ldh, %ldmin, %ld,000%ld msmissing '='GPRCrReading GPRC: %s
HOMEHOMEDRIVEHOMEPATH%s%s.gprc/etc/gprc...skipping line %ld.
unknown directivenotEMACSREADLVERSIONnot an integerBITS_IN_LONGunknown preprocessor variabledefault(setdebug(GPRC Done.
missing ','missing ')'unexpected character\PARIpromptSTART|%s\PARIpromptEND|%s\PARIinputEND|%%
%s%s
%s%s%s%s%s
? cpu time, real timeno input ???delaybroken prettyprinter: '%s'1\LITERALnoLENGTH{%s}\%%%ld =\LITERALnoLENGTH{%s} \%%%ld = %s%%%ld = %s\PARIout{%ld}
incorrect value for graphcolormaptoo few colors (< 4) in graphcolormapincorrect value for graphcolormap[%ld]: invalid 8bit RGB code: %ld graphcolormap = %Ps
[secure mode]: can't modify 'help' default (to %s)none help = "%s"
prompt%s = "%s"
_cont(bits 0x2/0x4 control matched-insert/arg-complete)clang version 4.0.0 (emscripten 1.37.22 : 1.37.22)compiled: %s, %scompiled: %sthreading engine: %s not(readline %s, extended help%s enabled)not compiled in *** last result computed in %s.
*** last result: cpu time %s, real time %s.
debug("%s") = %ld
input filesetting %ld history entriesList of the PARI types:
t_INT : long integers [ cod1 ] [ cod2 ] [ man_1 ] ... [ man_k ]
t_REAL : long real numbers [ cod1 ] [ cod2 ] [ man_1 ] ... [ man_k ]
t_INTMOD : integermods [ code ] [ mod ] [ integer ]
t_FRAC : irred. rationals [ code ] [ num. ] [ den. ]
t_FFELT : finite field elt. [ code ] [ cod2 ] [ elt ] [ mod ] [ p ]
t_COMPLEX: complex numbers [ code ] [ real ] [ imag ]
t_PADIC : p-adic numbers [ cod1 ] [ cod2 ] [ p ] [ p^r ] [ int ]
t_QUAD : quadratic numbers [ cod1 ] [ mod ] [ real ] [ imag ]
t_POLMOD : poly mod [ code ] [ mod ] [ polynomial ]
-------------------------------------------------------------
t_POL : polynomials [ cod1 ] [ cod2 ] [ man_1 ] ... [ man_k ]
t_SER : power series [ cod1 ] [ cod2 ] [ man_1 ] ... [ man_k ]
t_RFRAC : irred. rat. func. [ code ] [ num. ] [ den. ]
t_QFB : qfb [ code ] [ a ] [ b ] [ c ] [ disc ]
t_VEC : row vector [ code ] [ x_1 ] ... [ x_k ]
t_COL : column vector [ code ] [ x_1 ] ... [ x_k ]
t_MAT : matrix [ code ] [ col_1 ] ... [ col_k ]
t_LIST : list [ cod1 ] [ cod2 ][ vec ]
t_STR : string [ code ] [ man_1 ] ... [ man_k ]
t_VECSMALL: vec. small ints [ code ] [ x_1 ] ... [ x_k ]
t_CLOSURE: functions [ code ] [ arity ] [ code ] [ operand ] [ data ] [ text ]
t_ERROR : error context [ code ] [ errnum ] [ dat_1 ] ... [ dat_k ]
t_INFINITY: a*infinity [ code ] [ a ]
%s =
%Ps
hash table [too large]algarithbernbnrbnrclassfieldbb_groupcompilerellellanalellcardellisogenyellrankellseafactcyclofactorintffloggammamellininvgcharhenselhgmhyperelliomfmpqsmsmtnffactornflistnfsubfieldspolclasspolmodularqfqfsolveqfisomrnfstarksubgrouplistzetamultG!a: boolean operator "not".lG#x: number of non code words in x, number of characters for a string.D0,L,last history item.time to compute last history item.+_: copy and return its argument-_: negate argumentCatalanCatalan=Catalan(): Catalan's number with current precision.ColGD0,L,Col(x, {n}): transforms the object x into a column vector of dimension n.ColrevColrev(x, {n}): transforms the object x into a column vector of dimension n in reverse order with respect to Col(x, {n}). Empty vector if x is omitted.Euler=Euler(): Euler's constant with current precision.I=I(): square root of -1.ListDGList({x=[]}): transforms the vector or list x into a list. Empty list if x is omitted.MapMap({x}): converts the matrix [a_1,b_1;a_2,b_2;...;a_n,b_n] to the map a_i->b_i.Mat({x=[]}): transforms any GEN x into a matrix. Empty matrix if x is omitted.GGMod(a,b): create 'a modulo b'.O(p^e): p-adic or power series zero with precision given by e.GD1,L,Pi=Pi(): the constant pi, with current precision.GDnPol(t,{v='x}): convert t (usually a vector or a power series) into a polynomial with variable v, starting with the leading coefficient.Polrev(t,{v='x}): convert t (usually a vector or a power series) into a polynomial with variable v, starting with the constant term.GDGDGQfb(a,{b},{c}): binary quadratic form a*x^2+b*x*y+c*y^2.GDnDGDPSer(s,{v='x},{d=seriesprecision}): convert s into a power series with variable v and precision d, starting with the constant coefficient.Set({x=[]}): convert x into a set, i.e. a row vector with strictly increasing coefficients. Empty set if x is omitted.s*Str({x}*): concatenates its (string) argument into a single string.StrchrStrchr(x): deprecated alias for strchr.StrexpandStrexpand({x}*): deprecated alias for strexpandStrprintfss*Strprintf(fmt,{x}*): deprecated alias for strprintf.StrtexStrtex({x}*): deprecated alias for strtex.Vec(x, {n}): transforms the object x into a vector of dimension n.VecrevVecrev(x, {n}): transforms the object x into a vector of dimension n in reverse order with respect to Vec(x, {n}).VecsmallVecsmall(x, {n}): transforms the object x into a VECSMALL of dimension n.[a..b] = [a,a+1,...,b]mGVDEDE[a(x)|x<-b,c(x);...]GVDEDE[a(x)|x<-b,c(x)] = apply(a,select(c,b))Ln!: factorial of n.a!=b: true if a and b are not equal.&Gx%=y: shortcut for x=x%y.x%y: Euclidean remainder of x and y.GEa&&b: boolean operator "and".x': derivative of x with respect to the main variable.GLDn_(_)f(a,b,...): evaluate the function f on a,b,...x*=y: shortcut for x=x*y.x*y: product of x and y.&x++: set x to x+1.x+=y: shortcut for x=x+y.x+y: sum of x and y.x--: set x to x-1.x-=y: shortcut for x=x-y.x-y: difference of x and y.mG_.polabsx/=y: shortcut for x=x/y.x/y: quotient of x and y.&Lx<<=y: shortcut for x=x<=y: return 1 if x is greater or equal to y, 0 otherwise.x>>=y: shortcut for x=x>>y.x>>y: compute shift(x,-y).x>y: return 1 if x is strictly greater than y, 0 otherwise._F2xq_log_Coppersmith_workerGLGGF2xq_log_Coppersmith_worker: worker for F2xq_log_Coppersmith_Flxq_log_Coppersmith_workerFlxq_log_Coppersmith_worker: worker for Flxq_log_Coppersmith_FpM_ratlift_workerGGGworker for FpM_ratlift_Fp_log_sieve_workerLLGGGGGGFp_log_sieve_worker: worker for Fp_log_sieve_QM_charpoly_ZX_workerworker for QM_charpoly_ZX_QXQ_div_workerGGGGworker for QXQ_div_QXQ_inv_workerworker for QXQ_inv_ZM_det_workerworker for ZM_det_ZM_inv_workerworker for ZM_inv_ZM_ker_workerworker for ZM_ker_ZM_mul_workerworker for ZM_mul_ZXQX_direct_compositum_workerworker for ZX_direct_compositum_ZXQX_resultant_workerGGGGGworker for ZXQX_resultant_ZXQ_minpoly_workerGGGLworker for ZXQ_minpoly_ZX_ZXY_resultant_workerworker for ZX_ZXY_resultant_ZX_direct_compositum_worker_ZX_gcd_workerworker for ZX_gcd_ZX_resultant_workerworker for ZX_resultant_ZabM_inv_workerworker for ZabM_inv_[_,]x[y,]: y-th row of x._[_,_]x[i{,j}]: i coefficient of a vector, i,j coefficient of a matrixGD0,L,D0,L,D0,L,D0,L,x[a..b,c..d] = [x[a,c], x[a+1,c], ...,x[b,c]; x[a,c+1],x[a+1,c+1],...,x[b,c+1]; ... ... ... x[a,d], x[a+1,d] ,...,x[b,d]]GD0,L,Lx[a..b] = [x[a],x[a+1],...,x[b]]x\/=y: shortcut for x=x\/y.x\/y: rounded Euclidean quotient of x and y.x\=y: shortcut for x=x\y.x\y: Euclidean quotient of x and y.GGpx^y: compute x to the power y.return x^n where n is a small integer__: integral concatenation of strings._aprcl_step4_workerUGGGworker for isprime (APRCL step 4)_aprcl_step6_workerGLGGGworker for isprime (APRCL step 6)_chinese_unit_workerGGGGGGworker for _.fuGGGD1,L,p_derivfun(args,def,closure,k) numerical kth-derivation of closure with respect to the first variable at args_dirartin_workerGUGGGGlfunartin worker_direllnf_workerGUGellan worker_direllsympow_workerGUGUlfunsympow worker_dirgenus2_workerGLGlfungenus2 worker_dirhgm_workerGUGGworker for hgmcoefs_ecpp_ispsp_workerworker for isprime (ECPP ispseudoprime step)_ecpp_sqrt_workerworker for isprime (ECPP sqrt step)_ecpp_step2_workerworker for isprime (step 2)_eisker_workerworker for eisker_ellQ_factorback_workerGGGGUworker for ellQ_factorbacklGsConvert a mnemonic string to a flag._factor_Aurifeuille_factor_Aurifeuille(a,d): return an algebraic factor of Phi_d(a), a != 0_factor_Aurifeuille_prime_factor_Aurifeuille_prime(p,d): return an algebraic factor of Phi_d(p), p prime_lerch_worker_lerch_worker(E, t): worker for lerchzeta_lfuninit_theta2_workerLGGGGGGworker for lfuninit using theta2_lfuninit_workerLGGGGGGGGworker for lfuninitGE*internal variant of if() that allows more than 3 arguments._nflist_A462_workernflist_A462_worker(P3, X, Xinf, listarch, GAL): auxiliary._nflist_A46S46P_workernflist_A46S46P_worker(P3, Xinf, sqX, cards): auxiliary._nflist_A4S4_workernflist_A4S4_worker(P3, X, Xinf, cardsprec): auxiliary._nflist_C32C4_workernflist_C32C4_worker(P4, X, Xinf, GAL): auxiliary._nflist_C32D4_workernflist_C32D4_worker(P, X, Xinf, gs): auxiliary._nflist_C3C3_workernflist_C3C3_worker(gi, V3, V3D, X): auxiliary._nflist_C3_workernflist_C3_worker(gv, T): auxiliary._nflist_C4vec_workernflist_C4vec_worker(gm, X, Xinf, X2, gs): auxiliary._nflist_C5_workernflist_C5_worker(N, bnfC5): auxiliary._nflist_C6_workernflist_C6_worker(P3, X, Xinf, M, T): auxiliary._nflist_C9_workernflist_C9_worker(P, X, Xinf): auxiliary._nflist_CL_workernflist_CL_worker(Fcond, bnf, ellprec): auxiliary._nflist_D4_workernflist_D4_worker(D, X, Xinf, listarch): auxiliary._nflist_D612_workernflist_D612_worker(P3, X, Xinf, X2, limd2s2): auxiliary._nflist_D9_workernflist_D9_worker(P2, X, Xinf): auxiliary._nflist_DL_workernflist_DL_worker(P2, X1p, X0p, X, Xinf, ells): auxiliary._nflist_Mgen_workernflist_Mgen_worker(field, X, Xinf, ella): auxiliary._nflist_S32_workernflist_S32_worker(all1, X, Xinf, V3, sprec): auxiliary._nflist_S36_workernflist_S36_worker(pol, X, Xinf, X2): auxiliary._nflist_S3C3_workernflist_S3C3_worker(D2, X, Xinf, X2): auxiliary._nflist_S3I_workernflist_S3I_worker(ga, ALLCTS): auxiliary._nflist_S3R_workernflist_S3R_worker(ga, ALLCTS): auxiliary._nflist_S462_workernflist_S462_worker(P3, X, Xinf, listarch, GAL): auxiliary._nflist_S46M_workernflist_S46M_worker(P3, X, Xinf, sprec): auxiliary._nflist_V4_workernflist_V4_worker(D1, X, Xinf, gs): auxiliary._nxMV_polint_workerused for parallel chinese_parapply_slice_worker(v,C): return [C(x) | x<-v]._pareval_worker_pareval_worker(C): evaluate the closure C._parfor_worker_parfor_worker(i,C): evaluate the closure C on i and return [i,C(i)]_parselect_worker_parselect_worker(d,C): evaluate the boolean closure C on d._partmap_reverse_frac_workerGGGGGLworker for partmap_reverse_frac_parvector_worker_parvector_worker(i,C): evaluate the closure C on i._polclass_workerused by polclass_polint_worker_polmodular_workerGUGGGGLGGGGused by polmodular_primecertisvalid_ecpp_workerworker for primecertisvalid_ramanujantau_workerworker for ramanujantau_safecoeffsafe version of x[a], x[,a] and x[a,b]. Must be lvalues._taugen_n_workervGDIDIinternal variant of if() that does not return a value.a||b: boolean operator "or" (inclusive).x~: transpose of x.Gpabs(x): absolute value (or modulus) of x.acos(x): arc cosine of x.acosh(x): inverse hyperbolic cosine of x.addhelpvrsaddhelp(sym,str): add/change help message for the symbol sym.addprimes({x=[]}): add primes in the vector x to the prime table to be used in trial division. x may also be a single integer. Composite "primes" are NOT allowed.agm(x,y): arithmetic-geometric mean of x and y.airyairy(z): Airy [Ai,Bi] function of argument z.alarmD0,L,DEalarm({s = 0},{code}): if code is omitted, trigger an "e_ALARM" exception after s seconds (wall-clock time), cancelling any previously set alarm; stop a pending alarm if s = 0 or is omitted. Otherwise, evaluate code, aborting after s seconds.algaddalgadd(al,x,y): element x+y in al.algalgtobasisalgalgtobasis(al,x): transforms the element x of the algebra al into a column vector on the integral basis of al.algautalgaut(al): the stored automorphism of the splitting field of the cyclic algebra al.algbalgb(al): the element b of the center of the cyclic algebra al used to define it.algbasisalgbasis(al): basis of the stored order of the central simple algebra al.algbasistoalgalgbasistoalg(al,x): transforms the column vector x on the integral basis of al into an element of al in algebraic form.algcenteralgcenter(al): center of the algebra al.algcentralprojGGD0,L,algcentralproj(al,z,{maps=0}): projections of the algebra al on the orthogonal central idempotents z[i].algcharalgchar(al): characteristic of the algebra al.algcharpolyGGDnD0,L,algcharpoly(al,b,{v='x},{abs=0}): (reduced) characteristic polynomial of b in al, with respect to the variable v.algdegreealgdegree(al): degree of the central simple algebra al.GLD0,L,algdep(z,k,{flag=0}): algebraic relations up to degree k of z, using lindep([1,z,...,z^(k-1)], flag).algdimlGD0,L,algdim(al,{abs=0}): dimension of the algebra al.algdiscalgdisc(al): discriminant of the stored order of the algebra al.algdivl(al,x,y): element x\y in al.algdivralgdivr(al,x,y): element x/y in al.alggroupGDGalggroup(gal, {p=0}): constructs the group algebra of gal over Q (resp. Fp).alggroupcenterGDGD&alggroupcenter(gal,{p=0},{&cc}): constructs the center of the group algebra of gal over Q (resp. Fp), and sets cc to the conjugacy classes of gal.alghassealghasse(al,pl): the hasse invariant of the central simple algebra al at the place pl.alghassefalghassef(al): the hasse invariant of the central simple algebra al at finite places.alghasseialghassei(al): the hasse invariant of the central simple algebra al at infinite places.algindexlGDGalgindex(al,{pl}): the index of the central simple algebra al. If pl is set, it should be a prime ideal of the center or an integer between 1 and r1+r2, and in that case return the local index at the place pl instead.GGDnD1,L,alginit(B, C, {v}, {maxord = 1}): initializes the central simple algebra defined by data B, C. If maxord = 1, compute a maximal order.alginv(al,x): element 1/x in al.alginvbasisalginvbasis(al): basis of the natural order of the central simple algebra al in terms of the stored order.iGD0,G,algisassociative(mt,p=0): true (1) if the multiplication table mt is suitable for algtableinit(mt,p), false (0) otherwise.algiscommutativeiGalgiscommutative(al): test whether the algebra al is commutative.algisdivisioniGDGalgisdivision(al,{pl}): tests whether the central simple algebra al is a division algebra. If pl is set, it should be a prime ideal of the center or an integer between 1 and r1+r2, and in that case tests whether al is locally a division algebra at the place pl instead.algisdivliGGGD&algisdivl(al,x,y,{&z}): tests whether y is left divisible by x and sets z to the left quotient x\y.algisinviGGD&algisinv(al,x,{&ix}): tests whether x is invertible and sets ix to the inverse of x.algisramifiedalgisramified(al,{pl}): tests whether the central simple algebra al is ramified, i.e. not isomorphic to a matrix ring over its center. If pl is set, it should be a prime ideal of the center or an integer between 1 and r1+r2, and in that case tests whether al is locally ramified at the place pl instead.algissemisimplealgissemisimple(al): test whether the algebra al is semisimple.algissimpleiGD0,L,algissimple(al, {ss = 0}): test whether the algebra al is simple.algissplitalgissplit(al,{pl}): tests whether the central simple algebra al is split, i.e. isomorphic to a matrix ring over its center. If pl is set, it should be a prime ideal of the center or an integer between 1 and r1+r2, and in that case tests whether al is locally split at the place pl instead.alglataddGGGD&alglatadd(al,lat1,lat2,{&ptinter}): the sum of the lattices lat1 and lat2. If ptinter is present, set it to the intersection of the lattices.alglatcontainsalglatcontains(al,lat,x,{&ptc}): tests whether the lattice lat contains the element x. If ptc is present, sets it to the coordinates of x on the basis of lat.alglatelement(al,lat,c): returns the element of al whose coordinates on the Z-basis of lat are c.GGD0,G,alglathnf(al,m,{d=0}): the lattice generated by the columns of m, assuming that this lattice contains d times the integral basis of al.alglatindexalglatindex(al,lat1,lat2): the generalized index (lat2:lat1).alglatinteralglatinter(al,lat1,lat2,{&ptsum}): the intersection of the lattices lat1 and lat2. If ptsum is present, sets it to the sum of the lattices.alglatlefttransporteralglatlefttransporter(al,lat1,lat2): the set of x in al such that x*lat1 is contained in lat2.alglatmulalglatmul(al,lat1,lat2): the lattice generated by the products of elements of lat1 and lat2.alglatrighttransporteralglatrighttransporter(al,lat1,lat2): the set of x in al such that lat1*x is contained in lat2.alglatsubsetalglatsubset(al,lat1,lat2,{&ptindex}): tests whether lat1 is contained in lat2 and if true and ptindex is present, sets it to the index (lat2:lat1).algmakeintegral(mt,{maps=0}): computes an integral multiplication table for an isomorphic algebra.algmul(al,x,y): element x*y in al.algmultablealgmultable(al): multiplication table of al over its prime subfield.algnegalgneg(al,x): element -x in al.algnormalgnorm(al,x,{abs=0}): (reduced) norm of x.algpoleval(al,T,b): T in K[X] evaluate T(b) in al.algpowalgpow(al,x,n): element x^n in al.algprimesubalg(al): prime subalgebra of the positive characteristic, semisimple algebra al.algquotientalgquotient(al,I,{maps=0}): quotient of the algebra al by the two-sided ideal I.algradicalalgradical(al): Jacobson radical of the algebra al.algramifiedplacesalgramifiedplaces(al): vector of the places of the center of al that ramify in al. Each place is described as an integer between 1 and r1 or as a prime ideal.algrandom(al,b): random element in al with coefficients in [-b,b].algrelmultablealgrelmultable(al): multiplication table of the central simple algebra al over its center.algsimpledecalgsimpledec(al,{maps=0}): [J,dec] where J is the Jacobson radical of al and dec is the decomposition into simple algebras of the semisimple algebra al/J.algsplitalgsplit(al,{v='x}): computes an isomorphism between al and M_d(F_q).algsplittingdataalgsplittingdata(al): data stored in the central simple algebra al to compute a splitting of al over an extension.algsplittingfieldalgsplittingfield(al): the stored splitting field of the central simple algebra al.algsqralgsqr(al,x): element x^2 in al.algsubalgsub(al,x,y): element x-y in al.algsubalg(al,B): subalgebra of al with basis B.algtableinit(mt, {p=0}): initializes the associative algebra over Q (resp. Fp) defined by the multiplication table mt.algtensorGGD1,L,algtensor(al1,al2,{maxord=1}): tensor product of al1 and al2.algtomatrix(al,x,{abs=1}): left multiplication table of x (table algebra or abs=1) or image of x under a splitting of al (CSA and abs=0).algtracealgtrace(al,x,{abs=0}): (reduced) trace of x.algtypealgtype(al): type of the algebra al.aliasvrralias(newsym,sym): defines the symbol newsym as an alias for the symbol sym.vDGallocatemem({s=0}): allocates a new stack of s bytes. doubles the stack if s is omitted.applyapply(f, A): apply function f to each entry in A.arg(x): argument of x, such that -pi0. The answer is guaranteed (i.e x norm iff b=1) under GRH, if S contains all primes less than 12.log(disc(Bnf))^2, where Bnf is the Galois closure of bnf.�bnfisprincipal(bnf,x,{flag=1}): bnf being output by bnfinit, gives [e,t], where e is the vector of exponents on the class group generators and t is the generator of the resulting principal ideal. In particular x is principal if and only if e is the zero vector. flag is optional, whose binary digits mean 1: output [e,t] (only e if unset); 2: increase precision until t can be computed (do not insist if unset); 4: return t in factored form (compact representation).�bnfissunit�bnfissunit(bnf,sfu,x): this function is obsolete, use bnfisunit.�GGDG�bnfisunit(bnf,x, {U}): bnf being output by bnfinit, give the column vector of exponents of x on the fundamental units and the roots of unity if x is a unit, the empty vector otherwise. If U is present, as given by bnfunits, decompose x on the attached S-units generators.�bnflog�bnflog(bnf, l): let bnf be attached to a number field F and let l be a prime number. Return the logarithmic l-class group Cl~_F.�bnflogdegree�bnflogdegree(nf, A, l): let A be an ideal, return exp(deg_F A) the exponential of the l-adic logarithmic degree.�bnflogef�bnflogef(nf,pr): return [e~, f~] the logarithmic ramification and residue degrees for the maximal ideal pr.�bnfnarrow(bnf): given a big number field as output by bnfinit, gives as a 3-component vector the structure of the narrow class group.�bnfsignunit(bnf): matrix of signs of the real embeddings of the system of fundamental units found by bnfinit.�bnfsunit�bnfsunit(bnf,S): compute the fundamental S-units of the number field bnf output by bnfinit, S being a list of prime ideals. res[1] contains the S-units, res[5] the S-classgroup.�bnfunits�bnfunits(bnf,{S}): return the fundamental units of the number field bnf output by bnfinit; if S is present and is a list of prime ideals, compute fundamental S-units instead. The first component of the result contains the S-units, followed by fundamental units, followed by the torsion unit. The result may be used as an optional argument to bnfisunit.�GDGD0,L,p�bnrL1(bnr, {H}, {flag=0}): bnr being output by bnrinit and H being a square matrix defining a congruence subgroup of bnr (the trivial subgroup if omitted), for each character of bnr trivial on this subgroup, compute L(1, chi) (or equivalently the first nonzero term c(chi) of the expansion at s = 0). The binary digits of flag mean 1: if 0 then compute the term c(chi) and return [r(chi), c(chi)] where r(chi) is the order of L(s, chi) at s = 0, or if 1 then compute the value at s = 1 (and in this case, only for nontrivial characters), 2: if 0 then compute the value of the primitive L-function attached to chi, if 1 then compute the value of the L-function L_S(s, chi) where S is the set of places dividing the modulus of bnr (and the infinite places), 3: return also the characters.�bnrchar�bnrchar(G,g,{v}): returns all characters chi on G such that chi(g[i]) = e(v[i]); if v is omitted, returns all characters that are trivial on the g[i].�bnrclassfield(bnr,{subgp},{flag=0}): bnr being as output by bnrinit, find a relative equation for the class field corresponding to the congruence subgroup described by (bnr,subgp). If flag=0, return a vector of polynomials such that the compositum of the corresponding fields is the class field; if flag=1 return a single relative polynomial; if flag=2 return a single absolute polynomial.�bnrclassno(A,{B},{C}): relative degree of the class field defined by A,B,C. [A,{B},{C}] is of type [bnr], [bnr,subgroup], [bnf,modulus], or [bnf,modulus,subgroup]. Faster than bnrinit if only the ray class number is wanted.�bnrclassnolist(bnf,list): if list is as output by ideallist or similar, gives list of corresponding ray class numbers.�bnrcompositum�bnrcompositum(A,B): compositum [bnr,H] of the two abelian extensions given by A = [bnr1,H1] and B = [bnr2,H2], where bnr1 and bnr2 are attached to the same base field.�GDGDGD0,L,�bnrconductor(A,{B},{C},{flag=0}): conductor f of the subfield of the ray class field given by A,B,C. flag is optional and can be 0: default, 1: returns [f, Cl_f, H], H subgroup of the ray class group modulo f defining the extension, 2: returns [f, bnr(f), H].�bnrconductorofchar(bnr,chi): this function is obsolete, use bnrconductor.�bnrdisc(A,{B},{C},{flag=0}): absolute or relative [N,R1,discf] of the field defined by A,B,C. [A,{B},{C}] is of type [bnr], [bnr,subgroup], [bnf, modulus] or [bnf,modulus,subgroup], where bnf is as output by bnfinit, bnr by bnrinit, and subgroup is the HNF matrix of a subgroup of the corresponding ray class group (if omitted, the trivial subgroup). flag is optional whose binary digits mean 1: give relative data; 2: return 0 if modulus is not the conductor.�bnrdisclist(bnf,bound,{arch}): list of discriminants of ray class fields of all conductors up to norm bound. The ramified Archimedean places are given by arch; all possible values are taken if arch is omitted. Supports the alternative syntax bnrdisclist(bnf,list), where list is as output by ideallist or ideallistarch (with units).�bnrgaloisapply�bnrgaloisapply(bnr, mat, H): apply the automorphism given by its matrix mat to the congruence subgroup H given as a HNF matrix. The matrix mat can be computed with bnrgaloismatrix.�bnrgaloismatrix�bnrgaloismatrix(bnr,aut): return the matrix of the action of the automorphism aut of the base field bnf.nf on the generators of the ray class field bnr.gen; aut can be given as a polynomial, or a vector of automorphisms or a galois group as output by galoisinit, in which case a vector of matrices is returned (in the later case, only for the generators aut.gen).�GGD0,L,DG�bnrinit(bnf,f,{flag=0},{cycmod}): given a bnf as output by bnfinit and a modulus f, initializes data linked to the ray class group structure corresponding to this module. flag is optional, and can be 0: default, 1: compute also the generators. If the positive integer cycmod is present, only compute the ray class group modulo cycmod-th powers.�bnrisconductor�lGDGDG�bnrisconductor(A,{B},{C}): returns 1 if the modulus is the conductor of the subfield of the ray class field given by A,B,C (see bnrdisc), and 0 otherwise. Slightly faster than bnrconductor if this is the only desired result.�bnrisgalois�lGGG�bnrisgalois(bnr, gal, H): check whether the class field attached to the subgroup H is Galois over the subfield of bnr.nf fixed by the Galois group gal, which can be given as output by galoisinit, or as a matrix or a vector of matrices as output by bnrgaloismatrix. The ray class field attached to bnr need to be Galois, which is not checked.�bnrisprincipal(bnr,x,{flag=1}): bnr being output by bnrinit and x being an ideal coprime to bnr.mod, returns [v,alpha], where v is the vector of exponents on the ray class group generators and alpha is the generator of the resulting principal ideal. If (optional) flag is set to 0, output only v.�bnrmap�bnrmap(A, B): if A and B are bnr structures for the same bnf attached to moduli mA and mB with mB | mA, return the canonical surjection from A to B. Alternatively, if A is a map from bnrmap and B is a congruence subgroup or ray class character modulo mA, return the corresponding object on Cl(mB).�GGD0,L,p�bnrrootnumber(bnr,chi,{flag=0}): returns the so-called Artin Root Number, i.e. the constant W appearing in the functional equation of the Hecke L-function attached to chi. Set flag = 1 if the character is known to be primitive.�bnrstark(bnr,{subgroup}): bnr being as output by bnrinit, finds a relative equation for the class field corresponding to the module in bnr and the given congruence subgroup (the trivial subgroup if omitted) using Stark" s units. ground field and class must be totally real.�break�d1,l,�break({n="1}):" interrupt execution current instruction sequence, exit from n innermost enclosing loops.�call�call(f, a): being vector, evaluates f(a[1],...,a[#a]).�ceil(x): ceiling x="smallest" integer>= x.centerlift(x,{v}): centered lift of x. Same as lift except for intmod and padic components.characteristic(x): characteristic of the base ring over which x is defined.charconjcharconj(cyc,chi): given a finite abelian group (by its elementary divisors cyc) and a character chi, return the conjugate character.chardivchardiv(cyc, a,b): given a finite abelian group (by its elementary divisors cyc) and two characters a and b, return the character a/b.charevalGGGDGchareval(G, chi, x, {z}): given an abelian group structure affording a discrete logarithm method, e.g. G = znstar(N,1) or a bnr structure, let x be an element of G and let chi be a character of G. This function returns the value of chi at x, where the encoding depends on the optional argument z; if z is omitted, we fix a canonical o-th root of 1, zeta_o, where o is the character order and return the rational number c/o where chi(x) = (zeta_o)^c.chargaloischargalois(cyc,{ORD}): let cyc represent a finite abelian group G by its elementary divisors cyc, return a list of representatives for the Galois orbits of characters of G. If ORD is present, select characters depending on their orders: if ORD is a t_INT, restrict to orders less than this bound; if ORD is a t_VEC or t_VECSMALL, restrict to orders in the list.charkercharker(cyc,chi): given a finite abelian group (by its elementary divisors cyc) and a character chi, return its kernel.charmulcharmul(cyc, a,b): given a finite abelian group (by its elementary divisors cyc) and two characters a and b, return the product character ab.charordercharorder(cyc,chi): given a finite abelian group (by its elementary divisors cyc) and a character chi, return the order of chi.GDnD5,L,charpoly(A,{v='x},{flag=5}): det(v*Id-A)=characteristic polynomial of the matrix or polmod A. flag is optional and ignored unless A is a matrix; it may be set to 0 (Le Verrier), 1 (Lagrange interpolation), 2 (Hessenberg form), 3 (Berkowitz), 4 (modular) if A is integral, or 5 (default, choose best method). Algorithms 0 (Le Verrier) and 1 (Lagrange) assume that n! is invertible, where n is the dimension of the matrix.charpowcharpow(cyc, a,n): given a finite abelian group (by its elementary divisors cyc) a character a and an integer n return the character a^n.chinese(x,{y}): x,y being both intmods (or polmods) computes z in the same residue classes as x and y.cmpcmp(x,y): compare two arbitrary objects x and y (1 if x>y, 0 if x=y, -1 if x=0} M[n+1]z^n, transform it into a continued fraction suitable for evaluation.contfracpnqn(x, {n=-1}): [p_n,p_{n-1}; q_n,q_{n-1}] corresponding to the continued fraction x. If n >= 0 is present, returns all convergents from p_0/q_0 up to p_n/q_n.core(n,{flag=0}): unique squarefree integer d dividing n such that n/d is a square. If (optional) flag is nonzero, output the two-component row vector [d,f], where d is the unique squarefree integer dividing n such that n/d=f^2 is a square.coredisc(n,{flag=0}): discriminant of the quadratic field Q(sqrt(n)). If (optional) flag is nonzero, output a two-component row vector [d,f], where d is the discriminant of the quadratic field Q(sqrt(n)) and n=df^2. f may be a half integer.cos(x): cosine of x.cosh(x): hyperbolic cosine of x.cotancotan(x): cotangent of x.cotanhcotanh(x): hyperbolic cotangent of x.dbg_xvGD-1,L,dbg_x(A,{n}): print inner structure of A, complete if n is omitted, up to level n otherwise. Intended for debugging.DrDsdefault({key},{val}): returns the current value of the default key. If val is present, set opt to val first. If no argument is given, print a list of all defaults as well as their values.denominator(f,{D}): denominator of f.deriv(x,{v}): derivative of x with respect to v, or to the main variable of x if v is omitted.derivnderivn(x,n,{v}): n-th derivative of x with respect to v, or to the main variable of x if v is omitted.V=GEDGpderivnum(X=a,expr,{ind=1}): numerical derivation of expr with respect to X at X = a. The order of derivation is given by parameter 'ind', which can be a vector.diffopGGGD1,L,diffop(x,v,d,{n=1}): apply the differential operator D to x, where D is defined by D(v[i])=d[i], where v is a vector of variable names. D is 0 for variables outside of v unless they appear as modulus of a POLMOD. If the optional parameter n is given, return D^n(x) instead.digitsdigits(x,{b}): gives the vector formed by the digits of x in base b.dilog(x): dilogarithm of x.dirdiv(x,y): division of the Dirichlet series x by the Dirichlet series y.V=GGEDGdireuler(p=a,b,expr,{c}): Dirichlet Euler product of expression expr from p=a to p=b, limited to b terms. Expr should be a polynomial or rational function in p and X, and X is understood to mean p^(-s). If c is present, output only the first c terms.dirmul(x,y): multiplication of the Dirichlet series x by the Dirichlet series y.dirpowersLGpdirpowers(n,x): return the vector [1^x,2^x,...,n^x].dirpowerssumdirpowerssum(N,x,{f}): return f(1)1^x + f(2)2^x + ... + f(N)N^x, where f is a completely multiplicative function (= 1 if omitted)dirzetak(nf,b): Dirichlet series of the Dedekind zeta function of the number field nf up to the bound b-1.divisors(x,{flag=0}): gives a vector formed by the divisors of x in increasing order. If flag = 1, return pairs [d, factor(d)].divisorslenstradivisorslenstra(N, r, s): finds all divisors d of N such that d = r (mod s). Assume that (r,s) = 1 and s^3 > N.divrem(x,y,{v}): euclidean division of x by y giving as a 2-dimensional column vector the quotient and the remainder, with respect to v (to main variable if v is omitted).eint1(x,{n}): exponential integral E1(x). If n is present and x > 0, computes the vector of the first n values of the exponential integral E1(n x).ell2coverell2cover(E): if E is an elliptic curve over Q, return a basis of the set of everywhere locally soluble 2-covers of the curve E. For each cover a pair [R,P] is returned where y^2-R(x) is a quartic curve and P belongs to E(k), where k = Q(x)[y] / (y^2-R(x)).ellEellE(k): Complete elliptic integral of the second kind for the complex parameter k using the agm.ellKellK(k): Complete elliptic integral of the first kind for the complex parameter k using the agm.ellL1GD0,L,bellL1(E, {r = 0}): returns the value at s=1 of the derivative of order r of the L-function of the elliptic curve E.elladd(E,z1,z2): sum of the points z1 and z2 on elliptic curve E.ellak(E,n): computes the n-th Fourier coefficient of the L-function of the elliptic curve E (assumes E is an integral model).ellan(E,n): computes the first n Fourier coefficients of the L-function of the elliptic curve E defined over a number field (n<2^24 on a 32-bit machine).ellanalyticrankGDGbellanalyticrank(E, {eps}): returns the order of vanishing at s=1 of the L-function of the elliptic curve E and the value of the first nonzero derivative. To determine this order, it is assumed that any value less than eps is zero. If no value of eps is given, 2^(-bitprecision/2) is used.ellap(E,{p}): given an elliptic curve E defined over a finite field Fq, return the trace of Frobenius a_p = q+1-#E(Fq); for other fields of definition K, p must define a finite residue field, (p prime for K = Qp or Q; p a maximal ideal for K a number field), return the order of the (nonsingular) reduction of E.GGGpellbil(E,z1,z2): deprecated alias for ellheight(E,P,Q).ellbsdellbsd(E): E being an elliptic curve over a number field, returns a real number c such that the BSD conjecture predicts that lfun(E,1,r)/r! = c*R*S where r is the rank, R is the regulator and S is the cardinal of the Tate-Shafarevich group.ellcard(E,{p}): given an elliptic curve E defined over a finite field Fq, return the order of the group E(Fq); for other fields of definition K, p must define a finite residue field, (p prime for K = Qp or Q; p a maximal ideal for K a number field), return the order of the (nonsingular) reduction of E.ellchangecurve(E,v): change data on elliptic curve according to v=[u,r,s,t].ellchangepoint(x,v): change data on point or vector of points x on an elliptic curve according to v=[u,r,s,t].ellchangepointinvellchangepointinv(x,v): change data on point or vector of points x on an elliptic curve according to v=[u,r,s,t], inverse of ellchangepoint.ellconvertname(name): convert an elliptic curve name (as found in the elldata database) from a string to a triplet [conductor, isogeny class, index]. It will also convert a triplet back to a curve name.elldivpolelldivpol(E,n,{v='x}): n-division polynomial f_n for the curve E in the variable v.elleisnumGLD0,L,pelleisnum(w,k,{flag=0}): k being an even positive integer, computes the numerical value of the Eisenstein series of weight k at the lattice w, as given by ellperiods. When flag is nonzero and k=4 or 6, this gives the elliptic invariants g2 or g3 with the correct normalization.elletaelleta(w): w=[w1,w2], returns the vector [eta1,eta2] of quasi-periods attached to [w1,w2].ellformaldifferentialGDPDnellformaldifferential(E, {n=seriesprecision}, {t = 'x}) : E elliptic curve, n integer. Returns n terms of the power series [f, g] such that omega = dx/(2y+a_1x+a_3) = f(t) dt and eta = x(t) * omega = g(t) dt in the local parameter t=-x/y.ellformalexpellformalexp(E, {n = seriesprecision}, {z = 'x}) : E elliptic curve, returns n terms of the formal elliptic exponential on E as a series in z.ellformallogellformallog(E, {n = seriesprecision}, {v = 'x}): E elliptic curve, returns n terms of the elliptic logarithm as a series of t =-x/y.ellformalpointellformalpoint(E, {n = seriesprecision}, {v = 'x}): E elliptic curve, n integer; return the coordinates [x(t), y(t)] on the elliptic curve as a formal expansion in the formal parameter t = -x/y.ellformalwellformalw(E, {n = seriesprecision}, {t = 'x}): E elliptic curve, n integer; returns n terms of the formal expansion of w = -1/y in the formal parameter t = -x/y.ellfromeqn(P): given a genus 1 plane curve, defined by the affine equation f(x,y) = 0, return the coefficients [a1,a2,a3,a4,a6] of a Weierstrass equation for its Jacobian. This allows to recover a Weierstrass model for an elliptic curve given by a general plane cubic or by a binary quartic or biquadratic model.ellfromjellfromj(j): returns the coefficients [a1,a2,a3,a4,a6] of a fixed elliptic curve with j-invariant j.ellgeneratorsellgenerators(E): if E is an elliptic curve over the rationals, return the generators of the Mordell-Weil group attached to the curve. This relies on the curve being referenced in the elldata database. If E is an elliptic curve over a finite field Fq as output by ellinit(), return a minimal set of generators for the group E(Fq).ellglobalred(E): E being an elliptic curve over a number field, returns [N, v, c, faN, L], where N is the conductor of E, c is the product of the local Tamagawa numbers c_p, faN is the factorization of N and L[i] is elllocalred(E, faN[i,1]); v is an obsolete field.ellgroupellgroup(E,{p},{flag}): given an elliptic curve E defined over a finite field Fq, return the structure of the group E(Fq); for other fields of definition K, p must define a finite residue field (p prime for K = Qp or Q; p a maximal ideal for K a number field) and we return the structure of the (nonsingular) reduction of E. If flag is 1, return also generators, the curve equation must be minimal at p.ellheegnerellheegner(E): return a rational nontorsion point on the elliptic curve E assumed to be of rank 1.GDGDGpellheight(E,{P},{Q}): Faltings height of the curve E, resp. canonical height of the point P on elliptic curve E, resp. the value of the attached bilinear form at (P,Q).ellheightmatrix(E,x): gives the height matrix for vector of points x on elliptic curve E.ellidentifyellidentify(E): look up the elliptic curve E in the elldata database and return [[N, M, ...], C] where N is the name of the curve in Cremona's database, M the minimal model and C the change of coordinates (see ellchangecurve).ellinit(x,{D=1}): let x be a vector [a1,a2,a3,a4,a6], or [a4,a6] if a1=a2=a3=0, defining the curve Y^2 + a1.XY + a3.Y = X^3 + a2.X^2 + a4.X + a6; x can also be a string, in which case the curve with matching name is retrieved from the elldata database, if available. This function initializes an elliptic curve over the domain D (inferred from coefficients if omitted).ellintegralmodelGD&ellintegralmodel(E,{&v}): given an elliptic curve E defined over a number field or Qp, returns an integral model. If v is present, sets the variable v to the corresponding change of variable.ellisdivisiblelGGGD&ellisdivisible(E,P,n,{&Q}): given E/K and P in E(K), checks whether P = [n]R for some R in E(K) and sets Q to one such R if so; the integer n >= 0 may be given as ellxn(E,n).GGD0,L,DnDnellisogeny(E, G, {only_image = 0}, {x = 'x}, {y = 'y}): compute the image and isogeny corresponding to the quotient of E by the subgroup G.ellisogenyapplyellisogenyapply(f, g): given an isogeny f and g either a point P (in the domain of f) or an isogeny, apply f to g: return the image of P under f or the composite isogeny f o g.ellisomatGD0,L,D0,L,ellisomat(E, {p=0}, {fl=0}): E being an elliptic curve over a number field K, return a list of representatives of the isomorphism classes of elliptic curves defined over K and K-isogenous to E, with the corresponding isogenies from E and their dual, and the matrix of the isogeny degrees between the curves. If the flag fl is 1, the isogenies are not computed, which saves time. If p is set, it must be a prime number: in this case only isogenies of degree a power of p are considered.ellisoncurve(E,z): true(1) if z is on elliptic curve E, false(0) if not.ellisotreeellisotree(E): E being an elliptic curve over Q or a set of isogenous rational curves as given by ellisomat, return minimal models of the isomorphism classes of elliptic curves isogenous to E (or in the set) and the oriented graph of isogenies of prime degree (adjacency matrix).ellissupersingularellissupersingular(E,{p}): return 1 if the elliptic curve E, defined over a number field or a finite field, is supersingular at p, and 0 otherwise.ellj(x): elliptic j invariant of x.elllocalred(E,{p}): E being an elliptic curve, returns [f,kod,[u,r,s,t],c], where f is the conductor's exponent, kod is the Kodaira type for E at p, [u,r,s,t] is the change of variable needed to make E minimal at p, and c is the local Tamagawa number c_p.elllogelllog(E,P,G,{o}): return the discrete logarithm of the point P of the elliptic curve E in base G. If present, o represents the order of G. If not present, assume that G generates the curve.elllseries(E,s,{A=1}): L-series at s of the elliptic curve E, where A a cut-off point close to 1.ellminimaldiscellminimaldisc(E): E being an elliptic curve defined over a number field output by ellinit, return the minimal discriminant ideal of E.ellminimalmodelellminimalmodel(E,{&v}): determines whether the elliptic curve E defined over a number field admits a global minimal model. If so return it and sets v to the corresponding change of variable. Else return the (nonprincipal) Weierstrass class of E.ellminimaltwistellminimaltwist(E, {flag=0}): E being an elliptic curve defined over Q, return a discriminant D such that the twist of E by D is minimal among all possible quadratic twists, i.e., if flag=0, its minimal model has minimal discriminant, or if flag=1, it has minimal conductor.ellmoddegreeellmoddegree(e): e being an elliptic curve defined over Q output by ellinit, compute the modular degree of e divided by the square of the Manin constant.ellmodulareqnLDnDnellmodulareqn(N,{x},{y}): given a prime N < 500, return a vector [P, t] where P(x,y) is a modular equation of level N. This requires the package seadata. The equation is either of canonical type (t=0) or of Atkin type (t=1).ellmul(E,z,n): n times the point z on elliptic curve E (n in Z).ellnegellneg(E,z): opposite of the point z on elliptic curve E.ellnonsingularmultipleellnonsingularmultiple(E,P): given E/Q and P in E(Q), returns the pair [R,n] where n is the least positive integer such that R = [n]P has everywhere good reduction. More precisely, its image in a minimal model is everywhere nonsingular.ellorder(E,z,{o}): order of the point z on the elliptic curve E over a number field or a finite field, 0 if nontorsion. The parameter o, if present, represents a nonzero multiple of the order of z.ellordinate(E,x): y-coordinates corresponding to x-ordinate x on elliptic curve E.ellpadicLGGLDGD0,L,DGellpadicL(E, p, n, {s = 0}, {r = 0}, {D = 1}): returns the value on a character of Z_p^* represented by an integer s or a vector [s1,s2] of the derivative of order r of the p-adic L-function of the elliptic curve E (twisted by D, if present).ellpadicbsdGGLDGellpadicbsd(E, p, n, {D = 1}): returns [r,Lp] where r is the (conjectural) analytic rank of the p-adic L-function attached to the quadratic twist E_D and Lp is (conjecturally) equal to the product of the p-adic regulator and the cardinal of the Tate-Shafarevich group.ellpadicfrobeniusGLLellpadicfrobenius(E,p,n): matrix of the Frobenius at p>2 in the standard basis of H^1_dR(E) to absolute p-adic precision p^n.ellpadicheightGGLGDGellpadicheight(E,p,n, P,{Q}): E elliptic curve/Q, P in E(Q), p prime, n an integer; returns the cyclotomic p-adic heights of P. Resp. the value of the attached bilinear form at (P,Q).ellpadicheightmatrixGGLGellpadicheightmatrix(E,p,n,Q): gives the height-pairing matrix for vector of points Q on elliptic curve E.ellpadiclambdamuGLD1,L,D0,L,ellpadiclambdamu(E, p, {D=1},{i=0}): returns the Iwasawa invariants for the p-adic L-function attached to E, twisted by (D,.) and the i-th power of the Teichmuller character.ellpadiclogellpadiclog(E,p,n,P): returns the logarithm of P (in the kernel of reduction) to relative p-adic precision p^n.ellpadicregulatorellpadicregulator(E,p,n,S): E elliptic curve/Q, S a vector of points in E(Q), p prime, n an integer; returns the p-adic cyclotomic regulator of the points of S at precision p^n.ellpadics2GGLellpadics2(E,p,n): returns s2 to absolute p-adic precision p^n.ellperiodsGD0,L,pellperiods(w, {flag = 0}): w describes a complex period lattice ([w1,w2] or an ellinit structure). Returns normalized periods [W1,W2] generating the same lattice such that tau := W1/W2 satisfies Im(tau) > 0 and lies in the standard fundamental domain for SL2. If flag is 1, the return value is [[W1,W2], [e1,e2]], where e1, e2 are the quasi-periods attached to [W1,W2], satisfying e2 W1 - e1 W2 = 2 Pi I.ellpointtoz(E,P): lattice point z corresponding to the point P on the elliptic curve E.ellpowellpow(E,z,n): deprecated alias for ellmul.ellrank(E,{effort=0},{points}): if E is an elliptic curve over Q, attempt to compute the Mordell-Weil group attached to the curve. The output is [r,R,s,L] such that the rank is between r and R (both included), s gives informations on the Tate-Shafarevich group, and L is a list of independent, non-torsion rational points on the curve. E can also be given as the output of ellrankinit(E).ellrankinitellrankinit(E): if E is an elliptic curve over Q, initialize data for further calls to ellrank.ellratpoints(E,h,{flag=0}): E being an rational model of an elliptic curve, return a vector containing the affine rational points on the curve of naive height less than h. If fl=1, stop as soon as a point is found.ellrootnoellrootno(E,{p}): root number for the L-function of the elliptic curve E/Q at a prime p (including 0, for the infinite place); global root number if p is omitted. If p is omitted, the curve can also be defined over a number field.ellsaturationGGLpellsaturation(E, V, B): let E be an elliptic curve over Q and V be a vector of independent rational points on E of infinite order that generate a subgroup G of E(Q) of finite index. Return a new set W of the same length that generate a subgroup H of E(Q) containing G and such that [E(Q):H] is not divisible by any prime number less than B.ellsea(E,{tors=0}): computes the order of the group E(Fq) for the elliptic curve E, defined over a finite field, using SEA algorithm, with early abort for curves (or their quadratic twist) with nonprime order.ellsearch(N): returns all curves in the elldata database matching constraint N: given name (N = "11a1" or [11,0,1]), given isogeny class (N = "11a" or [11,0]), or given conductor (N = 11, "11", or [11]).ellsigmaellsigma(L,{z='x},{flag=0}): computes the value at z of the Weierstrass sigma function attached to the lattice L, as given by ellperiods(,1). If flag = 1, returns an arbitrary determination of the logarithm of sigma.ellsub(E,z1,z2): difference of the points z1 and z2 on elliptic curve E.elltamagawaelltamagawa(E): E being an elliptic curve over a number field, returns the global Tamagawa number of the curve.GDPelltaniyama(E, {n = seriesprecision}): modular parametrization of elliptic curve E/Q.elltatepairingelltatepairing(E, P, Q, m): computes the Tate pairing of the two points P and Q on the elliptic curve E. The point P must be of m-torsion.elltors(E): torsion subgroup of elliptic curve E: order, structure, generators.elltraceelltrace(E,P): sum of the Galois conjugates of the point P on elliptic curve E.elltwistelltwist(E,{P}): returns an ell structure for the twist of the elliptic curve E by the quadratic extension defined by P (when P is a polynomial of degree 2) or quadpoly(P) (when P is an integer). If E is defined over a finite field, then P can be omitted.ellweilcurveellweilcurve(E, {&ms}): let E be an elliptic curve over Q given by ellinit or a rational isogeny class given by ellisomat. Return a list of isomorphism classes of elliptic curves isogenous to E as given by ellisomat and the list of the Smith invariants of the lattice associated to E in H^1(E,Q) in the lattice associated to the modular form. If ms is present, it contains the output of msfromell(Emin,0) where Emin is the list of minimal models attached to the curves in the isogeny class.ellweilpairingellweilpairing(E, P, Q, m): computes the Weil pairing of the two points of m-torsion P and Q on the elliptic curve E.ellwp(w,{z='x},{flag=0}): computes the value at z of the Weierstrass P function attached to the lattice w, as given by ellperiods. Optional flag means 0 (default), compute only P(z), 1 compute [P(z),P'(z)].ellxnellxn(E,n,{v='x}): return polynomials [A,B] in the variable v such that x([n]P) = (A/B)(t) for any P = [t,u] on E outside of n-torsion.ellzetaellzeta(w,{z='x}): computes the value at z of the Weierstrass Zeta function attached to the lattice w, as given by ellperiods(,1).ellztopoint(E,z): inverse of ellpointtoz. Returns the coordinates of point P on the curve E corresponding to a complex or p-adic z.erfc(x): complementary error function.errnameerrname(E): returns the type of the error message E.vs*error({str}*): abort script with error message str.eta(z,{flag=0}): if flag=0, returns prod(n=1,oo, 1-q^n), where q = exp(2 i Pi z) if z is a complex scalar (belonging to the upper half plane); q = z if z is a p-adic number or can be converted to a power series. If flag is nonzero, the function only applies to complex scalars and returns the true eta function, with the factor q^(1/24) included.eulerfraceulerfrac(n): Euler number E_n, as a rational number.eulerianpoleulerianpol(n, {v = 'x}): Eulerian polynomial A_n, in variable v.eulerphi(x): Euler's totient function of x.eulerpoleulerpol(n, {v = 'x}): Euler polynomial E_n, in variable v.eulerrealeulerreal(n): Euler number E_n, as a real number.eulerveceulervec(n): returns a vector containing the nonzero Euler numbers E_0, E_2, ..., E_{2n}.GCeval(x): evaluation of x, replacing variables by their value.exp(x): exponential of x.expm1expm1(x): exp(x)-1.exponentexponent(x): binary exponent of xexportexport(x{=...},...,z{=...}): export the variables x,...,z to the parallel world.exportallexportall(): declare all current dynamic variables as exported variables.externextern(str): execute shell command str, and feeds the result to GP (as if loading from file).externstrexternstr(str): execute shell command str, and returns the result as a vector of GP strings, one component per output line.factor(x,{D}): factorization of x over domain D. If x and D are both integers, return partial factorization, using primes < D.factorback(f,{e}): given a factorization f, gives the factored object back. If e is present, f has to be a vector of the same length, and we return the product of the f[i]^e[i].factorcantor(x,p): this function is obsolete, use factormod.factorff(x,{p},{a}): obsolete, use factormod.factorial(x): factorial of x, the result being given as a real number.factorint(x,{flag=0}): factor the integer x. flag is optional, whose binary digits mean 1: avoid MPQS, 2: avoid first-stage ECM (may fall back on it later), 4: avoid Pollard-Brent Rho and Shanks SQUFOF, 8: skip final ECM (huge composites will be declared prime).factormod(f,{D},{flag=0}): factors the polynomial f over the finite field defined by the domain D; flag is optional, and can be 0: default or 1: only the degrees of the irreducible factors are given.factormodDDFfactormodDDF(f,{D}): distinct-degree factorization of the squarefree polynomial f over the finite field defined by the domain D.factormodSQFfactormodSQF(f,{D}): squarefree factorization of the polynomial f over the finite field defined by the domain D.factormodcycloLGD0,L,Dnfactormodcyclo(n, p, {single=0}, {v='x}): factor n-th cyclotomic polynomial mod p.factornf(x,t): this function is obsolete, use nffactor.factorpadic(pol,p,r): p-adic factorization of the polynomial pol to precision r.ffcompomapffcompomap(f, g): Let k, l, m be three finite fields and f a (partial) map from l to m and g a partial map from k to l, return the (partial) map f o g from k to m.ffembedffembed(a, b): given two elements a and b in finite fields, return a map embedding the definition field of a to the definition field of b.ffextendffextend(a, P, {v}): extend the field K of definition of a by a root of the polynomial P, assumed to be irreducible over K. Return [r, m] where r is a root of P in the extension field L and m is a map from K to L, see \kbd{ffmap}. If v is given, the variable name is used to display the generator of L, else the name of the variable of P is used.fffrobeniusfffrobenius(m,{n=1}): return the n-th power of the Frobenius map over the field of definition of m.ffgenffgen(k,{v = 'x}): return a generator of the finite field k (not necessarily a generator of its multiplicative group) as a t_FFELT. k can be given by its order q, the pair [p,f] with q=p^f, by an irreducible polynomial with t_INTMOD coefficients, or by a finite field element. If v is given, the variable name is used to display g, else the variable of the polynomial or finite field element, or x if only the order was given.ffinit(p,n,{v='x}): monic irreducible polynomial of degree n over F_p[v].ffinvmapffinvmap(m): given a map m between finite fields, return a partial map that return the pre-images by the map m.fflog(x,g,{o}): return the discrete logarithm of the finite field element x in base g. If present, o must represent the multiplicative order of g. If no o is given, assume that g is a primitive root.ffmapffmap(m, x): given a (partial) map m between two finite fields, return the image of x by m. The function is applied recursively to the component of vectors, matrices and polynomials. If m is a partial map that is not defined at x, return []ffmaprelffmaprel(m, x): given a (partial) map m between two finite fields, express x as an algebraic element over the codomain of m in a way which is compatible with m. The function is applied recursively to the component of vectors, matrices and polynomials.ffnbirredffnbirred(q,n,{fl=0}): number of monic irreducible polynomials over F_q, of degree n (fl=0, default) or at most n (fl=1).fforderfforder(x,{o}): multiplicative order of the finite field element x. Optional o represents a multiple of the order of the element.ffprimrootffprimroot(x, {&o}): return a primitive root of the multiplicative group of the definition field of the finite field element x (not necessarily the same as the field generated by x). If present, o is set to [ord, fa], where ord is the order of the group, and fa its factorization (useful in fflog and fforder).fftfft(w,P): given w from rootsof1, return the discrete Fourier transform of P.fftinvfftinv(w,P): given w from rootsof1, return the inverse Fourier transform of P.fibonacci(x): Fibonacci number of index x.fileclosevLfileclose(n): close the file descriptor n.fileexternlsfileextern(str): execute shell command str and returns a file descriptor attached to the command output as if it were read from a file.fileflushfileflush({n}): flush the file descriptor n (all descriptors to output streams if n is omitted).fileopenlsD"r",s,fileopen(path, mode): open the file pointed to by 'path' and return a file descriptor which can be used with other file functions. The mode is "r" (default, read), "w" (write, truncate), "a" (write, append).filereadfileread(n): read a logical line from the file attached to the descriptor n, opened for reading with fileopen. Return 0 at end of file.filereadstrfilereadstr(n): read a raw line from the file attached to the descriptor n, opened for reading with fileopen. Discard the terminating newline. Return 0 at end of file.filewritevLsfilewrite(n, s): write the string s to file attached to descriptor n, ending with a newline. The file must have been opened with fileopen in "w" or "a" mode.filewrite1filewrite1(n, s): write the string s to file number n without ending with newline.floor(x): floor of x = largest integer <= x.foldfold(f, A): return f(...f(f(A[1],A[2]),A[3]),...,A[#A]).vV=GGIfor(X=a,b,seq): the sequence is evaluated, X going from a up to b. If b is set to +oo, the loop will not stop.forcompositevV=GDGIforcomposite(n=a,{b},seq): the sequence is evaluated, n running over the composite numbers between a and b. Omitting b runs through composites >= a.vGVIfordiv(n,X,seq): the sequence is evaluated, X running over the divisors of n.fordivfactoredfordivfactored(n,X,seq): the sequence is evaluated, X running over the [d, factor(d)], d a divisor of n.foreach(V,X,seq): the sequence is evaluated, X running over the components of V.forellvVLLID0,L,forell(E,a,b,seq,{flag=0}): execute seq for each elliptic curves E of conductor between a and b in the elldata database. If flag is nonzero, select only the first curve in each isogeny class.forfactored(N=a,b,seq): the sequence is evaluated, N is of the form [n, factor(n)], n going from a up to b.vV=GIDGDGforpart(X=k,seq,{a=k},{n=k}): evaluate seq where the Vecsmall X goes over the partitions of k. Optional parameter n (n=nmax or n=[nmin,nmax]) restricts the length of the partition. Optional parameter a (a=amax or a=[amin,amax]) restricts the range of the parts. Zeros are removed unless one sets amin=0 to get X of fixed length nmax (=k by default).forperm(a,p,seq): the sequence is evaluated, p going through permutations of a.forprime(p=a,{b},seq): the sequence is evaluated, p running over the primes between a and b. Omitting b runs through primes >= a.forprimestepvV=GDGGIforprimestep(p=a,b,q,seq): the sequence is evaluated, p running over the primes less than b in the arithmetic progression a + k*q, k >= 0. The parameter q can be a positive integer or an intmod (start at the first prime above a in the progression).forqfvecvVGDGIforqfvec(v,q,b,expr): q being a square and symmetric integral matrix representing an positive definite quadratic form, evaluate expr for all pairs of nonzero vectors (-v, v) such that q(v)<=b.forsquarefree(N=a,b,seq): the sequence is evaluated, N is of the form [n, factor(n)], n going through squarefree integers from a up to b.vV=GGGIforstep(X=a,b,s,seq): the sequence is evaluated, X going from a to b in steps of s (can be a positive real number, an intmod for an arithmetic progression, or finally a vector of steps). If b is set to +oo the loop will not stop.forsubgroupforsubgroup(H=G,{bound},seq): execute seq for each subgroup H of the abelian group G, whose index is bounded by bound if not omitted. H is given as a left divisor of G in HNF form.forsubset(nk, s, seq): if nk is an integer n, the sequence is evaluated, s going through all subsets of {1, 2, ..., n}; if nk is a pair [n,k] of integers s goes through k-subsets of {1, 2, ..., n}. The order is lexicographic among subsets of the same size and smaller subsets come first.vV=GID0,L,forvec(X=v,seq,{flag=0}): v being a vector of two-component vectors of length n, the sequence is evaluated with X[i] going from v[i][1] to v[i][2] for i=n,..,1 if flag is zero or omitted. If flag = 1 (resp. flag = 2), restrict to increasing (resp. strictly increasing) sequences.frac(x): fractional part of x = x-floor(x).fromdigitsfromdigits(x,{b=10}): gives the integer formed by the elements of x seen as the digits of a number in base b.galoischardetgaloischardet(gal, chi, {o=1}): return the determinant character of the character chi.galoischarpolygaloischarpoly(gal, chi, {o=1}): return the list of characteristic polynomials of the representation attached to the character chi.galoischartablegaloischartable(gal): return the character table of the underlying group of gal.galoisconjclassesgaloisconjclasses(gal): gal being output by galoisinit, return the list of conjugacy classes.galoisexportgaloisexport(gal,{flag}): gal being a Galois group as output by galoisinit, output a string representing the underlying permutation group in GAP notation (default) or Magma notation (flag = 1).galoisfixedfieldGGD0,L,Dngaloisfixedfield(gal,perm,{flag},{v=y}): gal being a Galois group as output by galoisinit and perm a subgroup, an element of gal.group or a vector of such elements, return [P,x] such that P is a polynomial defining the fixed field of gal[1] by the subgroup generated by perm, and x is a root of P in gal expressed as a polmod in gal.pol. If flag is 1 return only P. If flag is 2 return [P,x,F] where F is the factorization of gal.pol over the field defined by P, where the variable v stands for a root of P.LD0,L,galoisgetgroup(a,{b}): query the galpol package for a group of order a with index b in the GAP4 Small Group library. If b is omitted, return the number of isomorphism classes of groups of order a.LLgaloisgetname(a,b): query the galpol package for a string describing the group of order a with index b in the GAP4 Small Group library.LD0,L,D1,L,galoisgetpol(a,{b},{s}): query the galpol package for a polynomial with Galois group isomorphic to GAP4(a,b), totally real if s=1 (default) and totally complex if s=2. The output is a vector [pol, den] where pol is the polynomial and den is the common denominator of the conjugates expressed as a polynomial in a root of pol. If b and s are omitted, return the number of isomorphism classes of groups of order a.galoisidentifygaloisidentify(gal): gal being a Galois group as output by galoisinit, output the isomorphism class of the underlying abstract group as a two-components vector [o,i], where o is the group order, and i is the group index in the GAP4 small group library.galoisinitgaloisinit(pol,{den}): pol being a polynomial or a number field as output by nfinit defining a Galois extension of Q, compute the Galois group and all necessary information for computing fixed fields. den is optional and has the same meaning as in nfgaloisconj(,4)(see manual).galoisisabeliangaloisisabelian(gal,{flag=0}): gal being as output by galoisinit, return 0 if gal is not abelian, the HNF matrix of gal over gal.gen if flag=0, 1 if flag is 1, and the SNF matrix of gal if flag=2.galoisisnormallGGgaloisisnormal(gal,subgrp): gal being as output by galoisinit, and subgrp a subgroup of gal as output by galoissubgroups, return 1 if subgrp is a normal subgroup of gal, else return 0.galoispermtopolgaloispermtopol(gal,perm): gal being a Galois group as output by galoisinit and perm a element of gal.group, return the polynomial defining the corresponding Galois automorphism.galoissplittinginitgaloissplittinginit(P,{d}): Galois group over Q of the splitting field of P, that is the smallest field over which P is totally split. P is assumed to be integral, monic and irreducible; it can also be given by a nf structure. If d is given, it must be a multiple of the splitting field degree. The output is compatible with functions expecting a galoisinit structure.galoissubcycloGDGD0,L,Dngaloissubcyclo(N,H,{fl=0},{v}): compute a polynomial (in variable v) defining the subfield of Q(zeta_n) fixed by the subgroup H of (Z/nZ)*. N can be an integer n, znstar(n) or bnrinit(bnfinit(y),[n,[1]]). H can be given by a generator, a set of generator given by a vector or a HNF matrix (see manual). If flag is 1, output only the conductor of the abelian extension. If flag is 2 output [pol,f] where pol is the polynomial and f the conductor. If flag is 3 output galoisinit(pol).galoissubfieldsGD0,L,Dngaloissubfields(G,{flag=0},{v}): output all the subfields of G; flag has the same meaning as for galoisfixedfield.galoissubgroupsgaloissubgroups(G): output all the subgroups of G.gamma(s): gamma function at s, a complex or p-adic number, or a series.gammah(x): gamma of x+1/2 (x integer).GGD0,L,bgammamellininv(G,t,{m=0}): returns G(t), where G is as output by gammamellininvinit (its m-th derivative if m is present).gammamellininvasympGDPD0,L,gammamellininvasymp(A,n,{m=0}): return the first n terms of the asymptotic expansion at infinity of the m-th derivative K^m(t) of the inverse Mellin transform of the function f(s)=Gamma_R(s+a_1)*...*Gamma_R(s+a_d), where Vga is the vector [a_1,...,a_d] and Gamma_R(s)=Pi^(-s/2)*gamma(s/2). The result is a vector [M[1]...M[n]] with M[1]=1, such that K^m(t) = (an elementary factor) * sum_n M[n+1] / x^n, where x = pi t^(2n/d).gammamellininvinitgammamellininvinit(A,{m=0}): initialize data for the computation by gammamellininv() of the m-th derivative of the inverse Mellin transform of the function f(s) = Gamma_R(s+a1)*...*Gamma_R(s+ad), where A is the vector [a1,...,ad] and Gamma_R(s) = Pi^(-s/2)*gamma(s/2).gcd(x,{y}): greatest common divisor of x and y.gcdext(x,y): returns [u,v,d] such that d=gcd(x,y) and u*x+v*y=d.gcharalgebraicgcharalgebraic(gc,{type}): returns a matrix whose columns form a basis of the algebraic Grossencharacters in gc. If type is specified as a vector of integer exponents [p,q] for each complex place, return a vector containing an algebraic character of that infinity type (or the empty vector if such a character does not exist).gcharconductorgcharconductor(gc,chi): returns the conductor of chi, as a modulus over gc.bnf.gchardualloggcharduallog(gc,chi): return logarithm vector of character chi in R^n. We have gchareval(g,chi,x,0) = gcharduallog(g,chi)*gcharlog(g,x)gcharevalgchareval(gc,chi,x,{flag=1}): compute the evaluation chi(x) in C* if flag=1 and in C/Z if flag=0.gcharidentifygcharidentify(gc,Lv,Lchiv): returns a Grossencharacter chi belonging to gc that approximately satisfies the constraints that chi_v is Lchiv[i] at the place v=Lv[i].gcharinitgcharinit(bnf,f): given a bnf as output by bnfinit and a modulus f, initializes data related to the group of Grossencharacters of conductor dividing this modulus.gcharisalgebraicgcharisalgebraic(gc,chi,{&type}): returns 1 if chi is an algebraic (type A0) character. If type is present, set it to the infinity type [p,q] of chi.gcharlocalGGGpD&gcharlocal(gc,chi,v,{&BID}): if v is a place, return the local character chi_v. If v is a prime dividing the modulus and the optional argument 'BID' is present, set BID to the corresponding idealstar structure.gcharloggcharlog(gc,x): returns the internal representation (logarithm) of the ideal x suitable for computations in gc, as a column vector.gcharnewprecgcharnewprec(gc): given a Grossencharacter group \kbd{gc}, recompute its invariants to ensure accurate results to current precision.genus2red(PQ,{p}): let PQ be a polynomial P, resp. a vector [P,Q] of polynomials, with rational coefficients. Determines the reduction at p > 2 of the (proper, smooth) hyperelliptic curve C/Q of genus 2 defined by y^2 = P, resp. y^2 + Q*y = P. More precisely, determines the special fiber X_p of the minimal regular model X of C over Z.getabstimelgetabstime(): milliseconds of CPU time since startup.getcachegetcache(): returns information about various auto-growing caches. For each resource, we report its name, its size, the number of cache misses (since the last extension) and the largest cache miss.getenvgetenv(s): value of the environment variable s, 0 if it is not defined.getheap(): 2-component vector giving the current number of objects in the heap and the space they occupy (in long words).getlocalbitpreclbgetlocalbitprec(): returns the current dynamic bit precision.getlocalpreclpgetlocalprec(): returns the current dynamic precision, in decimal digits.getrand(): current value of random number seed.getstack(): current value of stack pointer avma.gettime(): milliseconds of CPU time used since the last call to gettime.getwalltimegetwalltime(): time (in milliseconds) since the UNIX Epoch.globalglobal(list of variables): obsolete. Scheduled for deletion.halfgcdhalfgcd(x,y): return a vector [M, [a,b]~], where M is an invertible 2x2 matrix such that M*[x,y]~ = [a,b]~, where b is small. More precisely, if x,y are integers, we have b < sqrt(max(|x|,|y|)) <= a. If x,y are polynomials, we have deg b < ceil((max(|x|,|y|))/2) <= deg a.hammingweighthammingweight(x): returns the Hamming weight of x.harmonicUDGharmonic(n,{r = 1}): generalized harmonic number of index n in power r.hgmalphahgmalpha(H): returns the alpha and beta parameters of the hypergeometric motive template H.hgmbydegreehgmbydegree(n): outputs [L(0),...,L(n-1)] where L(w) is the list of cyclotomic parameters of all possible hypergeometric motive templates of degree n and weight w.hgmcoefhgmcoef(H,t,n): (H,t) being a hypergeometric motive, returns the n-th coefficient of its L-function.hgmcoefshgmcoefs(H,t,n): (H,t) being a hypergeometric motive, returns the first n coefficients of its L-function, where Euler factors at wild primes are set to 1.hgmcyclohgmcyclo(H): returns the cyclotomic parameters (D,E) of the hypergeometric motive template H.hgmeulerfactorGGLD&hgmeulerfactor(H, t, p, {&e}): (H,t) being a hypergeometric motive, returns the Euler factor P_p at the prime p; if present, set e to the valuation of the conductor at p.hgmgammahgmgamma(H): returns the gamma vector of the hypergeometric motive template H.hgminithgminit(a, {b}): Create the template for a hypergeometric motive with parameters a and possibly b. The format of the parameters may be alpha: Galois invariant lists of rational numbers a=alpha and b=beta; or cyclo: lists A and B of positive integers corresponding to alpha and beta; or gamma: list of cn such that the hypergeometric quotient is prod_n(x^n-1)^cn.hgmissymmetricalhgmissymmetrical(H): is the hypergeometric motive template H symmetrical at t=1?hgmparamshgmparams(H): H being a hypergeometric motive template, returns [d, w, [P, T], M], where d is the degree, w the weight, P the Hodge polynomial and T the Tate twist number (so that the Hodge function itself is P/x^T); finally M is the so-called M-value.hgmtwisthgmtwist(H): twist by 1/2 of alpha and beta of the hypergeometric motive template H.lGGDGhilbert(x,y,{p}): Hilbert symbol at p of x,y.hyperellchangecurvehyperellchangecurve(C, m): C being a nonsingular hyperelliptic model of a curve, apply the change of coordinate given by m. C can be given either by a squarefree polynomial P such that C:y^2=P(x) or by a vector [P,Q] such that C:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hyperellcharpolyhyperellcharpoly(X): X being a nonsingular hyperelliptic curve defined over a finite field, return the characteristic polynomial of the Frobenius automorphism. X can be given either by a squarefree polynomial P such that X:y^2=P(x) or by a vector [P,Q] such that X:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hyperelldischyperelldisc(X): X being a nonsingular hyperelliptic model of a curve, return its discriminant. X can be given either by a squarefree polynomial P such that X:y^2=P(x) or by a vector [P,Q] such that X:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hyperellisoncurvehyperellisoncurve(X, p): X being a nonsingular hyperelliptic model of a curve, test whether the point p is on the curve. X can be given either by a squarefree polynomial P such that X:y^2=P(x) or by a vector [P,Q] such that X:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hyperellminimaldischyperellminimaldisc(C,{pr}): C being a nonsingular integral hyperelliptic model of a curve, return the minimal discrminant of an integral model of C. If pr is given, it must be a list of primes and the discriminant is then only garanteed minimal at the elements of pr. C can be given either by a squarefree polynomial P such that C:y^2=P(x) or by a vector [P,Q] such that C:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hyperellminimalmodelGD&DGhyperellminimalmodel(C,{&m},{pr}): C being a nonsingular integral hyperelliptic model of a curve, return an integral model of C with minimal discriminant. If pr is given, it must be a list of primes and the model is then only garanteed minimal at the elements of pr. C can be given either by a squarefree polynomial P such that C:y^2=P(x) or by a vector [P,Q] such that C:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hyperellpadicfrobeniushyperellpadicfrobenius(Q,q,n): Q being a rational polynomial of degree d and X being the curve defined by y^2=Q(x), return the matrix of the Frobenius at the prime q >= d in the standard basis of H^1_dR(X) to absolute q-adic precision q^n; q may also be of the form [T,p] where T is an integral polynomial which is irreducible mod p.hyperellratpoints(X,h,{flag=0}): X being a nonsingular hyperelliptic curve given by an rational model, return a vector containing the affine rational points on the curve of naive height less than h. If fl=1, stop as soon as a point is found. X can be given either by a squarefree polynomial P such that X:y^2=P(x) or by a vector [P,Q] such that X:y^2+Q(x)y=P(x) and Q^2+4P is squarefree.hyperellredhyperellred(C,{&m}): C being a nonsingular integral hyperelliptic model of a curve, return an integral model of C with the same discriminant but small coefficients. C can be given either by a squarefree polynomial P such that C:y^2=P(x) or by a vector [P,Q] such that C:y^2+Q(x)*y=P(x) and Q^2+4P is squarefree.hypergeomDGDGGphypergeom({N},{D},z): general hypergeometric function, where N and D are the vector of parameters in the numerator and denominator respectively, evaluated at the complex argument z.hyperu(a,b,z): U-confluent hypergeometric function.idealadd(nf,x,y): sum of two ideals x and y in the number field defined by nf.idealaddtoone(nf,x,{y}): if y is omitted, when the sum of the ideals in the number field K defined by nf and given in the vector x is equal to Z_K, gives a vector of elements of the corresponding ideals who sum to 1. Otherwise, x and y are ideals, and if they sum up to 1, find one element in each of them such that the sum is 1.idealappr(nf,x,{flag}): x being a fractional ideal, gives an element b such that v_p(b)=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p; x may also be a prime ideal factorization with possibly zero exponents. flag is deprecated (ignored), kept for backward compatibility.idealchinese(nf,x,{y}): x being a prime ideal factorization and y a vector of elements, gives an element b such that v_p(b-y_p)>=v_p(x) for all prime ideals p dividing x, and v_p(b)>=0 for all other p. If y is omitted, return a data structure which can be used in place of x in later calls.idealcoprime(nf,x,y): gives an element b in nf such that b. x is an integral ideal coprime to the integral ideal y.GGGD0,L,idealdiv(nf,x,y,{flag=0}): quotient x/y of two ideals x and y in HNF in the number field nf. If (optional) flag is nonzero, the quotient is supposed to be an integral ideal (slightly faster).idealdownidealdown(nf,x): finds the intersection of the ideal x with Q.idealfactor(nf,x,{lim}): factorization of the ideal x into prime ideals in the number field nf. If lim is set return partial factorization, using primes < lim.idealfactorbackGGDGD0,L,idealfactorback(nf,f,{e},{flag = 0}): given a factorization f, gives the ideal product back. If e is present, f has to be a vector of the same length, and we return the product of the f[i]^e[i]. If flag is nonzero, perform idealred along the way.idealfrobeniusidealfrobenius(nf,gal,pr): returns the Frobenius element (pr|nf/Q) attached to the unramified prime ideal pr in prid format, in the Galois group gal of the number field nf.idealhnf(nf,u,{v}): hermite normal form of the ideal u in the number field nf if v is omitted. If called as idealhnf(nf,u,v), the ideal is given as uZ_K + vZ_K in the number field K defined by nf.idealintersect(nf,A,B): intersection of two ideals A and B in the number field defined by nf.idealinv(nf,x): inverse of the ideal x in the number field nf.idealismaximalidealismaximal(nf,x): if x is a maximal ideal, return it in prid form, else return 0.idealispowerlGGLD&idealispower(nf,A,n,{&B}): return 1 if A = B^n is an n-th power else return 0.GGD4,L,ideallist(nf,bound,{flag=4}): vector of vectors L of all idealstar of all ideals of norm<=bound. If (optional) flag is present, its binary digits are toggles meaning 1: give generators; 2: add units; 4: give only the ideals and not the bid; 8: omit ideals which cannot be conductors.ideallistarch(nf,list,arch): list is a vector of vectors of bid's as output by ideallist. Return a vector of vectors with the same number of components as the original list. The leaves give information about moduli whose finite part is as in original list, in the same order, and Archimedean part is now arch. The information contained is of the same kind as was present in the input.DGGGideallog({nf},x,bid): if bid is a big ideal, as given by idealstar(nf,D,...), gives the vector of exponents on the generators bid.gen (even if these generators have not been explicitly computed).idealmin(nf,ix,{vdir}): pseudo-minimum of the ideal ix in the direction vdir in the number field nf.idealmul(nf,x,y,{flag=0}): product of the two ideals x and y in the number field nf. If (optional) flag is nonzero, reduce the result.idealnorm(nf,x): norm of the ideal x in the number field nf.idealnumdenidealnumden(nf,x): returns [A,B], where A,B are coprime integer ideals such that x = A/B.idealpow(nf,x,k,{flag=0}): k-th power of the ideal x in HNF in the number field nf. If (optional) flag is nonzero, reduce the result.idealprimedec(nf,p,{f=0}): prime ideal decomposition of the prime number p in the number field nf as a vector of prime ideals. If f is present and nonzero, restrict the result to primes of residue degree <= f.idealprincipalunitsidealprincipalunits(nf,pr,k): returns the structure [no, cyc, gen] of the multiplicative group (1 + pr) / (1 + pr^k).idealramgroupsidealramgroups(nf,gal,pr): let pr be a prime ideal in prid format, and gal the Galois group of the number field nf, return a vector g such that g[1] is the decomposition group of pr, g[2] is the inertia group, g[i] is the (i-2)th ramification group of pr, all trivial subgroups being omitted.idealred(nf,I,{v=0}): LLL reduction of the ideal I in the number field nf along direction v, in HNF.idealredmodpowerGGUD0,U,idealredmodpower(nf,x,n,{B=primelimit}): return b such that x * b^n = v is small.DGGD1,L,DGidealstar({nf},N,{flag=1},{cycmod}): gives the structure of (Z_K/N)^*, where N is a modulus (an ideal in any form or a vector [f0, foo], where f0 is an ideal and foo is a {0,1}-vector with r1 components. If the positive integer cycmod is present, only compute the group modulo cycmod-th powers. flag is optional, and can be 0: structure as an abelian group [h,d,g] where h is the order, d the orders of the cyclic factors and g the generators; if flag=1 (default), gives a bid structure used in ideallog to compute discrete logarithms; underlying generators are well-defined but not explicitly computed, which saves time; if flag=2, same as with flag=1 except that the generators are also given. If nf is omitted, N must be an integer and we return the structure of (Z/NZ)^*.idealtwoelt(nf,x,{a}): two-element representation of an ideal x in the number field nf. If (optional) a is nonzero, first element will be equal to a.idealval(nf,x,pr): valuation at pr given in idealprimedec format of the ideal x in the number field nf.GDEDEif(a,{seq1},{seq2}): if a is nonzero, seq1 is evaluated, otherwise seq2. seq1 and seq2 are optional, and if seq2 is omitted, the preceding comma can be omitted also.iferrEVEDEiferr(seq1,E,seq2,{pred}): evaluates the expression sequence seq1. If an error occurs, set the formal parameter E set to the error data. If pred is not present or evaluates to true, catch the error and evaluate seq2. Both pred and seq2 can reference E.imag(x): imaginary part of x.incgam(s,x,{g}): incomplete gamma function. g is optional and is the precomputed value of gamma(s).incgamcincgamc(s,x): complementary incomplete gamma function.inlineinline(x,...,z): declares x,...,z as inline variables. DEPRECATED, use export.input(): read an expression from the input file or standard input.installvrrD"",r,D"",s,install(name,code,{gpname},{lib}): load from dynamic library 'lib' the function 'name'. Assign to it the name 'gpname' in this GP session, with prototype 'code'. If 'lib' is omitted, all symbols known to gp (includes the whole 'libpari.so' and possibly others) are available. If 'gpname' is omitted, use 'name'.intcircV=GGEDGpintcirc(X=a,R,expr,{tab}): numerical integration of expr on the circle |z-a|=R, divided by 2*I*Pi. tab is as in intnum.intformal(x,{v}): formal integration of x with respect to v, or to the main variable of x if v is omitted.V=GGED0,L,pintfuncinit(t=a,b,f,{m=0}): initialize tables for integrations from a to b using a weight f(t). For integral transforms such as Fourier or Mellin transforms.intnum(X=a,b,expr,{tab}): numerical integration of expr from a to b with respect to X. Plus/minus infinity is coded as +oo/-oo. Finally tab is either omitted (let the program choose the integration step), a nonnegative integer m (divide integration step by 2^m), or data precomputed with intnuminit.intnumgauss(X=a,b,expr,{tab}): numerical integration of expr from a to b, a compact interval, with respect to X using Gauss-Legendre quadrature. tab is either omitted (and will be recomputed) or precomputed with intnumgaussinit.intnumgaussinitD0,L,pintnumgaussinit({n}): initialize tables for n-point Gauss-Legendre integration on a compact interval.intnuminit(a,b,{m=0}): initialize tables for integrations from a to b. See help for intnum for coding of a and b. Possible types: compact interval, semi-compact (one extremity at + or - infinity) or R, and very slowly, slowly or exponentially decreasing, or sine or cosine oscillating at infinities.V=GEGD0,L,DGpintnumosc(x=a,expr,H,{flag=0},{tab}): numerical integration from a to oo of oscillating quasi-periodic function expr of half-period H. tab is either omitted (and will be recomputed) or precomputed with intnumgaussinit; flag is either 0 (Sidi extrapolation, safe mode), 1 (Sidi extrapolation, unsafe mode), 2 (sumalt), 3 (sumnumlagrange), 4 (sumpos).V=GGED0,L,bintnumromb(X=a,b,expr,{flag=0}): numerical integration of expr (smooth in ]a,b[) from a to b with respect to X. flag is optional and mean 0: default. expr can be evaluated exactly on [a,b]; 1: general function; 2: a or b can be plus or minus infinity (chosen suitably), but of same sign; 3: expr has only limits at a or b.isfundamental(D): true(1) if D is a fundamental discriminant (including 1), false(0) if not.ispolygonallGGD&ispolygonal(x,s,{&N}): true(1) if x is an s-gonal number, false(0) if not (s > 2). If N is given set it to n if x is the n-th s-gonal number.ispowerlGDGD&ispower(x,{k},{&n}): if k > 0 is given, return true (1) if x is a k-th power, false (0) if not. If k is omitted, return the maximal k >= 2 such that x = n^k is a perfect power, or 0 if no such k exist. If n is present, and the function returns a nonzero result, set n to the k-th root of x.ispowerfulispowerful(x): true(1) if x is a powerful integer (valuation at all primes dividing x is greater than 1), false(0) if not.isprime(x,{flag=0}): true(1) if x is a (proven) prime number, false(0) if not. If flag is 0 or omitted, use a combination of algorithms. If flag is 1, the primality is certified by the Pocklington-Lehmer Test. If flag is 2, the primality is certified using the APRCL test. If flag is 3, use ECPP.isprimepowerlGD&isprimepower(x,{&n}): if x = p^k is a prime power (p prime, k > 0), return k, else return 0. If n is present, and the function returns a nonzero result, set n to p, the k-th root of x.ispseudoprime(x,{flag}): true(1) if x is a strong pseudoprime, false(0) if not. If flag is 0 or omitted, use BPSW test, otherwise use strong Rabin-Miller test for flag randomly chosen bases.ispseudoprimepowerispseudoprimepower(x,{&n}): if x = p^k is a pseudo-prime power (p pseudo-prime, k > 0), return k, else return 0. If n is present, and the function returns a nonzero result, set n to p, the k-th root of x.issquare(x,{&n}): true(1) if x is a square, false(0) if not. If n is given puts the exact square root there if it was computed.issquarefree(x): true(1) if x is squarefree, false(0) if not.istotientistotient(x,{&N}): true(1) if x = eulerphi(n) for some integer n, false(0) if not. If N is given, set N = n as well.kill(sym): restores the symbol sym to its ``undefined'' status and kill attached help messages.kronecker(x,y): kronecker symbol (x/y).lambertwlambertw(y,{branch=0}): solution of the implicit equation x*exp(x)=y. In the p-adic case, gives a solution of x*exp(x)=y if x has positive valuation, of x+log(x)=log(y) otherwise.GDPDnplaurentseries(f, {M = seriesprecision}, {x='x}): expand f around 0 as a Laurent series in x to order M.lcm(x,{y}): least common multiple of x and y, i.e. x*y / gcd(x,y) up to units.length(x): number of non code words in x, number of characters for a string.lerchphilerchphi(z, s, a): Lerch transcendent equal to sum for n >= 0 of z^n / (n+a)^s for reasonable values of the arguments.lerchzetalerchzeta(s, a, lam): Lerch zeta function equal to sum for n >= 0 of e^(2 pi i lam n) / (n+a)^s for reasonable values of the arguments.lex(x,y): compare x and y lexicographically (1 if x>y, 0 if x=y, -1 if xprod(i=1,#M[,1],eta(M[i,1]*z)^M[i,2]).lfuneulerlfuneuler(L,p): return the Euler factor at p of the L-function given by L (Lmath, Ldata or Linit) if it is exists and can be determined.lfungenus2lfungenus2(F): returns the Ldata structure attached to the L-function attached to the genus-2 curve defined by y^2=F(x) or y^2+Q(x)*y=P(x) if F=[P,Q]. Currently, only odd conductors are supported.lfunhardylfunhardy(L,t): variant of the Hardy L-function attached to L, used for plotting on the critical line.lfunhgmGGDGblfunhgm(H,t,{hint}): (H,t) being a hypergeometric motive, returns the corresponding lfuncreate data for use with the L function package.lfuninit(L,sdom,{der=0}): precompute data for evaluating the L-function given by 'L' (and its derivatives of order der, if set) in rectangular domain sdom = [center,w,h] centered on the real axis, |Re(s)-center| <= w, |Im(s)| <= h, where all three components of sdom are real and w,h are nonnegative. The subdomain [k/2, 0, h] on the critical line can be encoded as [h] for brevity.lfunlambdalfunlambda(L,s,{D=0}): compute the completed L function Lambda(s), or if D is set, the derivative of order D at s. L is either an Lmath, an Ldata or an Linit.lfunmflfunmf(mf,{F}): If F is a modular form in mf, output the L-functions corresponding to its complex embeddings. If F is omitted, output the L-functions corresponding to all eigenforms in the new space.lfunmfspeclfunmfspec(L): L corresponding to a modular eigenform, returns [ve,vo,om,op] in even weight, where ve (resp., vo) is the vector of even (resp., odd) periods, and om and op the corresponding real numbers omega^- and omega^+. Returns [v,om] in odd weight.lfunmullfunmul(L1,L2): creates the Ldata structure (without initialization) corresponding to the product of the Dirichlet series given by L1 and L2.lfunorderzerolGD-1,L,blfunorderzero(L, {m = -1}): computes the order of the possible zero of the L-function at the center k/2 of the critical strip. If m is given and has a nonnegative value, assumes the order is at most m.lfunparamslfunparams(ldata): return the parameters [N, k, vga] of the L-function defined by ldata (see lfuncreate). The parameters Vga (gamma shifts) are returned to the current precision.lfunqflfunqf(Q): returns the Ldata structure attached to the theta function of the lattice attached to the definite positive quadratic form Q.lfunrootreslfunrootres(data): given the Ldata attached to an L-function (or the output of lfunthetainit), compute the root number and the residues. In the present implementation, if the polar part is not already known completely, at most a single pole is allowed. The output is a 3-component vector [[[a_1, r_1],...,[a_n, r_n],[[b_1, R_1],...[b_m,R_m]]~, w], where r_i is the polar part of L(s) at a_i, R_i is is the polar part of Lambda(s) at b_i, or [0,0,r] if there is no pole, and w is the root number.lfunshiftlfunshift(L,d,{flag}): creates the Ldata structure (without initialization) corresponding to the function Ld such that Ld(s) = L(s-d). If fl=1, return the product L*Ld instead.lfunsympowGUlfunsympow(E, m): returns the Ldata structure attached to the L-function attached to m-th symmetric power of the elliptic curve E defined over the rationals.lfunthetalfuntheta(data,t,{m=0}): compute the value of the m-th derivative at t of the theta function attached to the L-function given by data. data can be either the standard L-function data, or the output of lfunthetainit.lfunthetacostlGDGD0,L,blfunthetacost(L,{tdom},{m=0}): estimates the cost of running lfunthetainit(L,tdom,m) at current bit precision. Returns the number of coefficients an that would be computed. Subsequent evaluation of lfuntheta computes that many values of gammamellininv. If L is already an Linit, then tdom and m are ignored.lfunthetainitlfunthetainit(L,{tdom},{m=0}): precompute data for evaluating the m-th derivative of theta functions with argument in domain tdom (by default t is real >= 1).lfuntwistlfuntwist(L,chi): creates the Ldata structure (without initialization) corresponding to the twist of L by the primitive character attached to the Dirichlet L-function chi. This requires that the conductor of the character is coprime to the conductor of the L-function L.lfunzerosGGD8,L,blfunzeros(L,lim,{divz=8}): lim being either an upper limit or a real interval, computes an ordered list of zeros of L(s) on the critical line up to the given upper limit or in the given interval. Use a naive algorithm which may miss some zeros. To use a finer search mesh, set divz to some integral value larger than the default (= 8).lift(x,{v}): if v is omitted, lifts elements of Z/nZ to Z, of Qp to Q, and of K[x]/(P) to K[x]. Otherwise lift only polmods with main variable v.liftallliftall(x): lifts every element of Z/nZ to Z, of Qp to Q, and of K[x]/(P) to K[x].liftintliftint(x): lifts every element of Z/nZ to Z and of Qp to Q.liftpolliftpol(x): lifts every polmod component of x to polynomials.limitnum(expr,{alpha=1}): numerical limit of sequence expr using Lagrange-Zagier extrapolation; assume u(n) ~ sum a_i n^(-alpha*i).lindep(v,{flag=0}): integral linear dependencies between components of v. flag is optional, and can be 0: default, guess a suitable accuracy, or positive: accuracy to use for the computation, in decimal digits.listcreatelistcreate({n}): this function is obsolete, use List().listinsertWGLlistinsert(~L,x,n): insert x at index n in list L, shifting the remaining elements to the right.listkillvWlistkill(~L): obsolete, retained for backward compatibility.listpopvWD0,L,listpop(~list,{n}): removes n-th element from list. If n is omitted or greater than the current list length, removes last element.listputWGD0,L,listput(~list,x,{n}): sets n-th element of list equal to x. If n is omitted or greater than the current list length, appends x.listsortlistsort(~L,{flag=0}): sort the list L in place. If flag is nonzero, suppress all but one occurrence of each element in list.lngamma(x): logarithm of the gamma function of x.locallocal(x,...,z): declare x,...,z as (dynamically scoped) local variables.localbitprecvGlocalbitprec(p): set the real precision to p bits in the dynamic scope.localpreclocalprec(p): set the real precision to p in the dynamic scope and return p.log(x): natural logarithm of x.log1plog1p(x): log(1+x)logintlogint(x,b,{&z}): return the largest non-negative integer e so that b^e <= x, where b > 1 is an integer and x >= 1 is a real number. If the parameter z is present, set it to b^e.mapdeletevWGmapdelete(~M,x): removes x from the domain of the map M.mapgetmapget(M,x): returns the image of x by the map M.mapisdefinedmapisdefined(M,x,{&z}): true (1) if x has an image by the map M, false (0) otherwise. If z is present, set it to the image of x, if it exists.mapputvWGGmapput(~M,x,y): associates x to y in the map M.matadjoint(M,{flag=0}): adjoint matrix of M using Leverrier-Faddeev's algorithm. If flag is 1, compute the characteristic polynomial independently first.matalgtobasismatalgtobasis(nf,x): nfalgtobasis applied to every element of the vector or matrix x.matbasistoalgmatbasistoalg(nf,x): nfbasistoalg applied to every element of the matrix or vector x.matcompanion(x): companion matrix to polynomial x.matconcatmatconcat(v): concatenate the entries of v and return the resulting matrix.matdet(x,{flag=0}): determinant of the matrix x using an appropriate algorithm depending on the coefficients. If (optional) flag is set to 1, use classical Gaussian elimination (usually worse than the default).matdetint(B): some multiple of the determinant of the lattice generated by the columns of B (0 if not of maximal rank). Useful with mathnfmod.matdetmodmatdetmod(x,d): determinant of the matrix x modulo d.matdiagonal(x): creates the diagonal matrix whose diagonal entries are the entries of the vector x.mateigen(x,{flag=0}): complex eigenvectors of the matrix x given as columns of a matrix H. If flag=1, return [L,H], where L contains the eigenvalues and H the corresponding eigenvectors.matfrobeniusmatfrobenius(M,{flag},{v='x}): return the Frobenius form of the square matrix M. If flag is 1, return only the elementary divisors as a vector of polynomials in the variable v. If flag is 2, return a two-components vector [F,B] where F is the Frobenius form and B is the basis change so that M=B^-1*F*B.mathess(x): Hessenberg form of x.mathilbert(n): Hilbert matrix of order n.mathnf(M,{flag=0}): (upper triangular) Hermite normal form of M, basis for the lattice formed by the columns of M. Basic values of flag are 0 (default): only return the Hermite normal form H, 1: return [H,U] such that H is the HNF of M, and U is an invertible matrix such that MU=H. These two use a naive algorithm; larger values of flag correspond to more involved algorithms and are restricted to integer matrices; flag = 4: returns [H,U] using LLL reduction along the way; flag = 5: return [H,U,P] where P is a permutation of row indices such that P applied to M U is H.mathnfmod(x,d): (upper triangular) Hermite normal form of x, basis for the lattice formed by the columns of x, where d is a multiple of the nonzero determinant of this lattice.mathnfmodid(x,d): (upper triangular) Hermite normal form of x concatenated with matdiagonal(d).mathouseholdermathouseholder(Q,v): applies a sequence Q of Householder transforms to the vector or matrix v.matid(n): identity matrix of order n.matimage(x,{flag=0}): basis of the image of the matrix x. flag is optional and can be set to 0 or 1, corresponding to two different algorithms.matimagecompl(x): vector of column indices not corresponding to the indices given by the function matimage.matimagemodGGD&matimagemod(x,d,&U): basis of the image of the matrix x modulo d.matindexrank(M): gives two extraction vectors (rows and columns) for the matrix M such that the extracted matrix is square of maximal rank.matintersect(x,y): intersection of the vector spaces whose bases are the columns of x and y.matinverseimage(x,y): an element of the inverse image of the vector y by the matrix x if one exists, the empty vector otherwise.matinvmodmatinvmod(x,d): left inverse of the matrix x modulo d.matisdiagonal(x): true(1) if x is a diagonal matrix, false(0) otherwise.matker(x,{flag=0}): basis of the kernel of the matrix x. flag is optional, and may be set to 0: default; nonzero: x is known to have integral entries.matkerint(x,{flag=0}): LLL-reduced Z-basis of the kernel of the matrix x with integral entries; flag is deprecated, kept for backward compatibility.matkermodmatkermod(x,d,&im): basis of the kernel of the matrix x modulo d.matmuldiagonalmatmuldiagonal(x,d): product of matrix x by diagonal matrix whose diagonal coefficients are those of the vector d, equivalent but faster than x*matdiagonal(d).matmultodiagonalmatmultodiagonal(x,y): product of matrices x and y, knowing that the result will be a diagonal matrix. Much faster than general multiplication in that case.LDGmatpascal(n,{q}): Pascal triangle of order n if q is omitted. q-Pascal triangle otherwise.matpermanentmatpermanent(x): permanent of the matrix x.matqrmatqr(M,{flag=0}): returns [Q,R], the QR-decomposition of the square invertible matrix M. If flag=1, Q is given as a sequence of Householder transforms (faster and stabler).matrank(x): rank of the matrix x.matreducematreduce(m): reduce the factorization matrix m to canonical form (sorted first row with unique elements) matrix.GDGDVDVDEmatrix(m,{n=m},{X},{Y},{expr=0}): m x n matrix of expression expr, where the row variable X goes from 1 to m and the column variable Y goes from 1 to n. By default, fill with 0s.matrixqz(A,{p=0}): if p>=0, transforms the rational or integral mxn (m>=n) matrix A into an integral matrix with gcd of maximal determinants coprime to p. If p=-1, finds a basis of the intersection with Z^n of the lattice spanned by the columns of A. If p=-2, finds a basis of the intersection with Z^n of the Q-vector space spanned by the columns of A.matsize(x): number of rows and columns of the vector/matrix x as a 2-vector.matsnf(X,{flag=0}): Smith normal form (i.e. elementary divisors) of the matrix X, expressed as a vector d; X must have integer or polynomial entries. Binary digits of flag mean 1: returns [u,v,d] where d=u*X*v, otherwise only the diagonal d is returned, 4: removes all information corresponding to entries equal to 1 in d.matsolve(M,B): solution of MX=B (M matrix, B column vector or matrix).matsolvemod(M,D,B,{flag=0}): one solution of system of congruences MX=B mod D (M matrix, B and D column vectors). If (optional) flag is nonzero return all solutions.matsupplement(x): supplement the columns of the matrix x to an invertible matrix.mattranspose(x): x~ = transpose of x.max(x,y): maximum of x and y.mfDeltamfDelta(): mf corresponding to the Ramanujan Delta function.mfEHmfEH(k): k>0 being in 1/2+Z, mf corresponding to the Cohen-Eisenstein series H_k of weight k on G_0(4).mfEkmfEk(k): mf corresponding to the standard Eisenstein series E_k for nonnegative even integer k.mfThetamfTheta({psi=1}): the unary theta function corresponding to the primitive Dirichlet character psi, hence of weight 1/2 if psi is even, of weight 3/2 if psi is odd.mfatkinmfatkin(mfatk,f): Given an mfatk output by mfatk = mfatkininit(mf,Q) and a modular form f belonging to the space mf, returns the modular form g = C*f|W_Q where C = mfatk[3] is a normalizing constant so that g has the same field of coefficients as f; mfatk[1] = mf2 (or 0 if mf2=mf) which is the space to which g belongs.mfatkineigenvaluesmfatkineigenvalues(mf,Q): given a modular form space mf and a primitive divisor Q of the level of mf, outputs the corresponding Atkin-Lehner eigenvalues on the new space, grouped by orbit.mfatkininitmfatkininit(mf,Q): initializes data necessary for working with Atkin--Lehner operators W_Q, for now only the function mfatkin. The result is a 4-component vector [mfB, MC, C, mf] where mfB is either 0 or the possibly different modular form space to which F|W_Q will belong (this does not depend on F in mf); MC is the matrix of W_Q on the basis of mf multiplied by a normalizing constant C.mfbasisGD4,L,mfbasis(NK,{space=4}): If NK=[N,k,CHI] as in mfinit, gives a basis of the corresponding subspace of M_k(G_0(N),CHI). NK can also be the output of mfinit, in which case space is ignored. To obtain the eigenforms use mfeigenbasis.mfbdmfbd(F,d): F being a generalized modular form, return B(d)(F), where B(d) is the expanding operator tau -> d tau.mfbracketmfbracket(F,G,{m=0}): compute the m-th Rankin-Cohen bracket of the generalized modular forms F and G.mfcoefmfcoef(F,n): Compute the n-th Fourier coefficient a(n) of the generalized modular form F.mfcoefsGLD1,L,mfcoefs(F,n,{d = 1}): Compute the vector of coefficients [a[0],a[d],...,a[nd]] of the modular form F.mfconductormfconductor(mf,F): mf being output by mfinit and F a modular form, gives the smallest level at which F is defined.mfcosetsmfcosets(N): list of right cosets of G_0(N)\G, i.e., matrices g_j in G such that G = U G_0(N) g_j. The g_j are chosen in the form [a,b; c,d] with c | N.mfcuspisregularmfcuspisregular(NK, cusp): In the space defined by NK = [N,k,CHI] or NK = mf, determine if cusp in canonical format (oo or denominator dividing N) is regular or not.mfcuspsmfcusps(N): list of cusps of G_0(N) in the form a/b with b dividing N.mfcuspvalGGGbmfcuspval(mf,F,cusp): valuation of modular form F in the space mf at cusp, which can be either oo or any rational number. The result is either a rational number or oo if F is zero. Let chi be the Nebentypus of the space mf; if Q(F) != Q(chi), return the vector of valuations attached to the [Q(F):Q(chi)] complex embeddings of F.mfcuspwidthmfcuspwidth(N, cusp): width of cusp in Gamma_0(N).mfderivmfderiv(F,{m=1}): m-th formal derivative of the power series corresponding to the generalized modular form F, with respect to the differential operator q.d/dq (default m=1).mfderivE2mfderivE2(F,{m=1}): compute the Serre derivative (q.d/dq)F - kE_2F/12 of the generalized modular form F of weight k; and if m > 1, the m-th iterate.mfdescribemfdescribe(F,{&G}): gives a human-readable description of F, which is either a modular form space or a modular form. If the address of G is given, puts into G the vector of parameters of the outmost operator defining F.mfdimmfdim(NK,{space=4}): If NK=[N,k,CHI] as in mfinit, gives the dimension of the corresponding subspace of M_k(G_0(N),chi). The subspace is described by a small integer 'space': 0 for the newspace, 1 for the cuspidal space, 2 for the oldspace, 3 for the space of Eisenstein series and 4 (default) for the full space M_k. NK can also be the output of mfinit, in which case space must be omitted.mfdivmfdiv(F,G): compute F/G for two modular forms F and G assuming that the quotient will not have poles at infinity. If this is the case, use mfshift before doing the division.mfeigenbasismfeigenbasis(mf): vector of the eigenforms for the space mf.mfeigensearchmfeigensearch(NK,{AP}): search for normalized rational eigen cuspforms with quadratic characters given a few initial coefficients. The meaning of the parameters is as follows: NK is of the form [N,k]: search given level N, weight k and quadratic character; note that the character is uniquely determined by (N,k). The level N can be replaced by a vector of allowed levels. AP is the search criterion, which can be omitted: a list of pairs [...,[p,a_p],...], where a_p is either a t_INT (exact match) or a t_INTMOD (match modulo the given integer). The result is a vector of newforms matching the search criteria, sorted by increasing level.mfeisensteinLDGDGmfeisenstein(k,{CHI1},{CHI2}): create the Eisenstein E_k(CHI1,CHI2), where an omitted character is considered as trivial.mfembedmfembed(f,{v}): if v is omitted, f must be a modular form or a modular form space with parameters [N,k,chi] and we return a vector of complex embeddings of Q(f) or Q(chi), respectively. If v is given, it must be a scalar in Q(f), or a vector/matrix of such, we apply the embeddings coefficientwise and return a vector of results. Finally f can be replaced by a single embedding produced by mfembed(f) and we apply that particular embedding to v. Note that, in our context, Q(chi) has a single canonical embeding given by s: Mod(t, polcyclo(n,t)) -> exp(2*I*Pi/n) and Q(f) has [Q(f):Q(chi)] induced embeddings attached to the complex roots of s(P) where P = mfparams(f)[4], as ordered by polroots. In the latter case, we only support an f with Q(f) = Q(chi) or an eigenform produced by mfeigenbasis.mfevalmfeval(mf,F,vtau): computes the numerical value of the modular form F at the point vtau or the vector vtau of points in the completed upper-half plane.mffieldsmffields(mf): If mf is output by mfinit, gives the vector of polynomials defining each Galois orbit of the new space.mffromellmffromell(E): E being an elliptic curve defined over Q given by an integral model in ellinit format, computes a 3-component vector [mf,F,v], where F is the newform corresponding to E by modularity, mf is the newspace to which F belongs, and v gives the coefficients of F on mfbasis(mf).mffrometaquomffrometaquo(eta,{flag=0}): modular form corresponding to the eta quotient matrix eta. If the valuation v at infinity is fractional, return 0. If the eta quotient is not holomorphic but simply meromorphic, return 0 if flag=0; return the eta quotient (divided by q to the power -v if v < 0, i.e., with valuation 0) if flag is set.mffromlfunmffromlfun(L): L being an L-function representing a self-dual modular form, return [NK,space,v] where mf=mfinit(NK,space) contains the form and mftobasis(mf, v) containing it and v is mftobasis(mf,f).mffromqfmffromqf(Q,{P}): Q being an even positive definite quadratic form and P a homogeneous spherical polynomial for Q, computes a 3-component vector [mf,F,coeffs], where F is the theta function corresponding to (Q, P), mf is the corresponding space of modular forms from mfinit, and coeffs are the coefficients of F on mfbasis(mf).mfgaloisprojrepmfgaloisprojrep(mf,F): mf being an mf output by mfinit in weight 1, and F an eigenform, returns a polynomial defining the field fixed by the kernel of the projective representation associated to F.mfgaloistypemfgaloistype(NK,{F}): NK being either [N,1,CHI] or an mf output by mfinit in weight 1 , gives the vector of types of Galois representations attached to each cuspidal eigenform, unless the eigenform F is specified, in which case only for F. Types A_4, S_4, A_5 are represented by minus their cardinality -12, -24, or -60, and type D_n is represented by its cardinality, the integer 2*n.mfheckemfhecke(mf,F,n): F being a modular form in space mf, returns T(n)F, where T(n) is the n-th Hecke operator. Warning: if F is of level M= 3/2, gives a basis B of the Kohnen + space of mf as a matrix whose columns are the coefficients of B on the basis of mf.mfkohnenbijectionmfkohnenbijection(mf): mf being a cuspidal space of half-integral weight returns [mf2,M,K,shi], where M is a matrix giving a Hecke-module isomorphism from S_{2k-1}(N,CHI^2) given by mf2 to the Kohnen + space S_k+(4N,CHI), K is a basis of the Kohnen + space, and shi gives the linear combination of Shimura lifts giving M^(-1).mfkohneneigenbasismfkohneneigenbasis(mf,bij): mf being a cuspidal space of half-integral weight k >= 3/2 and bij being the output of mfkohnenbijection(mf), outputs a 3-component vector [mf0,BNEW,BEIGEN], where BNEW and BEIGEN are two matrices whose columns are the coefficients of a basis of the Kohnen new space and of the eigenforms on the basis of mf respectively, and mf0 is the corresponding new space of integral weight 2k - 1.mflinearmflinear(vF,v): vF being a vector of modular forms and v a vector of coefficients of same length, compute the linear combination of the entries of vF with coefficients v.mfmaninmfmanin(FS): Given the modular symbol FS associated to an eigenform F by mfsymbol(mf,F), computes the even and odd special polynomials as well as the even and odd periods om+ and om- as a vector [[P+,P-],[om+,om-,r]], where r = imag(om+*conj(om-))/. If F has several embeddings into C, give the vector of results corresponding to each embedding.mfmulmfmul(F,G): Multiply the two forms F and G.mfnumcuspsmfnumcusps(N): number of cusps of Gamma_0(N)mfparamsmfparams(F): If F is a modular form space, returns [N,k,CHI,space,Phi]: level, weight, character, and space code; where Phi is the cyclotomic polynomial defining the field of values of CHI. If F is a modular form, returns [N,k,CHI,P,Phi], where P is the (polynomial giving the) field of definition of F: in that case the level N may be a multiple of the level of F and the polynomial P may define a larger field than Q(F).mfperiodpolmfperiodpol(mf,f,{flag=0}): period polynomial of the cuspidal part of the form f, in other words integral from 0 to ioo of (X-tau)^(k-2)f(tau). If flag=0, ordinary period polynomial, if flag=1 or -1, even or odd part of that polynomial. f can also be the modular symbol output by mfsymbol(mf,f).mfperiodpolbasismfperiodpolbasis(k,{flag=0}): basis of period polynomials for weight k. If flag=1 or -1, basis of odd or even period polynomials.mfpeterssonmfpetersson(fs,{gs}): Petersson scalar product of the modular forms f and g belonging to the same modular form space mf, given by the corresponding "modular symbols" fs and gs output by mfsymbol (also in weight 1 and half-integral weight). If gs is omitted it is understood to be equal to fs. The scalar product is normalized by the factor 1/[G:G_0(N)].mfpowmfpow(F,n): compute F^nmfsearchmfsearch(NK,V,{space}): NK being of the form [N,k] with k possibly half-integral, search for a modular form with rational coefficients, of weight k and level N, whose initial coefficients a(0),... are equal to V; space specifies the modular form spaces in which to search. The output is a list of matching forms with that given level and weight. Note that the character is of the form (D/.), where D is a (positive or negative) fundamental discriminant dividing N. N can be replaced by a vector of allowed levels, in which case the list of forms is sorted by increasing level, then increasing |D|. If a form is found at level N, any multiple of N with the same D is not considered Note that this is very different from mfeigensearch, which only searches for rational eigenforms.mfshiftmfshift(F,s): Divide the form F by q^s omitting the remainder if there is one; s can be negative.mfshimuramfshimura(mf, F, {D = 1}): F being a modular form of half-integral weight k >= 3/2 and t a positive squarefree integer, computes the Shimura lift G of weight 2k-1 corresponding to D. This function returns [mf2,G,v], where mf2 is a modular form space containing G, and v the vector of coefficients of G on mf.mfslashexpansionGGGLLD&pmfslashexpansion(mf,f,g,n,flrat,{¶ms}): g being in M_2^+(Q), computes the Fourier expansion of f|_k g to n terms. f must belong to the space mf. If params is given, it is set to the parameters [alpha,w,A]. If flrat is 1, the program tries to rationalize the expression; if flag is 0, it does not.mfspacemfspace(mf,{f}): identify the modular space mf, resp. the modular form f in mf. Returns 0 (newspace), 1 (cuspidal space), 2 (old space), 3 (Eisenstein space) or 4 (full space). Return -1 when the form does not belong to the space.mfsplitmfsplit(mf,{dimlim=0},{flag=0}): mf containing the new space split the new space into Galois orbits of eigenforms of the newspace and return [vF,vK], where vF gives the (Galois orbit of) eigenforms in terms of mfbasis(mf) and vK is a list of polynomials defining each Galois orbit. If dimlim is set only the Galois orbits of dimension <= dimlim are computed (i.e. the rational eigenforms if dimlim = 1 and the character is real). Flag speeds up computations when the dimension is large: if flag = d > 0, when the dimension of the eigenspace is > d, only the Galois polynomial is computed.mfsturmmfsturm(NK): Sturm bound for modular forms on G_0(N) and weight k, i.e., an upper bound for the order of the zero at infinity of a nonzero form. NK is either [N,k] or an mfinit (exact bound in the latter case).mfsymbolmfsymbol(mf,f): Initialize data for working with all period polynomials of the modular form f: this is essential for efficiency for functions such as mfsymboleval, mfmanin, and mfpetersson. By abuse of language, initialize data for working with mfpetersson in weight 1 or half-integral weight (where no symbol exist).mfsymbolevalmfsymboleval(fs,path,{ga=id}): evaluation of the modular symbol fs output by mfsymbol on the given path, where path is either a vector [s1,s2] or an integral matrix [a,b;c,d] representing the path [a/c,b/d]. In both cases, s1 or s2 (or a/c or b/d) can also be elements of the upper half-plane. The result is the polynomial equal to the integral between s1 and s2 of (X-tau)^{k-2}F(tau). If ga in GL_2+(Q) is given, replace F by F|_k ga. If the integral diverges, the result will be a rational function.mftaylormftaylor(F,n,{flreal=0}): F being a modular form in M_k(SL_2(Z)), computes the first n+1 canonical Taylor expansion of F around tau=I. If flreal=0, computes only an algebraic equivalence class. If flreal is set, compute p_n such that for tau close enough to I we have f(tau)=(2I/(tau+I))^ksum_{n>=0}p_n((tau-I)/(tau+I))^n.mftobasismftobasis(mf,F,{flag=0}): coefficients of the form F on the basis given by the mfbasis(mf). A q-expansion or vector of coefficients can also be given instead of F, but in this case an error message may occur if the expansion is too short. An error message is also given if F does not belong to the modular form space. If flag is set, instead of error messages return an output as an affine space of solutions if a q-expansion or vector of coefficients is given, or the empty column otherwise.mftocosetLGGmftocoset(N,M,Lcosets): M being a matrix in SL_2(Z) and Lcosets being mfcosets(N), find the right coset of G_0(N) to which M belongs. The output is a pair [ga,i] such that M = ga * Lcosets[i], with ga in G_0(N).mftonewmftonew(mf,F): mf being a full or cuspidal space with parameters [N,k,chi] and F a cusp form in that space, returns a vector of 3-component vectors [M,d,G], where f(chi) divides M divides N, d divides N/M, and G is a form in S_k^new(G_0(M),chi) such that F is equal to the sum of the B(d)(G) over all these 3-component vectors.mftraceformmftraceform(NK,{space=0}): If NK=[N,k,CHI,.] as in mfinit with k integral, gives the trace form in the corresponding subspace of S_k(G_0(N),chi). The supported values for space are 0: the newspace (default), 1: the full cuspidal space.mftwistmftwist(F,D): returns the twist of the form F by the integer D, i.e., the form G such that mfcoef(G,n)=(D/n)mfcoef(F,n), where (D/n) is the Kronecker symbol.min(x,y): minimum of x and y.minpolyminpoly(A,{v='x}): minimal polynomial of the matrix or polmod A.modreverse(z): reverse polmod of the polmod z, if it exists.moebius(x): Moebius function of x.msatkinlehnerGLDGmsatkinlehner(M,Q,{H}): M being a full modular symbol space of level N, as given by msinit, let Q | N, (Q,N/Q) = 1, and let H be a subspace stable under the Atkin-Lehner involution w_Q. Return the matrix of w_Q acting on H (M if omitted).mscosetsmscosets(gen, inH): gen being a system of generators for a group G and H being a subgroup of finite index of G, return a list of right cosets of H \ G and the right action of G on H \ G. The subgroup H is given by a criterion inH (closure) deciding whether an element of G belongs to H.mscuspidalmscuspidal(M, {flag=0}): M being a full modular symbol space, as given by msinit, return its cuspidal part S. If flag = 1, return [S,E] its decomposition into Eisenstein and cuspidal parts.msdimmsdim(M): M being a modular symbol space or subspace, return its dimension as a Q-vector space.mseisensteinmseisenstein(M): M being a full modular symbol space, as given by msinit, return its Eisenstein subspace.msevalmseval(M,s,{p}): M being a full modular symbol space, as given by msinit, s being a modular symbol from M and p being a path between two elements in P^1(Q), return s(p).msfareymsfarey(F,inH,{&CM}): F being a Farey symbol attached to a group G contained in SL2(Z) and H a subgroup of G, return a Farey symbol attached to H; H is given by a criterion inH (closure) deciding whether an element of G belongs to H.msfromcuspmsfromcusp(M, c): returns the modular symbol attached to the cusp c, where M is a modular symbol space of level N.msfromellmsfromell(E, {sign=0}): return the [M, x], where M is msinit(N,2) and x is the modular symbol in M attached to the elliptic curve E/Q.msfromheckemsfromhecke(M, v, {H}): given a msinit M and a vector v of pairs [p, P] (where p is prime and P is a polynomial with integer coefficients), return a basis of all modular symbols such that P(Tp) * s = 0. If H is present, it must be a Hecke-stable subspace and we restrict to s in H.msgetlevelmsgetlevel(M): M being a full modular symbol space, as given by msinit, return its level N.msgetsignmsgetsign(M): M being a full modular symbol space, as given by msinit, return its sign.msgetweightmsgetweight(M): M being a full modular symbol space, as given by msinit, return its weight k.msheckemshecke(M,p,{H}): M being a full modular symbol space, as given by msinit, p being a prime number, and H being a Hecke-stable subspace (M if omitted), return the matrix of T_p acting on H (U_p if p divides the level).msinitmsinit(G, V, {sign=0}): given G a finite index subgroup of SL(2,Z) and a finite dimensional representation V of GL(2,Q), creates a space of modular symbols, the G-module Hom_G(Div^0(P^1 Q), V). This is canonically isomorphic to H^1_c(X(G), V), and allows to compute modular forms for G. If sign is present and nonzero, it must be +1 or -1 and we consider the subspace defined by Ker (Sigma - sign), where Sigma is induced by [-1,0;0,1]. Currently the only supported groups are the Gamma_0(N), coded by the integer N. The only supported representation is V_k = Q[X,Y]_{k-2}, coded by the integer k >= 2.msissymbolmsissymbol(M,s): M being a full modular symbol space, as given by msinit, check whether s is a modular symbol attached to M.mslatticemslattice(M, {H}): M being a full modular symbol space, as given by msinit, H a Q-subspace or a matrix of modular symbols. Return the canonical integral structure of H.msnewmsnew(M): M being a full modular symbol space, as given by msinit, return its new cuspidal subspace.msomsevalmsomseval(Mp, PHI, path): return the vectors of moments of the p-adic distribution attached to the path 'path' via the overconvergent modular symbol 'PHI'.mspadicLmspadicL(mu, {s = 0}, {r = 0}): given mu from mspadicmoments (p-adic distributions attached to an overconvergent symbol PHI) returns the value on a character of Z_p^* represented by s of the derivative of order r of the p-adic L-function attached to PHI.mspadicinitGLLD-1,L,mspadicinit(M, p, n, {flag}): M being a full modular symbol space, as given by msinit and a prime p, initialize technical data needed to compute with overconvergent modular symbols (modulo p^n). If flag is unset, allow all symbols; if flag = 0, restrict to ordinary symbols; else initialize for symbols phi such that Tp(phi) = a_p * phi, with v_p(a_p) >= flag.mspadicmomentsmspadicmoments(Mp, PHI, {D = 1}): given Mp from mspadicinit, an overconvergent eigensymbol PHI, and optionally a fundamental discriminant D coprime to p, return the moments of the p-1 distributions PHI^D([0]-[oo]) | (a + pZp), 0 < a < p. To be used by mspadicL and mspadicseries.mspadicseriesmspadicseries(mu, {i=0}): given mu from mspadicmoments, returns the attached p-adic series with maximal p-adic precision, depending on the precision of M (i-th Teichmueller component, if present).mspathgensmspathgens(M): M being a full modular symbol space, as given by msinit, return a set of Z[G]-generators for Div^0(P^1 Q). The output is [g,R], where g is a minimal system of generators and R the vector of Z[G]-relations between the given generators.mspathlogmspathlog(M,p): M being a full modular symbol space, as given by msinit and p being a path between two elements in P^1(Q), return (p_i) in Z[G] such that p = \sum p_i g_i, and the g_i are fixed Z[G]-generators for Div^0(P^1 Q), see mspathgens.mspeterssonmspetersson(M, {F}, {G=F}): M being a full modular symbol space, as given by msinit, calculate the intersection product {F,G} of modular symbols F and G on M.mspolygonmspolygon(M, {flag = 0}): M describes a subgroup G of finite index in the modular group PSL2(Z), as given by msinit or a positive integer N (encoding the group G = Gamma0(N)), or by msfarey (arbitrary subgroups). Return an hyperbolic polygon (Farey symbol) attached to G. Binary digits of flag mean: 1=normalized polygon, 2=also add graphical representations.msqexpansionGGDPmsqexpansion(M,projH,{B = seriesprecision}): M being a full modular symbol space, as given by msinit, and projH being a projector on a Hecke-simple subspace, return the Fourier coefficients [a_n, n <= B] of the corresponding normalized newform. If B omitted, use seriesprecision.mssplitmssplit(M,{H},{dimlim}): M being a full modular symbol space, as given by msinit, and H being a subspace (the new subspace if omitted), split H into Hecke-simple subspaces. If dimlim is present and positive, restrict to dim <= dimlim.msstarmsstar(M,{H}): M being a full modular symbol space, as given by msinit, return the matrix of the * involution, induced by complex conjugation, acting on the (stable) subspace H (M if omitted).mstoomsmstooms(Mp, phi): given Mp from mspadicinit, lift the (classical) eigen symbol phi to a distribution-valued overconvergent symbol in the sense of Pollack and Stevens. The resulting overconvergent eigensymbol can then be used in mspadicmoments, then mspadicL or mspadicseries.mymy(x,...,z): declare x,...,z as lexically-scoped local variables.newtonpoly(x,p): Newton polygon of polynomial x with respect to the prime p.nextnext({n=1}): interrupt execution of current instruction sequence, and start another iteration from the n-th innermost enclosing loops.nextprime(x): smallest pseudoprime >= x.nfalgtobasis(nf,x): transforms the algebraic number x into a column vector on the integral basis nf.zk.nfbasis(T, {&dK}): integral basis of the field Q[a], where a is a root of the polynomial T, using the round 4 algorithm. An argument [T,listP] is possible, where listP is a list of primes or a prime bound, to get an order which is maximal at certain primes only. If present, dK is set to the discriminant of the returned order.nfbasistoalg(nf,x): transforms the column vector x on the integral basis into an algebraic number.nfcertifynfcertify(nf): returns a vector of composite integers used to certify nf.zk and nf.disc unconditionally (both are correct when the output is the empty vector).nfcompositumnfcompositum(nf,P,Q,{flag=0}): vector of all possible compositums of the number fields defined by the polynomials P and Q; flag is optional, whose binary digits mean 1: output for each compositum, not only the compositum polynomial pol, but a vector [R,a,b,k] where a (resp. b) is a root of P (resp. Q) expressed as a polynomial modulo R, and a small integer k such that al2+k*al1 is the chosen root of R; 2: assume that the number fields defined by P and Q are linearly disjoint.nfdetint(nf,x): multiple of the ideal determinant of the pseudo generating set x.nfdisc(T): discriminant of the number field defined by the polynomial T. An argument [T,listP] is possible, where listP is a list of primes or a prime bound.nfdiscfactorsnfdiscfactors(T): [D, faD], where D = nfdisc(T), and faD is the factorization of |D|.nfeltaddnfeltadd(nf,x,y): element x+y in nf.nfeltdiv(nf,x,y): element x/y in nf.nfeltdiveuc(nf,x,y): gives algebraic integer q such that x-qy is small.nfeltdivmodprnfeltdivmodpr(nf,x,y,pr): this function is obsolete, use nfmodpr.nfeltdivrem(nf,x,y): gives [q,r] such that r=x-qy is small.nfeltembednfeltembed(nf,x,{pl}): complex embeddings of x at places given by vector pl.nfeltispowernfeltispower(nf,x,n,{&y}): return 1 if x is an n-th power (and set y to an n-th root if present), else return 0.nfeltissquarenfeltissquare(nf,x,{&y}): return 1 if x is a square (and set y to a square root if present), else return 0.nfeltmod(nf,x,y): gives r such that r=x-qy is small with q algebraic integer.nfeltmul(nf,x,y): element x.y in nf.nfeltmulmodprnfeltmulmodpr(nf,x,y,pr): this function is obsolete, use nfmodpr.nfeltnormnfeltnorm(nf,x): norm of x.nfeltpow(nf,x,k): element x^k in nf.nfeltpowmodprnfeltpowmodpr(nf,x,k,pr): this function is obsolete, use nfmodpr.nfeltreduce(nf,a,id): gives r such that a-r is in the ideal id and r is small.nfeltreducemodprnfeltreducemodpr(nf,x,pr): this function is obsolete, use nfmodpr.nfeltsignnfeltsign(nf,x,{pl}): signs of real embeddings of x at places given by vector pl.nfelttracenfelttrace(nf,x): trace of x.nfeltval(nf,x,pr,{&y}): valuation of element x at the prime pr as output by idealprimedec.nffactor(nf,T): factor polynomial T in number field nf.nffactorbacknffactorback(nf,f,{e}): given a factorization f, returns the factored object back as an nf element.nffactormodnffactormod(nf,Q,pr): this routine is obsolete, use nfmodpr and factormod. Factor polynomial Q modulo prime ideal pr in number field nf.nfgaloisapply(nf,aut,x): apply the Galois automorphism aut to the object x (element or ideal) in the number field nf.nfgaloisconj(nf,{flag=0},{d}): list of conjugates of a root of the polynomial x=nf.pol in the same number field. flag is optional (set to 0 by default), meaning 0: use combination of flag 4 and 1, always complete; 1: use nfroots; 4: use Allombert's algorithm, complete if the field is Galois of degree <= 35 (see manual for details). nf can be simply a polynomial.GGGGDnnfgrunwaldwang(nf,Lpr,Ld,pl,{v='x}): a polynomial in the variable v defining a cyclic extension of nf (given in nf or bnf form) with local behavior prescribed by Lpr, Ld and pl: the extension has local degree a multiple of Ld[i] at the prime Lpr[i], and the extension is complex at the i-th real place of nf if pl[i]=-1 (no condition if pl[i]=0). The extension has degree the LCM of the local degrees.nfhilbertlGGGDGnfhilbert(nf,a,b,{pr}): if pr is omitted, global Hilbert symbol (a,b) in nf, that is 1 if X^2-aY^2-bZ^2 has a nontrivial solution (X,Y,Z) in nf, -1 otherwise. Otherwise compute the local symbol modulo the prime ideal pr.nfhnf(nf,x,{flag=0}): if x=[A,I], gives a pseudo-basis [B,J] of the module sum A_jI_j. If flag is nonzero, return [[B,J], U], where U is the transformation matrix such that AU = [0|B].nfhnfmod(nf,x,detx): if x=[A,I], and detx is a multiple of the ideal determinant of x, gives a pseudo-basis of the module sum A_jI_j.nfinit(pol,{flag=0}): pol being a nonconstant irreducible polynomial in Q[X], returns an nf structure attached to the number field Q[X] / (pol). Binary digits of flag mean 1: two-element vector [nf,Mod(a,P)], where Mod(a,P) is a polmod equal to Mod(x,pol) and P=nf.pol; 2: first use polredbest to find a simpler polynomial P; 4: do not LLL-reduce the maximal order basis nf.zk.nfisideal(nf,x): true(1) if x is an ideal in the number field nf, false(0) if not.nfisincl(f,g,{flag=0}): let f and g define number fields, either irreducible rational polynomials or number fields as output by nfinit; tests whether the number field f is isomorphic to a subfield of g. Return 0 if not, and otherwise all the embeddings (flag=0, default), only one (flag=1), or all embeddings as rational functions (flag=2).nfisisom(f,g): as nfisincl but tests whether f is isomorphic to g.nfislocalpowerlGGGGnfislocalpower(nf,pr,a,n): true(1) if a is an n-th power in the local field K_v, false(0) if not.nfkermodprnfkermodpr(nf,x,pr): this function is obsolete, use nfmodpr.GDGD-1,L,DGnflist(G, {N}, {s = -1}, {F}): find number fields (up to isomorphism) with Galois group of Galois closure isomorphic to G, and s complex places. If s = -1 (default) all signatures, s = -2 is identical to s = -1 except signatures are separated by increasing number of complex places. If field F is specified (by a polynomial), give only number fields having F as a subfield (or a resolvent field in the case of S3, Dl, A4, S4, F5, M21 and M42). The parameter N can be the following: a positive integer (absolute value of discriminant is N); a vector [a,b] (find fields with absolute discriminant between a and b); a polynomial, in variable t say (regular extension of Q(t) with specified Galois group). Finally, N can be omitted (default), in which case a few fields are given and F is ignored.nfmodprnfmodpr(nf,x,pr): map x to the residue field mod pr.nfmodprinitnfmodprinit(nf,pr, {v = variable(nf.pol)}): transform the prime ideal pr into modpr format necessary for all operations mod pr in the number field nf. Variable v is used to display finite field elements (see ffgen).nfmodprliftnfmodprlift(nf,x,pr): lift x from residue field mod pr to nf.nfnewprecnfnewprec(nf): transform the number field data nf into new data using the current (usually larger) precision.nfpolsturmnfpolsturm(nf, T, {pl}): number of distinct real roots of the polynomial s(T) where s runs through the real embeddings given by vector pl.nfresolventnfresolvent(pol,{flag=0}): In the case where the Galois closure of the number field defined by pol is S3, Dl, A4, S4, F5, A5, M21, or M42, give the corresponding resolvent field. Otherwise, give a "canonical" subfield, or if flag >= 2 all "canonical" subfields. If flag is odd, give also the "conductor" f, whose definition is specific to each group.nfrootsDGGnfroots({nf},x): roots of polynomial x belonging to nf (Q if omitted) without multiplicity.nfrootsof1(nf): number of roots of unity and primitive root of unity in the number field nf.nfsnf(nf,x,{flag=0}): if x=[A,I,J], outputs D=[d_1,...d_n] Smith normal form of x. If flag is nonzero return [D,U,V], where UAV = Id.nfsolvemodprnfsolvemodpr(nf,a,b,P): this function is obsolete, use nfmodpr.nfsplittingnfsplitting(P,{d},{fl}): defining polynomial S over Q for the splitting field of P, that is the smallest field over which P is totally split. P can also be given by a nf structure. If d is given, it must be a multiple of the splitting field degree. If fl=1, return [S,C] where C is an embedding of Q[x]/(P) in its splitting field.nfsubfields(pol,{d=0},{fl=0}): find all subfields of degree d of number field defined by pol (all subfields if d is null or omitted). Result is a vector of subfields, each being given by [g,h] (default) or simply g (flag=1), where g is an absolute equation and h expresses one of the roots of g in terms of the root x of the polynomial defining nf.nfsubfieldscmnfsubfieldscm(nf,{fl=0}): compute the maximal CM subfield of nf. Return 0 if nf does not have a CM subfield, otherwise return [g,h] (default) or g (fl=1) where g is an absolute equation and h expresses a root of g in terms of the generator of nf.nfsubfieldsmaxnfsubfieldsmax(nf,{fl=0}): compute the list of maximal subfields of nf. Result is as in nfsubfields.norm(x): norm of x.norml2(x): square of the L2-norm of x.normlpnormlp(x,{p=oo}): Lp-norm of x; sup norm if p is omitted.numbpartnumbpart(n): number of partitions of n.numdiv(x): number of divisors of x.numerator(f,{D}): numerator of f.LGnumtoperm(n,k): permutation number k (mod n!) of n letters (n C-integer).omega(x): number of distinct prime divisors of x.oo=oo(): infinity.padicappr(pol,a): p-adic roots of the polynomial pol congruent to a mod p.padicfields(p, N, {flag=0}): returns polynomials generating all the extensions of degree N of the field of p-adic rational numbers; N is allowed to be a 2-component vector [n,d], in which case, returns the extensions of degree n and discriminant p^d. flag is optional, and can be 0: default, 1: return also the ramification index, the residual degree, the valuation of the discriminant and the number of conjugate fields, or 2: return only the number of extensions in a fixed algebraic closure.padicprec(x,p): return the absolute p-adic precision of object x.parapplyparapply(f, x): parallel evaluation of f on the elements of x.parevalpareval(x): parallel evaluation of the elements of the vector of closures x.parforvV=GDGJDVDIparfor(i=a,{b},expr1,{r},{expr2}): evaluates the expression expr1 in parallel for all i between a and b (if b is set to +oo, the loop will not stop), resulting in as many values; if the formal variables r and expr2 are present, evaluate sequentially expr2, in which r has been replaced by the different results obtained for expr1 and i with the corresponding arguments.parforeachvGVJDVDIparforeach(V,x,expr1,{r},{expr2}): evaluates in parallel the expression expr1 for all components x of V. If the formal variables r and expr2 are present, evaluate sequentially expr2, in which x and r are replaced by the successive arguments and corresponding values.parforprimeparforprime(p=a,{b},expr1,{r},{expr2}): evaluates the expression expr1 in parallel for all primes p between a and b (if b is set to +oo, the loop will not stop), resulting in as many values; if the formal variables r and expr2 are present, evaluate sequentially expr2, in which r has been replaced by the different results obtained for expr1 and p with the corresponding arguments.parforprimestepvV=GDGGJDVDIparforprimestep(p=a,{b},q,expr1,{r},{expr2}): evaluates the expression expr1 in parallel for all primes p between a and b in an arithmetic progression of the form a + k*q, resulting in as many values; if the formal variables r and expr2 are present, evaluate sequentially expr2, in which r has been replaced by the different results obtained for expr1 and p with the corresponding arguments.parforvecvV=GJDVDID0,L,parforvec(X=v,expr1,{j},{expr2},{flag}): evaluates the sequence expr2 (dependent on X and j) for X as generated by forvec, in random order, computed in parallel. Substitute for j the value of expr1 (dependent on X).parplothV=GGJD0,M,D0,L,p
Parametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048; Complex|4096parploth(X=a,b,expr,{flags=0},{n=0}): parallel version of ploth. Plot of expression expr, X goes from a to b in high resolution. Both flags and n are optional. Binary digits of flags mean: 1=Parametric, 2=Recursive, 4=no_Rescale, 8=no_X_axis, 16=no_Y_axis, 32=no_Frame, 64=no_Lines (do not join points), 128=Points_too (plot both lines and points), 256=Splines (use cubic splines), 512=no_X_ticks, 1024= no_Y_ticks, 2048=Same_ticks (plot all ticks with the same length), 4096=Complex (the two coordinates of each point are encoded as a complex number). n specifies number of reference points on the graph (0=use default value). Returns a vector for the bounding box.parplothexportGV=GGJD0,M,D0,L,p
Parametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048; Complex|4096parplothexport(fmt, X=a,b,expr,{flags=0},{n=0}): parallel version of plothexport. Plot of expression expr, X goes from a to b in high resolution, returning the resulting picture as a character string which can then be written to a file.parselectparselect(f, A, {flag = 0}): (parallel select) selects elements of A according to the selection function f which is tested in parallel. If flag is 1, return the indices of those elements (indirect selection).parsumV=GGJparsum(i=a,b,expr): the sum (i goes from a to b) of expression expr, evaluated in parallel (in random order).partitionspartitions(k,{a=k},{n=k}): vector of partitions of the integer k. You can restrict the length of the partitions with parameter n (n=nmax or n=[nmin,nmax]), or the range of the parts with parameter a (a=amax or a=[amin,amax]). By default remove zeros, but one can set amin=0 to get X of fixed length nmax (=k by default).parvectorLVJparvector(N,i,expr): as vector(N,i,expr) but the evaluations of expr are done in parallel.permcyclespermcycles(x): cycles of the permutation x.permorderpermorder(x): order of the permutation x.permsignpermsign(x): signature of the permutation x.permtonum(x): ordinal (between 0 and n!-1) of permutation x.vV=GGEDGDGpplot(X=a,b,expr,{Ymin},{Ymax}): crude plot of expression expr, X goes from a to b, with Y ranging from Ymin to Ymax. If Ymin (resp. Ymax) is not given, the minimum (resp. the maximum) of the expression is used instead.vLGGD0,L,plotbox(w,x2,y2,{filled=0}): if the cursor is at position (x1,y1), draw a box with diagonal (x1,y1) and (x2,y2) in rectwindow w (cursor does not move). If filled=1, fill the box.plotclipplotclip(w): clip the contents of the rectwindow to the bounding box (except strings).plotcolor(w,c): in rectwindow w, set default color to c. Possible values for c are [R,G,B] values, a color name or an index in the graphcolormap default: factory settings are 1=black, 2=blue, 3=sienna, 4=red, 5=green, 6=grey, 7=gainsborough. Return [R,G,B] value attached to color.vLLGGD0,L,plotcopy(sourcew,destw,dx,dy,{flag=0}): copy the contents of rectwindow sourcew to rectwindow destw with offset (dx,dy). If flag's bit 1 is set, dx and dy express fractions of the size of the current output device, otherwise dx and dy are in pixels. dx and dy are relative positions of northwest corners if other bits of flag vanish, otherwise of: 2: southwest, 4: southeast, 6: northeast corners.plotcursor(w): current position of cursor in rectwindow w.vGD0,L,plotdraw(w, {flag=0}): draw rectwindow w. More generally, w can be of the form [w1,x1,y1, w2,x2,y2,etc.]: draw rectwindows wi at given xi,yi positions. If flag!=0, the xi,yi express fractions of the size of the current output device.plotexport(fmt, list, {flag=0}): draw vector of rectwindows list as in plotdraw, returning the resulting picture as a character string; fmt is either "ps" or "svg".V=GGED0,M,D0,L,p
Parametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048; Complex|4096; No_MinMax|8192;ploth(X=a,b,expr,{flag=0},{n=0}): plot of expression expr, X goes from a to b in high resolution. Both flag and n are optional. Binary digits of flag mean: 1=Parametric, 2=Recursive, 4=no_Rescale, 8=no_X_axis, 16=no_Y_axis, 32=no_Frame, 64=no_Lines (do not join points), 128=Points_too (plot both lines and points), 256=Splines (use cubic splines), 512=no_X_ticks, 1024= no_Y_ticks, 2048=Same_ticks (plot all ticks with the same length), 4096=Complex (the two coordinates of each point are encoded as a complex number). n specifies number of reference points on the graph (0=use default value). Returns a vector for the bounding box.plothexportGV=GGED0,M,D0,L,p
Parametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048; Complex|4096plothexport(fmt, X=a,b,expr,{flags=0},{n=0}): plot of expression expr, X goes from a to b in high resolution, returning the resulting picture as a character string which can then be written to a file.plothraw(X,Y,{flag=0}): plot in high resolution points whose x (resp. y) coordinates are in X (resp. Y). If flag is 1, join points, other nonzero flags should be combinations of bits 8,16,32,64,128,256 meaning the same as for ploth().plothrawexportplothrawexport(fmt, X,Y,{flag=0}): plot in high resolution points whose x (resp. y) coordinates are in X (resp. Y), returning the resulting picture as a character string. If flag is 1, join points, other nonzero flags should be combinations of bits 8,16,32,64,128,256 meaning the same as for ploth().plothsizesplothsizes({flag=0}): returns array of 8 elements: terminal width and height, sizes for ticks in horizontal and vertical directions, width and height of characters, width and height of display (if applicable). If flag=0, sizes of ticks and characters are in pixels, otherwise are fractions of the terminal size.vLDGDGD0,L,plotinit(w,{x},{y},{flag=0}): initialize rectwindow w to size x,y. If flag!=0, x and y express fractions of the size of the current output device. Omitting x or y means use the full size of the device.plotkill(w): erase the rectwindow w.plotlines(w,X,Y,{flag=0}): draws an open polygon in rectwindow w where X and Y contain the x (resp. y) coordinates of the vertices. If X and Y are both single values (i.e not vectors), draw the corresponding line (and move cursor). If (optional) flag is nonzero, close the polygon.plotlinetypevLLplotlinetype(w,type): this function is obsolete; no graphing engine implement this functionality.vLGGplotmove(w,x,y): move cursor to position x,y in rectwindow w.plotpoints(w,X,Y): draws in rectwindow w the points whose x (resp y) coordinates are in X (resp Y). If X and Y are both single values (i.e not vectors), draw the corresponding point (and move cursor).plotpointsizevLGplotpointsize(w,size): change the "size" of following points in rectwindow w. w=-1 changes global value.plotpointtypeplotpointtype(w,type): this function is obsolete; no graphing engine implement this functionality.plotrbox(w,dx,dy,{filled}): if the cursor is at (x1,y1), draw a box with diagonal (x1,y1)-(x1+dx,y1+dy) in rectwindow w (cursor does not move). If filled=1, fill the box.LV=GGED0,M,D0,L,p
Parametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048; Complex|4096plotrecth(w,X=a,b,expr,{flag=0},{n=0}): writes to rectwindow w the curve output of ploth(w,X=a,b,expr,flag,n). Returns a vector for the bounding box.plotrecthrawLGD0,L,plotrecthraw(w,data,{flags=0}): plot graph(s) for data in rectwindow w, where data is a vector of vectors. If plot is parametric, length of data should be even, and pairs of entries give curves to plot. If not, first entry gives x-coordinate, and the other ones y-coordinates. Admits the same optional flags as plotrecth, save that recursive plot is meaningless.plotrline(w,dx,dy): if the cursor is at (x1,y1), draw a line from (x1,y1) to (x1+dx,y1+dy) (and move the cursor) in the rectwindow w.plotrmove(w,dx,dy): move cursor to position (dx,dy) relative to the present position in the rectwindow w.plotrpoint(w,dx,dy): draw a point (and move cursor) at position dx,dy relative to present position of the cursor in rectwindow w.vLGGGGplotscale(w,x1,x2,y1,y2): scale the coordinates in rectwindow w so that x goes from x1 to x2 and y from y1 to y2 (y2 0 if f = Phi_n, the n-th cyclotomic polynomial.poliscycloprodpoliscycloprod(f): returns 1 if f is a product of cyclotomic polynonials, and 0 otherwise.polisirreducible(pol): true(1) if pol is an irreducible nonconstant polynomial, false(0) if pol is reducible or constant.pollaguerreLDGDGD0,L,pollaguerre(n,{a=0},{b='x},{flag=0}): Laguerre polynomial of degree n and parameter a evaluated at b. If flag is 1, return [L^{(a)_{n-1}(b), L^{(a)}_n(b)].polleadpollead(x,{v}): leading coefficient of polynomial or series x, or x itself if x is a scalar. Error otherwise. With respect to the main variable of x if v is omitted, with respect to the variable v otherwise.pollegendre(n,{a='x},{flag=0}): legendre polynomial of degree n evaluated at a. If flag is 1, return [P_{n-1}(a), P_n(a)].LD0,L,DGDnD0,L,polmodular(L, {inv = 0}, {x = 'x}, {y = 'y}, {derivs = 0}): return the modular polynomial of level L and invariant inv.polrecip(pol): reciprocal polynomial of pol.GD0,L,DGpolred(T,{flag=0}): deprecated, use polredbest. Reduction of the polynomial T (gives minimal polynomials only). The following binary digits of (optional) flag are significant 1: partial reduction, 2: gives also elements.polredabs(T,{flag=0}): a smallest generating polynomial of the number field for the T2 norm on the roots, with smallest index for the minimal T2 norm. flag is optional, whose binary digit mean 1: give the element whose characteristic polynomial is the given polynomial. 4: give all polynomials of minimal T2 norm (give only one of P(x) and P(-x)).polredbestpolredbest(T,{flag=0}): reduction of the polynomial T (gives minimal polynomials only). If flag=1, gives also elements.polredord(x): this function is obsolete, use polredbest.polresultant(x,y,{v},{flag=0}): resultant of the polynomials x and y, with respect to the main variables of x and y if v is omitted, with respect to the variable v otherwise. flag is optional, and can be 0: default, uses either the subresultant algorithm, a modular algorithm or Sylvester's matrix, depending on the inputs; 1 uses Sylvester's matrix (should always be slower than the default).polresultantextpolresultantext(A,B,{v}): return [U,V,R] such that R=polresultant(A,B,v) and U*A+V*B = R, where A and B are polynomials.polroots(T): complex roots of the polynomial T using Schonhage's method, as modified by Gourdon.polrootsboundpolrootsbound(T, {tau = 0.01}): return a sharp upper bound for the modulus of the largest complex root of the polynomial T with relative error tau.polrootsffpolrootsff(x,{p},{a}): obsolete, use polrootsmod.polrootsmod(f,{D}): roots of the polynomial f over the finite field defined by the domain D.polrootspadic(f,p,r): p-adic roots of the polynomial f to precision r.polrootsrealpolrootsreal(T, {ab}): real roots of the polynomial T with real coefficients, using Uspensky's method. In interval ab = [a,b] if present.polsturm(T,{ab}): number of distinct real roots of the polynomial T (in the interval ab = [a,b] if present).LLDnpolsubcyclo(n,d,{v='x}): finds an equation (in variable v) for the d-th degree subfields of Q(zeta_n). Output is a polynomial, or a vector of polynomials if there are several such fields or none.polsubcyclofastGLD0,L,D0,L,polsubcyclofast(n,d,{s=0},{exact=0}): If 1 <= d <= 6 or a prime, finds an equation for the subfields of Q(zeta_n) with galois group C_d. Contrary to polsubcyclo, the output is always a (possibly empty) vector of polynomials. If s = 0 (default) all signatures, otherwise s = 1 (resp., -1) for totally real (resp., totally complex). Set exact = 1 for subfields of exact conductor n.polsylvestermatrix(x,y): forms the sylvester matrix attached to the two polynomials x and y. Warning: the polynomial coefficients are in columns, not in rows.polsym(x,n): column vector of symmetric powers of the roots of x up to n.poltchebipoltchebi(n,{v='x}): deprecated alias for polchebyshev.polteichmullerGULpolteichmuller(T,p,r): return the polynomial whose roots (resp. leading coef) are the Teichmuller lift of the roots (resp. leading coef) of T, to p-adic precision r.poltomonicpoltomonic(T,{&L}): T in Q[x]; return U monic in Z[x] such that U(x) = C T(x/L) for some rational C and L. If &L is given, set it to L.poltschirnhaus(x): random Tschirnhausen transformation of the polynomial x.LGD0,L,ppolylog(m,x,{flag=0}): m-th polylogarithm of x. flag is optional, and can be 0: default, 1: D_m~-modified m-th polylog of x, 2: D_m-modified m-th polylog of x, 3: P_m-modified m-th polylog of x.polylogmultpolylogmult(s,{z},{t=0}): multiple polylogarithm value at integral s = [s1,...,sr] with argument z = [z1,...,zr]. If z is omitted, assume z = [1,...,1], i.e., multiple zeta value. More generally, return Yamamoto's interpolation at t (ordinary multiple polylog at t = 0 and star value at t = 1).polzagier(n,m): Zagier's polynomials of index n,m.powerspowers(x,n,{x0}): return the vector [1,x,...,x^n] if x0 is omitted, and [x0, x0*x, ..., x0*x^n] otherwise.precision(x,{n}): if n is present, return x at precision n. If n is omitted, return real precision of object x.precprimeprecprime(x): largest pseudoprime <= x, 0 if x<=1.prime(n): returns the n-th prime (n C-integer).primecertprimecert(N, {flag=0}, {partial=0}): If N is a prime, return a Primality Certificate. Return 0 otherwise. If flag = 0 return an ECPP certificate (Atkin-Morain); if flag = 1 return an N-1 certificate (Pocklington-Lehmer)primecertexportprimecertexport(cert, {format = 0}): Returns a string suitable for print/write to display a primality certificate.primecertisvalidprimecertisvalid(cert): Verifies if cert is a valid PARI ECPP Primality certificate.primepiprimepi(x): the prime counting function pi(x) = #{p <= x, p prime}.primes(n): returns the vector of the first n primes (integer), or the primes in interval n = [a,b].print({str}*): outputs its string arguments (in raw format) ending with a newline.print1({str}*): outputs its string arguments (in raw format) without ending with newline.printfvss*printf(fmt,{x}*): prints its arguments according to the format fmt.printpprintp({str}*): outputs its string arguments (in prettymatrix format) ending with a newline.printsepprintsep(sep,{str}*): outputs its string arguments (in raw format), separated by 'sep', ending with a newline.printsep1printsep1(sep,{str}*): outputs its string arguments (in raw format), separated by 'sep', without ending with a newline.printtex({str}*): outputs its string arguments in TeX format.prod(X=a,b,expr,{x=1}): x times the product (X runs from a to b) of expression.V=GGEpprodeuler(p=a,b,expr): Euler product (p runs over the primes between a and b) of real or complex expression, as a floating point approximation.GDGD2,L,pprodeulerrat(F,{s=1},{a=2}): product from primes p = a to infinity of F(p^s), where F is a rational function.V=GED0,L,pprodinf(X=a,expr,{flag=0}): infinite product (X goes from a to infinity) of real or complex expression. flag can be 0 (default) or 1, in which case compute the product of the 1+expr instead.prodnumrat(F,a): product from n = a to infinity of F(n), where F-1 is a rational function of degree less than or equal to -2.psdraw(list, {flag=0}): obsolete function.psi(x): psi-function at x.V=GGED0,M,D0,L,p
Parametric|1; Recursive|2; no_Rescale|4; no_X_axis|8; no_Y_axis|16; no_Frame|32; no_Lines|64; Points_too|128; Splines|256; no_X_ticks|512; no_Y_ticks|1024; Same_ticks|2048; Complex|4096psploth(X=a,b,expr,{flags=0},{n=0}): obsolete function.psplothraw(listx,listy,{flag=0}): obsolete function.qfautoqfauto(G,{fl}): automorphism group of the positive definite quadratic form G.qfautoexportqfautoexport(qfa,{flag}): qfa being an automorphism group as output by qfauto, output a string representing the underlying matrix group in GAP notation (default) or Magma notation (flag = 1).qfbclassno(D,{flag=0}): class number of discriminant D using Shanks's method by default. If (optional) flag is set to 1, use Euler products.qfbcompqfbcomp(x,y): Gaussian composition with reduction of the binary quadratic forms x and y.qfbcompraw(x,y): Gaussian composition without reduction of the binary quadratic forms x and y.qfbcornacchiaqfbcornacchia(d,n): Solve the equation x^2+dy^2 = n in integers x and y where d > 0 and n is prime or 4 times a prime.qfbhclassno(x): Hurwitz-Kronecker class number of x>0.qfbilqfbil(x,y,{q}): this function is obsolete, use qfeval.qfbnucomp(x,y,L): composite of primitive positive definite quadratic forms x and y using nucomp and nudupl, where L=[|D/4|^(1/4)] is precomputed.qfbnupow(x,n,{L}): n-th power of primitive positive definite quadratic form x using nucomp and nudupl.qfbpowqfbpow(x,n): n-th power with reduction of the binary quadratic form x.qfbpowraw(x,n): n-th power without reduction of the binary quadratic form x.qfbprimeform(x,p): returns the prime form of discriminant x, whose first coefficient is p.GD0,L,DGDGqfbred(x,{flag=0},{isd},{sd}): reduction of the binary quadratic form x. All other args. are optional. The argument isd and sd, if present, supply the values of floor(sqrt(d)) and sqrt(d) respectively, where d is the discriminant. If d<0, its value is not used and all references to Shanks's distance hereafter are meaningless. flag can be any of 0: default; 1: do a single reduction step;qfbredsl2qfbredsl2(x,{isD}): reduction of the binary quadratic form x, return [y,g] where y is reduced and g in Sl(2,Z) is such that g.x = y; isD, if present, must be equal to sqrtint(D), where D > 0 is the discriminant of x.qfbsolveqfbsolve(Q,n,{flag=0}): Solve the equation Q(x,y)=n in coprime integers x and y where Q is a binary quadratic form, up to the action of the special orthogonal group of Q over the integers. Binary digits of flag mean 1: return all solutions, 2: also include imprimitive solutions.qfevalDGGDGqfeval({q},x,{y}): evaluate the quadratic form q (symmetric matrix) at x; if y is present, evaluate the polar form at (x,y); if q omitted, use the standard Euclidean form.qfgaussred(q): square reduction of the (symmetric) matrix q (returns a square matrix whose i-th diagonal term is the coefficient of the i-th square in which the coefficient of the i-th variable is 1).GGDGDGqfisom(G,H,{fl},{grp}): find an isomorphism between the integral positive definite quadratic forms G and H if it exists. G can also be given by a qfisominit structure which is preferable if several forms need to be compared to G.qfisominitqfisominit(G,{fl},{m}): G being a square and symmetric matrix representing an integral positive definite quadratic form, this function returns a structure allowing to compute isomorphisms between G and other quadratic form faster.qfjacobi(A): eigenvalues and orthogonal matrix of eigenvectors of the real symmetric matrix A.qflll(x,{flag=0}): LLL reduction of the vectors forming the matrix x (gives the unimodular transformation matrix T such that x*T is LLL-reduced). flag is optional, and can be 0: default, 1: assumes x is integral, 2: assumes x is integral, returns a partially reduced basis, 4: assumes x is integral, returns [K,T] where K is the integer kernel of x and T the LLL reduced image, 5: same as 4 but x may have polynomial coefficients, 8: same as 0 but x may have polynomial coefficients.qflllgram(G,{flag=0}): LLL reduction of the lattice whose gram matrix is G (gives the unimodular transformation matrix). flag is optional and can be 0: default,1: assumes x is integral, 4: assumes x is integral, returns [K,T], where K is the integer kernel of x and T the LLL reduced image, 5: same as 4 but x may have polynomial coefficients, 8: same as 0 but x may have polynomial coefficients.GDGDGD0,L,pqfminim(x,{B},{m},{flag=0}): x being a square and symmetric matrix representing a positive definite quadratic form, this function deals with the vectors of x whose norm is less than or equal to B, enumerated using the Fincke-Pohst algorithm, storing at most m vectors (no limit if m is omitted). The function searches for the minimal nonzero vectors if B is omitted. The precise behavior depends on flag. 0: returns at most 2m vectors (unless m omitted), returns [N,M,V] where N is the number of vectors enumerated, M the maximum norm among these, and V lists half the vectors (the other half is given by -V). 1: ignores m and returns the first vector whose norm is less than B. 2: as 0 but uses a more robust, slower implementationqfminimizeqfminimize(G): given a square symmetric matrix G with rational coefficients and non-zero determinant, of dimension n >= 1, return [H,U] such that H = c * U~*G*U for some rational c, and H integral with minimal determinant.qfnormqfnorm(x,{q}): this function is obsolete, use qfeval.qforbitsqforbits(G,V): return the orbits of V under the action of the group of linear transformation generated by the set G, which must stabilize V.qfparamqfparam(G, sol, {flag = 0}): coefficients of binary quadratic forms that parametrize the solutions of the ternary quadratic form G, using the particular solution sol.qfperfection(G): rank of matrix of xx~ for x minimal vectors of a Gram matrix G.qfrepqfrep(q,B,{flag=0}): vector of (half) the number of vectors of norms from 1 to B for the integral and definite quadratic form q. If flag is 1, count vectors of even norm from 1 to 2B.qfsign(x): signature of the symmetric matrix x.qfsolve(G): solve over Q the quadratic equation X^t G X = 0, where G is a symmetric matrix.quadclassunit(D,{flag=0},{tech=[]}): compute the structure of the class group and the regulator of the quadratic field of discriminant D. See manual for the optional technical parameters.quaddisc(x): discriminant of the quadratic field Q(sqrt(x)).quadgen(D,{v = 'w}): standard generator g of quadratic order of discriminant D. If v is given, the variable name is used to display g, else 'w' is used.quadhilbertquadhilbert(D): relative equation for the Hilbert class field of the quadratic field of discriminant D (which can also be a bnf).quadpoly(D,{v='x}): quadratic polynomial corresponding to the discriminant D, in variable v.quadray(D,f): relative equation for the ray class field of conductor f for the quadratic field of discriminant D (which can also be a bnf).quadregulator(D): regulator of the real quadratic field of discriminant D.quadunit(D,{v = 'w}): fundamental unit u of the quadratic order of discriminant D where D must be positive. If v is given, the variable name is used to display u, else 'w' is used.quadunitindexquadunitindex(D, f): given a fundamental discriminant D, return the index of the unit group of the order of conductor f.quadunitnormquadunitnorm(D): return the norm of the fundamental unit of the quadratic order of discriminant D.ramanujantauGD12,L,ramanujantau(n,{ell=12}): compute the value of Ramanujan's tau function at n, assuming the GRH. If ell is 16, 18, 20, 22, or 26, same for the newform of level 1 and corresponding weight. Otherwise, compute the coefficient of the trace form at n. Algorithm in O(n^{1/2+eps}).random({N=2^31}): random object, depending on the type of N. Integer between 0 and N-1 (t_INT), int mod N (t_INTMOD), element in a finite field (t_FFELT), point on an elliptic curve (ellinit mod p or over a finite field).randomprimeDGDGrandomprime({N = 2^31}, {q}): returns a strong pseudo prime in [2, N-1]. If q is an integer, return a prime = 1 mod q; if q is an intmod, return a prime in the given congruence class.D"",s,read({filename}): read from the input file filename. If filename is omitted, reread last input file, be it from read() or \r.readstrreadstr({filename}): returns the vector of GP strings containing the lines in filename.readvecreadvec({filename}): create a vector whose components are the evaluation of all the expressions found in the input file filename.real(x): real part of x.removeprimesremoveprimes({x=[]}): remove primes in the vector x from the prime table. x can also be a single integer. List the current extra primes if x is omitted.returnreturn({x=0}): return from current subroutine with result x.rnfalgtobasisrnfalgtobasis(rnf,x): relative version of nfalgtobasis, where rnf is a relative numberfield.rnfbasis(bnf,M): given a projective Z_K-module M as output by rnfpseudobasis or rnfsteinitz, gives either a basis of M if it is free, or an n+1-element generating set.rnfbasistoalgrnfbasistoalg(rnf,x): relative version of nfbasistoalg, where rnf is a relative numberfield.rnfcharpolyGGGDnrnfcharpoly(nf,T,a,{var='x}): characteristic polynomial of a over nf, where a belongs to the algebra defined by T over nf. Returns a polynomial in variable var (x by default).rnfconductorrnfconductor(bnf,T,{flag=0}): conductor of the Abelian extension of bnf defined by T. The result is [conductor,bnr,subgroup], where conductor is the conductor itself, bnr the attached bnr structure, and subgroup the HNF defining the norm group (Artin or Takagi group) on the given generators bnr.gen. If flag is 1, return a bnr modulo deg(T), attached to Cl_f / (deg(T)); if flag is 2 only return [f, idealfactor(f[1])].rnfdedekindrnfdedekind(nf,pol,{pr},{flag=0}): relative Dedekind criterion over the number field K, represented by nf, applied to the order O_K[X]/(P), modulo the prime ideal pr (at all primes if pr omitted, in which case flag is automatically set to 1). P is assumed to be monic, irreducible, in O_K[X]. Returns [max,basis,v], where basis is a pseudo-basis of the enlarged order, max is 1 iff this order is pr-maximal, and v is the valuation at pr of the order discriminant. If flag is set, just return 1 if the order is maximal, and 0 if not.rnfdetrnfdet(nf,M): given a pseudo-matrix M, compute its determinant.rnfdisc(nf,T): given a polynomial T with coefficients in nf, gives a 2-component vector [D,d], where D is the relative ideal discriminant, and d is the relative discriminant in nf^*/nf*^2.rnfeltabstorelrnfeltabstorel(rnf,x): transforms the element x from absolute to relative representation.rnfeltdownrnfeltdown(rnf,x,{flag=0}): expresses x on the base field if possible; returns an error otherwise.rnfeltnormrnfeltnorm(rnf,x): returns the relative norm N_{L/K}(x), as an element of K.rnfeltreltoabsrnfeltreltoabs(rnf,x): transforms the element x from relative to absolute representation.rnfelttracernfelttrace(rnf,x): returns the relative trace Tr_{L/K}(x), as an element of K.rnfeltuprnfeltup(rnf,x,{flag=0}): expresses x (belonging to the base field) on the relative field. As a t_POLMOD if flag = 0 and as a t_COL on the absolute field integer basis if flag = 1.rnfequation(nf,pol,{flag=0}): given a pol with coefficients in nf, gives an absolute equation z of the number field defined by pol. flag is optional, and can be 0: default, or nonzero, gives [z,al,k], where z defines the absolute equation L/Q as in the default behavior, al expresses as an element of L a root of the polynomial defining the base field nf, and k is a small integer such that t = b + k al is a root of z, for b a root of pol.rnfhnfbasis(bnf,M): given a bnf attached to a number field K and a projective Z_K module M given by a pseudo-matrix, returns either a true HNF basis of M if one exists, or zero otherwise. If M is a polynomial with coefficients in K, replace it by the pseudo-matrix returned by rnfpseudobasis.rnfidealabstorelrnfidealabstorel(rnf,x): transforms the ideal x from absolute to relative representation.rnfidealdownrnfidealdown(rnf,x): finds the intersection of the ideal x with the base field.rnfidealfactorrnfidealfactor(rnf,x): factor the ideal x into prime ideals in the number field nfinit(rnf).rnfidealhnfrnfidealhnf(rnf,x): relative version of idealhnf, where rnf is a relative numberfield.rnfidealmulrnfidealmul(rnf,x,y): relative version of idealmul, where rnf is a relative numberfield.rnfidealnormabsrnfidealnormabs(rnf,x): absolute norm of the ideal x.rnfidealnormrelrnfidealnormrel(rnf,x): relative norm of the ideal x.rnfidealprimedecrnfidealprimedec(rnf,pr): return prime ideal decomposition of the maximal ideal pr of K in L/K; pr is also allowed to be a prime number p, in which case return a pair of vectors [SK,SL], where SK contains the primes of K above p and SL[i] is the vector of primes of L above SK[i].rnfidealreltoabsrnfidealreltoabs(rnf,x,{flag=0}): transforms the ideal x from relative to absolute representation. As a vector of t_POLMODs if flag = 0 and as an ideal in HNF in the absolute field if flag = 1.rnfidealtwoeltrnfidealtwoelt(rnf,x): relative version of idealtwoelt, where rnf is a relative numberfield.rnfidealuprnfidealup(rnf,x,{flag=0}): lifts the ideal x (of the base field) to the relative field. As a vector of t_POLMODs if flag = 0 and as an ideal in HNF in the absolute field if flag = 1.rnfinitrnfinit(nf,T,{flag=0}): T being an irreducible polynomial defined over the number field nf, initializes a vector of data necessary for working in relative number fields (rnf functions). See manual for technical details.rnfisabelianrnfisabelian(nf,T): T being a relative polynomial with coefficients in nf, return 1 if it defines an abelian extension, and 0 otherwise.rnfisfree(bnf,M): given a bnf attached to a number field K and a projective Z_K module M given by a pseudo-matrix, return true (1) if M is free else return false (0).rnfislocalcyclornfislocalcyclo(rnf): true(1) if the l-extension attached to rnf is locally cyclotomic (locally contained in the Z_l extension of K_v at all places v | l), false(0) if not.rnfisnormrnfisnorm(T,a,{flag=0}): T is as output by rnfisnorminit applied to L/K. Tries to tell whether a is a norm from L/K. Returns a vector [x,q] where a=Norm(x)*q. Looks for a solution which is a S-integer, with S a list of places in K containing the ramified primes, generators of the class group of ext, as well as those primes dividing a. If L/K is Galois, you may omit flag, otherwise it is used to add more places to S: all the places above the primes p <= flag (resp. p | flag) if flag > 0 (resp. flag < 0). The answer is guaranteed (i.e a is a norm iff q=1) if L/K is Galois or, under GRH, if S contains all primes less than 12.log(disc(M))^2, where M is the normal closure of L/K.rnfisnorminitGGD2,L,rnfisnorminit(pol,polrel,{flag=2}): let K be defined by a root of pol, L/K the extension defined by polrel. Compute technical data needed by rnfisnorm to solve norm equations Nx = a, for x in L, and a in K. If flag=0, do not care whether L/K is Galois or not; if flag = 1, assume L/K is Galois; if flag = 2, determine whether L/K is Galois.rnfkummerrnfkummer(bnr,{subgp}): this function is deprecated. Use bnrclassfield.rnflllgram(nf,pol,order): given a pol with coefficients in nf and an order as output by rnfpseudobasis or similar, gives [[neworder],U], where neworder is a reduced order and U is the unimodular transformation matrix.rnfnormgrouprnfnormgroup(bnr,pol): norm group (or Artin or Takagi group) corresponding to the Abelian extension of bnr.bnf defined by pol, where the module corresponding to bnr is assumed to be a multiple of the conductor. The result is the HNF defining the norm group on the generators in bnr.gen.rnfpolred(nf,pol): given a pol with coefficients in nf, finds a list of relative polynomials defining some subfields, hopefully simpler.rnfpolredabsrnfpolredabs(nf,pol,{flag=0}): given an irreducible pol with coefficients in nf, finds a canonical relative polynomial defining the same field. Binary digits of flag mean: 1: return also the element whose characteristic polynomial is the given polynomial, 2: return an absolute polynomial, 16: partial reduction.rnfpolredbestrnfpolredbest(nf,pol,{flag=0}): given a pol with coefficients in nf, finds a relative polynomial P defining the same field, hopefully simpler than pol; flag can be 0: default, 1: return [P,a], where a is a root of pol 2: return an absolute polynomial Pabs, 3: return [Pabs, a,b], where a is a root of nf.pol and b is a root of pol.rnfpseudobasis(nf,T): given an irreducible polynomial T with coefficients in nf, returns [A,J,D,d] where [A,J] is a pseudo basis of the maximal order of the extension, D is the relative ideal discriminant, and d is the relative discriminant in nf^*/nf*^2.rnfsteinitz(nf,M): given a nf attached to a number field K and a projective module M given by a pseudo-matrix, returns [A,I,D,d] where (A,I) is a pseudo basis for M where all the ideals except perhaps the last are trivial. If M is a polynomial with coefficients in K, replace it by the pseudo-matrix returned by rnfpseudobasis.rootsof1(N): column vector of complex N-th roots of 1.round(x,{&e}): take the nearest integer to all the coefficients of x. If e is present, do not take into account loss of integer part precision, and set e = error estimate in bits.selectselect(f, A, {flag = 0}): selects elements of A according to the selection function f. If flag is 1, return the indices of those elements (indirect selection).selfself(): return the calling function or closure. Useful for defining anonymous recursive functions.seralgdepseralgdep(s,p,r): find a linear relation between powers (1,s, ..., s^p) of the series s, with polynomial coefficients of degree <= r.serchopserchop(s,{n=0}): remove all terms of degree strictly less than n in series s.serconvol(x,y): convolution (or Hadamard product) of two power series.serdiffdepserdiffdep(s,p,r): find an inhomogenous linear differential equation satisfied by the series s, with polynomial coefficients of degree <= r. The result is a pair [E,P] such that E(d)(S)=P where E(d) is interpreted as a differential polynomial.serlaplace(x): replaces the power series sum of a_n*x^n/n! by sum of a_n*x^n. For the reverse operation, use serconvol(x,exp(X)).serprecGnserprec(x,v): return the absolute precision x with respect to power series in the variable v.serreverse(s): reversion of the power series s.setbinopsetbinop(f,X,{Y}): the set {f(x,y), x in X, y in Y}. If Y is omitted, assume that X = Y and that f is symmetric.setdebugDsD-1,L,setdebug({D},{n}): set debug level for domain D to n (n must be between 0 and 20). If n is omitted, return the current level for domain D. if D is omitted, return a two-column matrix which lists the available domains with their levels.setdeltasetdelta(x,y): symmetric difference of the sets x and y.setintersect(x,y): intersection of the sets x and y.setisset(x): true(1) if x is a set (row vector with strictly increasing entries), false(0) if not.setminus(x,y): set of elements of x not belonging to y.setrand(n): reset the seed of the random number generator to n.setsearch(S,x,{flag=0}): determines whether x belongs to the set (or sorted list) S. If flag is 0 or omitted, returns 0 if it does not, otherwise returns the index j such that x==S[j]. If flag is nonzero, return 0 if x belongs to S, otherwise the index j where it should be inserted.setunion(x,y): union of the sets x and y.shift(x,n): shift x left n bits if n>=0, right -n bits if n<0.shiftmul(x,n): multiply x by 2^n (n>=0 or n<0).sigma(x,{k=1}): sum of the k-th powers of the divisors of x. k is optional and if omitted is assumed to be equal to 1.sign(x): sign of x, of type integer, real or fraction.simplify(x): simplify the object x as much as possible.sin(x): sine of x.sincsinc(x): sinc function of x.sinh(x): hyperbolic sine of x.sizebyte(x): number of bytes occupied by the complete tree of the object x.sizedigit(x): rough upper bound for the number of decimal digits of (the components of) x. DEPRECATED.snfranksnfrank(D,q): assuming that D is a Smith normal form (i.e. vector of elementary divisors) for some module and q a power of an irreducible element or 0, return the rank of D/qD.solve(X=a,b,expr): real root of expression expr (X between a and b), where either a or b is infinite or expr(a)*expr(b)<=0.V=GGGED0,L,psolvestep(X=a,b,step,expr,{flag=0}): find zeros of a function in the real interval [a,b] by naive interval splitting.sqr(x): square of x. NOT identical to x*x.sqrt(x): square root of x.sqrtint(x,{&r}): integer square root y of x, where x is a nonnegative real number. If r is present, set it to the remainder x - y^2.sqrtnGGD&psqrtn(x,n,{&z}): nth-root of x, n must be integer. If present, z is set to a suitable root of unity to recover all solutions. If it was not possible, z is set to zero.sqrtnintsqrtnint(x,n): integer n-th root of x, where x is nonnegative real number.stirlingLLD1,L,stirling(n,k,{flag=1}): if flag=1 (default) return the Stirling number of the first kind s(n,k), if flag=2, return the Stirling number of the second kind S(n,k).strchrstrchr(x): converts integer or vector of integers x to a string, translating each integer into a character using ASCII encoding.strexpandstrexpand({x}*): concatenates its (string) arguments into a single string, performing tilde expansion.strjoin(v,{p = ""}): joins the strings in vector v, separating them with delimiter p.strprintfstrprintf(fmt,{x}*): returns a string built from the remaining arguments according to the format fmt.strsplit(s,{p = ""}): splits the string s into a vector of strings, with p acting as a delimiter between successive fields; if p is empty or omitted, split into characters.strtexstrtex({x}*): translates its (string) arguments to TeX format and returns the resulting string.strtimestrtime(t): return a string describing the time t in milliseconds, in the format used by the GP timer.subcyclohminussubcyclohminus(fH, {p=0}): Let F be the abelian number field contained in Q(zeta_f) corresponding to the subgroup H of (Z/fZ)^*. Let h be the relative class number h^-(F) and Q the Hasse unit index in {1,2}. If Q could be computed, return [h, Q]; else return [2h/Q, 0].subcycloiwasawasubcycloiwasawa(fH, p, {n=0}): Let F be the abelian number field contained in Q(zeta_f) corresponding to the subgroup H of (Z/fZ)^*. Returns the minus part of Iwasawa polynomials attached to the cyclotomic Z_p extension of F.subcyclopclgpsubcyclopclgp(fH, p, {flag=0}): Let F be the abelian number field contained in Q(zeta_f) corresponding to the subgroup H of (Z/fZ)^*. Returns the minus part of Iwasawa polynomials attached to the ideal class group of F.subgrouplist(cyc,{bound},{flag=0}): cyc being any object which has a '.cyc' method giving the cyclic components for a finite Abelian group G, outputs the list of subgroups of G (of index bounded by bound, if not omitted), given as HNF left divisors of the SNF matrix corresponding to G. If flag=0 (default) and 'cyc' is a bnr struture output by bnrinit, gives only the subgroups for which the modulus is the conductor.GnGsubst(x,y,z): in expression x, replace the variable y by the expression z.substpolsubstpol(x,y,z): in expression x, replace the polynomial y by the expression z, using remainder decomposition of x.substvecsubstvec(x,v,w): in expression x, make a best effort to replace the variables v1,...,vn by the expression w1,...,wn.sum(X=a,b,expr,{x=0}): x plus the sum (X goes from a to b) of expression expr.sumalt(X=a,expr,{flag=0}): Cohen-Villegas-Zagier's acceleration of alternating series expr, X starting at a. flag is optional, and can be 0: default, or 1: uses a slightly different method using Zagier's polynomials.sumdedekindsumdedekind(h,k): Dedekind sum attached to h,k.sumdigitssumdigits(n,{B=10}): sum of digits in the integer |n|, when written in base B.GVEsumdiv(n,X,expr): sum of expression expr, X running over the divisors of n.sumdivmultsumdivmult(n,d,expr): sum of multiplicative function expr, d running over the divisors of n.sumeulerrat(F,{s=1},{a=2}): sum from primes p = a to infinity of F(p^s), where F is a rational function.sumformalsumformal(f,{v}): formal sum of f with respect to v, or to the main variable of f if v is omitted.V=GEbsuminf(X=a,expr): naive summation (X goes from a to infinity) of real or complex expression expr.sumnum(n=a,f,{tab}): numerical summation of f(n) from n = a to +infinity using Euler-MacLaurin summation. Assume that f corresponds to a series with positive terms and is a C^oo function; a must be an integer, and tab, if given, is the output of sumnuminit.sumnumap(n=a,f,{tab}): numerical summation of f(n) from n = a to +infinity using Abel-Plana formula. Assume that f is holomorphic in the right half-plane Re(z) > a; a must be an integer, and tab, if given, is the output of sumnumapinit.sumnumapinitDGpsumnumapinit({asymp}): initialize tables for Abel-Plana summation of a series.sumnuminitsumnuminit({asymp}): initialize tables for Euler-MacLaurin delta summation of a series with positive terms.sumnumlagrange(n=a,f,{tab}): numerical summation of f(n) from n = a to +infinity using Lagrange summation. a must be an integer, and tab, if given, is the output of sumnumlagrangeinit.DGDGpsumnumlagrangeinit({asymp}, {c1}): initialize tables for Lagrange summation of a series.sumnummonien(n=a,f,{tab}): numerical summation from n = a to +infinity using Monien summation.DGDGDGpsumnummonieninit({asymp},{w},{n0 = 1}): initialize tables for Monien summation of a series with positive terms.sumnumrat(F,a): sum from n = a to infinity of F(n), where F is a rational function of degree less than or equal to -2.V=GED1,L,psumnumsidi(n=a,f,{safe=1}): numerical summation of f(n) from n = a to +infinity using Sidi summation; a must be an integer. If safe is set to 0, the function is faster but much less robust.sumpos(X=a,expr,{flag=0}): sum of positive (or negative) series expr, the formal variable X starting at a. flag is optional, and can be 0: default, or 1: uses a slightly different method using Zagier's polynomials.system(str): str being a string, execute the system command str.tan(x): tangent of x.tanh(x): hyperbolic tangent of x.GnDPtaylor(x,t,{d=seriesprecision}): taylor expansion of x with respect to t, adding O(t^d) to all components of x.teichmuller(x,{tab}): Teichmuller character of p-adic number x. If x = [p,n], return the lifts of all teichmuller(i + O(p^n)) for i = 1, ..., p-1. Such a vector can be fed back to teichmuller, as the optional argument tab, to speed up later computations.theta(q,z): Jacobi sine theta-function.thetanullk(q,k): k-th derivative at z=0 of theta(q,z).thue(tnf,a,{sol}): solve the equation P(x,y)=a, where tnf was created with thueinit(P), and sol, if present, contains the solutions of Norm(x)=a modulo units in the number field defined by P. If tnf was computed without assuming GRH (flag 1 in thueinit), the result is unconditional. If tnf is a polynomial, compute thue(thueinit(P,0), a).thueinit(P,{flag=0}): initialize the tnf corresponding to P, that will be used to solve Thue equations P(x,y) = some-integer. If flag is nonzero, certify the result unconditionally. Otherwise, assume GRH (much faster of course).trace(x): trace of x.trapDrDEDEtrap({e}, {rec}, seq): this function is obsolete, use "iferr". Try to execute seq, trapping runtime error e (all of them if e omitted); sequence rec is executed if the error occurs and is the result of the command.truncate(x,{&e}): truncation of x; when x is a power series,take away the O(X^). If e is present, do not take into account loss of integer part precision, and set e = error estimate in bits.type(x): return the type of the GEN x.unexportunexport(x,...,z): remove x,...,z from the list of variables exported to the parallel world.unexportallunexportall(): empty the list of variables exported to the parallel world.uninlineuninline(): forget all inline variables. DEPRECATED, use export.vEIuntil(a,seq): evaluate the expression sequence seq until a is nonzero.valuation(x,{p}): valuation of x with respect to p.varhighersDnvarhigher(name,{v}): return a variable 'name' whose priority is higher than the priority of v (of all existing variables if v is omitted).variable({x}): main variable of object x. Gives p for p-adic x, 0 if no variable can be attached to x. Returns the list of user variables if x is omitted.variablesvariables({x}): all variables occurring in object x, sorted by decreasing priority. Returns the list of user variables if x is omitted.varlowervarlower(name,{v}): return a variable 'name' whose priority is lower than the priority of v (of all existing variables if v is omitted.vecextract(x,y,{z}): extraction of the components of the matrix or vector x according to y and z. If z is omitted, y represents columns, otherwise y corresponds to rows and z to columns. y and z can be vectors (of indices), strings (indicating ranges as in "1..10") or masks (integers whose binary representation indicates the indices to extract, from left to right 1, 2, 4, 8, etc.).vecmax(x,{&v}): largest entry in the vector/matrix x. If v is present, set it to the index of a largest entry (indirect max).vecmin(x,{&v}): smallest entry in the vector/matrix x. If v is present, set it to the index of a smallest entry (indirect min).vecprodvecprod(v): return the product of the components of the vector v.vecsearchvecsearch(v,x,{cmpf}): determines whether x belongs to the sorted vector v. If the comparison function cmpf is explicitly given, assume that v was sorted according to vecsort(, cmpf).vecsort(x,{cmpf},{flag=0}): sorts the vector of vectors (or matrix) x in ascending order, according to the comparison function cmpf, if not omitted. (If cmpf is an integer k, sort according to the value of the k-th component of each entry.) Binary digits of flag (if present) mean: 1: indirect sorting, return the permutation instead of the permuted vector, 4: use descending instead of ascending order, 8: remove duplicate entries.vecsumvecsum(v): return the sum of the components of the vector v.GDVDEvector(n,{X},{expr=0}): row vector with n components of expression expr (X ranges from 1 to n). By default, fills with 0s.vectorsmall(n,{X},{expr=0}): VECSMALL with n components of expression expr (X ranges from 1 to n) which must be small integers. By default, fills with 0s.vectorv(n,{X},{expr=0}): column vector with n components of expression expr (X ranges from 1 to n). By default, fill with 0s.version(): returns the PARI version as [major,minor,patch] or [major,minor,patch,GITversion].warningwarning({str}*): display warning message str.weber(x,{flag=0}): one of Weber's f function of x. flag is optional, and can be 0: default, function f(x)=exp(-i*Pi/24)*eta((x+1)/2)/eta(x), 1: function f1(x)=eta(x/2)/eta(x) 2: function f2(x)=sqrt(2)*eta(2*x)/eta(x). Note that j = (f^24-16)^3/f^24 = (f1^24+16)^3/f1^24 = (f2^24+16)^3/f2^24.while(a,seq): while a is nonzero evaluate the expression sequence seq. Otherwise 0.writewrite(filename,{str}*): appends the remaining arguments (same output as print) to filename.write1write1(filename,{str}*): appends the remaining arguments (same output as print1) to filename.writebinvsDGwritebin(filename,{x}): write x as a binary object to file filename. If x is omitted, write all session variables.writetexwritetex(filename,{str}*): appends the remaining arguments (same format as print) to filename, in TeX format.zeta(s): Riemann zeta function at s with s a complex or a p-adic number.zetahurwitzzetahurwitz(s,x,{der=0}): Hurwitz zeta function at s, x, with s not 1 and x not a negative or zero integer. s can be a scalar, polynomial, rational function, or power series. If der>0, compute the der'th derivative with respect to s.zetamult(s,{t=0}): multiple zeta value at integral s = [s1,...,sk]; more generally, return Yamamoto's t-MZV interpolation (star value for t = 1).zetamultallLD0,L,pzetamultall(k,{flag=0}): list of all multiple zeta values for weight up to k. Binary digits of flag mean: 0 = zetastar values if set, 1 = values up to duality if set, 2 = values of weight k if set (else all values up to weight k), 3 = return the 2-component vector [Z, M], where M is the vector of the corresponding indices m, i.e., such that zetamult(M[i]) = Z[i].zetamultconvertzetamultconvert(a,{fl=1}): a being either an evec, avec, or index m, converts into evec (fl=0), avec (fl=1), or index m (fl=2).zetamultdualzetamultdual(s): s being either an evec, avec, or index m, return the dual sequence in avec format.zncharznchar(D): given a datum D describing a group G = (Z/NZ)^* and a Dirichlet character chi, return the pair [G,chi].zncharconductorzncharconductor(G,chi): let G be znstar(q,1) and chi be a Dirichlet character on (Z/qZ)*. Return the conductor of chi.znchardecomposeznchardecompose(G, chi, Q): given a znstar G = (Z/NZ)^* and a Dirichlet character chi, return the product of local characters chi_p for p | (N,Q).znchargaussznchargauss(G, chi, {a=1}): given a Dirichlet character chi on G = (Z/NZ)^*, return the complex Gauss sum g(chi,a).zncharinducezncharinduce(G, chi, N): let G be znstar(q,1), let chi be a Dirichlet character mod q and let N be a multiple of q. Return the character modulo N extending chi.zncharisoddzncharisodd(G, chi): let G be znstar(N,1), let chi be a Dirichlet character mod N, return 1 if and only if chi(-1) = -1 and 0 otherwise.znchartokroneckerznchartokronecker(G, chi, {flag=0}): let G be znstar(N,1), let chi be a Dirichlet character mod N, return the discriminant D if chi is real equal to the Kronecker symbol (D/.) and 0 otherwise. If flag is set, return the fundamental discriminant attached to the corresponding primitive character.znchartoprimitiveznchartoprimitive(G,chi): let G be znstar(q,1) and chi be a Dirichlet character on (Z/qZ)* of conductor q0. Return [G0,chi0], where chi0 is the primitive character attached to chi and G0 is znstar(q0).znconreycharznconreychar(G,m): Dirichlet character attached to m in (Z/qZ)* in Conrey's notation, where G is znstar(q,1).znconreyconductorznconreyconductor(G,chi, {&chi0}): let G be znstar(q,1) and chi be a Dirichlet character on (Z/qZ)* given by its Conrey logarithm. Return the conductor of chi, and set chi0 to (the Conrey logarithm of) the attached primitive character. If chi0 != chi, return the conductor and its factorization.znconreyexpznconreyexp(G, chi): Conrey exponential attached to G = znstar(q, 1). Returns the element m in (Z/qZ)^* attached to the character chi on G: znconreylog(G, m) = chi.znconreylogznconreylog(G,m): Conrey logarithm attached to m in (Z/qZ)*, where G is znstar(q,1).zncoppersmithzncoppersmith(P, N, X, {B=N}): finds all integers x with |x| <= X such that gcd(N, P(x)) >= B. The parameter X should be smaller than exp((log B)^2 / (deg(P) log N)) and the leading coefficient of P should be coprime to N.znlogznlog(x,g,{o}): return the discrete logarithm of x in (Z/nZ)* in base g. If present, o represents the multiplicative order of g. Return [] if no solution exist.znorder(x,{o}): order of the integermod x in (Z/nZ)*. Optional o represents a multiple of the order of the element.znprimroot(n): returns a primitive root of n when it exists.znstar(n,{flag=0}): 3-component vector v = [no,cyc,gen], giving the structure of the abelian group (Z/nZ)^*; no is the order (i.e. eulerphi(n)), cyc is a vector of cyclic components, and gen is a vector giving the corresponding generators.znsubgroupgeneratorsznsubgroupgenerators(H, {flag=0}): find generators of the subgroup H of (Z/fZ)^*; H is given by a vector of 1/0 values: the a-th component is 1 if and only if a belongs to H.pari_version()increasing stack size to %lu *** %s: user warning: collecting garbage in Warning: Warning: increasing prec in %s; new prec = %ldWarning: failed to %s: %sthreadPARIWarning: not enough memory, new %s stack %ludefault handlers are no longer supported --> ignorede_ALARMe_ARCHe_BUGe_COMPONENTe_CONSTPOLe_COPRIMEe_DIMe_DOMAINe_FILEe_FILEDESCe_FLAGe_IMPLe_INVe_IRREDPOLe_MAXPRIMEe_MEMe_MISCe_MODULUSe_NONEe_NOTFUNCe_OPe_OVERFLOWe_PACKAGEe_PRECe_PRIMEe_PRIORITYe_ROOTS0e_SQRTNe_STACKe_SYNTAXe_TYPEe_TYPE2e_USERe_VARunknown error namedebug domainnot a validinvalid error numbere_STACKTHREADTeXstylebreakloopcolorscompatibledatadirdebugdebugfilesdebugmemechofactor_add_primesfactor_provenformatgraphcolorshelphistfilehistsizelinewraplogfilenbthreadsnew_galois_formatoutputparisizeparisizemaxpathprettyprinterpromptprompt_contpsfilereadlinerealbitprecisionrealprecisionrecoversecureseriesprecisionsopathstrictargsstrictmatchthreadsizethreadsizemaxtimerlocking block no %ld: %08lx from %08lx
unlocking block no %ld: %08lx from %08lx
killing block (no %ld): %08lx
unlocking deep block no %ld: %08lx from %08lx
new block, size %6lu (no %ld): %08lx
popping %s (block no %ld)
Broken Pipe, resetting file stack...signal handlingPARI/GP (Floating Point Exception)PARI/GP (Bus Error)PARI/GP (Segmentation Fault)pari.pspari.logGP_DATA_DIRstack sizes [parisizemax < parisize]new maximum stack size = %lu (%.3f Mbytes)new stack size = %lu (%.3f Mbytes)parivstack_reset [avma < bot] *** Error in the PARI system. End of program.
user interruptalarm interrupt after %Ps.%Ps.sorry, '%Ps' not available on this system.bug in %Ps, please report.constant polynomial in %Ps.
*** (...) Huge %s omitted; you can access it via dbg_err()(...)elements not coprime in %Ps:
%s
%sinconsistent dimensions in %Ps.error opening %Ps: `%Ps'.invalid file descriptor in %Ps [%Ps]invalid flag in %Ps.sorry, %Ps is not yet implemented.package %Ps is required, please install it.impossible inverse in %Ps: %s.not an irreducible polynomial in %Ps: %s.%s, need primelimit ~ %lu.not enough precomputed primesnot enough memoryinconsistent moduli in %Ps: %s != %snot a function in function callinconsistentforbidden-->assignmentdivisionmultiplicationaddition%s %s %s %s %s.nonexistent component: index %s %Psnonexistent component in %s: index %s %Psdomain error in %s: %s out of rangedomain error in %s: %s %s %Psincorrect priority in %s: variable %Ps %s %Psoverflow in %Ps.precision too low in %Ps.not a prime number in %Ps: %s.zero polynomial in %Ps.not an n-th power residue in %Ps: %s.the %s stack overflows !
current stack size: %lu (%.3f Mbytes)
[hint] you can increase '%s' using default()
the %s stack overflows !
current stack size: %lu (%.3f Mbytes)
[hint] set '%s' to a nonzero value in your GPRC
incorrect type in %Ps (%s).user error: inconsistent variables in %Ps, %Ps != %Ps.t_MAT (%ld x %ld)t_COL (%ld elts)t_VEC (%ld elts)entering recover(), loc = %ld
leaving recover()
user interrupt after obj_inserttrying to update parent objectobj_checkobj_freegerepile, significant pointers lostlbot>ltop in gerepileTime : %ld
intnumromb recovery [too many iterations]intnumrombromb: iteration %ld, guess: %Ps
romb: relative error < 2^-%ld [target %ld bits]
intnumgaussintnuminit [m]intnuminitmintnuminit with singularity at non constant limittable lengthintnum [incorrect %s]intnum with diverging non constant limitintfuncinit with hard endpoint behaviorintfuncinitintfuncinit with finite endpointsnon integer tab argumentintnuminit0integral from oo to oointegral from -oo to -oocontfracinitcontfracinit, %ld/%ldcontfracevalsumnummonieninita+blog power < 0 in sumnummonieninitrecovery when missing roots in sumnummonieninitPade, %ld/%ldsumnumsumnum [1], %ld/%ldsumnum [2], %ld/%ldsumnummonienincompatible initial value %Ps != %Pssumnumapsumnumratsum diverges in sumnumratprodnumratproduct diverges in prodnumratsumeulerratsum diverges in sumeulerratreal(s)prodeulerratproduct diverges in prodeulerratsumnumlagrangeinitsumnumlagrange for this alphac1sumnumlagrangesumnumsidi: reached accuracy of %ld bits.sumnumsidisumnumsidi divergesintnumoscefpbidbnfnfzkpolt2diffcodiffclgpregray regulatorfuray unitsturay torsion unitszkstgengroupordersa1a2a3a4a6b2b4b6b8c4c6jomega [not defined over C]eta [not defined over C]areaarea [not defined over C]tatetate [not defined over Qp]/usr/local/share/pariGP/PARI CALCULATOR Version 2.15.4 (development 28174-e87796ac3a)javascript running emscripten (portable C kernel) 32-bit version28174-e87796ac3aJul 10 2023single"/usr/local/bin/gphelp"t_INFINITYt_ERRORt_CLOSUREt_VECSMALLt_STRt_LISTt_MATt_COLt_VECt_QFBt_RFRACt_SERt_POLt_POLMODt_QUADt_PADICt_COMPLEXt_FFELTt_FRACt_INTMODt_REALt_INTout of range in integer -> character conversion (%ld)strsplitstrjoinforpariiforpariforeachforsquarefreeforfactoredstepforvec [not a vector]forvec [expected vector not of type [min,MAX]]dimensionvectorsmallnbcolsnbrowspolzag, i = %ld/%ldsumalt, k = %ld/%ldsumalt2, k = %ld/%lda and bf(a)f(b)solve recovery [too many iterations]solvestepsolvestep recovery [too many iterations]derivnumkderivation orderderivnumnumerical derivationformal derivationlaurentseriesvalp()limitnumalphaasympnumasympnumraw_===__'_[_.._][_|_<-_,_][_|_<-_,_;_]%#variable name expectedsyntax error21+&68<.)$*7-9#(%'4,:0;=3
!"/5P !"M#FG
21[WUg KILJ&'Q`]TV^V_PijOk436789;@?B5:<>=ACDEHpNs/0()*+,.-%R$obSXWYZt
\fhl rqdcae>?@@@@AAAABBCCDDDDDDEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGHHIIJJKKLLLLLLMNNNNOPPPPQPRRSTUUUUu ,NO&'(/0)*+124678?@DFGLOSTU78FF1;CFF#:FIJK&3@FGPR#
&'()*+,-.02346789BE
%9B%RC;::=$#:#:GG<4$FFFFFFFFFFFFFFFFFFFFF0AFR6@FFFFFFFFFFF""->""..""+=""-=""*=""/=""\\/=""\\=""%=""&&""||""===""==""!="">=""<="">>=""<<="">>""<<""\\/""++""--""integer""real number""variable name""character string"SEQDEFFUNCINTLVAL';'',''=''&''>''<''+''-''%''\\''/''*'SIGN'^''#''!''~''['DERIV'\'''.''('':'']''`'')''|'$acceptsequenceseqrangematrix_indexbacktickshistoryexprlvalueexprnomatrixeltsnomatrixeltsmatrixlinesininseqcompr$@1listargfuncidmemberiddefinitioncheckalg [please apply alginit()]checklat [please apply alglathnf()]alg_get_center [use alginit]alg_get_degree [use alginit]alg_get_absdimalg_get_relmultable [algebra not given via mult. table]alg_get_dimalg_get_auts [noncyclic algebra]alg_get_aut [noncyclic algebra]alg_get_b [noncyclic algebra]alg_get_splittingdata [algebra not given via mult. table]alg_get_splittingbasis [algebra not given via mult. table]alg_get_splittingbasisinv [algebra not given via mult. table]alg_get_splittingfield [use alginit]alg_get_splitpol [use alginit]alg_get_abssplitting [use alginit]alg_get_hasse_i [use alginit]computation of Hasse invariants over table CSAalg_get_hasse_f [use alginit]tensor of noncyclic algebrastensor product [not the same center]tensor of cyclic algebras of noncoprime degreesalg_cyclic
alg_cyclicdenominator(b)Round 2 (noncommutative) at p=%Ps, dim=%d
algsimpledec_ss: char=%Ps, dim=%d
alg_decompose: char=%Ps, dim=%d, dim Z=%d
try_fact: zx=%Ps
charpoly=%Ps
alg_decompose_from_facto
algpolevalalgpoleval [vector must be of length 2]algpoleval [mx must be the multiplication table of x]algpoleval with x in basis form and pol not in Q[x]alg_modelcheckalgxalgredcharpoly>=algleftmultable_mat (nonsquare)algmulalM_mulalM_add (rows)alM_add (columns)algtomatrixalg_type(al)algbasistoalg [use alginit]algalgtobasis [use alginit]algtableinitdenominator(mt)algprimesubalgcharacteristicalginvalginv_i (nonsquare)alcentralproj alg_centralproj: char=%Ps, dim=%d, #z=%d
alcentralproj [z[i]'s not surjective] alg_quotient0: char=%Ps, dim=%d, dim I=%d
bad case: denominator=%Ps
algradical: char=%Ps, dim=%d
char 0, computing kernel...
...done.
char>0, computing kernel...
char>0, hard case.
computing I_%d:
computing kernel...
checkhasse [hf]checkhasse [Lpr]checkhasse [Lh]checkhasse [hi]checkhasse [hi should have r1 components]#hicheckhasse [Lpr and Lh should have same length]error in checkhasse [duplicate prime ideal]checkhasseHasse invariant at real place [must be 0 or 1/2]sum(Hasse invariants)cyclicrelfrobe(PR/pr)algsubalgsplitting a characteristic 0 algebra over its centerthe algebra must be simple (alg_finite_csa_split 1)the algebra must be simple (alg_finite_csa_split 2)the algebra must be simple (alg_finite_csa_split 3)the algebra must be simple (try_split 1)the algebra must be simple (try_split 2)algisassociativealgisassociative (mult. table)alghasse [use alginit]sstoQudivuu_remis_place_embplalgindex [use alginit]algisdivision for table algebrasalgissplit [use alginit]algisramified [use alginit]algramifiedplaces [use alginit]alM_sub (rows)alM_sub (columns)algdivl\algdivl (nonsquare)algtrace_mat (nonsquare)algrandombbnfgwgeneric (no suitable p)nfgrunwaldwangnfgrunwaldwang [#Lpr != #Ld]nfgrunwaldwang [pl should have r1 components]#plnfgrunwaldwang for non prime-power local degrees (a)nfgrunwaldwang for non prime-power local degrees (b)nfgrunwaldwang for non prime-power local degrees (c)nfgrunwaldwang for nonprime degreehasseconvert [degree should be a denominator of the invariant]denom(h)ndivHasse invariantalg_hasse
alg_hassealg_hasse: i=%d hf=%Ps hi=%Ps lk=%d
alg_hasse: calling nfgrunwaldwang Lpr=%Ps Pd=%Ps pl=%Ps
alg_hasse: calling rnfinit(%Ps)
alg_hasse: computing automorphism
alg_hasse: calling alg_complete
alg_matrix
alg_matrixnsubcycloindep (no suitable prime = 1(mod n))alg_hilbert
alg_hilbertdenominator(a)alginitalginit [degree should be an integer]alg_csa_table
alg_csa_table(nonsquare) dimensioncomputesplitting (k!=0)alglathnfalglathnf [m does not have full rank]alglatmul [one of lat1, lat2 has to be a lattice]alglatelementalgmakeintegral algmakeintegral: dim=%d, denom=%Ps
computing order, dims m = %d x %d...
ellconvertnameellconvertname [incomplete name]ellsearchellsearchbynamename%s/elldata/ell%ldelldata fileelldata file [read]ellsearch [incomplete name]ellidentify [missing curve]ellfromeqnforpermforsubsetgalois of degree higher than 11galois (bug1)galois (bug3)galois (bug2)galois (bug4)EVENODDGaloisbig: polynomial #1 = %Ps
%s group
galois in degree > 11%s/galdata/NAM%ldgalois file %s%s/galdata/%s%ld_%ld_%ldCOSgalois filebin [not alphanumeric]fixprex [precision too large] ----> Group # %ld/%ld:
more than %ld rational integer roots
# rational integer roots = %ld: %ld^%ld %2ld: %Ps
all integer roots are double roots
Working with polynomial #%ld:
tschirn
$$$$$ Tschirnhaus transformation of degree %ld: $$$$$
Output of isin_%ld_G_H(%ld,%ld): %ld
Reordering of the roots: %d )
Output of isin_%ld_G_H(%ld,%ld): not included.
$$$$$ New prec = %ld
gpoly [undefined invariant polynomial]
*** Entering isin_%ld_G_H_(%ld,%ld)
RESpartitions_galoisPartitions of %ld (%ld)
i = %ld: %Ps
S1S2A3S3C(4) = 4E(4) = 2[x]2D(4)A4S4C(5) = 5D(5) = 5:2F(5) = 5:4A5S5C(6) = 6 = 3[x]2D_6(6) = [3]2D(6) = S(3)[x]2A_4(6) = [2^2]3F_18(6) = [3^2]2 = 3 wr 22A_4(6) = [2^3]3 = 2 wr 3S_4(6d) = [2^2]S(3)S_4(6c) = 1/2[2^3]S(3)F_18(6):2 = [1/2.S(3)^2]2F_36(6) = 1/2[S(3)^2]22S_4(6) = [2^3]S(3) = 2 wr S(3)L(6) = PSL(2,5) = A_5(6)F_36(6):2 = [S(3)^2]2 = S(3) wr 2L(6):2 = PGL(2,5) = S_5(6)A6S6C(7) = 7D(7) = 7:2F_21(7) = 7:3F_42(7) = 7:6L(7) = L(3,2)A7S7%s/galpol/%ld/nbgalpol filegalpol file [incompatible]galoisgetpolindexcomplex%s/galpol/%ld/%ld/%sgroup indexgaloisgetgroup%s/galpol/%ld/%ld/groupgaloisgetname%s/galpol/%ld/%ld/namehyperellintegralmodelgenus2redgenus(tame) p = %Ps
(potential) stable reduction: %Ps
reduction at p: %s, %Ps, f = %ld
[I{0-0-0}] page 155[I{1-0-0}] page 170[I{2-0-0}] page 170[I{1-1-0}] page 179genus2localred [tt 1][I{0}-II-0] page 159genus2localred [tt 2]quadratic(Care: minimal discriminant over Z[i] smaller than over Z)
genus2localred [tt 3][I{2-1-0}] page 179[I{1-1-1}] page 182[I{0}-III-0] page 161genus2localred [conductor][I{1}-II-0] page 172genus2localred [switch tt 4][V] page 156[V*] page 156[IX-2] page 157[VIII-4] page 157[IX-4] page 158genus2localred [tt 6]genus2localred [red1][II*-IV-(-1)] page 164[IV-III*-(-1)] page 167genus2localred [b0][IV] page 155[III] page 155genus2localred [c3][III*{%ld}] page 184[III{%ld}] page 184polymini_zi2 [polynomial not minimal]polymini_zi2 [alpha]quartic [type over Z[i] must be [K-K-(2*m)]]quartic [type choices][2I{%ld}-%ld] page 181[2I{0}-%ld] page 159[II] page 155[2I*{%ld}-%ld] pages 159, 181[2III-%ld] page 168[2III*-%ld] page 168[2II-%ld] page 162[2IV*-%ld] page 165[2IV-%ld] page 165[2II*-%ld] page 163quartic [type1]quartic [conductor]genus2localred [red2][VIII-1] page 156[IX-3] page 157[IX-1] page 157[VIII-3] page 157[VIII-2] page 157[VII] page 156[VII*] page 156genus2localred [index]genus2localred [padicfactors][II-II*{%ld}] page 176genus2localred [red3][IV*-II{0}] page 175[II*-III-(-1)] page 167genus2localred [tt 5]genus2localred [padicfactors 2][IV-II{%ld}] page 175[II*-II*{%ld}] page 176[II{%ld-%ld}] page 182[IV*-II{%ld}] page 175genus2localred [switch lambda]labelm3 [lambda != 3]labelm3 [R odd]labelm3 [R <= -2]labelm3 [val(eps2)]labelm3 [minimal equation][I*{0-0-0}] page 155tame_1 [bug1][VI] page 156tame_1 [bug8][I{%ld-0-0}] page 170[I*{%ld-0-0}] page 171[II*{%ld-0}] page 172[II{%ld-0}] page 171tame2 [bug10]tame2 [bug11][II{%ld}-IV] page 175[II{%ld}-IV*] page 175tame2 [bug12][II{%ld}-III] page 177[II*{%ld}-III*] page 178tame2 [bug13][II*{%ld}-III] page 178[II{%ld}-III*] page 178tame2 [bug14]tame2 [bug15]tame2 [bug16]tame2 [bug17][I{%ld-%ld-0}] page 179[I*{%ld-%ld-0}] page 180[2I{%ld}-0] page 181tame3 [bug20][III{%ld}] page 182tame3 [bug21][I{%ld-%ld-%ld}] page 182[I*{%ld-%ld-%ld}] page 183tame4 [bug23][II*{%ld-%ld}] page 184[II{%ld-%ld}] page 183tame4 [bug24]tame4 [bug25]tame4 [bug26][I{0}-I{0}-%ld] page 158[I*{0}-I*{0}-%ld] page 158[I{0}-I*{0}-%ld] page 159[IV-IV*-%ld] page 165[I{0}-IV-%ld] page 160[IV*-IV*-%ld] page 166[I{0}-IV*-%ld] page 160[IV-IV-%ld] page 165[III-III*-%ld] page 169[I{0}-III-%ld] page 161[I*{0}-III*-%ld] page 162[III-III-%ld] page 169[III*-III*-%ld] page 169tame5 [bug29][I{0}-III*-%ld] page 162[I*{0}-III-%ld] page 162[II-II*-%ld] page 163[I{0}-II-%ld] page 159[II*-IV-%ld] page 164[I*{0}-IV*-%ld] page 161[II-II-%ld] page 163[I*{0}-II*-%ld] page 160tame5 [bug30][II-IV-%ld] page 164[II*-IV*-%ld] page 164tame5 [bug31][I*{0}-II-%ld] page 160[II*-II*-%ld] page 163tame5 [bug32][I{0}-II*-%ld] page 160[II-IV*-%ld] page 164[I*{0}-IV-%ld] page 161tame5 [bug33][II*-III-%ld] page 166[III*-IV-%ld] page 167tame5 [bug34][II-III-%ld] page 166[III*-IV*-%ld] page 168tame5 [bug35][III-IV-%ld] page 167[II*-III*-%ld] page 167tame5 [bug36][III-IV*-%ld] page 168[II-III*-%ld] page 166tame5 [bug37]tame5 [bug38]tame5 [bug39][2I*{0}-%ld] page 159tame5 [bug40]tame5 [bug41]tame5 [bug42]tame5 [bug43][I{0}-I{%ld}-%ld] page 170[I*{0}-I*{%ld}-%ld] page 171tame6 [bug44][I{%ld}-IV-%ld] page 173[I{%ld}-IV*-%ld] page 173tame6 [bug45][I{%ld}-III-%ld] page 176[I*{%ld}-III*-%ld] page 177tame6 [bug46][I{%ld}-III*-%ld] page 176[I*{%ld}-III-%ld] page 177tame6 [bug47]tame6 [bug48][I{%ld}-II-%ld] page 172[I*{%ld}-IV*-%ld] page 174tame6 [bug49][I*{%ld}-II*-%ld] page 174[I*{%ld}-II-%ld] page 173[I{%ld}-II*-%ld] page 172[I*{%ld}-IV-%ld] page 174tame6 [bug50]tame6 [bug51]tame6 [bug52][I{%ld}-I{%ld}-%ld] page 179[I*{%ld}-I*{%ld}-%ld] page 180[I{%ld}-I*{%ld}-%ld] page 180[2I*{%ld}-%ld] page 181tame7 [bug55]tame567 [bug27]discpart [must not reach]discpart [prod degree][I{%ld}-I*{%ld}-%ld] page %ldlitredtp [switch ri][%s-%s-%ld] pages %slitredtp [conductor]I{%ld}159-177I*{%ld}III161-177III*162-177II159-174IV*160-175IV160-174II*get_red [type]group_ident [not a group]galoisidentify for groups of order > 127padicfieldspadicfields [too many ramification possibilities] Computing extensions with decomposition [e, f, j] = [%ld, %ld, %ld]
sdivsi Unramified part %Ps
padicfields [too many extensions]There are %ld extensions to find and %Ps polynomials to consider
considering polynomial %Ps
Fp_inv%ld more extension%s (%ld/%ld, %ldms)
GetSharp [no division]MPQS: number to factor N = %Ps
MPQS: number too big to be factored with MPQS,
giving upMPQS: factoring number of %ld decimal digits
mpqs_find_k [ran out of primes]MPQS: found multiplier %ld for N
MPQS: kN = %Ps
MPQS: kN has %ld decimal digits
(estimated memory needed: %4.1fMBy)
MPQS: creating factor base and allocating arrays...
,<%lu>MPQS: FB [-1,2,%lu]
MPQS: sizing out of tune, FB size or tolerance
too largeMPQS: sieve threshold: %ld
MPQS: computing logarithm approximations for p_i in FB
MPQS: sizing out of tune, FB too small or
way too few primes in AMPQS: sieving interval = [%ld, %ld]
MPQS: size of factor base = %ld
MPQS: striving for %ld relations
MPQS: coefficients A will be built from %ld primes each
MPQS: primes for A to be chosen near FB[%ld] = %ld
MPQS: smallest prime used for sieving FB[%ld] = %ld
MPQS: largest prime in FB = %ld
MPQS: bound for `large primes' = %ld
MPQS: sieve threshold = %u
MPQS: computing relations:MPQS: chose Q_%ld(x) = %Ps x^2 %c %Ps x + C
MPQS: Ran out of primes for A, giving up.
sMPQS: found %lu candidate%s
MPQS: combining
{%Ps @ %Ps : %Ps}
* {%Ps @ %Ps : %Ps}
== {%Ps, %Ps}
MPQS: split N whilst combining, time = %ld ms
MPQS: found factor = %Ps
%ld%% (%ld ms)
MPQS: starting Gauss over F_2 on %ld distinct relations
\\ MPQS RELATION MATRIX
FREL=%Ps
KERNEL=%Ps
MPQS: Gauss done: kernel has rank %ld, taking gcds...
MPQS: no solutions found from linear system solverMPQS (relation is a nonsquare)MPQS: X^2 - Y^2 != 0 mod N
index i = %ld
MPQS: wrong relation found after GaussMPQS: splitting N after %ld kernel vector%s
MPQS: got two factors, looking for more...
MPQS: resplitting a factor after %ld kernel vectors
, looking for more...MPQS: got %ld factors%s
MPQS: wrapping up %ld factors
unknowncomposite packaging %ld: %Ps ^%ld (%s)
MPQS: time in Gauss and gcds = %ld ms
MPQS: found %ld factors =
, %Ps%s
MPQS: no factors found.
MPQS: restarting sieving ...
MPQS: giving up.
MPQS: decomposed a square
MPQS: decomposed a %s power
MPQS: wrapping, more primes for A now chosen near FB[%ld] = %ld
MPQS: new bit pattern for primes for A: 0x%lX
MPQS: chose primes for A FB[%ld]=%ld%spartition functionnumbpart [n < 10^15]forpart [expect vector of type [amin,amax]]forpart [expect 0<=min<=max, 0ulong assignmentmissing units in bnfinithuesqrtnr for x < 0c1 = %Ps
c2 = %Ps
Indice <= %Ps
thueepsilon_3 -> %Ps
thue [please apply thueinit()]oo#solsThe result returned by 'thue' is conditional on the GRHlooking for a fundamental unit of norm -1
%Ps eliminated because of sign
bnfisintnormabsgcd f_P does not divide n_p
t_INT-->t_INT assignmentsol = %Ps
T->partrel = %Ps
* Checking for small solutions <= %Ps
thue (SmallSols): y <= %PsSmallSols* real root no %ld/%ld
c10 = %Ps
c13 = %Ps
- norm sol. no %ld/%ld
B0 -> %Ps
CF failed. Increasing kappa
Semirat. reduction: B0 -> %Ps
thue (totally rational case) Entering LLL...
C (bitsize) : %d
LLL_First_Pass successful
B0 -> %Ps
x <= %Ps
LLL failed. Increasing kappa
Semirat. reduction: B0 -> %Ps x <= %Ps
Checking (+/- %Ps, +/- %Ps)
thue [short continued fraction]thue [realroots] B0 = %Ps
Baker = %Ps
ideals_by_norm/gpjs/root/%sretryHelp: %s/help-stable/%shttps://pari.math.u-bordeaux.fr/dochtmlexport not allowed during parallel sectionsunexport not allowed during parallel sectionsgraphic function [use plotinit()]graphic functionrectwindow<>t_INT-->long assignmentx<=ygraphcolormapinvalid RGB code: %Psincorrect hexadecimal number: %sunknown color %ssnowghostwhitewhitesmokegainsborofloralwhiteoldlacelinenantiquewhitepapayawhipblanchedalmondbisquepeachpuffnavajowhitemoccasincornsilkivorylemonchiffonseashellhoneydewmintcreamazurealicebluelavenderlavenderblushmistyrosewhiteblackdarkslategraydarkslategreydimgraydimgreyslategrayslategreylightslategraylightslategreygraygreylightgreylightgraymidnightbluenavynavybluecornflowerbluedarkslateblueslatebluemediumslatebluelightslatebluemediumblueroyalbluebluedodgerbluedeepskyblueskybluelightskybluesteelbluelightsteelbluelightbluepowderbluepaleturquoisedarkturquoisemediumturquoiseturquoisecyanlightcyancadetbluemediumaquamarineaquamarinedarkgreendarkolivegreendarkseagreenseagreenmediumseagreenlightseagreenpalegreenspringgreenlawngreengreenchartreusemediumspringgreengreenyellowlimegreenyellowgreenforestgreenolivedrabdarkkhakikhakipalegoldenrodlightgoldenrodyellowlightyellowyellowgoldlightgoldenrodgoldenroddarkgoldenrodrosybrownindianredsaddlebrownsiennaperuburlywoodbeigewheatsandybrownchocolatefirebrickbrowndarksalmonsalmonlightsalmonorangedarkorangecorallightcoraltomatoorangeredredhotpinkdeeppinkpinklightpinkpalevioletredmaroonmediumvioletredvioletredmagentavioletplumorchidmediumorchiddarkorchiddarkvioletbluevioletpurplemediumpurplethistlesnow1snow2snow3snow4seashell1seashell2seashell3seashell4antiquewhite1antiquewhite2antiquewhite3antiquewhite4bisque1bisque2bisque3bisque4peachpuff1peachpuff2peachpuff3peachpuff4navajowhite1navajowhite2navajowhite3navajowhite4lemonchiffon1lemonchiffon2lemonchiffon3lemonchiffon4cornsilk1cornsilk2cornsilk3cornsilk4ivory1ivory2ivory3ivory4honeydew1honeydew2honeydew3honeydew4lavenderblush1lavenderblush2lavenderblush3lavenderblush4mistyrose1mistyrose2mistyrose3mistyrose4azure1azure2azure3azure4slateblue1slateblue2slateblue3slateblue4royalblue1royalblue2royalblue3royalblue4blue1blue2blue3blue4dodgerblue1dodgerblue2dodgerblue3dodgerblue4steelblue1steelblue2steelblue3steelblue4deepskyblue1deepskyblue2deepskyblue3deepskyblue4skyblue1skyblue2skyblue3skyblue4lightskyblue1lightskyblue2lightskyblue3lightskyblue4slategray1slategray2slategray3slategray4lightsteelblue1lightsteelblue2lightsteelblue3lightsteelblue4lightblue1lightblue2lightblue3lightblue4lightcyan1lightcyan2lightcyan3lightcyan4paleturquoise1paleturquoise2paleturquoise3paleturquoise4cadetblue1cadetblue2cadetblue3cadetblue4turquoise1turquoise2turquoise3turquoise4cyan1cyan2cyan3cyan4darkslategray1darkslategray2darkslategray3darkslategray4aquamarine1aquamarine2aquamarine3aquamarine4darkseagreen1darkseagreen2darkseagreen3darkseagreen4seagreen1seagreen2seagreen3seagreen4palegreen1palegreen2palegreen3palegreen4springgreen1springgreen2springgreen3springgreen4green1green2green3green4chartreuse1chartreuse2chartreuse3chartreuse4olivedrab1olivedrab2olivedrab3olivedrab4darkolivegreen1darkolivegreen2darkolivegreen3darkolivegreen4khaki1khaki2khaki3khaki4lightgoldenrod1lightgoldenrod2lightgoldenrod3lightgoldenrod4lightyellow1lightyellow2lightyellow3lightyellow4yellow1yellow2yellow3yellow4gold1gold2gold3gold4goldenrod1goldenrod2goldenrod3goldenrod4darkgoldenrod1darkgoldenrod2darkgoldenrod3darkgoldenrod4rosybrown1rosybrown2rosybrown3rosybrown4indianred1indianred2indianred3indianred4sienna1sienna2sienna3sienna4burlywood1burlywood2burlywood3burlywood4wheat1wheat2wheat3wheat4tan1tan2tan3tan4chocolate1chocolate2chocolate3chocolate4firebrick1firebrick2firebrick3firebrick4brown1brown2brown3brown4salmon1salmon2salmon3salmon4lightsalmon1lightsalmon2lightsalmon3lightsalmon4orange1orange2orange3orange4darkorange1darkorange2darkorange3darkorange4coral1coral2coral3coral4tomato1tomato2tomato3tomato4orangered1orangered2orangered3orangered4red1red2red3red4debianreddeeppink1deeppink2deeppink3deeppink4hotpink1hotpink2hotpink3hotpink4pink1pink2pink3pink4lightpink1lightpink2lightpink3lightpink4palevioletred1palevioletred2palevioletred3palevioletred4maroon1maroon2maroon3maroon4violetred1violetred2violetred3violetred4magenta1magenta2magenta3magenta4orchid1orchid2orchid3orchid4plum1plum2plum3plum4mediumorchid1mediumorchid2mediumorchid3mediumorchid4darkorchid1darkorchid2darkorchid3darkorchid4purple1purple2purple3purple4mediumpurple1mediumpurple2mediumpurple3mediumpurple4thistle1thistle2thistle3thistle4gray0grey0gray1grey1gray2grey2gray3grey3gray4grey4gray5grey5gray6grey6gray7grey7gray8grey8gray9grey9gray10grey10gray11grey11gray12grey12gray13grey13gray14grey14gray15grey15gray16grey16gray17grey17gray18grey18gray19grey19gray20grey20gray21grey21gray22grey22gray23grey23gray24grey24gray25grey25gray26grey26gray27grey27gray28grey28gray29grey29gray30grey30gray31grey31gray32grey32gray33grey33gray34grey34gray35grey35gray36grey36gray37grey37gray38grey38gray39grey39gray40grey40gray41grey41gray42grey42gray43grey43gray44grey44gray45grey45gray46grey46gray47grey47gray48grey48gray49grey49gray50grey50gray51grey51gray52grey52gray53grey53gray54grey54gray55grey55gray56grey56gray57grey57gray58grey58gray59grey59gray60grey60gray61grey61gray62grey62gray63grey63gray64grey64gray65grey65gray66grey66gray67grey67gray68grey68gray69grey69gray70grey70gray71grey71gray72grey72gray73grey73gray74grey74gray75grey75gray76grey76gray77grey77gray78grey78gray79grey79gray80grey80gray81grey81gray82grey82gray83grey83gray84grey84gray85grey85gray86grey86gray87grey87gray88grey88gray89grey89gray90grey90gray91grey91gray92grey92gray93grey93gray94grey94gray95grey95gray96grey96gray97grey97gray98grey98gray99grey99gray100grey100darkgreydarkgraydarkbluedarkcyandarkmagentadarkredlightgreenplotcopydxdy#pointsploth [not a t_VEC in parametric plot]ploth [odd #components in parametric plot]ploth [not a t_VEC]ploth [multi-curves + recursive]_parapply_slice_workerplotrecth%.5gToo few points (%ld) for spline plothigh resolution graphics disabledplotexportsvgpsplotexport [unknown format]%%!
50 50 translate
1 %d div 1 %d div scale
1 setlinejoin
/p {moveto 0 2 rlineto 2 0 rlineto 0 -2 rlineto closepath fill} def
/c0 {0 0 0 setrgbcolor} def
/c {setrgbcolor} def
/l {lineto} def
/m {moveto} def
/Times-Roman findfont %ld scalefont setfont
0 %ld translate -90 rotate
stroke showpage
(\)((%s) %ld %ld m 90 rotate show -90 rotate
%ld %ld m
%ld %ld l
stroke
%ld %ld p
%ld %ld m %ld %ld l %ld %ld l %ld %ld l closepath currentlinejoin 0 setlinejoin fill setlinejoin
%ld %ld m %ld %ld l %ld %ld l %ld %ld l closepath currentlinejoin 0 setlinejoin stroke setlinejoin
%ld %ld m %ld %ld l
c0
%.6f %.6f %.6f c
%sstyle='fill:none;stroke:%s;'/> break> stdinBreak loop: to continue; 'break' to go back to GP promptBreak loop: type 'break' to go back to GP prompt
%cverbatim:missing DATA_[BEGIN | END] in TeXmacs commandspecial:unrecognized TeXmacs commandmissing enclosing parentheses for TeXmacs commandcompleteTexmacs command %s not implementedwas expecting 2 arguments for Texmacs command%clatex:\magenta\%%%lu = $\blue %s$%c!_This function did not exist in Pari 1.39This function did not change
A function with that name existed in GP-1.39.15. Please update your script.This function no longer existsx*y_*_whatnowNew syntax: %s%s ===> %s%s
#_%+_-__!_!=__%=__%__&&__'_*=__++_+=__+__--_-=__-__.a1_.a2_.a3_.a4_.a6_.area_.b2_.b4_.b6_.b8_.bid_.bnf_.c4_.c6_.clgp_.codiff_.cyc_.diff_.disc_.e_.eta_.f_.fu_.futu_.gen_.group_.index_.j_.mod_.nf_.no_.omega_.orders_.p_.pol_.r1_.r2_.reg_.roots_.sign_.t2_.tate_.tu_.tufu_.zk_.zkst_/=__/__<<=__<<__<=__<__==__>=__>>=__>>__>__[_.._,_.._]_[_.._]_\/=__\/__\=__\__^__^s___derivfun_eval_mnemonic_multi_if_void_if_||__~OO(_^_)Strabsacosacoshaddellelladd(e,z1,z2)addprimesadjmatadjoint(x)agmakellellak(e,n)algdepalgdep2(x,n,dec)algtobasisnfalgtobasis(nf,x)anellellanapellellapapell2apprpadicpadicappr(x,a)argasinasinhassmatmatcompanionatanatanhbasisnfbasisbasis2(x,2)basistoalgnfbasistoalgbernrealbernvecbestapprbezoutgcdext(a,b)bezoutresbigomegabilhellellbilbinbinomial(x,y)binarybittestboundcfcontfrac(x,lmax)(x,,lmax)boundfactfactor(x,lim)buchcertifybnfcertify(bnf)buchfubuchgenbuchgenforcefubuchgenfubuchimagquadclassunit(D,c1,c2,g)(D,,[c1,c2,g])buchinitbnfinit(P)(P,2)buchinitforcefu(P,1)buchinitfubuchnarrowbnfnarrowbuchraybnrinit(bnf,ideal)buchrayinitbuchrayinitgen(bnf,ideal,1)buchreal(D)bytesizesizebyteceilcenterliftcfcf2(b,x)(x,b)changevarcharcharpolychar1(x,y,1)char2(x,y,2)chellellchangecurvechinesechptellellchangepointclassnoqfbclassnoclassno2(x,1)coeffpolcoeff(x,s)compimagcompocomponentcompositumpolcompositum(pol1,pol2)compositum2(pol1,pol2,1)comprealrawqfbcomprawconcatconductorbnrconductor(a1)conductorofcharbnrconductorofchar(bnr,chi)conjconjveccontentconvolserconvolcorecore2coredisccoredisc2coscoshcvtoitruncate(x,&e)cyclopolcyclo(n)decodefactorfactorback(fa)decodemodulebnfdecodemodule(nf,fa)degreepoldegreedenomdenominatordeplinlindep(x,-1)derivdetmatdetdet2detintmatdetintdiagonalmatdiagonaldilogdirdivdireulerdirmuldirzetakdiscpoldiscdiscfnfdiscdiscf2discrayabsbnrdisc(bnr,subgroup)discrayabscond(bnr)(bnr,,,2)discrayabslistbnrdisclist(bnf,list)discrayabslistarch(bnf,arch,bound)(bnf,bound,arch)discrayabslistarchall(bnf,bound)(bnf,bound,,1)discrayabslistlongdiscrayrel(bnr,subgroup,,1)discrayrelcond(bnr,subgroup,,3)divisorsdivresdivremdivsumsumdiv(n,X,expr)eigenmateigeneint1erfcetaeulerEulerevalexpextractvecextractfactfactorialfactcantorfactorcantor(x,p)factfqfactorff(x,p,a)factmodfactormodfactoredbasis(x,,p)factoreddiscffactoredpolredpolredfactoredpolred2(x,2,p)factornffactorpadicfactorpadic2(x,p,r)(x,p,r,1)factpol(x,l,hint)factpol2fibofibonaccifloorforfordivforprimeforstepforvecfpnffinit(p,n)fracgaloispolgaloisgaloisapplynfgaloisapply(nf,aut,x)galoisconjnfgaloisconj(nf)galoisconj1(nf,2)galoisconjforce(nf,1)gamhgammahgammagaussmatsolvegaussmodulomatsolvemod(M,D,Y)gaussmodulo2(M,D,Y,1)gcdgetheapgetrandgetstackgettimeglobalredellglobalredgotohclassnoqfbhclassnohellellheight(e,x)hell2(e,x,1)hermitemathnfhermite2hermitehavashermitemodmathnfmod(x,d)hermitemodidmathnfmodidhermiteperm(x,3)hessmathesshilbhilbertmathilberthilbp(x,y,p)hvectorvectorhyperuiIidealaddidealaddmultoneidealaddtoone(nf,list)idealaddone(nf,x,y)idealappridealapprfact(nf,x,1)idealchineseidealcoprimeidealdividealdivexact(nf,x,y,1)idealfactoridealhermiteidealhnfidealhermite2idealintersectidealinvidealinv2ideallistideallistarchideallistarchgen(nf,list,arch)ideallistunit(nf,list,2)ideallistunitarchideallistunitarchgenideallistunitgen(nf,list,3)ideallistzstar(nf,bound)ideallistzstargen(nf,bound,1)ideallllredidealred(nf,x,vdir)idealmulidealmulredidealnormidealpowidealpowredidealtwoeltidealtwoelt2(nf,x,a)idealvalidmatmatidifimagimagematimageimage2imagecomplmatimagecomplincgamincgam1incgam2incgam3incgam4(s,x,y)indexrankmatindexrankindsortvecsort(x,,1)initalgnfinit(pol)initalgredinitalgred2initellellinitinitzetaintegintformalintersectmatintersectintgenintnum(x=a,b,s)(x=a,b,s,1)intinf(x=a,b,s,2)intopen(x=a,b,s,3)inverseimagematinverseimageisdiagonalmatisdiagonalisfundisfundamentalisidealnfisidealisinclnfisinclisinclfast(nf1,nf2)(nf1,nf2,1)isirreduciblepolisirreducibleisisomnfisisomisisomfastisoncurveellisoncurveisprimeisprincipalbnfisprincipal(bnf,x)(bnf,x,0)isprincipalforce(bnf,x,2)isprincipalgenisprincipalgenforce(bnf,x,3)isprincipalraybnrisprincipalisprincipalraygenispspispseudoprimeisqrtsqrtintissetsetissetissqfreeissquarefreeissquareisunitbnfisunitjacobiqfjacobijbesselhbesseljh(n,x)jellelljkaramulkbesselbesselk(nu,x)kbessel2kermatkerkerikerintmatkerintkerint1kerint2krokroneckerlabellambdaklaplaceserlaplacelcmlegendrepollegendrelengthlexlexsort(x,,2)liftlindep2lllqfllllll1lllgen(x,8)lllgramqflllgramlllgram1lllgramgenlllgramintlllgramkerim(x,4)lllgramkerimgen(x,5)lllintlllintpartiallllkerimlllkerimgenlllratlnloglngammalocalredelllocalred(e)logagmlseriesellelllseries(e,s,N,A)(e,s,A)makebigbnf(sbnf)matMatmatextract(x,y,z)mathellellheightmatrixmatrixmatrixqzmatrixqz2matrixqz3(x,-2)matsizemaxminminidealidealmin(nf,ix,vdir)minimqfminim(x,bound,maxnum)minim2(x,bound)(x,bound,,1)modModmodpmodreversemodulargcdmumoebiusnewtonpolynextprimenfdetintnfdivnfeltdiv(nf,a,b)nfdiveucnfeltdiveucnfdivresnfeltdivremnfhermitenfhnfnfhermitemodnfhnfmod(nf,x,detx)nfmodnfeltmodnfmulnfeltmulnfpownfeltpow(nf,a,k)nfreducenfeltreduce(nf,a,id)nfsmithnfsnfnfvalnfeltval(nf,a,pr)normnorml2nucompqfbnucomp(x,y,l)numdivnumernumeratornupowqfbnupow(x,n)oomegaordellellordinateorderznorderorderellellorderordredpolredordpadicprecpascalmatpascalperfqfperfection(a)permutationnumtoperm(n,k)permutation2numpermtonum(vect)pfqfbprimeformphieulerphipiPipnqncontfracpnqnpointellellztopoint(e,z)polintpolinterpolate(xa,ya,x)(xa,ya,p)polred2polredabspolredabs2polredabsallpolredabsfastpolredabsnoredpolsympolvarvariablepolyPol(x,v)polylogpolylogd(m,x)(m,x,1)polylogdold(m,x,2)polylogp(m,x,3)polyrevPolrevpolzagpolzagier(n,m)powellellmul(e,x,n)powrealrawqfbpowrawprecprecisionprimeprimedecidealprimedec(nf,p)primesprimrootznprimrootprincipalidealprincipalideleprod(x,X=a,b,expr)(X=a,b,expr,x)prodeulerprodinfprodinf1(X=a,expr)(X=a,expr,1)psiqfiQfb(a,b,c)qfr(a,b,c,d)quaddiscquadgenquadpolyrandomrankmatrankrayclassnobnrclassnorayclassnolistbnrclassnolist(bnf,liste)realrecippolrecipredimagqfbredredrealredrealnod(x,2,,d)reduceddiscpoldiscreduced(f)regulaquadregulatorreorderresultantpolresultantresultant2reverseserreverserhorealrhorealnod(x,3,,d)rndtoiroundrnfbasisrnfdiscfrnfdisc(nf,pol)rnfequationrnfequation2(nf,pol,1)rnfhermitebasisrnfhnfbasis(bnf,order)rnfisfreernflllgramrnfpolredrnfpseudobasisrnfsteinitzrootmodpolrootsmodrootmod2rootpadicpolrootspadicrootspolrootsrootsof1nfrootsof1rootsoldrounderrorseriesSersetSetsetintersectsetminussetrandsetsearchsetunionshiftshiftmulsigmasigmak(k,x)(x,k)signsignatqfsignsignunitbnfsignunitsimplefactmod(x,p,1)simplifysinsinhsizesizedigitsmallbasissmallbuchinitsmalldiscfsmallfact(x,0)smallinitellsmallpolredsmallpolred2smithmatsnfsmith2smithcleansmithpolsolvesortsqrsqredqfgaussredsqrtsrgcdsturmpolsturmsturmpart(x,a,b)subcyclopolsubcyclo(p,d)subellellsub(e,a,b)substsumsumaltsumalt2suminfsumpossumpos2supplementmatsupplementsylvestermatrixpolsylvestermatrixsystemtantanhtaniyamaelltaniyamataylortchebipolchebyshevteichteichmullerthetathetanullkthreetotwothreetotwo2torsellelltorstracetransmattransposetrunctschirnhauspoltschirnhaustwototwounitquadunituntilvaluationvecVecvecindexsortveclexsortvecmaxvecminvvectorvectorvweipellellwpwfweberwf2whilezellellpointtoz(e,P)zetazetaklfun(nfz,s)(L,s)zideallogideallog(nf,x,bid)zidealstaridealstar(nf,I)zidealstarinit(nf,id)(nf,id,1)zidealstarinitgen(nf,id,2)znstarallocatememboxplotboxcolorplotcolor(w,c)cursorplotcursor(w)defaultdrawplotdraw(list)plotinit(w,x,y)killplotkilllineplotlines(w,x2,y2)linesmoveplotmoveplotplothploth2(X=a,b,expr)(X=a,b,expr,1)plothmultplothrawpointplotpointspointspsdrawpsplothpostploth2psplothraw(listx,listy)pprintpprint1printprint1rboxplotrbox(w,dx,dy)readinputrlineplotrlinerlinesplotrlines(w,dx,dy,1)rmoveplotrmoverpointplotrpointrpointsplotrpointsscaleplotscale(w,x1,x2,y1,y2)setprecision(realprecision,n)setserieslength(seriesprecision,n)settypetype(x,t)stringplotstring(w,x)texprintprinttexintfouriercosintfouriersinintfourierexpintlaplaceinvintmellininvintmellininvshortzetakinitlfuninit(T)(T,sdom)
-+ 0X0x(null)-0X+0X 0X-0x+0x 0xinfINFnanNAN0123456789ABCDEF.T!"
K'hnopqb ($
%#}&*+<=>?CGJMXYZ[\]^_`acdefgijklrstyz{|Illegal byte sequenceDomain errorResult not representableNot a ttyPermission deniedOperation not permittedNo such file or directoryNo such processFile existsValue too large for data typeNo space left on deviceOut of memoryResource busyInterrupted system callResource temporarily unavailableInvalid seekCross-device linkRead-only file systemDirectory not emptyConnection reset by peerOperation timed outConnection refusedHost is downHost is unreachableAddress in useBroken pipeI/O errorNo such device or addressBlock device requiredNo such deviceNot a directoryIs a directoryText file busyExec format errorInvalid argumentArgument list too longSymbolic link loopFilename too longToo many open files in systemNo file descriptors availableBad file descriptorNo child processBad addressFile too largeToo many linksNo locks availableResource deadlock would occurState not recoverablePrevious owner diedOperation canceledFunction not implementedNo message of desired typeIdentifier removedDevice not a streamNo data availableDevice timeoutOut of streams resourcesLink has been severedProtocol errorBad messageFile descriptor in bad stateNot a socketDestination address requiredMessage too largeProtocol wrong type for socketProtocol not availableProtocol not supportedSocket type not supportedNot supportedProtocol family not supportedAddress family not supported by protocolAddress not availableNetwork is downNetwork unreachableConnection reset by networkConnection abortedNo buffer space availableSocket is connectedSocket not connectedCannot send after socket shutdownOperation already in progressOperation in progressStale file handleRemote I/O errorQuota exceededNo medium foundWrong medium typeNo error information
!"#
!"#sh-c/bin/shrwa